Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
WooCommerce Disable guest checkout for certain products
<?php
// Code goes in theme functions.php or a custom plugin
add_filter( 'pre_option_woocommerce_enable_guest_checkout', 'conditional_guest_checkout_based_on_product' );
function conditional_guest_checkout_based_on_product( $value ) {
$restrict_ids = array( 1, 2, 3 ); // Replace with product ids which cannot use guest checkout
if ( WC()->cart ) {
$cart = WC()->cart->get_cart();
foreach ( $cart as $item ) {
if ( in_array( $item['product_id'], $restrict_ids ) ) {
$value = "no";
break;
}
}
}
return $value;
}
@imevinodh
Copy link

imevinodh commented Mar 16, 2016

How to disable guest checking for all products, untick in the wordpress does not work :(

@FileSubmit
Copy link

FileSubmit commented Mar 19, 2016

Hello, How can i do the opposite? How to enable guest checkout for certain products?

@contemplate
Copy link

contemplate commented May 1, 2016

Here is the opposite: https://gist.github.com/contemplate/2adc7be2c72d585a07ac6f90b1f1e1b4

  • also adds a checkbox on the product to enable guest checkout

@jtemerson
Copy link

jtemerson commented Jun 29, 2017

How can I do this for a certain woocommerce category, not an array of product ids?

Copy link

ghost commented Jan 4, 2019

Hi dear friend
this hook «pre_option_woocommerce_enable_guest_checkout» used.
where is woocommerce defined?

@vahid162
Copy link

vahid162 commented Aug 25, 2021

I use this code to customize the email on the WooCommerce checkout page:

add_filter( 'woocommerce_billing_fields', 'ts_unrequire_wc_email_field'); function ts_unrequire_wc_email_field( $fields ) { $fields['billing_email']['required'] = false; return $fields; }

How can I specify that if a product needs to be registered, email will be required?

@bradthebluefish
Copy link

bradthebluefish commented Jun 8, 2022

6 years old and still works for me. Thank you!

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