Отображение произвольного количества запаса условно с помощью шорткода в Woocommerce

Я использую замечательный код ответа WooCommerce: отображение количества запасов для данного идентификатора продукта на обычных страницах или сообщениях, который работает для отображения количества продукта для продукта WooCommerce на любой странице или в публикации с помощью шорткода.

Я хотел бы отображать только точное количество до 5 товаров на складе и иметь «Более 5» для любого количества от 6 или более.

Можно ли это сделать, изменив этот код?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
1 109
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете попробовать добавить в эту строку

if ( $stock_quantity > 0 ) return $stock_quantity;

пытаться:

$overQty = "More than 5";

if ( $stock_quantity > 5 ){ return $overQty } else { return $stock_quantity };

он должен работать

Я не отрицал ваш ответ, но он не работает. У меня пустой экран, должно быть, что-то не так с кодом.

Alex 19.12.2018 18:28

Простое возвращение переменной String не покажет конечному пользователю никаких выходных данных на веб-странице.

Isaac 19.12.2018 18:28

вы можете попробовать повторить это, а затем вместо возврата

Cory Spinney 19.12.2018 18:41

@CorySpinney Только для информации: в функции шорткода, данные никогда не отображаются эхом, но всегда возвращаются, как и в хуках фильтров.

LoicTheAztec 19.12.2018 18:44
Ответ принят как подходящий

Следующее должно помочь:

if ( !function_exists('show_specific_product_quantity') ) {

    function show_specific_product_quantity( $atts ) {

        // Shortcode Attributes
        $atts = shortcode_atts(
            array(
                'id' => '', // Product ID argument
            ),
            $atts,
            'product_qty'
        );

        if ( empty($atts['id'])) return;

        $stock_quantity = 0;

        $product_obj = wc_get_product( intval( $atts['id'] ) );
        $stock_quantity = $product_obj->get_stock_quantity();

        if ( $stock_quantity > 0 && $stock_quantity <= 5 ) 
            return $stock_quantity;
        elseif ( $stock_quantity > 5 ) 
            return __("More than 5", "woocommerce");

    }
    add_shortcode( 'product_qty', 'show_specific_product_quantity' );
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы). Он должен работать.


Дополнение - Отображение номера нулевого запаса также:

Просто измените следующую строку кода:

if ( $stock_quantity > 0 && $stock_quantity <= 5 ) 

к:

if ( $stock_quantity >= 0 && $stock_quantity <= 5 )

Теперь будет отображаться и нулевой запас ...


Оригинальный ответ: WooCommerce: отображение количества запасов для данного идентификатора продукта на обычных страницах или сообщениях

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