Woocommerce将产品添加到购物车多次,但作为不同的项目

Gle*_*len 4 wordpress cart woocommerce

我有一些自定义代码,可以将项目添加到购物车,这是一个可变产品.如果我添加两次相同的产品,它只会增加数量.我希望它再次添加产品作为购物车中的不同项目.

我该怎么做呢?该项目正在使用domain.com?add-to-cart=3434&variation_id=4434等链接添加到购物车.

我开发的系统是产品设计师.所以我可能想要选择相同的产品,但是以不同的方式设计它,然后将相同的变化添加到购物车.

是否还有一种方法可以在网址中发送唯一标识符来拆分这些项目?

我想通过使用add_to_cart来做到这一点,但每次我使用变体属性,运输最终都有一个错误,它基本上似乎无法找到运输方法:

$woocommerce->cart->add_to_cart(522,1, 523,array("attribute_colour" => "colour","attribute_size" => "a3", "attribute_invoice-numbering" => "yes", "attribute_quantity-column" => "yes", "attribute_cc-type" => "duplicate"));
Run Code Online (Sandbox Code Playgroud)

当该代码将项目添加到购物车时,会导致以下情况:

警告:在第291行的/home/****/public_html/wp-content/plugins/woocommerce/includes/class-wc-shipping.php中为foreach()提供的参数无效

似乎没有任何可用的运输方法.请仔细检查您的地址,或者如果您需要任何帮助,请与我们联系.

它没有任何意义,因为woocommerce中的标准添加到购物车代码使用add_to_cart并且没有这些问题.如果我使用URL,它也可以正常工作!

小智 6

试试这个 !

/*
 * @desc Force individual cart item
 */
function force_individual_cart_items( $cart_item_data, $product_id ){

  $unique_cart_item_key = md5( microtime().rand() );
  $cart_item_data['unique_key'] = $unique_cart_item_key;

  return $cart_item_data;

}

add_filter( 'woocommerce_add_cart_item_data','force_individual_cart_items', 10, 2 );


/*
 * @desc Remove quantity selector in all product type
 */
function remove_all_quantity_fields( $return, $product ) {

    return true;

}

add_filter( 'woocommerce_is_sold_individually', 'remove_all_quantity_fields', 10, 2 );
Run Code Online (Sandbox Code Playgroud)