Set User Role Based On WooCommerce Product Purchase

Building better MyListing websites. One code snippet at a time.


The Set User Role Based On WooCommerce Product Purchase code snippet allows for more flexibility within a MyListing website.


In our example here, when someone purchases the product that has a Product ID of 999, we are setting their role to the ‘Premium Member’ (premium_member) role.

You can get your Product ID, but pulling up your product list in the WordPress Dashboard and hovering over the Product Name. Adjust line 17, with your particular Product ID.

Adjust lines 25 and 28, inputting your desired roles.

  1. Grab the code snippet.
  2. Follow the provided instructions.
  3. Adjust the code as desired.
  4. Save your changes.
					//// INSTRUCTIONS: 
//// Use a plugin like WPCodeBox to add this code snippet to your website.
//// The Club has a discount and a guide for WPCodeBox. 

--------------------------- CODE SNIPPET IS BELOW THIS LINE --------------------------- 

// Set User Role Based On WooCommerce Product Purchase
add_action( 'woocommerce_order_status_completed', 'wpglorify_change_role_on_purchase' );

function mlc_change_role_on_purchase( $order_id ) {

// get order object and items
	$order = new WC_Order( $order_id );
	$items = $order->get_items();

	$product_id = 999; // that's a specific product ID

	foreach ( $items as $item ) {

		if( $product_id == $item['product_id'] && $order->user_id ) {
			$user = new WP_User( $order->user_id );

			// Remove old role
            $user->remove_role( 'customer' ); 

            // Add new role
            $user->add_role( 'premium_member' );

WooCommerce Subscriptions Ready

The latest version of the WooCommerce Subscriptions plugin is included (unlicensed) and once you have a Starter Site in hand, you can easily put in your own pricing, package features, graphics, etc.

Should you not wish to use WooCommerce Subscriptions, you can simply turn the Listing Subscription packages into standard MyListing packages in just a few clicks and be on your way.

  • Custom WooCommerce Endpoint Design
  • WooCoommerce Subscriptions Setup
  • Listing Subscription Packages
  • Listing Subscription Switching
  • Stripe Payment Gateway Plugin
  •  and more…

Note: The latest version of the WooCommerce Subscriptions plugin is included, but you need to purchase your own license or sign up for a qualifying MyListing Website Care plan if you wish to receive future plugin updates and support.

Premium Assets

Get licensed, premium plugins, valued at over $600 in the first year alone, making a Starter Site investment a no-brainer.

You will get licensed copies of all the plugins listed below, with the exception of the WooCommerce Subscriptions and WooCommerce Product Vendors, and the licenses are yours to keep, for as long as the plugins remain on your website.

  • Admin 2020 ($39)
  • Crocoblock Suite ($130)
  • Elementor Pro ($49)
  • Perfmatters ($25)
  • Permalink Manager Pro ($45)
  • SEOPress Pro ($39)
  • WooCommerce Product Vendors ($79) 
  • WooCommerce Subscriptions ($199)
  • WP Rocket ($49)