function simple_package_tracking_save_tracking in Simple Package Tracking 7
Same name and namespace in other branches
- 6 simple_package_tracking.module \simple_package_tracking_save_tracking()
Parameters
$order_id:
$number:
$url:
$carrier:
$note:
null $id:
$optional: Optional array with replacement patterns
Return value
\DatabaseStatementInterface|int|null
Throws
\Exception
1 call to simple_package_tracking_save_tracking()
File
- ./
simple_package_tracking.module, line 399
Code
function simple_package_tracking_save_tracking($order_id, $number, &$url, $carrier, $note, $id = NULL, $optional = array()) {
$url = preg_replace('/\\s+/', '', $url);
$url = str_replace('@tracking_number', $number, $url);
foreach ($optional as $token => $value) {
$url = str_replace('@' . $token, $value, $url);
}
if (!$id) {
$query = db_insert('tracking_numbers')
->fields(array(
'order_id' => $order_id,
'tracking_number' => $number,
'tracking_url' => $url,
'tracking_carrier' => $carrier,
'tracking_note' => $note,
));
if ($id = $query
->execute()) {
drupal_set_message(t('Added tracking for order @oid', array(
'@oid' => $order_id,
)));
}
}
else {
$query = db_update('tracking_numbers')
->fields(array(
'order_id' => $order_id,
'tracking_number' => $number,
'tracking_url' => $url,
'tracking_carrier' => $carrier,
'tracking_note' => $note,
))
->condition('tracking_id', $id, '=');
if ($query
->execute()) {
drupal_set_message(t('Updated tracking for order @oid', array(
'@oid' => $order_id,
)));
}
}
return $id;
}