Woocomerce Force, чтобы купить только 5 12 24 36 блюд при оформлении заказа на странице корзины - PullRequest
0 голосов
/ 15 февраля 2020

Я попробовал несколько plugins, но ничего не помогло

Мой ecommerce с woocommerce продает 12 готовых блюд. Клиент также может приобрести только 1 блюдо для каждого типа. Но она должна обязательно достигать точной суммы:

5 или 12 или 24 или 36 продуктов.

Почему?

Готовые блюда отправляются в изотермических коробках, которые содержат точные количество готовых блюд.

Существует 4 вида изотермических коробок, которые содержат:

5 блюд

12 блюд

24 приема пищи

36 блюд

Поэтому я вынужден покупать только 5 12 24 36 блюд при оформлении заказа на странице корзины.

Этот показатель также можно получить, добавив, например, 2 блюда A + 3-разовое питание B

Важно то, что если, например, они пытаются купить 6 продуктов 3A + 3B, кнопка оформления заказа исчезает, и появляется сигнал тревоги:

Вы можете только купить 5,12,24,36 еды.

Может ли кто-нибудь мне помочь?

Большое спасибо

1 Ответ

1 голос
/ 15 февраля 2020
function checkout_validate() {
    // Only run in the Cart or Checkout pages
    if( is_cart() || is_checkout() ) {
        // Get number of items in the cart.
        $items_in_cart = WC()->cart->get_cart_contents_count();

        // Allowed amounts
        $allowed_amounts = array(5, 12, 24, 36);

        // If items in cart NOT equal to allowed amounts, show error message
        if ( !in_array( $items_in_cart, $allowed_amounts)) {
            wc_add_notice( __( 'Remember that you can only buy 5, 12, 24 or 36 meals. You have ' . $items_in_cart . ' maeals in your cart.', 'woocommerce' ), 'error' );
            remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
        }
    }
}   
add_action( 'woocommerce_check_cart_items' , 'checkout_validate' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...