Woocommerce中是否有用于产品说明的简码

时间:2018-11-13 20:00:55

标签: php wordpress woocommerce product shortcode

是否有任何简短代码可以调用产品说明(标题下的文本字段)?

现在我正在使用另一个自定义字段来完成这项工作,但是如果我使用woocomerce字段会更好。

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式构建自己的简码:

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)在当前产品页面ph中:

echo do_shortcode( "[product_description]" );

2)在提供相关产品ID的任何php代码中

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

答案 1 :(得分:1)

我写了一个与@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' );