用自定义字符串替换 Woocommerce 优惠券金额行

abi*_* er 5 php wordpress coupon woocommerce hook-woocommerce

目前在结账页面和购物车页面,在人们应用优惠券代码后,购物车显示优惠券名称以及从原始产品价格减少了多少钱。

例如,产品价格为 100,优惠券折扣为 20%,然后显示优惠券名称 -20 。

但我不想在那里显示 -20 ,而是需要在那里显示自定义字符串,例如 20% off 。不是数量,而是一些自定义字符串..

我怎么能做到这一点?. 当我搜索时,我可以找到该主题/woocommerce/cart/cart.php 那里正在使用一个函数 <?php do_action( 'woocommerce_cart_collaterals' ); ?>。所以没有选项可以编辑减少的金额。

所以请帮忙,请注意此字符串需要显示在结帐、购物车、订单电子邮件等中。

Loi*_*tec 4

您需要使用woocommerce_cart_totals_coupon_html过滤器钩子,如下例所示:

\n\n
add_filter( \'woocommerce_cart_totals_coupon_html\', \'custom_cart_totals_coupon_html\', 30, 3 );\nfunction custom_cart_totals_coupon_html( $coupon_html, $coupon, $discount_amount_html ) {\n    // For percent coupon types only\n    if( \'percent\' == $coupon->get_discount_type() ){\n        $percent              = $coupon->get_amount(); // Get the coupon percentage number\n        $discount_amount_html = \'<span>\' . $percent . \' % </span>\'; // Formatting  percentage\n        // Replacing coupon discount, by custom percentage\n        $coupon_html          = $discount_amount_html . \' <a href="\' . esc_url( add_query_arg( \'remove_coupon\', urlencode( $coupon->get_code() ), defined( \'WOOCOMMERCE_CHECKOUT\' ) ? wc_get_checkout_url() : wc_get_cart_url() ) ) . \'" class="woocommerce-remove-coupon" data-coupon="\' . esc_attr( $coupon->get_code() ) . \'">\' . __( \'[Remove]\', \'woocommerce\' ) . \'</a>\';\n    }\n\n    return $coupon_html;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并有效。

\n\n

在此输入图像描述

\n\n

它将用购物车和结帐页面上的优惠券百分比替换折扣金额\xe2\x80\xa6

\n