関数
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 ) ); } }