MyListing Club

Show Content Based On Role

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

Overview

Our Show Content Based On Role code snippet easily hides elements unless the users of your MyListing website hold a certain role.

Implementation

  1. Grab the code snippet.
  2. Follow the provided instructions.
  3. Save your changes.
				
					//// INSTRUCTIONS:
//// 1. Copy and paste the code snippet below into the child theme's functions.php file.
//// NOTE: You can edit the functions.php file from your WordPress dashboard (Appearance > Theme Editor) or via FTP.
//// 2. Change the 'role_A' and "role_B' entries to match the roles of users you want to allow to see the content.
//// 3. Add the 'showbyrole' CSS class to any elements on your website you wish to filter.


//// NOTE: If you wish to add more roles to the snippet, see the examples below.


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

// SHOW CONTENT BASED ON ROLE
add_action('init','show_content_by_role_create_the_css');

function show_content_by_role_create_the_css(){

$user = wp_get_current_user();

if(! in_array('role_A', $user->roles) & ! in_array('role_B', $user->roles)) {

add_action( 'wp_head', function () {

echo '<style type="text/css">.showbyrole { display: none !important;} 

</style>';
});

}
}
				
			

3 Roles

				
					if(! in_array('role_A', $user->roles) & ! in_array('role_B', $user->roles) & ! in_array('role_C', $user->roles)) {
				
			

4 Roles

				
					if(! in_array('role_A', $user->roles) & ! in_array('role_B', $user->roles) & ! in_array('role_C', $user->roles) & ! in_array('role_D', $user->roles)) {
				
			

Example: WooCommerce Product Vendors

The following code snippet will hide the WooCommerce Product Vendors ‘Vendor Dashboard’ endpoint (i.e. menu item), for all roles except the ‘Vendor Admin’ and ‘Vendor Manager’ roles.

For more information, check out our Build a Marketplace with MyListing and WooCommerce Product Vendors guide to see how to easily create an additional revenue stream for your website.

				
					//// INSTRUCTIONS:
//// 1. Copy and paste the code snippet below into the child theme's functions.php file.
//// NOTE: You can edit the functions.php file from your WordPress dashboard (Appearance > Theme Editor) or via FTP.
//// 2. Add the 'showbyrole' CSS class to any elements on your website you wish to filter.

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

// SHOW CONTENT BASED ON ROLE
add_action('init','show_content_by_role_create_the_css');

function show_content_by_role_create_the_css(){

$user = wp_get_current_user();

if(! in_array('wc_product_vendors_admin_vendor', $user->roles) & ! in_array('wc_product_vendors_manager_vendor', $user->roles)) {

add_action( 'wp_head', function () {

echo '<style type="text/css">.showbyrole { display: none !important;} 

</style>';
});

}
}