我正在尝试在我更改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>';
我做错了什么?
答案 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' )
代替。
参考文献: