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

标签 php wordpress woocommerce hook-woocommerce coupon

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

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

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

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

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

最佳答案

您需要使用 woocommerce_cart_totals_coupon_html 过滤器 Hook ,如本例所示:

add_filter( 'woocommerce_cart_totals_coupon_html', 'custom_cart_totals_coupon_html', 30, 3 );
function custom_cart_totals_coupon_html( $coupon_html, $coupon, $discount_amount_html ) {
    // For percent coupon types only
    if( 'percent' == $coupon->get_discount_type() ){
        $percent              = $coupon->get_amount(); // Get the coupon percentage number
        $discount_amount_html = '<span>' . $percent . ' % </span>'; // Formatting  percentage
        // Replacing coupon discount, by custom percentage
        $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>';
    }

    return $coupon_html;
}

代码进入事件子主题(或事件主题)的 function.php 文件。经过测试并有效。

enter image description here

它将用购物车和结帐页面上的优惠券百分比代替折扣金额......

关于php - 用自定义字符串替换 Woocommerce 优惠券金额行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49608968/

相关文章:

php - woocommerce - 更改类别中产品的 html

javascript - jQuery 选择按钮,无法获取要提醒的属性

php - dropzone.js 不将文件移动到上传文件夹

javascript - 通过 ID 为表创建一个自动粗体 ??用javascript

php - 如何更改 woocommerce 的核心功能

php - 如何获取用于在 WooCommerce 中创建自定义订单返回 url 的订单 key

php - WooCommerce:从订阅订单中获取名称和变体

php - php中MySQL查询的问题

php - 用于动态网页的 AJAX VS PHP?

javascript - 在 WordPress 中禁用移动设备上的排队 Javascript