function uc_quote_nodeapi in Ubercart 6.2
Same name and namespace in other branches
- 5 shipping/uc_quote/uc_quote.module \uc_quote_nodeapi()
Implements hook_nodeapi().
Loads, saves, and deletes the shipping type and default shipping origin address of products.
File
- shipping/
uc_quote/ uc_quote.module, line 109 - The controller module for fulfillment modules that process physical goods.
Code
function uc_quote_nodeapi(&$node, $op, $arg3 = NULL, $arg4 = NULL) {
if (uc_product_is_product($node->type)) {
switch ($op) {
case 'insert':
case 'update':
if (isset($node->shipping_type)) {
uc_quote_set_shipping_type('product', $node->nid, $node->shipping_type);
}
db_query("DELETE FROM {uc_quote_product_locations} WHERE nid = %d", $node->nid);
if ($node->street1) {
db_query("INSERT INTO {uc_quote_product_locations} (nid, first_name, last_name, company, street1, street2, city, zone, postal_code, country, phone) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s', %d, '%s')", $node->nid, $node->first_name, $node->last_name, $node->company, $node->street1, $node->street2, $node->city, $node->zone, $node->postal_code, $node->country, $node->phone);
}
break;
case 'load':
$shipping_type = uc_product_get_shipping_type($node);
$address = db_fetch_object(db_query("SELECT first_name, last_name, company, street1, street2, city, zone, postal_code, country, phone FROM {uc_quote_product_locations} WHERE nid = %d", $node->nid));
if ($address === FALSE) {
$address = variable_get('uc_quote_store_default_address', new stdClass());
}
return array(
'shipping_type' => $shipping_type,
'shipping_address' => $address,
);
break;
case 'delete':
db_query("DELETE FROM {uc_quote_shipping_types} WHERE id_type = 'product' AND id = %d", $node->nid);
db_query("DELETE FROM {uc_quote_product_locations} WHERE nid = %d", $node->nid);
break;
}
}
}