Есть ли шорткод для описания товара в Woocommerce? - PullRequest
0 голосов
/ 13 ноября 2018

Есть ли шорткод для вызова описания продукта (текстовое поле под заголовком)?

Пока я использую другое настраиваемое поле для этой работы, но будет лучше, если я использую поле woocomerce.

Ответы [ 2 ]

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

Я написал очень похожее решение для ответа @ LoicTheAztec выше, но немного более осторожно (поскольку его решение нарушало редактирование Elementor для меня из-за отсутствия контекста продукта, когда он выполняет шорткод при сохранении).

Это также решает проблему с абзацем / новой строкой, поскольку содержимое форматируется (в основном заменяя символы новой строки тегами <p>) перед возвратом.

function custom_product_description($atts){
    global $product;

    try {
        if( is_a($product, 'WC_Product') ) {
            return wc_format_content( $product->get_description("shortcode") );
        }

        return "Product description shortcode run outside of product context";
    } catch (Exception $e) {
        return "Product description shortcode encountered an exception";
    }
}
add_shortcode( 'custom_product_description', 'custom_product_description' );
0 голосов
/ 14 ноября 2018

Вы можете создать свой собственный короткий код следующим образом:

add_shortcode( 'product_description', 'display_product_description' );
function display_product_description( $atts ){
    $atts = shortcode_atts( array(
        'id' => get_the_id(),
    ), $atts, 'product_description' );

    global $product;

    if ( ! is_a( $product, 'WC_Product') )
        $product = wc_get_product($atts['id']);

    return $product->get_description();
}

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

Примеры использования [product_description]

1) На текущей странице товара тел .:

echo do_shortcode( "[product_description]" );

2) В любомphp-код, предоставляющий соответствующий идентификатор продукта

echo do_shortcode( "[product_description id='37']" );
...