{"id":291941,"date":"2026-05-10T03:25:31","date_gmt":"2026-05-10T03:25:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/precise-expressions-returns-exchanges-portal-lite\/"},"modified":"2026-05-10T03:25:07","modified_gmt":"2026-05-10T03:25:07","slug":"precise-expressions-returns-exchanges-portal-lite","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/precise-expressions-returns-exchanges-portal-lite\/","author":23450623,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"trunk","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Precise Expressions - Returns & Exchanges Portal Lite","header_author":"Precise Expressions","header_description":"WooCommerce returns and exchanges portal with guest lookup, status tracking, and admin workflow.","assets_banners_color":"c6e6fd","last_updated":"2026-05-10 03:25:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"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":"preciseexpressions","date":"2026-05-10 03:49:32"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3527515,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3527515,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3527515,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3527515,"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":3527515,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3527515,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3527515,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3527515,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3527515,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3527515,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"<strong>Admin Settings Page<\/strong> Configure the return request settings from one central admin screen. Define the list of return reasons customers can choose from, and control when customers are allowed to submit a return request based on order status and eligibility rules.","2":"<strong>Admin Status Management<\/strong> Review and manage each RMA request through its current status. Admins can approve, decline, mark items as received, or continue reviewing the request as part of the return workflow.","3":"<strong>Customer Return Portal<\/strong> Customers can securely look up their order and start a return request when the order is eligible for returns.","4":"<strong>Customer Return Request Form<\/strong> Example of a populated return request form, showing how customers select items, choose a return reason, and provide supporting details before submitting their request.","5":"<strong>Admin RMA Details Page<\/strong> View the full details of an individual RMA request, including customer information, requested items, return reason, comments, and current status.","6":"<strong>Admin RMA Action Area<\/strong> The lower section of the RMA details page, where admins can review supporting information, update the request status, and manage the return workflow."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[18057,45369,55969,170592,286],"plugin_category":[45],"plugin_contributors":[256384],"plugin_business_model":[],"class_list":["post-291941","plugin","type-plugin","status-publish","hentry","plugin_tags-customer-portal","plugin_tags-order-tracking","plugin_tags-returns","plugin_tags-rma","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-preciseexpressions","plugin_committers-preciseexpressions"],"banners":{"banner":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/banner-772x250.png?rev=3527515","banner_2x":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/banner-1544x500.png?rev=3527515","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/icon-128x128.png?rev=3527515","icon_2x":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/icon-256x256.png?rev=3527515","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/screenshot-1.png?rev=3527515","caption":"<strong>Admin Settings Page<\/strong> Configure the return request settings from one central admin screen. Define the list of return reasons customers can choose from, and control when customers are allowed to submit a return request based on order status and eligibility rules."},{"src":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/screenshot-2.png?rev=3527515","caption":"<strong>Admin Status Management<\/strong> Review and manage each RMA request through its current status. Admins can approve, decline, mark items as received, or continue reviewing the request as part of the return workflow."},{"src":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/screenshot-3.png?rev=3527515","caption":"<strong>Customer Return Portal<\/strong> Customers can securely look up their order and start a return request when the order is eligible for returns."},{"src":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/screenshot-4.png?rev=3527515","caption":"<strong>Customer Return Request Form<\/strong> Example of a populated return request form, showing how customers select items, choose a return reason, and provide supporting details before submitting their request."},{"src":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/screenshot-5.png?rev=3527515","caption":"<strong>Admin RMA Details Page<\/strong> View the full details of an individual RMA request, including customer information, requested items, return reason, comments, and current status."},{"src":"https:\/\/ps.w.org\/precise-expressions-returns-exchanges-portal-lite\/assets\/screenshot-6.png?rev=3527515","caption":"<strong>Admin RMA Action Area<\/strong> The lower section of the RMA details page, where admins can review supporting information, update the request status, and manage the return workflow."}],"raw_content":"<!--section=description-->\n<p>Precise Expressions - Returns &amp; Exchanges Portal (Lite) adds a customer-facing returns portal shortcode and an admin RMA workflow for WooCommerce stores.<\/p>\n\n<p>Lite is focused on return requests. Customers can look up an order, submit a return request, track status, and follow the return workflow from approval through completion.<\/p>\n\n<p>Key points:<\/p>\n\n<ul>\n<li>HPOS-aligned custom tables for RMA data.<\/li>\n<li>Guest and logged-in lookup by order number and billing email.<\/li>\n<li>Item-level duplicate prevention for active return pipeline statuses.<\/li>\n<li>Portal status tracking with secure deep-link support in approval email.<\/li>\n<li>Admin list and detail screens under WooCommerce &gt; Return &amp; Exchange.<\/li>\n<li>No external SaaS calls, no tracking, and no upsell content in transactional emails.<\/li>\n<\/ul>\n\n<h3>What Lite includes<\/h3>\n\n<p>This plugin is designed for stores that want a structured returns workflow without requiring customer accounts.<\/p>\n\n<p>Customers can:<\/p>\n\n<ul>\n<li>look up an order using order number and billing email<\/li>\n<li>submit a return request from the front-end portal<\/li>\n<li>upload images or supporting files with the request<\/li>\n<li>track the request status from the portal<\/li>\n<li>follow the approved return flow and mark the return as sent<\/li>\n<\/ul>\n\n<p>Store admins can:<\/p>\n\n<ul>\n<li>review incoming return requests<\/li>\n<li>approve or decline requests<\/li>\n<li>move requests through the return workflow<\/li>\n<li>view request history, uploaded files, and customer details<\/li>\n<li>manage return operations from WooCommerce &gt; Return &amp; Exchange<\/li>\n<\/ul>\n\n<h3>Upgrade to Pro<\/h3>\n\n<p>Returns &amp; Exchanges Portal Pro adds advanced customer service workflows for stores that need more than standard returns.<\/p>\n\n<p>Pro features include:<\/p>\n\n<ul>\n<li>exchange requests<\/li>\n<li>order cancellation requests<\/li>\n<li>approval-gated replacement purchase flow<\/li>\n<li>linked replacement orders for exchanges<\/li>\n<li>expanded admin workflow controls<\/li>\n<li>additional Pro-only settings and workflow automation<\/li>\n<\/ul>\n\n<p>Lite is ideal if you only need a structured returns portal.\nPro is designed for stores that also need exchanges and cancellation handling.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the WordPress Plugins screen.<\/li>\n<li>Create a page and add shortcode <code>[pe_returns_portal]<\/code>.<\/li>\n<li>Configure settings in WooCommerce &gt; Return &amp; Exchange &gt; Settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20included%20in%20lite%3F\"><h3>What is included in Lite?<\/h3><\/dt>\n<dd><p>Lite supports customer return requests, guest and logged-in order lookup, status tracking, duplicate prevention, uploaded file support, and an admin returns workflow.<\/p><\/dd>\n<dt id=\"what%20does%20pro%20add%3F\"><h3>What does Pro add?<\/h3><\/dt>\n<dd><p>Pro adds exchange requests, order cancellation requests, and advanced workflow handling for replacement purchases and linked exchange orders.<\/p><\/dd>\n<dt id=\"is%20customer%20email%20exposed%20in%20portal%20links%3F\"><h3>Is customer email exposed in portal links?<\/h3><\/dt>\n<dd><p>No. Secure links use a signed, time-limited token and never include raw email addresses.<\/p><\/dd>\n<dt id=\"where%20is%20rma%20data%20stored%3F\"><h3>Where is RMA data stored?<\/h3><\/dt>\n<dd><p>RMA data is stored in dedicated plugin tables:<\/p>\n\n<ul>\n<li><code>{prefix}pe_rma<\/code><\/li>\n<li><code>{prefix}pe_rma_items<\/code><\/li>\n<li><code>{prefix}pe_rma_files<\/code><\/li>\n<\/ul><\/dd>\n<dt id=\"does%20lite%20require%20a%20third-party%20service%3F\"><h3>Does Lite require a third-party service?<\/h3><\/dt>\n<dd><p>No. Lite does not rely on an external SaaS platform for core functionality.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added duplicate and over-quantity prevention for item return requests.<\/li>\n<li>Added active pipeline visibility and item lockout in portal.<\/li>\n<li>Added secure approved-email deep-link button.<\/li>\n<li>Added cancelled status support and customer cancellation of an existing return request.<\/li>\n<li>Added status color highlights for completed and declined states.<\/li>\n<li>Updated admin date display formatting for created and updated columns.<\/li>\n<\/ul>","raw_excerpt":"WooCommerce returns portal with guest lookup, status tracking, and admin workflow. Upgrade to Pro for exchanges and cancellation requests.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/291941","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=291941"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/preciseexpressions"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=291941"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=291941"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=291941"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=291941"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=291941"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=291941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}