{"id":368922,"date":"2026-09-15T10:05:19","date_gmt":"2026-09-15T10:05:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wexlab-client-review\/"},"modified":"2026-09-15T10:02:14","modified_gmt":"2026-09-15T10:02:14","slug":"wexlab-client-review","status":"publish","type":"plugin","link":"https:\/\/bn-in.wordpress.org\/plugins\/wexlab-client-review\/","author":23533115,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"trunk","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Wexlab Client Review","header_author":"WP Expert Lab","header_description":"Let invited clients review WordPress page changes, leave comments, approve individual changes, and request revisions without WordPress access.","assets_banners_color":"0a6349","last_updated":"2026-09-15 10:02:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpexpertlab.com\/wordpress-plugins\/","header_author_uri":"https:\/\/wpexpertlab.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":25,"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":"wpexpertlab","date":"2026-09-15 10:04:42","revision":3696697}},"upgrade_notice":{"1.0.1":"<p>Security hardening for database queries. Now requires WordPress 6.2 or later.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3696694,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3696694,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3696694,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Client Review dashboard listing all review requests and their progress.","2":"The Add Review screen used to invite a client by email.","3":"The client-facing review bar shown on the live page, with pinned comments.","4":"The developer's manage screen showing client comments and status controls."}},"plugin_section":[],"plugin_tags":[278278,272328,156887,147509,280835],"plugin_category":[],"plugin_contributors":[272768],"plugin_business_model":[],"class_list":["post-368922","plugin","type-plugin","status-publish","hentry","plugin_tags-change-requests","plugin_tags-client-approval","plugin_tags-client-review","plugin_tags-website-feedback","plugin_tags-wordpress-workflow","plugin_contributors-wpexpertlab","plugin_committers-wpexpertlab"],"banners":{"banner":"https:\/\/ps.w.org\/wexlab-client-review\/assets\/banner-772x250.png?rev=3696694","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wexlab-client-review\/assets\/icon-128x128.png?rev=3696694","icon_2x":"https:\/\/ps.w.org\/wexlab-client-review\/assets\/icon-256x256.png?rev=3696694","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Wexlab Client Review<\/strong> creates a simple client-to-developer review workflow directly on your live WordPress pages \u2014 no client login, no extra software, no email back-and-forth needed to explain where a change should go.<\/p>\n\n<h4>For the developer<\/h4>\n\n<ol>\n<li>Go to Client Review &gt; Add Review in the WordPress admin.<\/li>\n<li>Enter the client's name, email, and the page URL to review.<\/li>\n<li>The plugin emails the client a secure review link automatically.<\/li>\n<li>See the client's comments, their exact position on the page, and their status right in your WordPress dashboard.<\/li>\n<li>Mark each item In Progress or Ready for Review as you complete it, then request another client review.<\/li>\n<\/ol>\n\n<h4>For the client<\/h4>\n\n<ol>\n<li>Open the secure review link from the email \u2014 no WordPress account required.<\/li>\n<li>Browse the real, live page exactly as a visitor would see it.<\/li>\n<li>Click \"Add Comment\" and leave a note pinned to the exact spot on the page.<\/li>\n<li>Submit the changes for the developer to work on.<\/li>\n<li>Once items are marked ready, approve each one individually or request further changes.<\/li>\n<\/ol>\n\n<h4>Free vs Pro<\/h4>\n\n<p>The free version included here supports up to 20 comments per review cycle, one review at a time, and core approve\/request-changes functionality. A separate Pro version, sold on our website, adds unlimited comments, a login-free client portal, white-label branding, custom email templates, activity history, and CSV export. The free version is fully functional on its own and does not require the Pro version to work.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Review data (client name, email, page URL, comments) is stored only in the site's own WordPress database. The plugin does not send review data to any external service.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/wexlab-client-review<\/code> directory, or install the plugin through the WordPress Plugins screen directly.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to the new \"Client Review\" menu in your WordPress admin.<\/li>\n<li>Click \"Add Review\", enter your client's details and the page URL, and send the request.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20client%20need%20a%20wordpress%20account%3F\"><h3>Does the client need a WordPress account?<\/h3><\/dt>\n<dd><p>No. The client only needs the secure, unique review link sent to their email. They never log into WordPress.<\/p><\/dd>\n<dt id=\"how%20are%20review%20links%20secured%3F\"><h3>How are review links secured?<\/h3><\/dt>\n<dd><p>Each review is assigned a random, unique token used in the review link. Only someone with that exact link can view and comment on that specific review.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20to%20any%20external%20server%3F\"><h3>Does this plugin send data to any external server?<\/h3><\/dt>\n<dd><p>No. All review data is stored in your site's own WordPress database. Email notifications are sent using WordPress's native <code>wp_mail()<\/code> function, using your site's own mail configuration.<\/p><\/dd>\n<dt id=\"does%20this%20require%20an%20smtp%20plugin%3F\"><h3>Does this require an SMTP plugin?<\/h3><\/dt>\n<dd><p>No, <code>wp_mail()<\/code> works out of the box. If your host does not reliably deliver mail, you can optionally install an SMTP plugin \u2014 Wexlab Client Review will automatically use it since it relies on WordPress's standard mail function.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Uninstalling the plugin permanently removes all review requests and comments stored by the plugin, along with its settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: all custom-table queries now use <code>$wpdb-&gt;prepare()<\/code> with the <code>%i<\/code> identifier placeholder for table names (requires WordPress 6.2+).<\/li>\n<li>Hardening: documented, reviewed justifications added for direct custom-table queries and read-only GET parameters flagged by the plugin checker.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Let invited clients review a WordPress page, leave change requests, and approve individual changes without WordPress dashboard access.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=368922"}],"author":[{"embeddable":true,"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpexpertlab"}],"wp:attachment":[{"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368922"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368922"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368922"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368922"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368922"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bn-in.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}