2017-08-13 80 views
1

我使用稱爲Booster的插件來實現woocommerce。我正在使用它來構建自己的產品Feed。有返回產品類別的整支採用此格式的簡碼(串):編輯woocommerce插件短代碼

「水果,蘋果,青蘋果」

不幸的是我需要它在這個格式返回這些類別:

「水果|蘋果|青蘋果」

我發現了一個函數爲這個簡碼的插件文件:

function wcj_product_categories($atts) { 
    $return = (WCJ_IS_WC_VERSION_BELOW_3) ? $this->the_product->get_categories() : wc_get_product_category_list($atts['product_id']); 
    return (false === $return) ? '' : $return; 
} 

而且從短碼碼 「wc_get_product_category_list」 功能如下:

function wc_get_product_category_list($product_id, $sep = ', ', $before = '', $after = '') { 
return get_the_term_list($product_id, 'product_cat', $before, $sep, $after); 

}

我可以代替 「」 爲「| 「直接在這個woocommerce函數中,但恐怕會導致其他插件或woocommerce函數出現問題,所以我需要的是基本上編輯插件函數,以便通過」wc_get_product_category_list「獲取類別列表(字符串),然後插入此字符串爲變量和更改「」爲‘|’。但我不知道如何在PHP中做到這一點

對不起,我的英文不好,希望你明白了吧 感謝您的幫助

//編輯:是否有可能這樣做?

function wcj_product_categories($atts) { 
      $product_list = wc_get_product_category_list($atts['product_id']); 
      $new_string = str_replace(","," |",$product_list); 
    $return = (WCJ_IS_WC_VERSION_BELOW_3) ? $this->the_product->get_categories() : $new_string; 
    return (false === $return) ? '' : $return; 
} 

回答

0

編輯插件文件不是一個好的ID ea,因爲您的更改將在更新期間丟失。相反,在functions.php中創建您自己的簡碼:

remove_shortcode('wcj_product_categories'); 
add_shortcode('wcj_product_categories', 'my_wcj_product_categories'); 

function my_wcj_product_categories($atts) { 
    $output = wcj_product_categories($atts); 
    $output = str_replace(",", " |", $output); 

    return $output; 
}