簡體   English   中英

允許在 Woocommerce 中的產品變體描述中使用短代碼

[英]Allow shortcodes in product variations description in Woocommerce

我想在 woocommerce 變量產品描述中使用 pods 短代碼字段,但默認情況下,變量描述字段不支持短代碼。

變體描述存儲在數組 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 簡碼[products] ,如下所示:

估算文本是(其中37是一個真正的簡單產品 ID):
“這是一個帶有簡碼的描述...... [products ids="37"] 正如你所看到的,這個 shorcode 被檢測到並顯示出來。”

我得到這個顯示:

在此處輸入圖片說明

所以它真的有效。 我對這個代碼版本做了一些小改動(你的工作也是如此)

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 文件中。 測試和工作。

您可以定義自己的短代碼,請參閱文檔。 您可以復制/粘貼代碼,因為它包含在一個類中,因此不會因雙重聲明而觸發致命錯誤。

但簡碼不能那樣工作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM