我的购物车商品有 1 个属性,即"尺寸",我该如何编辑?
.......
["attributes"]=>
array(1) {
["size"]=>
string(1) "M"
}
.......
这是我用来编辑购物车项目的 ajax 函数:
add_action('wp_ajax_updateCartItem', 'updateCartItem');
add_action('wp_ajax_nopriv_updateCartItem', 'updateCartItem');
function updateCartItem() {
global $woocommerce;
$key = $_POST['cart_item_key'];
$pid = $_POST['product_id'];
$qty = $_POST['quantity'];
$sz = $_POST['variations_size'];
WC()->cart->set_quantity( $key, $qty );
$data = array("success"=>true,"data"=>array("cart_item_key"=>"$key","cart_item_subtotal"=>"<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$cs</span> $pc</span>","cart_total"=>"<span class="woocommerce-Price-amount amount"> ".$woocommerce->cart->get_total()."</span>","cart_shipping"=>"Free","quantity"=>"$qty"));
header('Content-Type: application/json charset=UTF-8');
echo json_encode($data);
die();
}
第一个数量$woocommerce->cart->cart_contents[$key]['quantity'] = $qty;
完全过时了......请改set_quantity()
这样使用 WC_Cart
方法:
WC()->cart->set_quantity( $cart_item_key, $qty );
<小时 />更改购物车中的产品属性
购物车中的可变产品和产品变体
可变产品不可编辑,因为只能将其中的产品变体添加到购物车...
编辑产品变体中设置的变体属性的唯一方法是在筛选器挂钩woocommerce_add_cart_item
使用以下挂钩函数。
目标产品属性键 slug 始终以 attribute_pa_
开头。
要替换的术语需要是一个 slug(而不是名称)。
在这里,对于产品属性"尺寸",我们将其更改为"XXL",例如:
add_filter( 'woocommerce_add_cart_item', 'filter_add_cart_item', 10, 2 );
function filter_add_cart_item( $cart_item_data, $cart_item_key ) {
if ( isset($cart_item_data['variation']['attribute_pa_size']) ) {
// Changing the term slug for product attribute "Size" from "m" to "XXL"
$cart_item_data['variation']['attribute_pa_size'] = 'xxl';
}
return $cart_item_data;
}
代码进入函数.php活动子主题(或活动主题)的文件。经过测试并工作。
对于其他产品,它要复杂得多,而且真的没有用。