Minimum Order Amount WooCommerce


What does this code do in general?

  1. Displays information about the minimum order amount on each product page.
  2. Checks if there are enough funds in the cart on the cart and checkout pages.
  3. If the minimum amount is not met, it disables the checkout button and suggests continuing shopping.
////----------------------
////----------------------ДОБАВЛЯЮ ТЕКСТ В КАРТОЧКЕ ТОВАРА------------------------------
////----------------------

add_action( 'woocommerce_single_product_summary', 'action_function_name_2498' );
function action_function_name_2498(){
    // Виводимо текст про мінімальну суму замовлення на сторінці товару
    echo "<p style='font-weight: bold;'>Мінімальна сума замовлення на сайті <span style='color:red;'>300 грн.</span></p>";
}

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {
    $minimum = 300; // Мінімальна ціна замовлення
    // Перевіряємо, чи сума в кошику менша за мінімальну
    if ( WC()->cart->subtotal < $minimum ) {

        if( is_cart() ) {
            // Отримуємо мінімальну і поточну суму замовлення (без доставки)
            $s1 = wc_price( $minimum );
            $s2 = wc_price( WC()->cart->subtotal); 
            // Виводимо повідомлення про мінімальну суму на сторінці кошика
            $message = "Мінімальна сума замовлення на сайті $s1";
            wc_print_notice( $message, 'error' );
        } else {
            // Отримуємо мінімальну і поточну суму замовлення (без доставки)
            $s1 = wc_price( $minimum );
            $s2 = wc_price( WC()->cart->subtotal); 
            // Виводимо повідомлення про мінімальну суму на сторінці оформлення
            $message = "Мінімальна сума замовлення на сайті $s1";
            wc_add_notice( $message, 'error' );
        }
    }
}

//-------------------------------------------
// Як вимкнути кнопку «Оформити замовлення», якщо мінімальна сума не досягнута
//-----------------------------------------
function disable_checkout_button() {
    // Встановлюємо мінімальну суму замовлення
    $minimum = 300;
    // Отримуємо загальну суму товарів у кошику
    $total = WC()->cart->cart_contents_total;
    // Якщо сума менша за мінімум, вимикаємо кнопку оформлення замовлення
    if( $total < $minimum ){
        // Видаляємо стандартну кнопку "Оформити замовлення"
        remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
        // Додаємо кнопку для продовження покупок та повідомлення про мінімальну суму
        echo '<a href=" /shop/" style="display: inline-block;" class="checkout-button button alt wc-forward ">Продовжити покупку</a> <a style="pointer-events: none !important; background: #dfe1f0; border-color: #dfe1f0; color: rgba(51,51,51,.5); cursor: no-drop; display: inline-block;" href="#" class="checkout-button button alt wc-forward">Перейти до оформлення</a><p style="font-weight: bold;">Мінімальна сума замовлення на сайті <span style="color:red;">'.$minimum.'</span> грн. </p>';
    }
}

// Додаємо функцію до хуку на оформлення замовлення
add_action( 'woocommerce_proceed_to_checkout', 'disable_checkout_button', 1 );