Description
Wholesale buyers, public sector customers, resellers, members, staff… Some users need pages that others should not see. GT3D – Role-Based Content does it without any settings screen: everything happens in the page editor.
Reserve a page in two clicks
Open a page, find the “Role access” panel in the sidebar and tick the roles allowed to see it. That’s it. Tick nothing and the page stays public.
- People without access are sent to an “Access denied” page, created for you when the plugin is activated. Edit it like any page to match your site.
- Write a refusal message for each page, or keep the default one.
- Visitors who are not logged in get a login button that brings them back to the page they wanted.
- Nothing of the reserved page is sent to people who cannot open it: not the content, not the title.
Menus update themselves
Links to a reserved page disappear for everyone who cannot open it, in:
- classic menus (Appearance > Menus), including menus displayed by most page builders and mega menu plugins;
- the Navigation block of block themes, with its submenus;
- automatic page lists (Page List block, Pages widget);
- custom links that point to the page address.
WooCommerce My Account menu
With WooCommerce, one more switch in the panel adds the page to the My Account menu, only for the roles that can open it. Choose where it goes: first, after any existing item, or just before “Log out”.
Restricted content inside a page
To hide only part of a page, use the “Restricted content” block or the [gt3d_restrict] shortcode. Choose who sees the content: only some roles, or everyone except some roles.
Already have the content in your page? Select the blocks, then choose Transform to > Restricted content, like you would with a Group. “Ungroup” removes the restriction and keeps the blocks.
Built for real sites
- Reserved pages are hidden from search engines, sitemaps (WordPress and Yoast SEO), site searches, archives, feeds and the REST API.
- Administrators always see everything, with a reminder in the admin bar.
- A “Reserved” view and an “Access” column in the pages list show what is reserved at a glance.
- Works with the block editor and the classic editor.
- Multisite ready: each site gets its own “Access denied” page, including sites created later.
- WooCommerce is optional. With WooCommerce: compatible with High-Performance Order Storage (HPOS) and the Cart and Checkout blocks.
- Translation ready. French translation included.
Privacy
The plugin does not send anything anywhere unless an administrator explicitly agrees. After activation, a welcome window on the “Access denied” page offers to share anonymous usage statistics; the box is unticked by default, and nothing is sent until it is ticked.
When sharing is on, a report is sent once a week to https://gt3dmakers.com (GT3D Makers, France). It contains:
- the versions of the plugin, WordPress, WooCommerce and PHP, the language of the site, whether it is a multisite, whether the theme is a block theme, and the family of the web server;
- which page builders, cache, SEO and role plugins are active (yes or no only);
- counts about the use of the plugin, such as the number of reserved pages, and the size of the site as ranges (for example “11-50 pages”).
It never contains the address of the site, email addresses, names, titles, content, IP addresses kept on the server, or anything about the visitors of the site. The site is identified by a random ID generated on the site, which cannot be traced back to it.
You can see exactly what is sent, and stop sharing at any time, in Settings > Role access. Stopping sharing also asks the server to delete the data received from your site.
External services
This plugin uses an external service to collect optional anonymous usage statistics to help improve the plugin.
Service: GT3D Telemetry Receiver
Provider: GT3D Makers
What Data is Sent
When telemetry is enabled (opt-in), the plugin sends the following anonymous data:
- WordPress version
- WooCommerce version (if applicable)
- PHP version
- This plugin version
- Website language and timezone
- Page builders in use (e.g., Gutenberg, Elementor, Divi)
- Cache plugins in use (e.g., WP Super Cache, W3 Total Cache)
- Anonymous installation ID (randomly generated, no personal data)
- Counts of specific features (e.g., number of reserved pages, restricted menu items)
No personal data is collected, including:
* Site URL or domain name
* Site IP address
* User names or email addresses
* Admin credentials
* Customer data
* Sensitive or private information
When Data is Sent
- Frequency: Approximately once every 6 hours when the plugin is active
- Conditions: Only after explicit user consent via the welcome dialog or settings page
- Protocol: Secure HTTPS encryption
- Endpoint:
https://gt3dmakers.com/wp-json/gt3d-telemetry/v1/report
Opting In and Out
- Default: Telemetry is disabled by default
- Enabling: Users must explicitly consent during plugin activation (welcome dialog)
- Settings: Users can enable or disable telemetry anytime in plugin settings
- Disabling: Unchecking the telemetry option stops all data transmission
Data Retention
- Anonymous data is retained for 180 days maximum
- After 180 days, data is automatically deleted
- Users can request immediate deletion of their data anytime (see Privacy Policy)
Terms of Service and Privacy Policy
For detailed information about how your data is used, protected, and your rights:
Terms of Service: https://gt3dmakers.com/terms-plugins/
Privacy Policy: https://gt3dmakers.com/privacy-plugins/
These documents cover:
* Your rights regarding data
* How data is protected
* GDPR and CCPA compliance
* Data deletion procedures
* Contact information for privacy requests
Blocks
This plugin provides 2 blocks.
- Access denied message Shows why the visitor cannot open a reserved page, with a login button for visitors who are not logged in.
- Restricted content Show the blocks inside only to the user roles you choose.
Installation
- Upload the plugin through Plugins > Add New > Upload, or install it from the plugin directory.
- Activate it. An “Access denied” page is created.
- Edit a page and open the “Role access” panel in the sidebar.
FAQ
-
Do I need WooCommerce?
-
No. WooCommerce is only needed to add links to its My Account menu.
-
I deleted the “Access denied” page
-
A notice in the dashboard and in the pages list offers to create it again. Until then, visitors are sent to the login page and logged-in users to the home page.
-
How do I test what a customer sees?
-
Administrators always see reserved pages. Open the page in a private browser window, or log in with an account that has the role you want to test.
-
Which content types can be reserved?
-
Pages and posts. Developers can add other post types with the
gt3d_ra_protectable_post_typesfilter. -
How do I use the shortcode?
-
[gt3d_restrict roles=”wholesale,shop_manager”]Content for these roles[/gt3d_restrict]
roles: comma-separated role slugs. Also acceptslogged_in(any logged-in user) andguest(visitors who are not logged in).mode:show(default, only these roles) orhide(everyone except these roles).message: text shown to everyone else.login_link:yesto add a login link for visitors.
The slug of a role is shown by most role editor plugins. Default WordPress roles are
administrator,editor,author,contributorandsubscriber; WooCommerce addscustomerandshop_manager. -
Menus depend on the logged-in user. Make sure your page cache does not serve cached pages to logged-in users (this is the default for most caching plugins and hosts).
-
What happens when I delete the plugin?
-
Access rules and the “Access denied” page are kept, so you can reinstall the plugin or switch between the free and Pro versions without losing anything. Pages are no longer protected while the plugin is not active.
To remove everything, add
define( 'GT3D_RA_REMOVE_ALL_DATA', true );to wp-config.php before deleting the plugin.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“GT3D – Role-Based Content” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “GT3D – Role-Based Content” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.1
- Fixed a fatal error on activation caused by an undefined constant.
- Minor hardening of the role preview styles loading.
1.0.0
- First release.