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!
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
* @community https://businessbloomer.com/club/
*/
///////////////////////////////
// 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;
}
This code still works, unless you report otherwise. To exclude conflicts, temporarily switch to the Storefront theme, disable all plugins except WooCommerce, and test the snippet again: WooCommerce troubleshooting 101
Related content
WooCommerce: Add New Tab @ My Account Page One of the features of Business Bloomer Club is the provision of Premium WooCommerce Q&A Support to supporters who enroll. So, how to add an extra “tab” to the My Account page, and how to add content inside it? Here’s the code I used (thanks to Mike Jolley for inspiration) – feel free to leave […]
WooCommerce: Separate Login, Registration, My Account Pages There are times when you need to send logged out customers to a Login page and unregistered customers to a standalone Register page. As you know, the WooCommerce My Account page, which contains the Login Username or email address * Password * Remember me Log in Lost your password? shortcode, has both Login and Registration forms when […]
WooCommerce: Disable Payment Gateway for Specific User Role You may want to disable payment gateways depending on the logged in user role. For example, you may want to disable PayPal for user role “subscriber” or enable a specific gateway for user role “customer”. All you need is to paste the following code in your functions.php or to install a super simple plugin. Enjoy!
WooCommerce: How To Make A Website GDPR Compliant? (12 Steps) Ok, we all know that the EU General Data Protection Regulation (GDPR) will come into force on the 25th May 2018. So the main question is: what changes do we need to make on our WooCommerce website to become compliant? And another important query might be: how does GDPR affect non-European WooCommerce websites? In this […]
WooCommerce: Add First & Last Name to My Account Register Form Here’s yet another useful PHP snippet – and a mini-plugin alternative with super simple settings – that adds the Billing First Name and Billing Last Name to the Registration Form on the WooCommerce My Account page. By default, the WooCommerce customer Registration Form only displays the email, username, and password fields (unless username and password […]
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. Follow @rmelogli
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? Customization? Leave your comment now! _____
If you are writing code, please wrap it like so: [php]code_here[/php]. Failure to complying with this, as well as going off topic or not using the English language will result in comment disapproval. 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 the Business Bloomer Club to get quick WooCommerce support. Thank you!
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?