WooCommerce - 通过主题覆盖wc-formatting-functions.php文件无法正常工作

时间:2016-07-29 13:32:11

标签: php wordpress woocommerce categories product

我正在尝试在我更改WooCommerce插件文件夹中的核心文件时将我的代码包含在 wc-formatting-functions.php 文件中,并且它正在运行。

现在我在我的主题文件夹中创建了 woocommerce 文件夹,并在其中复制了 wc-formatting-functions.php 文件,尝试覆盖,但它已经#39 ; s不工作。

我正在尝试在 wc_price() 函数中插入此代码:

if(is_product_category('mattress')){
    echo "mattress category";
}
else if(is_product_category('pillows')){
    echo "pillows category";
}
else if(is_product_category('protectors')){
    echo "protectors category";
}
else if(is_product_category('toppers')){
    echo "toppers category";
}
else if(is_product_category('foldable-mattress')){
   echo "foldable-mattress category";
}

在wc-formatting-functions.php中的这些行之后:

$formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, '<span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $currency ) . '</span>', $price );
$return = '<span class="woocommerce-Price-amount amount">' . $formatted_price . '</span>';

我做错了什么?

1 个答案:

答案 0 :(得分:2)

由于 wc-formatting-functions.php WooCommerce核心文件,而不是模板文件,您将无法使其正常工作在主题文件夹中的 woocommerce 文件夹中。

  

无法通过主题将wc-formatting-functions.php核心文件覆盖为模板文件。

根据您要使用代码的位置,您可以尝试在相关的钩子中使用它,如:

add_filter( 'woocommerce_cart_product_price', 'filter_woocommerce_cart_product_price', 10, 2 ); 
function filter_woocommerce_cart_product_price( $wc_price, $product ) { 
    // some code 
    return $wc_price; 
}; 

作为is_product_category()条件目标类别页面存档,您可以覆盖相关的woocommerce模板,具体取决于您希望使用代码的位置。

您甚至可以在活动主题的function.php文件中插入代码,嵌入到可以重复使用的函数中。

但是,如果您想使用条件定位特定类别,则必须使用 has_term( 'mattress', 'product_cat' ) 代替。

参考文献: