向 WooCommerce 购物车和产品添加价格后缀

问题描述 投票:0回答:1

我正在尝试为 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' );
php wordpress woocommerce arguments hook-woocommerce
1个回答
0
投票

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 文件中(或插件中)。已测试并有效。

© www.soinside.com 2019 - 2024. All rights reserved.