Skip to content

Instantly share code, notes, and snippets.

@maxrice
Created January 21, 2014 23:43
Show Gist options
  • Save maxrice/8550827 to your computer and use it in GitHub Desktop.
Save maxrice/8550827 to your computer and use it in GitHub Desktop.
WooCommerce - hide the coupon form on the cart or checkout page, but leave coupons enabled for use with plugins like Smart Coupons and URL Coupons
<?php
// hide coupon field on cart page
function hide_coupon_field_on_cart( $enabled ) {
if ( is_cart() ) {
$enabled = false;
}
return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'hide_coupon_field_on_cart' );
// hide coupon field on checkout page
function hide_coupon_field_on_checkout( $enabled ) {
if ( is_checkout() ) {
$enabled = false;
}
return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'hide_coupon_field_on_checkout' );
@urbanoantunes
Copy link

where do I add this?

@sbellver
Copy link

In your function.php (in theme folder)

@StefsterNYC
Copy link

StefsterNYC commented May 13, 2016

Anyone see a hook for hiding it from a specific user role? I have Pro MUA as a user role and I need to hide the coupon from them.

I added the following but it's not working

`function woo_get_user_role() {
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
return $user_role;
}

function hide_coupon_field_on_cart( $enabled ) {
if(woo_get_user_role() =='pro_mua_customer' && is_cart() || is_checkout() ) {
$enabled = false;
}
return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'hide_coupon_field_on_cart' );`

@photoncreative
Copy link

photoncreative commented Jan 19, 2017

Works a treat! Just make sure to remove the first line <?php from this code snippet if it's already in your functions.php file. You want to paste this code snipper just before the last line of the functions file which should be ?>

@neilbannet
Copy link

Thanks ;)

@cristianryu
Copy link

cristianryu commented Aug 29, 2017

I have a problem. I've placed this code and everything seems to work fine.
But when I add a product with a discount coupon through URL Coupons to the Cart, the "Remove" link stops working (The one that removes the coupon from the product). In the checkout page the "Remove" link works fine.
What can happen? Does anyone have any help, please?

@indefinitelee
Copy link

just want to ask to be sure: It would be best to create a child theme for woocommerce for the cart and/or checkout pages and then put this code in the functions.php of those themes, correct?

@jchrislemmer
Copy link

Ah, very nice piece of code. Thanks! 👍

@Shubhras
Copy link

Very Nice code

@naliseth
Copy link

naliseth commented Jan 8, 2018

Hello, i have a question. i configured a rule on my woocomerce->coupon (for example apply a coupon discount when min spend is 27$). Now when I want to pay the bill, always appear: do you have any coupon? please enter the code....... Then i only want that this message appear only when the bill is >27$. How can i do it?
Thanks

@craigcooperxyz
Copy link

thanks

@tigredanky
Copy link

thank you. works great on checkout!

@jjbbrr
Copy link

jjbbrr commented May 29, 2018

Thanks - this still works with Woocommerce 3.4 and Wordpress 4.9.6 :)

@TGurgen
Copy link

TGurgen commented Nov 3, 2018

What if my checkout and cart on the same page, and i want hide it only on checkout? what code i can use?

@KoolPal
Copy link

KoolPal commented May 15, 2019

@TGurgen, use
function hide_coupon_field_on_cart( $enabled ) { if ( is_cart() ) { $enabled = false; } return $enabled; } add_filter( 'woocommerce_coupons_enabled', 'hide_coupon_field_on_cart' );

And
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 ); }

@kostyaber
Copy link

@KoolPal, sorry, can you tell, how can i hide it, if i want to remove coupon field only after the cart and the cart and checkout is on the same page?

@zspringer
Copy link

Works great as of Jan. 2020!

@Mohammad-Afridi
Copy link

I have woocommerce site running woocommerce memberships and I am trying to disable to coupon entry box in both the cart and checkout for members only. Non members should still see the coupon entry box and be able to use coupons, but people with a membership should not see it at all.I want to do this with a code snippet. Anyone can help me ?

@jpensotes
Copy link

Works perfectly. Kudos

@oitent
Copy link

oitent commented Jun 9, 2021

Say I'd like to hide it only when I already have a coupon applied. Can that be done editing this code?

@thegeomaster
Copy link

Gracias! Funciona perfecto en feb. 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment