在 Woocommerce 结帐页面中隐藏优惠券通知表格

Hide Coupon notice form in Woocommerce checkout page

在我的网站上,包含 "Have a coupon? Click here to enter your code" 框的结帐页面。我不想在结帐时使用此字段 page.I 通过 URl 应用优惠券。我想通过 CSS 从结帐页面中删除此框。我在我的结帐页面附上了那个盒子的截图。

这可能吗?

我已经试过了:

function hide_coupon_field_on_checkout( $enabled ) {
    if ( is_checkout() ) {
        $enabled = false;
    }
    return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'hide_coupon_field_on_checkout' );

但它会禁用结帐页面中的优惠券功能。

任何帮助将不胜感激。

此标签似乎没有分配唯一的 id/class。但是像这样的东西应该可以做到:

$(".showcoupon").closest(".woocommerce-info").hide();  

您可以在 wp-content/themes/yourtheme/woocommerce/checkout/form-coupon.php 和评论 wc_print_notice 覆盖优惠券模板文件,并将表单显示设置为 none。

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

if ( ! wc_coupons_enabled() ) {
    return;
}

if ( empty( WC()->cart->applied_coupons ) ) {
    $info_message = apply_filters( 'woocommerce_checkout_coupon_message', __( 'Have a coupon?', 'woocommerce' ) . ' <a href="#" class="showcoupon">' . __( 'Click here to enter your code', 'woocommerce' ) . '</a>' );
    //wc_print_notice( $info_message, 'notice' );
}
?>

<form class="checkout_coupon" method="post" style="display:none">

    <p class="form-row form-row-first">
        <input type="text" name="coupon_code" class="input-text" placeholder="<?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?>" id="coupon_code" value="" />
    </p>

    <p class="form-row form-row-last">
        <input type="submit" class="button" name="apply_coupon" value="<?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?>" />
    </p>

    <div class="clear"></div>
</form>

您可以使用挂钩在 woocommerce_before_checkout_form 操作挂钩中的自定义函数,它将 删除通知优惠券表单 而无需禁用优惠券结帐页面中的功能:

add_action( 'woocommerce_before_checkout_form', 'remove_checkout_coupon_form', 9 );
function remove_checkout_coupon_form(){
    remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
}

代码进入活动子主题(或活动主题)的 function.php 文件。

已测试并有效。