Почему не добавляет в корзину если товар уже есть?

Вот нашёл код на просторах интернета, но почему то добавление в корзину работает только если в корзине пусто, если есть хоть 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 );
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Почему так может быть?


криворукость
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы