function uc_extra_fields_pane_order in Extra Fields Checkout Pane 6
Same name and namespace in other branches
- 6.2 uc_extra_fields_pane.module \uc_extra_fields_pane_order()
File
- ./
uc_extra_fields_pane.module, line 518
Code
function uc_extra_fields_pane_order($op, &$arg1, $arg2) {
switch ($op) {
case 'new':
// do nothing, extra field cannot be handled here
break;
case 'save':
if (is_array($arg1->extra_fields) && count($arg1->extra_fields)) {
$fields = uc_extra_fields_pane_load_fields_from_db();
$sql_field_names = array();
$sql_field_values = array();
foreach ($arg1->extra_fields as $key => $value) {
$sql_field_names[] = $key;
$sql_field_values[] = $value;
}
$sql_field_values[] = $arg1->order_id;
db_query("update {uc_extra_fields_values} set " . implode("='%s',", $sql_field_names) . "='%s' where order_id=%d", $sql_field_values);
if (!db_affected_rows()) {
$placeholders = "";
for ($i = 0; $i < count($sql_field_names); $i++) {
$placeholders .= "'%s',";
}
db_query("insert into {uc_extra_fields_values}(" . implode(',', $sql_field_names) . ",order_id) values (" . $placeholders . "%d)", $sql_field_values);
}
}
break;
case 'load':
$arg1->extra_fields = array();
$values = db_fetch_array(db_query("select * from {uc_extra_fields_values} where order_id=%d", $arg1->order_id));
if ($values && count($values)) {
foreach ($values as $key => $value) {
if ($value && $key != 'order_id') {
$arg1->extra_fields[$key] = $value;
}
}
}
break;
}
}