【发布时间】:2021-07-30 17:14:13
【问题描述】:
您好,如果产品很简单,我需要创建一个数组,即产品 sku。如果产品是变体、变体 sku 和父产品 sku。它似乎没有清除“is_type('variable')检查,只是为 itemID 和 itemGroupID 输入产品 id sku。请参阅我的代码:
if (!class_exists('WooCommerce')) return;
$cartRecordsJM = [];
foreach ( WC()->cart->get_cart() as $cart_item ) {
// get the data of the cart item
$product = $cart_item['data'];
// Only for variable products when cart is not empty
if( $product->is_type('variable') && ! WC()->cart->is_empty() )
{
$variation_id = WC_Product($cart_item['variation_id']);
$product_id = $variation_id->get_sku();
$parent = WC_Product($product['product_id']);
$parent_id = $parent->get_sku();
} elseif (! WC()->cart->is_empty() ) {
$simple_id = new WC_Product($cart_item['product_id']);
$product_id = $simple_id->get_sku();
$parent_id = '';
} else {
return;
}
$cartRecordsJM[] = [
'itemID'=> $product_id,
'itemGroupID'=> $parent_id
];
}
?>
然后我在 javascript 中传递数组
var jArray = <?php echo json_encode($cartRecordsJM); ?>;
var cartRecords = [];
var length = jArray.length;
// Repeat this block for each item the customer has in their cart
for (let i = 0; i < length; i++) {
cartRecords.push({'itemId': jArray[i]['itemID'] ,'itemGroupId': jArray[i]['itemID']});
}
var page_meta = {
'pageType': "cart",
'cartRecords': cartRecords
};
我要做的是在购物车中创建一个包含所有项目的数组,如下所示:
cartRecords: Array(5)
0: {itemId: "simple/variation sku", itemGroupId: "parent product sku if variation"}
1: {itemId: "simple/variation sku", itemGroupId: "parent product sku if variation"}
2: {itemId: "simple/variation sku", itemGroupId: "parent product sku if variation"}
3: {itemId: "simple/variation sku", itemGroupId: "parent product sku if variation"}
4: {itemId: "simple/variation sku", itemGroupId: "parent product sku if variation"}
5: {itemId: "simple/variation sku", itemGroupId: "parent product sku if variation"}
【问题讨论】:
标签: php wordpress woocommerce