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

С помощью следующего кода я получаю пользовательский атрибут продукта из WooCommerce.

Соответствует ли этот код или его можно решить лучше?

Правильно ли используется глобальная функция внутри функции?

Как я могу расширить код, чтобы, если указанный атрибут продукта отсутствует, отображалось сообщение «Нет информации об этом продукте»?

Функции.php

function single_atr() {
    global $product;
    $custom_attribute = $product->get_attribute( 'Color' );
    echo $custom_attribute;
}
add_shortcode( 'single_atr', 'short_ single_atr');

Шорткод в Elementor:

[short_ single_atr]
Стоит ли изучать 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
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

В вашем текущем коде есть некоторые ошибки.

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

function single_atr_shortcode( $atts ) {
    extract( shortcode_atts( array(
        'attribute' => '',
    ), $atts, 'single_atr' ) );

    global $product;

    if ( ! is_a($product, 'WC_Product') || ! $attribute ) {
        return;
    }

    if ( $custom_attribute = $product->get_attribute( $attribute ) ) {
        // Display product attribute
        return $custom_attribute;
    } else {
        // No attribute: Display a message
        return __("No Information on this Product", "woocommerce");
    }
}
add_shortcode( 'single_atr', 'single_atr_shortcode');

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

Шорткод (Использование):

[single_atr attribute = "Color"]

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