Как использовать шорткоды?

Вопрос или проблема

Я создал этот шорткод в function.php моей дочерней темы:

function display_product_stock_with_text() {
    global $product; // Доступ к глобальному объекту продукта WooCommerce

    if ( ! is_product() ) {
        return ''; // Показать это только на страницах продуктов
    }

    // Получить статус наличия продукта
    $stock_quantity = $product->get_stock_quantity();
    $stock_status = $product->get_stock_status();

    // Настройте текст в зависимости от статуса наличия
    if ( $stock_status == 'instock' ) {
        return "<p>Осталось всего $stock_quantity товаров на складе! Торопитесь!</p>";
    } elseif ( $stock_status == 'outofstock' ) {
        return "<p>Извините, этот продукт в настоящее время отсутствует на складе.</p>";
    } else {
        return "<p>Статус наличия недоступен.</p>";
    }
}

// Зарегистрировать шорткод [product_stock_status]
add_shortcode( 'product_stock_status', 'display_product_stock_with_text' );

Мне нужно, чтобы вышеуказанная функция выполнялась для каждого продукта на странице моих продуктов с использованием Type Builder:
enter image description here

Я ввожу шорткод для функции, которую хочу выполнить (product_stock_status):
enter image description here

Когда я нажимаю сохранить, шорткод по какой-то причине не работает:
enter image description here

Может быть, я упускаю какой-то шаг?

Ответ или решение

Теория

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

Пример

Вы создали шорткод в файле functions.php дочерней темы, который выводит количество товаров на складе и их статус только на страницах продуктов. Код проверяет, является ли текущая страница страницей продукта и на этой основе выводит соответствующую информацию о наличии товара. Шорткод зарегистрирован с именем [product_stock_status], который можно использовать внутри контента вашей страницы для вызова функции.

Применение

Чтобы обеспечить корректную работу шорткода, проверьте выполнение следующих шагов:

  1. Проверьте использование глобальной переменной: Убедитесь, что глобальная переменная $product действительно содержит объект текущего продукта на странице. Необходимо, чтобы шорткод вызывался в контексте, где WooCommerce установил эту переменную.

  2. Проверьте условия использования: Шорткод настроен на работу только на страницах продуктов (is_product()). Если вы хотите, чтобы он также работал на странице каталога товаров, измените условие, чтобы оно охватывало нужный сценарий или используйте функцию на шаблонах архивных страниц.

  3. Использование плагинов конструктора страниц: Если вы используете конструкторы страниц или плагины, убедитесь, что они корректно обрабатывают шорткоды. Некоторые из них могут блокировать или изменять поведение шорткодов. Проверьте совместимость используемого плагина Type Builder с WooCommerce и шорткодами в целом.

  4. Диагностика ошибок и журналирование: Используйте средства диагностики, такие как журналирование PHP или плагин debug log, чтобы отследить возможные ошибки в выполнении шорткода.

  5. Кеширование: Проверьте, не влияет ли на выполнение шорткода система кеширования вашего сайта. Иногда кеширование может предотвратить отображение обновленных данных.

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

Оцените материал
Добавить комментарий

Капча загружается...