If you don’t want to assign the WooCommerce user role “customer” to new… customers, there is simple PHP that can be added to your functions.php to achieve this. Enjoy!
Change WooCommerce user role upon registration
PHP Snippet: Change User Role for New Customers – WooCommerce
/**
* @snippet Change User Role for New Customers - WooCommerce
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WC 4.6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
///////////////////////////////
// 1. ADD NEW ROLE
add_role( 'pending', __( 'Pending' ), array(
'read' => true,
));
///////////////////////////////
// 2. ASSIGN NEW ROLE
add_filter( 'woocommerce_new_customer_data', 'bbloomer_assign_custom_role' );
function bbloomer_assign_custom_role( $args ) {
$args['role'] = 'pending';
return $args;
}
Please let me know in the comments if everything went as expected. I would be happy to revise the snippet if you report otherwise (please provide screenshots). I have tested this code with Storefront theme, the WooCommerce version listed above and a WordPress-friendly hosting.
If you think this code saved you time & money, feel free to join 17,000+ WooCommerce Weekly subscribers for blog post updates and 250+ Business Bloomer supporters for 365 days of WooCommerce benefits. Thank you in advance!
Need Help with WooCommerce?
Check out these free video tutorials. You can learn how to customize WooCommerce without unnecessary plugins, how to properly configure the WooCommerce plugin settings and even how to master WooCommerce troubleshooting in case of a bug!
Rodolfo Melogli
Business Bloomer Founder
Author, WooCommerce expert and WordCamp speaker, Rodolfo has worked as an independent WooCommerce freelancer since 2011. His goal is to help entrepreneurs and developers overcome their WooCommerce nightmares. Rodolfo loves travelling, chasing tennis & soccer balls and, of course, wood fired oven pizza.
12 thoughts on “WooCommerce: Change User Role for New Customers”
Dan
Is there a way to add the customer role, but only for the purchase of specific products? For example, we have a few subscription products and when users purchase these products, we want their user role to be Member. We installed the Woocommerce extension for Ultimate Member and it works when users checkout with credit card. However, users who checkout with mail-in check or ACH do not get their role changed when checking out.
I have been testing this out and it worked. But i want new users to get ” support” level to send tickets throught awesome support, not gonna spend 50 euros on a ” intergration” but now i see after playing around with it for a few hours that it first create a new role and then applys it to a new costumer, is there a snipit that gives new costumers that registate the role support or above?
Hi Daijiro, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!
Hi Eli, thanks so much for your comment! Yes, this is possible – but unfortunately this is custom work and I cannot provide a complementary solution here via the blog comments. Thanks a lot for your understanding! ~R
Hey Abd, thanks for your comment! For example, my client needed to approve “Trade” users before allowing them to purchase (as normal customers). So this snippet changes that user role and give the Admin the option to approve them manually ๐
Hi again, Thanks for replying. Sounds cool. Well, I didn’t get notification of your reply I came back to your site to check for reply. WP core version doesn’t send notification of comments you may consider using this plugin https://wordpress.org/plugins/comment-reply-email-notification/ that will allow your user to get notified when you post a reply. Regards, Abd Ur Rehman
Questions? Feedback? Support? Leave your Comment Now! _____
If you are writing code, please wrap it between shortcodes: [php]code_here[/php]. Failure to complying with this (as well as going off topic, not writing in English, etc.) will result in comment deletion. You should expect a reply in about 2 weeks - this is a popular blog but I need to get paid work done first. Please consider joining BloomerArmada to get blog comment reply priority, ask me 1-to-1 WooCommerce questions and enjoy many more perks. Thank you :)
With 100,000 (and growing) monthly organic sessions, Business Bloomer is the most consistent, most active and most complete WooCommerce development/customization blog.
Of course this website itself uses the WooCommerce plugin, the Storefront theme and runs on a WooCommerce-friendly hosting.
Is there a way to add the customer role, but only for the purchase of specific products? For example, we have a few subscription products and when users purchase these products, we want their user role to be Member. We installed the Woocommerce extension for Ultimate Member and it works when users checkout with credit card. However, users who checkout with mail-in check or ACH do not get their role changed when checking out.
Hi Dan, did you try manually completing those orders?
Hey Rodolfo, you have an un-closed tag in your post. Thanks for the snippet!
Thank you so much! Fixed.
I have been testing this out and it worked. But i want new users to get ” support” level to send tickets throught awesome support, not gonna spend 50 euros on a ” intergration” but now i see after playing around with it for a few hours that it first create a new role and then applys it to a new costumer, is there a snipit that gives new costumers that registate the role support or above?
Hi Daijiro, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!
Hi, Rodolfo. I was looking for that, thank you so much.
If I only want this to happen in register but not in checkout is that possible?
Thank you.
Hi Eli, thanks so much for your comment! Yes, this is possible – but unfortunately this is custom work and I cannot provide a complementary solution here via the blog comments. Thanks a lot for your understanding! ~R
What is the benefit of add this role?
Hey Abd, thanks for your comment! For example, my client needed to approve “Trade” users before allowing them to purchase (as normal customers). So this snippet changes that user role and give the Admin the option to approve them manually ๐
Hi again, Thanks for replying. Sounds cool. Well, I didn’t get notification of your reply I came back to your site to check for reply. WP core version doesn’t send notification of comments you may consider using this plugin https://wordpress.org/plugins/comment-reply-email-notification/ that will allow your user to get notified when you post a reply. Regards, Abd Ur Rehman
Thank you – it seems the others are receiving emails, weird ๐ Is the email address you entered correct, and if yes, is there anything in your spam?