You are here

function uc_extra_fields_pane_token_values in Extra Fields Checkout Pane 6.2

Same name and namespace in other branches
  1. 6 uc_extra_fields_pane.module \uc_extra_fields_pane_token_values()

Implementation of hook_token_values().

Parameters

string $type:

object $object:

Return value

array

File

./uc_extra_fields_pane.module, line 864
Module: uc_extra_fields_pane.module

Code

function uc_extra_fields_pane_token_values($type, $object = NULL) {
  $values = array();
  switch ($type) {
    case 'order':
      $order = $object;
      $result = db_query("SELECT * FROM {uc_extra_fields}");
      while ($field_data = db_fetch_array($result)) {
        $field = UCXF_FieldList::createField($field_data['pane_type']);
        $field
          ->from_array($field_data);
        $db_name = str_replace('ucxf_', '', $field->db_name);
        $pane_types = $field->pane_types;

        // Only when $field->pane_type is 'extra_delivery|extra_billing' we have more then one pane type
        foreach ($pane_types as $pane_type) {
          switch ($pane_type) {
            case 'extra_delivery':
              $token_name = 'extra-extra_delivery-' . $db_name;
              $order_field_name = 'delivery_' . $field->db_name;
              break;
            case 'extra_billing':
              $token_name = 'extra-extra_billing-' . $db_name;
              $order_field_name = 'billing_' . $field->db_name;
              break;
            default:
              $token_name = 'extra-' . $field->pane_type . '-' . $db_name;
              $order_field_name = str_ireplace('extra_', '', $field->pane_type) . '_' . $field->db_name;
              break;
          }
          if (isset($order->{$order_field_name}) && $order->{$order_field_name} != '') {
            $values[$token_name] = $field
              ->output_value($order->{$order_field_name});
            $values[$token_name . '-raw'] = $order->{$order_field_name};
          }
          else {
            $values[$token_name] = '';
            $values[$token_name . '-raw'] = '';
          }
        }
      }
      break;
  }
  return $values;
}