Created
March 10, 2016 09:39
-
-
Save mikejolley/5fadb94dd9eff11ab512 to your computer and use it in GitHub Desktop.
WooCommerce Disable guest checkout for certain products
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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; | |
} |
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
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?