Отображать сообщение на основе количества товаров в корзине WooCommerce - PullRequest
1 голос
/ 29 апреля 2019

Я хотел бы отобразить сообщение либо в woocommerce_before_cart, либо в woocommerce_before_cart_table, если общее количество товаров в корзине меньше X, а также отобразить разницу.Под элементами я подразумеваю отдельные количества, а не продуктовые линейки.

Как добавить функцию, которая суммирует количества всех товаров в корзине и отображает сообщение, если сумма меньше указанного количества?

Пример. Установите число 30,В корзине всего 27 товаров, поэтому в сообщении будет указано: «Если вы закажете еще 3 товара, вы можете получить ...» и т. д. Но если в корзине уже 30 или более товаров, сообщение отображать не нужно.

1 Ответ

1 голос
/ 30 апреля 2019

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

// On cart page only
add_action( 'woocommerce_check_cart_items', 'custom_total_item_quantity_message' );
function custom_total_item_quantity_message() {
    $items_count = WC()->cart->get_cart_contents_count();
    $min_count   = 30;

    if( is_cart() && $items_count < $min_count ){
        wc_print_notice( sprintf( __("If you order %s more items you can get…", "woocommerce"), $min_count - $items_count ), 'notice' );
    }
}

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


При использовании woocommerce_before_cart или woocommerce_before_cart_table оставшееся количество не будет обновляться при изменении количества или удалении товаров ... Попробуйте:

add_action( 'woocommerce_before_cart', 'custom_total_item_quantity_message' );
function custom_total_item_quantity_message() {
    $items_count = WC()->cart->get_cart_contents_count();
    $min_count   = 30;

    if( is_cart() && $items_count < $min_count ){
        echo '<div class="woocommerce-info">';
        printf( __("If you order %s more items you can get…", "woocommerce"), $min_count - $items_count );
        echo '</div>';
    }
}

или

add_action( 'woocommerce_before_cart_table', 'custom_total_item_quantity_message' );
function custom_total_item_quantity_message() {
    $items_count = WC()->cart->get_cart_contents_count();
    $min_count   = 30;

    if( is_cart() && $items_count < $min_count ){
        echo '<div class="woocommerce-info">';
        printf( __("If you order %s more items you can get…", "woocommerce"), $min_count - $items_count );
        echo '</div>';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...