{"id":272669,"date":"2026-01-17T12:35:57","date_gmt":"2026-01-17T12:35:57","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/role-membership-access-for-woocommerce\/"},"modified":"2026-01-17T12:48:05","modified_gmt":"2026-01-17T12:48:05","slug":"role-membership-access-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/pl.wordpress.org\/plugins\/role-membership-access-for-woocommerce\/","author":23432604,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Role Membership Access for WooCommerce","header_author":"jrtwebsolutions","header_description":"Restrict WooCommerce products, categories, and checkout access based on user roles for membership control.","assets_banners_color":"f3f0f9","last_updated":"2026-01-17 12:48:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.jrtwebsolutions.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":162,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"jrtwebsolutions","date":"2026-01-17 12:48:05"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3444832,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3444832,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3444832,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3444832,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3451814,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3451814,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3451814,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3451814,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3451814,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3451814,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"WooCommerce Settings \u2192 WooRole Access tab","2":"Category Allowed Roles field","3":"Product Access Mode and Allowed Roles","4":"Example blocked message above product title"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1912,1932,249594,1915,286],"plugin_category":[45,58],"plugin_contributors":[254174],"plugin_business_model":[],"class_list":["post-272669","plugin","type-plugin","status-publish","hentry","plugin_tags-access-control","plugin_tags-membership","plugin_tags-restrict-products","plugin_tags-roles","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-user-management","plugin_contributors-jrtwebsolutions","plugin_committers-jrtwebsolutions"],"banners":{"banner":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/banner-772x250.png?rev=3444832","banner_2x":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/banner-1544x500.png?rev=3444832","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/icon-128x128.png?rev=3444832","icon_2x":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/icon-256x256.png?rev=3444832","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/screenshot-1.png?rev=3451814","caption":"WooCommerce Settings \u2192 WooRole Access tab"},{"src":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/screenshot-2.png?rev=3451814","caption":"Category Allowed Roles field"},{"src":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/screenshot-3.png?rev=3451814","caption":"Product Access Mode and Allowed Roles"},{"src":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/screenshot-4.png?rev=3451814","caption":"Example blocked message above product title"},{"src":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/screenshot-5.png?rev=3451814","caption":""},{"src":"https:\/\/ps.w.org\/role-membership-access-for-woocommerce\/assets\/screenshot-6.png?rev=3451814","caption":""}],"raw_content":"<!--section=description-->\n<p>Role Membership Access for WooCommerce lets you restrict WooCommerce product visibility, purchasing, add-to-cart, cart, and checkout access based on WordPress user roles.<\/p>\n\n<p>You can:\n* Restrict access using <strong>Category Allowed Roles<\/strong> (Products \u2192 Categories).\n* Restrict access using <strong>Product Allowed Roles<\/strong> with <strong>Access Mode<\/strong> (Products \u2192 Edit Product).\n* Prevent unauthorized users from:\n  - Viewing restricted products in the shop\/catalog (theme dependent, hardened via filters)\n  - Adding restricted products to cart\n  - Purchasing restricted products\n  - Completing checkout if restricted products are in cart<\/p>\n\n<p>The plugin provides:\n* A WooCommerce Settings tab: WooCommerce \u2192 Settings \u2192 WooRole Access\n* Per-category role restrictions\n* Per-product role restrictions with Access Mode (Inherit \/ Manual \/ Combine)\n* Multi-category conflict strategy options (Union \/ Intersection \/ Priority Category)\n* Optional redirect for unauthorized users\n* A reliable inline notice shown above product title (supports block themes)<\/p>\n\n<h3>Setup \/ Configuration<\/h3>\n\n<h4>Step 1: Configure global plugin settings<\/h4>\n\n<p>Go to:\nWooCommerce \u2192 Settings \u2192 WooRole Access<\/p>\n\n<p>Available settings:\n1. Restriction Message\n   - The message displayed when a user is blocked.\n2. Redirect Unauthorized Users\n   - If enabled, blocked users will be redirected to the URL below.\n3. Redirect URL\n   - Recommended: My Account page or a custom \u201cJoin Membership\u201d page.\n4. Multi-Category Strategy\n   - Determines behavior when a product belongs to multiple restricted categories:\n     - Union (OR): allowed roles from any restricted category (recommended default)\n     - Intersection (AND): user must match all restricted categories\n     - Priority Category: use only the product\u2019s \u201cPrimary Category\u201d\n5. Default Primary Category (for Priority Strategy)\n   - Used as a default selection for products when Priority Strategy is enabled.<\/p>\n\n<h4>Step 2: Restrict categories (recommended first)<\/h4>\n\n<p>Go to:\nProducts \u2192 Categories \u2192 Add\/Edit Category<\/p>\n\n<p>Set:\nAllowed Roles (multi-select)<\/p>\n\n<p>Behavior:\n* If a category has Allowed Roles set, products in that category are restricted depending on their Product Access Mode.<\/p>\n\n<h4>Step 3: Restrict individual products (when needed)<\/h4>\n\n<p>Go to:\nProducts \u2192 Edit Product \u2192 Product data \u2192 General<\/p>\n\n<p>Fields:\n1. Access Mode\n   - Inherit from Categories (default)\n   - Manual Override\n   - Combine (Manual + Categories)\n2. Allowed Roles (Manual)\n   - Used only for Manual Override or Combine\n3. Primary Category (for Priority Strategy)\n   - Used only when global Multi-Category Strategy = Priority Category<\/p>\n\n<h3>How Access Mode Works<\/h3>\n\n<h4>Inherit from Categories<\/h4>\n\n<p>The product uses category Allowed Roles only.\n* If no categories have restrictions, product is unrestricted.<\/p>\n\n<h4>Manual Override<\/h4>\n\n<p>The product ignores category restrictions and uses Allowed Roles (Manual) only.<\/p>\n\n<h4>Combine (Manual + Categories)<\/h4>\n\n<p>The product is accessible if the user matches either:\n* Product manual roles OR\n* Category roles<\/p>\n\n<h3>Multi-Category Strategy (Conflict Handling)<\/h3>\n\n<p>When a product belongs to multiple categories with different Allowed Roles:<\/p>\n\n<p>1) Union (OR)\n- Allowed roles are combined from all restricted categories.\n- Prevents accidental lockouts. Recommended for most stores.<\/p>\n\n<p>2) Intersection (AND)\n- Allowed roles are the overlap of restricted category roles.\n- Can lock products if categories disagree (use carefully).<\/p>\n\n<p>3) Priority Category\n- Only one category drives access.\n- Select a Primary Category in product settings.\n- Optionally set a Default Primary Category globally to reduce per-product setup.<\/p>\n\n<h3>Blocking Behavior<\/h3>\n\n<p>If a user is not authorized:\n* Product may be hidden from catalog (theme dependent)\n* User cannot add to cart\n* User cannot proceed with checkout if restricted items are in the cart\n* Notice is injected above the product title (block-theme friendly)\n* Optional redirect can be enabled<\/p>\n\n<h3>Example: Restrict a Category to Subscriber Only<\/h3>\n\n<ol>\n<li>Go to Products \u2192 Categories<\/li>\n<li>Edit the category (example: \"Members Only\")<\/li>\n<li>In Allowed Roles, select: subscriber<\/li>\n<li>Save<\/li>\n<\/ol>\n\n<p>All products in that category will be restricted based on their Access Mode:\n- Inherit: category restriction applies\n- Manual: product manual roles apply instead\n- Combine: both apply<\/p>\n\n<h3>Example: Restrict a Product to Editor Only<\/h3>\n\n<ol>\n<li>Go to Products \u2192 Edit Product<\/li>\n<li>Product Data \u2192 General<\/li>\n<li>Access Mode: Manual Override<\/li>\n<li>Allowed Roles (Manual): editor<\/li>\n<li>Save<\/li>\n<\/ol>\n\n<p>Result: only users with editor role can view\/purchase.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>Role Membership Access for WooCommerce does not collect, store, or transmit any personal data.<\/p>\n\n<p>This plugin operates entirely within the WordPress and WooCommerce environment and uses existing user roles and product\/category settings to control access.<\/p>\n\n<p>No data is sent to external servers.\nNo tracking, analytics, or cookies are added by this plugin.\nNo personal or sensitive user information is stored outside of WordPress.<\/p>\n\n<p>If you choose to use optional external links (such as PayPal or Buy Me a Coffee), you will be redirected to third-party services that operate under their own privacy policies.<\/p>\n\n<p>For questions or concerns, please visit:\nhttps:\/\/www.jrtwebsolutions.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder <code>role-membership-access-for-woocommerce<\/code> to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin via Plugins \u2192 Installed Plugins.<\/li>\n<li>Ensure WooCommerce is installed and active.<\/li>\n<li>Configure plugin settings:\nWooCommerce \u2192 Settings \u2192 WooRole Access<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"i%20set%20roles%20but%20users%20can%20still%20access.%20why%3F\"><h3>I set roles but users can still access. Why?<\/h3><\/dt>\n<dd><p>Check:\n1. Product Access Mode\n   - If it is Inherit, manual roles won\u2019t apply unless Combine\/Manual.\n2. Multi-Category Strategy\n   - With Union, another category may allow the user role.\n3. Cache\n   - Clear page cache\/object cache.\n4. Variable products\n   - The plugin normalizes variation IDs to parent product, so it should work. Ensure you saved roles on parent product\/category.<\/p><\/dd>\n<dt id=\"i%20can%E2%80%99t%20see%20the%20message%2Fnotices%20on%20product%20page.\"><h3>I can\u2019t see the message\/notices on product page.<\/h3><\/dt>\n<dd><p>Some block themes don\u2019t render WooCommerce notices in classic locations.\nThis plugin renders its own inline notice above the product title and includes JS fallback.<\/p><\/dd>\n<dt id=\"does%20it%20support%20guests%20%28not%20logged%20in%29%3F\"><h3>Does it support guests (not logged in)?<\/h3><\/dt>\n<dd><p>Yes. Guests are treated as role \"guest\".\nIf a product is restricted to roles like subscriber\/editor, guests are blocked.<\/p><\/dd>\n<dt id=\"can%20administrators%20bypass%20restrictions%3F\"><h3>Can administrators bypass restrictions?<\/h3><\/dt>\n<dd><p>Yes, administrators are always allowed by default.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Category role restrictions<\/li>\n<li>Product role restrictions with Access Mode (Inherit\/Manual\/Combine)<\/li>\n<li>Cart + Checkout protections<\/li>\n<li>Multi-category strategy (Union\/Intersection\/Priority)<\/li>\n<li>Default primary category support<\/li>\n<li>Inline product notice + JS fallback (block theme friendly)<\/li>\n<\/ul>","raw_excerpt":"Restrict WooCommerce products, categories, and checkout access based on user roles for membership control.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/272669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=272669"}],"author":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jrtwebsolutions"}],"wp:attachment":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=272669"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=272669"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=272669"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=272669"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=272669"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=272669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}