Woocommerce не отображает всплывающее окно, если в корзине 4 товара - PullRequest
0 голосов
/ 08 января 2019

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

  • Если в корзине менее 8 товаров, всплывающее окно с elementor shortcode.
  • Если 8 или более элементов, отобразите всплывающее окно с wof_wheel.

Как заставить его вообще не отображать всплывающее окно, если количество товаров в корзине == 4?

Я подумал, добавив if else и ничего не возвращая, это сработало бы. Но всплывающее окно все еще срабатывает.

Мой код:

    //Shortcode Check 
function checkShortCode()
{
    $page = get_post(5);
    if (WC()->cart) {
        $items_count = WC()->cart->get_cart_contents_count();


        if  ( $items_count < 8 ) {
            //Remove the Default Hook function for this shortcode
            remove_shortcode('wof_wheel');
            //Add custom callback for that short to display message required
            add_shortcode('wof_wheel', 'myCustomCallBack');
        }else if ($items_count == 4) {
        return; //Here I am trying to return nothing...
        }
    }
}
add_action('wp_loaded', 'checkShortCode');

function myCustomCallBack()
{
    echo do_shortcode('[elementor-template id="3431"]');
}

1 Ответ

0 голосов
/ 08 января 2019

Ваш оператор if / else не работает, потому что if ($items_count < 8) возвращает true для if ($items_count == 4). Вы должны проверить if ($items_count == 4) перед проверкой if ($items_count < 8).

Надеюсь, это поможет:

//Shortcode Check 
function checkShortCode()
{
    $page = get_post(5);
    if (WC()->cart) {
        $items_count = WC()->cart->get_cart_contents_count();
        if ($items_count == 4) {
            return;
        } 
        if  ($items_count < 8) {
            //Remove the Default Hook function for this shortcode
            remove_shortcode('wof_wheel');
            //Add custom callback for that short to display message required
            add_shortcode('wof_wheel', 'myCustomCallBack');
        }
    }
}
add_action('wp_loaded', 'checkShortCode');

function myCustomCallBack()
{
    echo do_shortcode('[elementor-template id="3431"]');
}

И вам на самом деле не нужен else if, потому что return остановит выполнение остальной части функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...