更新woocommerce购物车中的数量

时间:2018-09-27 17:11:36

标签: wordpress woocommerce

我有一个woocommerce,我将其修改为在将产品从商店添加到购物车时包括产品数量。一切正常。

现在,我需要对woocommerce进行修改,以在用户单击购物车中已有产品的“添加到购物车”按钮时替换产品数量(而不是添加产品)

我的第一个尝试是创建woocommerce_add_to_cart操作,以检查产品是否在购物车中,并在添加产品之前将其删除:

function replace_product_in_cart( $product_key, $quantity ) { 
    global $woocommerce;
    $f = FALSE;
    if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
        foreach ( WC()->cart->get_cart() as $cart_item ) {
            if( $cart_item['key'] == $product_key ) { $f = TRUE; }      
        }
    }
    if ( $f ) {
        WC()->cart->remove_cart_item($product_key); // this is working fine
    }
    WC()->cart->add_to_cart($product_key, $quantity); // this is not working
}

直到删除它为止,此方法都可以正常工作。但是以后不会添加。 (也许add_to_cart调用正在引起我的函数循环吗?)

我也尝试使用set_quantity,但这既不更新数量,也不向购物车中添加新产品:

function replace_product_in_cart( $product_key, $product_id, $quantity ) { 
    global $woocommerce;
    if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
        foreach ( WC()->cart->get_cart() as $cart_item ) {
            if( $cart_item['key'] == $product_key ) { 
                WC()->cart->set_quantity($product_key, $quantity, TRUE);
            }       
        }
    }
}

有什么想法吗?谢谢!

0 个答案:

没有答案