wordpress 允许在Woocommerce中的产品变体描述中使用短代码

zbdgwd5y  于 2022-11-22  发布在  WordPress
关注(0)|答案(2)|浏览(170)

我想在woocommerce变量产品描述中使用一个pods shortcode字段,但是默认情况下变量描述字段不支持shortcode。
变体描述存储在一个数组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;

但它不工作。为什么?

kgsdhlau

kgsdhlau1#

当使用你的代码时,它工作。为了测试,我使用了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文件中。

unguejic

unguejic2#

你可以定义你自己的短代码,请参阅文档。你可以复制/粘贴代码,因为它被 Package 在一个类中,所以它不会因为双重声明而触发致命错误。
但是,短代码并不是这样工作的:

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

相关问题