wordpress 编辑Woocommerce产品变体的购物车项目属性值

dfty9e19  于 2022-11-22  发布在  WordPress
关注(0)|答案(1)|浏览(186)

我的购物车项目有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>&nbsp;$pc</span>","cart_total"=>"<span class=\"woocommerce-Price-amount amount\">&nbsp;".$woocommerce->cart->get_total()."</span>","cart_shipping"=>"Free","quantity"=>"$qty"));

    header('Content-Type: application/json charset=UTF-8');
    echo json_encode($data);
    die();
}
js5cn81o

js5cn81o1#

数量第一个$woocommerce->cart->cart_contents[$key]['quantity'] = $qty;完全过时...请改用WC_Cart方法set_quantity(),方法如下:

WC()->cart->set_quantity( $cart_item_key, $qty );

更改购物车中的产品属性

购物车中的可变产品和产品变体

可变产品不可编辑,因为只能将其产品变体添加到购物车...
编辑产品变体中设置的变体属性的唯一方法是在woocommerce_add_cart_item过滤器挂钩中使用以下挂钩函数。
目标的产品属性关键字始终以attribute_pa_开头。
要替换的术语必须是slug(而不是名称)。
例如,在这里,我们将产品属性“Size”更改为“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;
}

代码在你的活动子主题(或活动主题)的function.php文件中。
对于其他产品来说,它是一个复杂得多的东西,它真的没有什么用处。

相关问题