更改结帐页面上 WooCommerce 优惠券的 "Remove" link 文本

Change "Remove" link text for WooCommerce coupon on checkout page

而不是 [Remove] 在 WooCommerce 结账时添加优惠券,我希望文本是 [Remove & Re-Calculate].

我用的是下面的,文字改了但是没有link(优惠券不能去掉)

这是我试过的:

add_filter( 'woocommerce_cart_totals_coupon_html', 'change_wc_coupon_removal_text', 10, 3 );
function change_wc_coupon_removal_text( $coupon_html, $coupon, $discount_amount_html ) {

    $coupon_html = $discount_amount_html . '<br>' . 'Remove &amp; Re-Calculate';

    return $coupon_html;
}

includes/wc-cart-functions.php 包含在第 293 行,就在 woocommerce_cart_totals_coupon_html 过滤器钩子之前。

$coupon_html = $discount_amount_html . ' <a href="' . esc_url( add_query_arg( 'remove_coupon', rawurlencode( $coupon->get_code() ), Constants::is_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>';

所以要替换文本,请使用:

function filter_woocommerce_cart_totals_coupon_html( $coupon_html, $coupon, $discount_amount_html ) {
    // Change text
    $coupon_html = $discount_amount_html . ' <a href="' . esc_url( add_query_arg( 'remove_coupon', rawurlencode( $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 &amp; Re-Calculate]', 'woocommerce' ) . '</a>';

    return $coupon_html;
}
add_filter( 'woocommerce_cart_totals_coupon_html', 'filter_woocommerce_cart_totals_coupon_html', 10, 3 );

function filter_woocommerce_cart_totals_coupon_html( $coupon_html, $coupon, $discount_amount_html ) {
    // Change text
    $coupon_html = str_replace( '[Remove]', '[Remove &amp; Re-Calculate]', $coupon_html );

    return $coupon_html;
}
add_filter( 'woocommerce_cart_totals_coupon_html', 'filter_woocommerce_cart_totals_coupon_html', 10, 3 );