You are here

function simple_package_tracking_save_tracking in Simple Package Tracking 7

Same name and namespace in other branches
  1. 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()
simple_package_tracking_add_tracking_submit in ./simple_package_tracking.module

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;
}