function uc_extra_fields_pane_token_values in Extra Fields Checkout Pane 6.2
Same name and namespace in other branches
- 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;
}