我想在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;
但是它不起作用。
有人知道我在做什么错吗?
答案 0 :(得分:1)
使用代码时,它可以工作。为了进行测试,我在变体描述中使用了Woocommerce shortcode [products]
,如下所示:
估算文本为 (其中 37
是真正的简单产品ID):
“这是一个带有简码的描述…[products ids =“ 37”]如您所见,此短码已被检测到并显示。”
我得到以下显示:
因此它是真实的。我对此代码版本(您也可以使用)进行了一些小的更改:
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');