関数
Checkout::registerOrderCartDataForGroupItem( int $combo_set_cart_id, int $order_id, array $value, int $row_index )
パラメータ パラメータ
- $combo_set_cart_id
(数値) (必須)
- $order_id
(数値) (必須)
- $value
(配列) (必須) This is the group item cart
- $row_index
(数値) (必須)
ファイル: src/API/Checkout.php
public static function registerOrderCartDataForGroupItem($combo_set_cart_id, $order_id, $value, $row_index) {
global $wpdb, $usces;
$cart_table = Schema::getComboSetGroupItemsOrderCartTable();
$cart_meta_table = Schema::getComboSetGroupItemsOrderCartMetaTable();
$post_id = (int)$value['post_id'];
$product = wel_get_product($post_id, false);
$item_code = $product['itemCode'];
$item_name = $product['itemName'];
$skus = $usces->get_skus($value['post_id'], 'code', false);
$sku_encoded = $value['sku'];
$skucode = urldecode($value['sku']);
$sku = $skus[$skucode];
$tax = 0;
$query = $wpdb->prepare(
"INSERT INTO $cart_table
(
combo_set_cart_id, order_id, row_index, post_id, item_code, item_name,
sku_code, sku_name, cprice, price, quantity,
unit, tax, destination_id, cart_serial
) VALUES (
%d, %d, %d, %d, %s, %s,
%s, %s, %f, %f, %f,
%s, %d, %d, %s
)",
$combo_set_cart_id,
$order_id,
$row_index,
$post_id,
$item_code,
$item_name,
$skucode,
$sku['name'],
$sku['cprice'],
$value['price'],
$value['quantity'],
$sku['unit'],
$tax,
null,
$value['serial']
);
$wpdb->query($query);
$cart_id = $wpdb->insert_id;
$opt_fields = wel_get_opts($post_id, 'sort', false);
if ($value['options']) {
foreach ((array)$opt_fields as $okey => $val) {
$enc_key = urlencode($val['name']);
$means = $opt_fields[$okey]['means'];
if (3 === (int)$means) {
if ('' == $value['options'][$enc_key]) {
$ovalue = $value['options'][$enc_key];
} else {
$ovalue = urldecode($value['options'][$enc_key]);
}
} elseif (4 === (int)$means) {
if (is_array($value['options'][$enc_key])) {
$temp = [];
foreach ($value['options'][$enc_key] as $v) {
$temp[] = urldecode($v);
}
$ovalue = serialize($temp);
} elseif ('' == $value['options'][$enc_key]) {
$ovalue = $value['options'][$enc_key];
} else {
$ovalue = urldecode($value['options'][$enc_key]);
}
} else {
if (is_array($value['options'][$enc_key])) {
$temp = [];
foreach ($value['options'][$enc_key] as $k => $v) {
$temp[$k] = urldecode($v);
}
$ovalue = serialize($temp);
} else {
$ovalue = urldecode($value['options'][$enc_key]);
}
}
$wpdb->query(
$wpdb->prepare(
"INSERT INTO {$cart_meta_table}
( cart_id, meta_type, meta_key, meta_value ) VALUES (%d, %s, %s, %s)",
$cart_id,
'option',
$val['name'],
$ovalue
)
);
}
}
if ($value['advance']) {
foreach ((array)$value['advance'] as $akey => $avalue) {
$advance = $usces->cart->wc_unserialize($avalue);
if (is_array($advance)) {
if (isset($advance[$post_id][$sku_encoded]) && is_array($advance[$post_id][$sku_encoded])) {
$akeys = array_keys($advance[$post_id][$sku_encoded]);
foreach ((array)$akeys as $akey) {
if (is_array($advance[$post_id][$sku_encoded][$akey])) {
$avalue = serialize($advance[$post_id][$sku_encoded][$akey]);
} else {
$avalue = $advance[$post_id][$sku_encoded][$akey];
}
$wpdb->query(
$wpdb->prepare(
"INSERT INTO {$cart_meta_table}
( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, 'advance', %s, %s )",
$cart_id,
$akey,
$avalue
)
);
}
} else {
$akeys = array_keys($advance);
$akey = empty($akeys[0]) ? 'advance' : $akeys[0];
$avalue = serialize($advance);
$wpdb->query(
$wpdb->prepare(
"INSERT INTO {$cart_meta_table}
( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, 'advance', %s, %s )",
$cart_id,
$akey,
$avalue
)
);
}
} else {
$avalue = urldecode($avalue);
$wpdb->query(
$wpdb->prepare(
"INSERT INTO {$cart_meta_table}
( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, 'advance', %s, %s )",
$cart_id,
$akey,
$avalue
)
);
}
}
}
if ($usces->is_reduced_taxrate()) {
if (isset($sku['taxrate']) && 'reduced' == $sku['taxrate']) {
$tkey = 'reduced';
$tvalue = $usces->options['tax_rate_reduced'];
} else {
$tkey = 'standard';
$tvalue = $usces->options['tax_rate'];
}
$wpdb->query(
$wpdb->prepare(
"INSERT INTO {$cart_meta_table}
( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, 'taxrate', %s, %s )",
$cart_id,
$tkey,
$tvalue
)
);
}
}