WooCommerce - 通过主题覆盖 wc-formatting-functions.php 文件不起作用
WooCommerce - Overriding wc-formatting-functions.php file via theme is not working
当我在 WooCommerce 插件文件夹中更改核心文件时,我试图将我的代码包含在 wc-formatting-functions.php
文件中,并且它正在运行。
现在我已经在主题文件夹中创建了 woocommerce
文件夹,并在其中复制了 wc-formatting-functions.php
文件,试图覆盖,但它不工作。
我正在尝试将此代码插入 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>';
我做错了什么?
因为 wc-formatting-functions.php
是 WooCommerce 核心 文件而不是 模板 文件,您将无法在主题文件夹内的 woocommerce
文件夹中使用它。
Is not possible to override wc-formatting-functions.php
core file as a template file via a theme.
根据您想在何处使用您的代码,您可以尝试在相关的挂钩中使用它,例如:
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' )
来代替。
参考文献:
当我在 WooCommerce 插件文件夹中更改核心文件时,我试图将我的代码包含在 wc-formatting-functions.php
文件中,并且它正在运行。
现在我已经在主题文件夹中创建了 woocommerce
文件夹,并在其中复制了 wc-formatting-functions.php
文件,试图覆盖,但它不工作。
我正在尝试将此代码插入 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>';
我做错了什么?
因为 wc-formatting-functions.php
是 WooCommerce 核心 文件而不是 模板 文件,您将无法在主题文件夹内的 woocommerce
文件夹中使用它。
Is not possible to override
wc-formatting-functions.php
core file as a template file via a theme.
根据您想在何处使用您的代码,您可以尝试在相关的挂钩中使用它,例如:
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' )
来代替。
参考文献: