编辑woocommerce助推器插件短代码

时间:2017-08-13 16:15:38

标签: php wordpress woocommerce shortcode

我使用一个名为Booster的插件来进行woocommerce。我用它来构建我自己的产品Feed。有一个短代码,以这种格式返回产品类别的整个分支(字符串):

  

"水果,苹果,青苹果"

不幸的是我需要它以这种格式返回这些类别:

  

"水果|苹果|绿苹果"

我在插件文件中找到了这个短代码的函数:

    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"获取类别列表(字符串)。然后将此字符串插入变量并更改"," for" |"但我不知道如何在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;
}

1 个答案:

答案 0 :(得分:0)

编辑插件文件不是一个好主意,因为您的更改将在更新期间丢失。相反,在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;
}