Site logo

Archived topic

Moving WooCommerce Coupon Code Box

7 replies · Started by Anthony on February 20, 2020

Viewing posts 1–8 of 8

I'm trying to move the coupon code input to display down by the payment methods.

This is what I'm trying to do here:

https://drive.google.com/file/d/1Tnl-XrLi57gNGscPLKBiKm7OnFt5UC8i/view?usp=sharing

I want to disable the dropdown and move A in the screenshot, to where B is in the screenshot.

At the very least I would love to disable the dropdown and just have the input present.

Thanks

Hi there,

try adding this to your sites functions:

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
add_action( 'woocommerce_review_order_before_payment', 'woocommerce_checkout_coupon_form', 5 );

https://docs.generatepress.com/article/adding-php/

And this CSS to remove the now redundant toggle:

.woocommerce-form-coupon-toggle {
    display: none;
}

Perfect! Thanks David!

Glad to be of help

I'm trying to remove the billing details and just have the checkout portion on the right-hand side.

But now when I enter the coupon code in the area you helped me move it to, it just kick starts the Paypal Processor.

Here's the code I'm using:

CSS that hides the headers customer details:

.woocommerce-products-header,
#customer_details,
#order_review_heading
{
display: none;
}

#customer_details+#wc_checkout_add_ons,
#order_review, #order_review_heading
{
margin: 0 auto!important;
float:none;
width: 80%
}

PHP that hides the checkout fields and moves/removes dropdown of the coupon box:

// Moving Enter Coupon Box ---------------------------------------------------

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
add_action( 'woocommerce_review_order_before_payment', 'woocommerce_checkout_coupon_form', 5 );

// Remove Billing Info Checkout Page ---------------------------------------------------

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['billing_first_name']);
unset($fields['billing']['billing_last_name']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
unset($fields['order']['order_comments']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_email']);
unset($fields['billing']['billing_city']);
return $fields;
}

Do I need the checkout fields in order for the coupon box to work?

I had the idea to remove the billing details after I first got in touch with you so now if it helps the coupon area can be above everything on the right column.

Thanks

Actually - it looks like moving the field within the 'payment form' is the issue - as you now have a form within a form and the coupon field submit triggers the payment ....

So re-hooking the coupon field is not a valid option unfortunately.

Ok thank you! I found a work around for what I'm doing.

Glad to hear that

This archived topic is closed to new replies.