Установите минимальную стоимость заказа, кроме тегов продуктов в WooCommerce.

В настоящее время у меня есть сайт WordPress с минимальной стоимостью заказа, установленной для моего магазина WooCommerce, настроенной в моем файле functions.php, и он отлично работает. Теперь я хочу установить один тег продукта в качестве исключения из этого правила и не устанавливать для него минимальную стоимость заказа... возможно ли это?

На самом деле я использую Установите минимальную сумму заказа в коде ответа WooCommerce.

Не уверены, является ли ответом переход на плагин, такой как «минимальная сумма заказа wc», или его можно добавить в существующий код?

Любые советы очень ценятся!

Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout.
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout.
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
2
0
319
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы сделать этот код неактивным для определенных тегов продуктов, используйте следующее:

add_action( 'woocommerce_check_cart_items', 'required_min_cart_subtotal_amount' );
function required_min_cart_subtotal_amount() {

    $minimum_amount = 35; // HERE Set minimum cart total amount
    $product_tags   = array('Lewis'); // HERE set the product tags (term names, slugs or Ids)
    $cart_subtotal  = WC()->cart->subtotal; // Total (before taxes and shipping charges)
    $tag_found      = false;
    
    // Loop through cart items
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        // Check for product tag
        if ( has_term( $product_tags, 'product_tag', $cart_item['product_id'] ) ) {
            $tag_found = true;
            break;
        }
    }

    // Add an error notice is cart total is less than the minimum required
    if ( $cart_subtotal < $minimum_amount && ! $tag_found ) {
        // Display an error message
        wc_add_notice( '<strong>' . sprintf( __("A minimum total purchase amount of %s is required to checkout."), wc_price($minimum_amount) ) . '<strong>', 'error' );
    }
}

Или, если вы хотите исключить определенные теги продуктов из промежуточного итога корзины, используйте вместо этого:

add_action( 'woocommerce_check_cart_items', 'required_min_cart_subtotal_amount' );
function required_min_cart_subtotal_amount() {

    $minimum_amount = 35; // HERE Set minimum cart total amount
    $product_tags   = array('Disc'); // HERE set the product tags (term names, slugs or Ids)
    $cart_subtotal  = 0; // Total (before taxes and shipping charges)

    // Loop through cart items
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        // Check for product tag
        if ( ! has_term( $product_tags, 'product_tag', $cart_item['product_id'] ) ) {
            $cart_subtotal += $cart_item['line_subtotal'] + $cart_item['line_subtotal_tax'];
        }
    }

    // Add an error notice is cart total is less than the minimum required
    if ( $cart_subtotal < $minimum_amount ) {
        // Display an error message
        wc_add_notice( '<strong>' . sprintf( __("A minimum total purchase amount of %s is required to checkout."), wc_price($minimum_amount) ) . '<strong>', 'error' );
    }
}

Код находится в файле functions.php активной дочерней темы (или активной темы). Проверено и работает.

Другие вопросы по теме