Ограничить покупку выбранных продуктов - PullRequest
0 голосов
/ 24 октября 2019

Я хочу ограничить покупку определенных товаров. Покупатель может купить только 1 товар за один раз.
Я использовал следующий код, но нашел в блоге nicola, но проблема в том, что если в корзине уже есть какой-то другой продукт, и я добавляю продукт, упомянутый в коде, то кодработает. Если идентификатор продукта, указанный в коде, уже находится в корзине, и если я добавляю другие продукты, этот код завершается ошибкой.

add_filter( 'woocommerce_add_to_cart_validation', 'wc_limit_one_per_order', 10, 2 );
function wc_limit_one_per_order( $passed_validation, $product_id ) {
    if ( in_array( $product_id, array( 31, 32, 33 ) ) ) {
        return $passed_validation;
    }

    if ( WC()->cart->get_cart_contents_count() >= 1 ) {
        wc_add_notice( __( 'This product cannot be purchased with other products. Please, empty your cart first and then add it again.', 'woocommerce' ), 'error' );
        return false;
    }

    return $passed_validation;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...