Skip to content

Instantly share code, notes, and snippets.

@maxrice
Created January 21, 2014 23:43
Show Gist options
  • Select an option

  • Save maxrice/8550827 to your computer and use it in GitHub Desktop.

Select an option

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' );
@sbellver

Copy link
Copy Markdown

In your function.php (in theme folder)

@StefsterNYC

StefsterNYC commented May 13, 2016

Copy link
Copy Markdown

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

photoncreative commented Jan 19, 2017

Copy link
Copy Markdown

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
Copy Markdown

Thanks ;)

@cristianryu

cristianryu commented Aug 29, 2017

Copy link
Copy Markdown

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
Copy Markdown

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
Copy Markdown

Ah, very nice piece of code. Thanks! 👍

@Shubhras

Copy link
Copy Markdown

Very Nice code

@naliseth

naliseth commented Jan 8, 2018

Copy link
Copy Markdown

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
Copy Markdown

thanks

@tigredanky

Copy link
Copy Markdown

thank you. works great on checkout!

@jjbbrr

jjbbrr commented May 29, 2018

Copy link
Copy Markdown

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

@TGurgen

TGurgen commented Nov 3, 2018

Copy link
Copy Markdown

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

@KoolPal

KoolPal commented May 15, 2019

Copy link
Copy Markdown

@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
Copy Markdown

@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
Copy Markdown

Works great as of Jan. 2020!

@Mohammad-Afridi

Copy link
Copy Markdown

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
Copy Markdown

Works perfectly. Kudos

@oitent

oitent commented Jun 9, 2021

Copy link
Copy Markdown

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
Copy Markdown

Gracias! Funciona perfecto en feb. 2023

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