我正在尝试为 WordPress WooCommerce 网站上的产品添加后缀“/ Yearly”。根据我的研究,我使用的代码应该可以工作,但它不能正常工作。它仅适用于产品页面上的价格,但后缀不会出现在购物车中。我做错了什么?
这是我的系统信息:
Elementor - Elementor Pro:V3.18.3
主题:Hello Elementor:V3.0.1
WordPress:V6.4.2
WooCommerce:V8.5.2
functions.php 的代码:
add_filter( 'woocommerce_get_price_html', 'yillikekle', 99, 4 );
add_filter( 'woocommerce_cart_item_price', 'yillikekle' );
add_filter( 'woocommerce_cart_item_subtotal', 'yillikekle' );
add_filter( 'woocommerce_cart_subtotal', 'yillikekle' );
add_filter( 'woocommerce_cart_total', 'yillikekle' );
function yillikekle( $price, $product ){
$paradanSonra = ' / Yıllık';
return $price . $paradanSonra;
}
此外,当我使用下面的代码时,网站上的“Ajax 添加到购物车”按钮停止工作。通常,当单击“添加到购物车”按钮时,其下方会出现“查看购物车”按钮,但是当我添加以下代码时,这也开始不起作用。
add_filter( 'woocommerce_cart_item_price', 'yillikekle' );
add_filter( 'woocommerce_cart_item_subtotal', 'yillikekle' );
add_filter( 'woocommerce_cart_subtotal', 'yillikekle' );
Ajax 添加到购物车不起作用,因为您需要从第一行删除
, 99, 4
并删除不需要的 $product
参数(因为这会在各处引发 PHP 错误)。
因此,以下内容应该可以正常工作,而不会引发 PHP 错误:
add_filter( 'woocommerce_get_price_html', 'add_a_price_suffix' );
add_filter( 'woocommerce_cart_item_price', 'add_a_price_suffix' );
add_filter( 'woocommerce_cart_item_subtotal', 'add_a_price_suffix' );
add_filter( 'woocommerce_cart_subtotal', 'add_a_price_suffix' );
add_filter( 'woocommerce_cart_total', 'add_a_price_suffix' );
function add_a_price_suffix( $price ){
return $price . ' / Yıllık';
}
或者您也可以使用此替代方案,这将为前端中的每个价格添加后缀:
add_filter( 'wc_price', 'frontend_individual_price_suffix' );
function frontend_individual_price_suffix( $price_html ) {
if ( ! is_admin() ) {
$price_html .= ' / Yıllık';
}
return $price_html;
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。