在Woocommerce结帐页面隐藏优惠券通知单

时间:2018-01-12 14:12:34

标签: php jquery wordpress woocommerce checkout

在我的网站上的结帐页面包含"有优惠券?点击此处输入您的代码" 框。我不希望在结帐页面上显示此字段。我通过URl申请优惠券。我想通过CSS从结帐页面中删除此框。我在结帐页面附上了该框的屏幕截图。 enter image description here

这可能吗?

我已经尝试过这个:

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

但它会在结帐页面中停用优惠券功能。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:7)

您可以使用隐藏在 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文件。

经过测试和工作。

答案 1 :(得分:2)

此标记似乎没有分配唯一的ID /类。但是这样的事情应该能够做到:

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

答案 2 :(得分:1)

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

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>