Вот нашёл код на просторах интернета, но почему то добавление в корзину работает только если в корзине пусто, если есть хоть 1 товар уже не работает. В коде вроде причин нет. Почему так может быть?
И ещё почему то первый товар добавляет в количестве 1 шт, а все последующие в количестве 2 шт.
function woocommerce_add_multiple_products_to_cart() {
if ( empty( $_REQUEST['add-to-cart-manual'] ) ) {
return;
}
global $woocommerce;
//'add-to-cart' should be in this format - product_id1|variation_id1|variation_attribute1|variation_value1,product_id2|variation_id2|variation_attribute2|variation_value2 ...
$product_var_ids = explode( ',', $_REQUEST['add-to-cart-manual'] ); //product with variation ids that needs to be added
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];
$pdt_in_cart = false;
foreach ( $woocommerce->cart->cart_contents as $key => $values ) {
if( in_array( $values['variation_id'], $variation_id ) ) {
$pdt_in_cart = true;
}
}
if ( !$pdt_in_cart ) {
$quantity = 1;
$variation = array( $variation_attribute => $variation_attribute_value );
$woocommerce->cart->add_to_cart( $product_id, $quantity, $variation_id, $variation );
}
}
}
add_action( 'init', 'woocommerce_add_multiple_products_to_cart', 15 );