Рубрики
WooCommerce

Как сделать минимальную сумму заказа в корзине WooCommerce?


Часто владельцем магазинов под управлением WordPress + WooCommerce приходится сталкиваться с задачей ограничения возможности заказа определенной минимальной суммой. И если товары в корзине магазина не достигают этого порога, то заказ осуществить не получится — пользователь увидеть уведомление.

Ниже мы видим снипет. Наша функция wc_minimum_order_amount прикрепляется («вешается») на два хука: woocommerce_checkout_process и woocommerce_before_cart. Первый — это класс проверки процесса оформления заказа, который собирает данные пользователя и обрабатывает платеж. Второй хук — вызывается непосредственно в шаблоне отвечающим за страницу Корзины вашего сайта (yourtheme/woocommerce/cart/cart.php).

Ну а дальше все просто… Получаем с помощью метода WC()->cart->total общую сумму корзины после расчета и сравниваем с нашим заданным значением. Если это удовлетворяет нашему условию то выполняем код в блоке, который выведет нативное предупреждение от Woo текущей суммы в корзине и минимальной для совершения заказа.


/**
* Установка минимальной суммы для осуществления заказа
*/
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );
 
function wc_minimum_order_amount() {
    // Присвоим этой переменной минимальное значение для осуществления заказа
    $minimum = 5000;

    if ( WC()->cart->total < $minimum ) {

        if( is_cart() ) {

            wc_print_notice( 
                sprintf( 'Ваша текущая сумма заказа %s — Вы должны дополнить до минимума в %s чтобы оформить заказ. ' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        } else {

            wc_add_notice( 
                sprintf( 'Ваша текущая сумма заказа %s — Вы должны дополнить до минимума в %s чтобы оформить заказ. ' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        }
    }
}

Вот и все! Выглядеть это будет примерно так:

Автор: Администратор

Почитатель CMS WordPress