Шорткод дополнительной информации о продукте WooCommerce

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

В идеале я хотел бы использовать шорткод, взяв идентификатор продукта и отображающий все его атрибуты продукта на моей странице публикации. что-то вроде [product_page id="99" display_only_attributes ]


person Rémi    schedule 08.05.2018    source источник
comment
Я просто хочу, чтобы они отображались на моей странице публикации (блоге), как обычно, на странице продукта. Но только раздел дополнительной информации (атрибуты). Без HTML, только с серверной частью WordPress. Цель состоит в том, чтобы команда по контенту моей компании могла использовать любой продукт, введенный в woocommerce, и отображать его атрибуты в середине страницы сообщения. Это простой продукт, который также может отображать вариации.   -  person Rémi    schedule 08.05.2018
comment
Итак, вы хотите отображать все атрибуты на странице со списком продуктов, с точки зрения продукта.   -  person PPL    schedule 08.05.2018
comment
Не на странице продукта, а на странице публикации. В настоящее время мы создаем сайт с обзорами автомобилей. Каждая машина будет введена в woocommerce со всеми специфическими атрибутами, связанными с каждой машиной. Обзоры написаны как обычные сообщения в блоге. Когда команда по контенту пишет обзор об автомобиле, я хотел бы, чтобы они могли использовать короткий код, относящийся к идентификатору автомобиля, введенному в woocommerce, который будет перечислять все его атрибуты в статье.   -  person Rémi    schedule 08.05.2018
comment
работает отлично! Merci beaucoup :)   -  person Rémi    schedule 08.05.2018


Ответы (1)


Вот способ получить атрибуты продукта в пользовательском шорткоде, где вы определите идентификатор продукта как аргумент шорткода id.

Код функции:

if ( ! function_exists( 'display_product_additional_information' ) ) {

    function display_product_additional_information($atts) {

        // Shortcode attribute (or argument)
        $atts = shortcode_atts( array(
            'id'    => ''
        ), $atts, 'product_additional_information' );

        // If the "id" argument is not defined, we try to get the post Id
        if ( ! ( ! empty($atts['id']) && $atts['id'] > 0 ) ) {
           $atts['id'] = get_the_id();
        }

        // We check that the "id" argument is a product id
        if ( get_post_type($atts['id']) === 'product' ) {
            $product = wc_get_product($atts['id']);
        }
        // If not we exit
        else {
            return;
        }

        ob_start(); // Start buffering

        do_action( 'woocommerce_product_additional_information', $product );

        return ob_get_clean(); // Return the buffered outpout
    }

    add_shortcode('product_additional_information', 'display_product_additional_information');

}

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

ИСПОЛЬЗОВАНИЕ SHORTCODE (обновлено)

  1. с определенным идентификатором продукта:

    [product_additional_information id='37']
    

    Или в php:

    echo do_shortcode("[product_additional_information id='37']");
    
  2. На существующей странице продукта (например, при удалении вкладки продукта "дополнительная информация"):

    [product_additional_information]
    

    Или в php:

    echo do_shortcode("[product_additional_information]");
    

У вас получится что-то вроде этого:

введите описание изображения здесь

person LoicTheAztec    schedule 08.05.2018