允许在 Woocommerce 中的产品变体描述中使用简码
Allow shortcodes in product variations description in Woocommerce
我想在 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;
但是没用。
有人能找出我做错了什么吗?
使用您的代码时,它有效。为了测试,我在变体描述中使用了 Woocommerce shortcode [products]
,如下所示:
推算的文本是 (其中37
是一个真正简单的产品ID):
"This is a description with a shortcode… [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 文件。已测试并有效。
您可以定义自己的短代码,请参阅文档。您可以 copy/paste 代码,因为它包含在 class 中,因此不会因双重声明而触发致命错误。
但是简码不是那样工作的:
function shortcode_handler($atts) {
//code goes here
}
add_shortcode("name_of_shortcode","shortcode_handler');
我想在 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;
但是没用。
有人能找出我做错了什么吗?
使用您的代码时,它有效。为了测试,我在变体描述中使用了 Woocommerce shortcode [products]
,如下所示:
推算的文本是 (其中37
是一个真正简单的产品ID):
"This is a description with a shortcode… [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 文件。已测试并有效。
您可以定义自己的短代码,请参阅文档。您可以 copy/paste 代码,因为它包含在 class 中,因此不会因双重声明而触发致命错误。
但是简码不是那样工作的:
function shortcode_handler($atts) {
//code goes here
}
add_shortcode("name_of_shortcode","shortcode_handler');