Woocommerce添加到购物车(通过代码)无法正常工作

时间:2019-01-09 17:30:49

标签: php wordpress woocommerce

我具有通过邮寄添加多个产品的功能:

global $woocommerce;

if ( empty( $_REQUEST['add-to-cart-manual'] ) ) {
    return;
}

$product_var_ids = explode( ',', $_REQUEST['add-to-cart-manual'] );

foreach ( $product_var_ids as $product_var_id ) {
    $pdt_var_temp = explode( '|', $product_var_id );
    $product_id = $pdt_var_temp[0];
    $variation_id = $pdt_var_temp[1];
    $variation_attribute = $pdt_var_temp[2];
    $variation_attribute_value = $pdt_var_temp[3];

    $quantity= 1;

    $woocommerce->cart->add_to_cart( $product_id, $quantity, $variation_id, array( $variation_attribute  => $variation_attribute_value ), null );
} 

此函数位于init挂钩中,并使用以下格式:

product_id1 | variation_id1 | variation_attribute1 | variation_value1,product_id2 | variation_id2 | variation_attribute2 | variation_value2

问题是添加的第一个产品。 Ir覆盖了购物车中的数量。例如,如果购物车中有2个产品900由我执行,

?add-to-cart-manual=900|808|Talla|04,900|808|Talla|04,900|808|Talla|04

然后将产品900更改为3项,而不是5(2 + 3)

但是,如果我添加更多产品,其余的都可以正常工作。例如,如果购物车中有2x900和3x901,我执行

?add-to-cart-manual=900|808|Talla|04,900|808|Talla|04,901|808|Talla|06,901|808|Talla|06

然后乘积900更改为2(覆盖),乘积901更改为5(3 + 2正确)

我做了很多测试,而且总是一样。 firs产品被覆盖,但其余产品运行正常。

有人知道会发生什么吗?

0 个答案:

没有答案