{"id":393094,"date":"2026-10-31T07:44:01","date_gmt":"2026-10-31T07:44:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wexlab-client-portal\/"},"modified":"2026-10-31T07:43:28","modified_gmt":"2026-10-31T07:43:28","slug":"wexlab-client-portal","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/wexlab-client-portal\/","author":23533115,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.2","stable_tag":"1.2.2","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Wexlab Client Portal","header_author":"WP Expert Lab","header_description":"Manage client projects, milestones and progress with a private frontend client dashboard.","assets_banners_color":"","last_updated":"2026-10-31 07:43:28","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":127,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.2":{"tag":"1.2.2","author":"wpexpertlab","date":"2026-10-31 07:43:28","revision":3776440}},"upgrade_notice":{"1.2.2":"<p>Maintenance release. No data changes.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3776448,"resolution":"1","location":"assets","locale":"","width":1202,"height":841},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3776448,"resolution":"2","location":"assets","locale":"","width":1261,"height":842},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3776448,"resolution":"3","location":"assets","locale":"","width":1235,"height":849},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3776448,"resolution":"4","location":"assets","locale":"","width":1379,"height":438}},"screenshots":{"1":"The client dashboard with project statistics and the milestone timeline.","2":"A milestone with Approve and Request Changes actions.","3":"The admin project screen with client and status settings.","4":"The admin milestone screen showing the client's review comment."}},"plugin_section":[],"plugin_tags":[272328,226063,17989,157760,7135],"plugin_category":[],"plugin_contributors":[272768],"plugin_business_model":[],"class_list":["post-393094","plugin","type-plugin","status-publish","hentry","plugin_tags-client-approval","plugin_tags-client-dashboard","plugin_tags-client-portal","plugin_tags-milestones","plugin_tags-project-management","plugin_contributors-wpexpertlab","plugin_committers-wpexpertlab"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/wexlab-client-portal.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/wexlab-client-portal\/assets\/screenshot-1.png?rev=3776448","caption":"The client dashboard with project statistics and the milestone timeline."},{"src":"https:\/\/ps.w.org\/wexlab-client-portal\/assets\/screenshot-2.png?rev=3776448","caption":"A milestone with Approve and Request Changes actions."},{"src":"https:\/\/ps.w.org\/wexlab-client-portal\/assets\/screenshot-3.png?rev=3776448","caption":"The admin project screen with client and status settings."},{"src":"https:\/\/ps.w.org\/wexlab-client-portal\/assets\/screenshot-4.png?rev=3776448","caption":"The admin milestone screen showing the client's review comment."}],"raw_content":"<!--section=description-->\n<p><strong>Wexlab Client Portal<\/strong> is an independent plugin by WP Expert Lab for freelancers and agencies who want clients to follow project progress and give feedback in one place, instead of long email threads.<\/p>\n\n<p>Clients log in with a normal WordPress account, see only the projects assigned to them, and approve each milestone or ask for changes with a comment. You see their decision and comment directly in the WordPress admin, and you are notified by email.<\/p>\n\n<h4>For the client<\/h4>\n\n<ul>\n<li>Private frontend dashboard showing only their own projects<\/li>\n<li>Project status, due dates and a milestone timeline with progress<\/li>\n<li>Approve a milestone, or request changes with a comment<\/li>\n<li>Submit a new project request from the portal<\/li>\n<li>Email notification when a request is accepted<\/li>\n<\/ul>\n\n<h4>For you<\/h4>\n\n<ul>\n<li>Create projects and assign each one to a client<\/li>\n<li>Add milestones to a project, each with a status and a due date<\/li>\n<li>See the client's review status, reviewer and comment on every milestone<\/li>\n<li>Review incoming project requests and accept them, which creates the project and assigns it to the client<\/li>\n<li>Email notification when a client submits a request or reviews a milestone<\/li>\n<li>The project is marked Completed automatically once every milestone is approved or completed<\/li>\n<\/ul>\n\n<h4>How clients log in<\/h4>\n\n<p>The plugin adds a \"Client\" user role. Clients sign in through the standard WordPress login page; there is no separate login system and no public registration. You create each client's user account and assign the Client role yourself, so only people you invite can access the portal.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it from the Plugins screen, then activate it.<\/li>\n<li>Create a page and add the shortcode <code>[wexlab_client_portal]<\/code>. This is your client dashboard.<\/li>\n<li>Go to Users, add a user for your client and choose the role \"Client\".<\/li>\n<li>Go to Client Portal in the admin menu, create a project and assign it to that client.<\/li>\n<li>Add milestones to the project, each linked to the project and given a status and due date.<\/li>\n<li>Send your client the link to the portal page. They log in and see their project.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20clients%20register%20themselves%3F\"><h3>Can clients register themselves?<\/h3><\/dt>\n<dd><p>No. You create client accounts and assign the Client role, so access stays limited to people you invite.<\/p><\/dd>\n<dt id=\"does%20a%20client%20see%20other%20clients%27%20projects%3F\"><h3>Does a client see other clients' projects?<\/h3><\/dt>\n<dd><p>No. A client only sees projects assigned to their own account, and can only review milestones that belong to those projects.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20to%20an%20external%20service%3F\"><h3>Does the plugin send data to an external service?<\/h3><\/dt>\n<dd><p>No. Everything is stored in your own WordPress database. Email notifications use WordPress's built-in <code>wp_mail()<\/code>, so any SMTP plugin you already use will work.<\/p><\/dd>\n<dt id=\"who%20receives%20the%20email%20notifications%3F\"><h3>Who receives the email notifications?<\/h3><\/dt>\n<dd><p>Administrators are emailed when a client submits a project request or reviews a milestone. The client is emailed when you accept their request.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Projects, milestones and requests are intentionally kept, so a client's work is never deleted by accident. Remove them from the admin if you no longer need them.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>A separate Pro version is available on our website. Do not run both at the same time; the free plugin shows a notice if both are active.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Prepared for the WordPress.org directory: renamed internal prefixes, removed unused disabled code, and tightened output escaping.<\/li>\n<li>Removed the \"Powered by\" footer; the dashboard now shows your site name.<\/li>\n<li>The plugin no longer deactivates any other plugin; it only shows a notice if the Pro edition is also active.<\/li>\n<li>Renamed internal post types, meta keys and the Client role to a longer, unique prefix.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Client milestone review with approve and request-changes actions.<\/li>\n<li>Automatic project completion when all milestones are approved.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Project requests and request approval.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Give clients a private dashboard to track projects, approve milestones or request changes, while you manage everything from WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/393094","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=393094"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpexpertlab"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=393094"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=393094"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=393094"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=393094"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=393094"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=393094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}