packages, an array * of package objects as returned by uc_shipping_package_load(). * * @param $op * The action being taken on the shipment. One of the following values: * - load: The shipment and its packages are loaded from the database. * - save: Changes to the shipment have been written. * - delete: The shipment has been deleted and the packages are available * for reshipment. * @param $shipment * The shipment object. * * @return * Only given when $op is "load". An associative array of extra data to * be added to the shipment object. Each key/value element of the array * becomes a separate member of the shipment object. Elements of the array * with the same key as members of the shipment object replace those members * of the shipment object. */ function hook_uc_shipment($op, $shipment) { switch ($op) { case 'save': $google_order_number = uc_google_checkout_get_google_number($shipment->order_id); if ($google_order_number && $shipment->is_new) { $xml_data = ''; foreach ($shipment->packages as $package) { if ($package->tracking_number) { $tracking_number = $package->tracking_number; } elseif ($shipment->tracking_number) { $tracking_number = $shipment->tracking_number; } if ($tracking_number) { foreach ($package->products as $product) { $xml_data .= ''; $xml_data .= ''; $xml_data .= '' . check_plain($product->nid . '|' . $product->model) . ''; $xml_data .= ''; $xml_data .= ''; $xml_data .= ''; $xml_data .= '' . check_plain($shipment->carrier) . ''; $xml_data .= '' . check_plain($tracking_number) . ''; $xml_data .= ''; $xml_data .= ''; $xml_data .= ''; } } } if ($xml_data) { $request = '' . "\n"; $request .= ''; $request .= ''; $request .= $xml_data; $request .= ''; $request .= 'true'; $request .= ''; $response = uc_google_checkout_send_request('request', $request); } } break; case 'delete': $google_order_number = uc_google_checkout_get_google_number($shipment->order_id); if ($google_order_number) { foreach ($shipment->packages as $package) { foreach ($package->products as $product) { $reset_ids[] = check_plain($product->nid . '|' . $product->model); } } $request = '' . "\n"; $request .= ''; $request .= ''; foreach (array_unique($reset_ids) as $item_id) { $request .= ''; $request .= '' . $item_id . ''; $request .= ''; } $request .= ''; $request .= 'false'; $request .= ''; } $response = uc_google_checkout_send_request('request', $request); break; } } /** * @} End of "addtogroup hooks". */