クラス
OrderEdit
ソース ソース
ファイル: src/Admin/OrderEdit.php
class OrderEdit
{
/**
* Registers hooks
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return void
*/
public static function init() {
add_action('usces_pre_update_orderdata', [get_class(), 'updateGroupItemOrderCartOptionData']);
}
/**
* Updates group item order cart option data, if necessary
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return void
*/
public static function updateGroupItemOrderCartOptionData() {
global $wpdb;
if (!isset($_POST['wcexicsGroupItemOption'])) {
return;
}
$cart_table = Schema::getComboSetGroupItemsOrderCartTable();
$cart_meta_table = Schema::getComboSetGroupItemsOrderCartMetaTable();
foreach ((array)$_POST['wcexicsGroupItemOption'] as $cartmeta_id => $value) {
$ordercart_metas = $wpdb->get_row(
$wpdb->prepare("SELECT * FROM {$cart_meta_table} WHERE cartmeta_id = %d", (int)$cartmeta_id),
ARRAY_A
);
if (empty($ordercart_metas)) {
continue;
}
$post_id = (int)$wpdb->get_var(
$wpdb->prepare("SELECT post_id FROM {$cart_table} WHERE cart_id = %d", (int)$ordercart_metas['cart_id'])
);
if (empty($post_id)) {
continue;
}
$option_fields = usces_get_opts($post_id, 'name');
$means = $option_fields[$ordercart_metas['meta_key']]['means'];
if (is_array($value)) {
$opval = [];
if (4 == $means) {
foreach ($value as $v) {
$opval[] = urldecode($v);
}
} else {
foreach ($value as $v) {
$opval[$v] = urldecode($v);
}
}
$value = serialize($opval);
} else {
if (3 == $means) {
$value = urldecode($value);
}
}
$wpdb->query($wpdb->prepare(
"UPDATE $cart_meta_table SET meta_value = %s WHERE cartmeta_id = %d",
$value,
$cartmeta_id
));
}
}
}
- init — Registers hooks
- updateGroupItemOrderCartOptionData — Updates group item order cart option data, if necessary