[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fCdHSlQw61IUGFJUxbl2_cGU4u2aIpP-Xm7imxUM4XLo":3},{"slug":4,"display_name":4,"profile_url":5,"plugin_count":6,"total_installs":7,"avg_security_score":8,"avg_patch_time_days":9,"trust_score":10,"computed_at":11,"plugins":12},"jrtwebsolutions","https:\u002F\u002Fprofiles.wordpress.org\u002Fjrtwebsolutions\u002F",3,0,100,30,94,"2026-05-19T21:15:24.561Z",[13,34,49],{"slug":14,"name":15,"version":16,"author":4,"author_profile":5,"description":17,"short_description":18,"active_installs":7,"downloaded":19,"rating":7,"num_ratings":7,"last_updated":20,"tested_up_to":21,"requires_at_least":22,"requires_php":23,"tags":24,"homepage":30,"download_link":31,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":33},"jrt-ai-agent","JRT AI Agent","1.0.0","\u003Cp>JRT AI Agent adds a smart AI chat assistant to your WordPress website to help visitors get quick answers — without replacing real human support.\u003C\u002Fp>\n\u003Cp>The assistant is designed to be helpful, transparent, and safe. It only answers questions using the content you allow and clearly guides visitors to contact a real person when needed.\u003C\u002Fp>\n\u003Cp>The plugin works on any WordPress site. WooCommerce integration is optional.\u003C\u002Fp>\n\u003Cp>⚠️ \u003Cstrong>Important:\u003C\u002Fstrong> This plugin requires you to use your own AI provider API key (such as OpenAI or Google Gemini). The plugin does not include or provide free AI usage.\u003C\u002Fp>\n\u003Cp>Your AI provider account must have active billing or available credits for the chat assistant to function.\u003C\u002Fp>\n\u003Cp>Please see the \u003Cstrong>Third-Party Services\u003C\u002Fstrong> section below for full details.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>AI-powered chat assistant for WordPress\u003C\u002Fli>\n\u003Cli>Uses selected policy pages (privacy, terms, refunds, etc.)\u003C\u002Fli>\n\u003Cli>Optional site-wide content search\n\u003Cul>\n\u003Cli>Pages\u003C\u002Fli>\n\u003Cli>Posts\u003C\u002Fli>\n\u003Cli>Custom post types\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Optional WooCommerce product context\u003C\u002Fli>\n\u003Cli>Customizable chat UI:\n\u003Cul>\n\u003Cli>Chat title\u003C\u002Fli>\n\u003Cli>Input placeholder\u003C\u002Fli>\n\u003Cli>Floating icon (Dashicon or SVG)\u003C\u002Fli>\n\u003Cli>Footnote text\u003C\u002Fli>\n\u003Cli>Contact page link\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Privacy controls:\n\u003Cul>\n\u003Cli>Disable browser storage\u003C\u002Fli>\n\u003Cli>Limit or disable conversation memory\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Built-in rate limiting\u003C\u002Fli>\n\u003Cli>Clean floating chat interface\u003C\u002Fli>\n\u003Cli>Requires your own AI provider API key\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Col>\n\u003Cli>You create your own account with a supported AI provider (OpenAI or Google Gemini).\u003C\u002Fli>\n\u003Cli>You generate your own API key from that provider.\u003C\u002Fli>\n\u003Cli>You enter your API key in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> JRT AI Agent.\u003C\u002Fli>\n\u003Cli>Visitors open the chat and ask questions.\u003C\u002Fli>\n\u003Cli>Messages are securely sent to your configured AI provider.\u003C\u002Fli>\n\u003Cli>The AI responds using the content you have allowed.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>⚠️ If your AI provider account does not have available credits or active billing, the chat assistant will not work and may return an error.\u003C\u002Fp>\n\u003Cp>The plugin author does not provide API access and is not responsible for third-party service charges.\u003C\u002Fp>\n\u003Ch3>Quick Start\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Install and activate JRT AI Agent\u003C\u002Fli>\n\u003Cli>Create an account with OpenAI or Google Gemini\u003C\u002Fli>\n\u003Cli>Generate your own API key\u003C\u002Fli>\n\u003Cli>Ensure your AI account has available credits or active billing\u003C\u002Fli>\n\u003Cli>Go to Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> JRT AI Agent\u003C\u002Fli>\n\u003Cli>Enter your API key\u003C\u002Fli>\n\u003Cli>Select your policy pages (Privacy Policy, Terms, etc.)\u003C\u002Fli>\n\u003Cli>(Optional) Enable site content search\u003C\u002Fli>\n\u003Cli>Add the chat to any page using: [jrt_ai_agent_chat]\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>Add the chat assistant anywhere using this shortcode:\u003C\u002Fp>\n\u003Cp>[jrt_ai_agent_chat]\u003C\u002Fp>\n\u003Cp>The chat appears as a floating button on the page.\u003C\u002Fp>\n\u003Ch3>Third-Party Services\u003C\u002Fh3>\n\u003Cp>JRT AI Agent relies on external AI services to generate responses. The plugin does not function without configuring at least one supported provider.\u003C\u002Fp>\n\u003Cp>The site owner must supply their own API key and maintain their own account with the chosen provider.\u003C\u002Fp>\n\u003Ch3>OpenAI (ChatGPT)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service:\u003C\u002Fstrong> OpenAI API  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Purpose:\u003C\u002Fstrong> Generates AI-powered chat responses  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Account Required:\u003C\u002Fstrong> Yes — site owner must create their own OpenAI account  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Billing Required:\u003C\u002Fstrong> Yes — account must have available credits or active billing  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Sent:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>User-submitted chat messages  \u003C\u002Fli>\n\u003Cli>Optional recent conversation history (if enabled)  \u003C\u002Fli>\n\u003Cli>Selected site content used for grounding responses  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When Data Is Sent:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Only when a visitor submits a message via the chat widget  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service:\u003C\u002Fstrong>\u003Cbr \u002F>\nhttps:\u002F\u002Fopenai.com\u002Fterms  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy:\u003C\u002Fstrong>\u003Cbr \u002F>\nhttps:\u002F\u002Fopenai.com\u002Fprivacy  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Google Gemini\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service:\u003C\u002Fstrong> Google Generative Language API (Gemini)  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Purpose:\u003C\u002Fstrong> Generates AI-powered chat responses  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Account Required:\u003C\u002Fstrong> Yes — site owner must create their own Google Cloud account  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Billing Required:\u003C\u002Fstrong> May require billing depending on usage  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Sent:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>User-submitted chat messages  \u003C\u002Fli>\n\u003Cli>Optional recent conversation history (if enabled)  \u003C\u002Fli>\n\u003Cli>Selected site content used for grounding responses  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When Data Is Sent:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Only when a visitor submits a message via the chat widget  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service:\u003C\u002Fstrong>\u003Cbr \u002F>\nhttps:\u002F\u002Fpolicies.google.com\u002Fterms  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy:\u003C\u002Fstrong>\u003Cbr \u002F>\nhttps:\u002F\u002Fpolicies.google.com\u002Fprivacy  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>⚠️ The plugin author does not collect, store, or process AI usage data. All AI processing is performed by the configured third-party provider.\u003C\u002Fp>\n\u003Cp>Site owners are responsible for reviewing and complying with the terms, privacy policies, and billing requirements of the selected provider.\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>JRT AI Agent does not collect or store personal data by default.\u003C\u002Fp>\n\u003Cp>When enabled, chat messages are sent to the configured third-party AI provider solely for the purpose of generating responses.\u003C\u002Fp>\n\u003Cp>Conversation history can be disabled entirely. Browser storage is optional and can be turned off in settings.\u003C\u002Fp>\n\u003Cp>The site owner is responsible for informing users about AI-generated responses and third-party data processing in their own privacy policy.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support or custom development:\u003Cbr \u002F>\nhttps:\u002F\u002Fwww.jrtwebsolutions.com\u003C\u002Fp>\n","AI support chat widget grounded by your site content, with privacy mode and optional WooCommerce product context.",250,"2026-02-26T08:44:00.000Z","6.9.4","6.0","7.4",[25,26,27,28,29],"ai","chatbot","chatgpt","customer-support","gemini","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjrt-ai-agent.1.0.0.zip",null,"2026-04-16T10:56:18.058Z",{"slug":35,"name":36,"version":16,"author":4,"author_profile":5,"description":37,"short_description":38,"active_installs":7,"downloaded":39,"rating":7,"num_ratings":7,"last_updated":40,"tested_up_to":21,"requires_at_least":22,"requires_php":23,"tags":41,"homepage":30,"download_link":47,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":48},"jrt-commentshield","JRT CommentShield","\u003Cp>JRT CommentShield protects your WordPress comment section from spam and automated bot attacks using multiple intelligent protection layers.\u003C\u002Fp>\n\u003Cp>The plugin works silently in the background and does not require CAPTCHA or any interaction from your visitors. Legitimate users can comment normally while spam and bots are blocked automatically.\u003C\u002Fp>\n\u003Cp>JRT CommentShield combines proven anti-spam techniques such as honeypots, timing checks, rate limiting, and IP blocking with optional AI-powered spam analysis using ChatGPT.\u003C\u002Fp>\n\u003Cp>The plugin is lightweight, fast, and built using WordPress coding standards with a fully object-oriented architecture.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Protects the native WordPress comment form\u003C\u002Fli>\n\u003Cli>Blocks automated spam bots using honeypot detection\u003C\u002Fli>\n\u003Cli>Prevents rapid and repeated comment submissions (rate limiting)\u003C\u002Fli>\n\u003Cli>Optional IP address blocking\u003C\u002Fli>\n\u003Cli>Optional AI-based spam detection powered by ChatGPT\u003C\u002Fli>\n\u003Cli>AI can automatically:\n\u003Cul>\n\u003Cli>Allow comments\u003C\u002Fli>\n\u003Cli>Hold comments for moderation\u003C\u002Fli>\n\u003Cli>Mark comments as spam\u003C\u002Fli>\n\u003Cli>Move spam comments directly to Trash\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>No CAPTCHA required\u003C\u002Fli>\n\u003Cli>No impact on user experience\u003C\u002Fli>\n\u003Cli>Lightweight and performance-friendly\u003C\u002Fli>\n\u003Cli>Fully object-oriented and WordPress.org compliant\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>AI Spam Detection\u003C\u002Fh3>\n\u003Cp>AI Spam Detection is optional and disabled by default.\u003C\u002Fp>\n\u003Cp>When enabled, JRT CommentShield sends the comment text and post title to OpenAI (ChatGPT) for spam analysis.\u003C\u002Fp>\n\u003Cp>No email addresses or IP addresses are sent to OpenAI.\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin can optionally connect to OpenAI (ChatGPT) to help detect spam comments using AI.\u003C\u002Fp>\n\u003Cp>This external service is only used if you enable “AI Spam Detection” in the plugin settings.\u003C\u002Fp>\n\u003Ch4>What the service is used for\u003C\u002Fh4>\n\u003Cp>To analyze a comment and return a spam score and recommended action (allow, hold, spam, or trash).\u003C\u002Fp>\n\u003Ch4>What data is sent and when\u003C\u002Fh4>\n\u003Cp>When AI Spam Detection is enabled and a visitor submits a comment, the plugin sends:\u003Cbr \u002F>\n– The comment text\u003Cbr \u002F>\n– The post title (to help AI understand context)\u003Cbr \u002F>\n– A links count (number only)\u003C\u002Fp>\n\u003Cp>The plugin does NOT send:\u003Cbr \u002F>\n– Comment author email address\u003Cbr \u002F>\n– IP address\u003Cbr \u002F>\n– Site user data\u003C\u002Fp>\n\u003Ch4>Service provider\u003C\u002Fh4>\n\u003Cp>OpenAI\u003C\u002Fp>\n\u003Cp>Terms of use: https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fterms-of-use\u003Cbr \u002F>\nPrivacy policy: https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fprivacy-policy\u003C\u002Fp>\n","Smart and AI-powered anti-spam protection for WordPress comments. Blocks bots and spam automatically, with optional ChatGPT-based detection.",125,"2026-02-01T15:50:00.000Z",[42,43,44,45,46],"ai-spam","anti-spam","bot-protection","comment-spam","security","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjrt-commentshield.1.0.0.zip","2026-04-06T09:54:40.288Z",{"slug":50,"name":51,"version":16,"author":4,"author_profile":5,"description":52,"short_description":53,"active_installs":7,"downloaded":54,"rating":7,"num_ratings":7,"last_updated":55,"tested_up_to":21,"requires_at_least":56,"requires_php":57,"tags":58,"homepage":30,"download_link":64,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":48},"role-membership-access-for-woocommerce","Role Membership Access for WooCommerce","\u003Cp>Role Membership Access for WooCommerce lets you restrict WooCommerce product visibility, purchasing, add-to-cart, cart, and checkout access based on WordPress user roles.\u003C\u002Fp>\n\u003Cp>You can:\u003Cbr \u002F>\n* Restrict access using \u003Cstrong>Category Allowed Roles\u003C\u002Fstrong> (Products \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Categories).\u003Cbr \u002F>\n* Restrict access using \u003Cstrong>Product Allowed Roles\u003C\u002Fstrong> with \u003Cstrong>Access Mode\u003C\u002Fstrong> (Products \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Edit Product).\u003Cbr \u002F>\n* Prevent unauthorized users from:\u003Cbr \u002F>\n  – Viewing restricted products in the shop\u002Fcatalog (theme dependent, hardened via filters)\u003Cbr \u002F>\n  – Adding restricted products to cart\u003Cbr \u002F>\n  – Purchasing restricted products\u003Cbr \u002F>\n  – Completing checkout if restricted products are in cart\u003C\u002Fp>\n\u003Cp>The plugin provides:\u003Cbr \u002F>\n* A WooCommerce Settings tab: WooCommerce \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> WooRole Access\u003Cbr \u002F>\n* Per-category role restrictions\u003Cbr \u002F>\n* Per-product role restrictions with Access Mode (Inherit \u002F Manual \u002F Combine)\u003Cbr \u002F>\n* Multi-category conflict strategy options (Union \u002F Intersection \u002F Priority Category)\u003Cbr \u002F>\n* Optional redirect for unauthorized users\u003Cbr \u002F>\n* A reliable inline notice shown above product title (supports block themes)\u003C\u002Fp>\n\u003Ch3>Setup \u002F Configuration\u003C\u002Fh3>\n\u003Ch4>Step 1: Configure global plugin settings\u003C\u002Fh4>\n\u003Cp>Go to:\u003Cbr \u002F>\nWooCommerce \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> WooRole Access\u003C\u002Fp>\n\u003Cp>Available settings:\u003Cbr \u002F>\n1. Restriction Message\u003Cbr \u002F>\n   – The message displayed when a user is blocked.\u003Cbr \u002F>\n2. Redirect Unauthorized Users\u003Cbr \u002F>\n   – If enabled, blocked users will be redirected to the URL below.\u003Cbr \u002F>\n3. Redirect URL\u003Cbr \u002F>\n   – Recommended: My Account page or a custom “Join Membership” page.\u003Cbr \u002F>\n4. Multi-Category Strategy\u003Cbr \u002F>\n   – Determines behavior when a product belongs to multiple restricted categories:\u003Cbr \u002F>\n     – Union (OR): allowed roles from any restricted category (recommended default)\u003Cbr \u002F>\n     – Intersection (AND): user must match all restricted categories\u003Cbr \u002F>\n     – Priority Category: use only the product’s “Primary Category”\u003Cbr \u002F>\n5. Default Primary Category (for Priority Strategy)\u003Cbr \u002F>\n   – Used as a default selection for products when Priority Strategy is enabled.\u003C\u002Fp>\n\u003Ch4>Step 2: Restrict categories (recommended first)\u003C\u002Fh4>\n\u003Cp>Go to:\u003Cbr \u002F>\nProducts \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Categories \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Add\u002FEdit Category\u003C\u002Fp>\n\u003Cp>Set:\u003Cbr \u002F>\nAllowed Roles (multi-select)\u003C\u002Fp>\n\u003Cp>Behavior:\u003Cbr \u002F>\n* If a category has Allowed Roles set, products in that category are restricted depending on their Product Access Mode.\u003C\u002Fp>\n\u003Ch4>Step 3: Restrict individual products (when needed)\u003C\u002Fh4>\n\u003Cp>Go to:\u003Cbr \u002F>\nProducts \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Edit Product \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Product data \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> General\u003C\u002Fp>\n\u003Cp>Fields:\u003Cbr \u002F>\n1. Access Mode\u003Cbr \u002F>\n   – Inherit from Categories (default)\u003Cbr \u002F>\n   – Manual Override\u003Cbr \u002F>\n   – Combine (Manual + Categories)\u003Cbr \u002F>\n2. Allowed Roles (Manual)\u003Cbr \u002F>\n   – Used only for Manual Override or Combine\u003Cbr \u002F>\n3. Primary Category (for Priority Strategy)\u003Cbr \u002F>\n   – Used only when global Multi-Category Strategy = Priority Category\u003C\u002Fp>\n\u003Ch3>How Access Mode Works\u003C\u002Fh3>\n\u003Ch4>Inherit from Categories\u003C\u002Fh4>\n\u003Cp>The product uses category Allowed Roles only.\u003Cbr \u002F>\n* If no categories have restrictions, product is unrestricted.\u003C\u002Fp>\n\u003Ch4>Manual Override\u003C\u002Fh4>\n\u003Cp>The product ignores category restrictions and uses Allowed Roles (Manual) only.\u003C\u002Fp>\n\u003Ch4>Combine (Manual + Categories)\u003C\u002Fh4>\n\u003Cp>The product is accessible if the user matches either:\u003Cbr \u002F>\n* Product manual roles OR\u003Cbr \u002F>\n* Category roles\u003C\u002Fp>\n\u003Ch3>Multi-Category Strategy (Conflict Handling)\u003C\u002Fh3>\n\u003Cp>When a product belongs to multiple categories with different Allowed Roles:\u003C\u002Fp>\n\u003Cp>1) Union (OR)\u003Cbr \u002F>\n– Allowed roles are combined from all restricted categories.\u003Cbr \u002F>\n– Prevents accidental lockouts. Recommended for most stores.\u003C\u002Fp>\n\u003Cp>2) Intersection (AND)\u003Cbr \u002F>\n– Allowed roles are the overlap of restricted category roles.\u003Cbr \u002F>\n– Can lock products if categories disagree (use carefully).\u003C\u002Fp>\n\u003Cp>3) Priority Category\u003Cbr \u002F>\n– Only one category drives access.\u003Cbr \u002F>\n– Select a Primary Category in product settings.\u003Cbr \u002F>\n– Optionally set a Default Primary Category globally to reduce per-product setup.\u003C\u002Fp>\n\u003Ch3>Blocking Behavior\u003C\u002Fh3>\n\u003Cp>If a user is not authorized:\u003Cbr \u002F>\n* Product may be hidden from catalog (theme dependent)\u003Cbr \u002F>\n* User cannot add to cart\u003Cbr \u002F>\n* User cannot proceed with checkout if restricted items are in the cart\u003Cbr \u002F>\n* Notice is injected above the product title (block-theme friendly)\u003Cbr \u002F>\n* Optional redirect can be enabled\u003C\u002Fp>\n\u003Ch3>Example: Restrict a Category to Subscriber Only\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to Products \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Categories\u003C\u002Fli>\n\u003Cli>Edit the category (example: “Members Only”)\u003C\u002Fli>\n\u003Cli>In Allowed Roles, select: subscriber\u003C\u002Fli>\n\u003Cli>Save\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>All products in that category will be restricted based on their Access Mode:\u003Cbr \u002F>\n– Inherit: category restriction applies\u003Cbr \u002F>\n– Manual: product manual roles apply instead\u003Cbr \u002F>\n– Combine: both apply\u003C\u002Fp>\n\u003Ch3>Example: Restrict a Product to Editor Only\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to Products \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Edit Product\u003C\u002Fli>\n\u003Cli>Product Data \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> General\u003C\u002Fli>\n\u003Cli>Access Mode: Manual Override\u003C\u002Fli>\n\u003Cli>Allowed Roles (Manual): editor\u003C\u002Fli>\n\u003Cli>Save\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Result: only users with editor role can view\u002Fpurchase.\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>Role Membership Access for WooCommerce does not collect, store, or transmit any personal data.\u003C\u002Fp>\n\u003Cp>This plugin operates entirely within the WordPress and WooCommerce environment and uses existing user roles and product\u002Fcategory settings to control access.\u003C\u002Fp>\n\u003Cp>No data is sent to external servers.\u003Cbr \u002F>\nNo tracking, analytics, or cookies are added by this plugin.\u003Cbr \u002F>\nNo personal or sensitive user information is stored outside of WordPress.\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>For questions or concerns, please visit:\u003Cbr \u002F>\nhttps:\u002F\u002Fwww.jrtwebsolutions.com\u003C\u002Fp>\n","Restrict WooCommerce products, categories, and checkout access based on user roles for membership control.",151,"2026-01-17T12:48:00.000Z","6.2","8.0",[59,60,61,62,63],"access-control","membership","restrict-products","roles","woocommerce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frole-membership-access-for-woocommerce.1.0.0.zip"]