我具有通过邮寄添加多个产品的功能:
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产品被覆盖,但其余产品运行正常。
有人知道会发生什么吗?