在Woocommerce中允许产品变体描述中使用简码

时间:2018-11-14 06:09:23

标签: php wordpress woocommerce shortcode variations

我想在woocommerce变量产品描述中使用pods短代码字段,但是默认情况下,变量描述字段不支持短代码。

版本描述存储在in an array woocommerce_available_variation中,所以我不能简单地调用函数do_shortcode($ variation)。

我正在尝试使用以下代码在此字段中允许使用短代码:

add_filter( 'woocommerce_available_variation', 'shortcode_variation_description');

function shortcode_variation_description( $variation ) {
$variation['variation_description'] = do_shortcode( $variation['variation_description'] );
return $variation;

但是它不起作用。

有人知道我在做什么错吗?

2 个答案:

答案 0 :(得分:1)

使用代码时,它可以工作。为了进行测试,我在变体描述中使用了Woocommerce shortcode [products],如下所示:

估算文本为 (其中 37 是真正的简单产品ID):
“这是一个带有简码的描述…[products ids =“ 37”]如您所见,此短码已被检测到并显示。”

我得到以下显示:

enter image description here

因此它是真实的。我对此代码版本(您也可以使用)进行了一些小的更改:

add_filter( 'woocommerce_available_variation', 'variation_description_allow_shortcodes', 10, 3 );
function variation_description_allow_shortcodes( $variation_data, $product, $variation ) {
    $variation_data['variation_description'] = do_shortcode( $variation_data['variation_description'] );

    return $variation_data;
}

代码进入您的活动子主题(活动主题)的function.php文件中。经过测试,可以正常工作。

答案 1 :(得分:0)

您可以定义自己的简码,请参阅文档。您可以复制/粘贴代码,因为它包装在一个类中,因此不会由于双重声明而触发致命错误。

但是简码不能那样工作:

function shortcode_handler($atts) {
  //code goes here
 }
add_shortcode("name_of_shortcode","shortcode_handler');