uc_shipping.tokens.inc 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * @file
  4. * Token hooks for the uc_shipping module.
  5. */
  6. /**
  7. * Implements hook_token_info().
  8. */
  9. function uc_shipping_token_info() {
  10. $tokens = array();
  11. $tokens['tracking-number'] = array(
  12. 'name' => t('Shipment tracking number(s)'),
  13. 'description' => t('Tracking number(s) (if applicable) for product shipments.'),
  14. );
  15. return array(
  16. 'tokens' => array('uc_order' => $tokens),
  17. );
  18. }
  19. /**
  20. * Implements hook_tokens().
  21. */
  22. function uc_shipping_tokens($type, $tokens, $data = array(), $options = array()) {
  23. $replacements = array();
  24. $sanitize = !empty($options['sanitize']);
  25. if ($type == 'uc_order' && !empty($data['uc_order'])) {
  26. $order = $data['uc_order'];
  27. foreach ($tokens as $name => $original) {
  28. switch ($name) {
  29. case 'tracking-number':
  30. $result = db_query('SELECT tracking_number FROM {uc_shipments} WHERE order_id = :order_id', array(':order_id' => $order->order_id));
  31. $tracking_numbers = array();
  32. foreach ($result as $record) {
  33. if ((isset($record->tracking_number)) && (!empty($record->tracking_number))) {
  34. $tracking_numbers[] = $record->tracking_number;
  35. }
  36. }
  37. $tracking = implode(', ', $tracking_numbers);
  38. $replacements[$original] = $sanitize ? check_plain($tracking) : $tracking;
  39. break;
  40. }
  41. }
  42. }
  43. return $replacements;
  44. }