允许在 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');