{"id":344131,"date":"2026-07-26T10:24:18","date_gmt":"2026-07-26T10:24:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/thevitaminshots-refunds-returns-for-woocommerce\/"},"modified":"2026-07-26T10:24:10","modified_gmt":"2026-07-26T10:24:10","slug":"thevitaminshots-refunds-returns-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/de.wordpress.org\/plugins\/thevitaminshots-refunds-returns-for-woocommerce\/","author":23499093,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.0.5","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"thevitaminshots Refunds & Returns for WooCommerce","header_author":"The Vitamin Shots","header_description":"Customer-facing refund and return request system for WooCommerce. Configurable refund percentages, two tax modes (WooCommerce built-in or CSV upload), photo\/video uploads, admin approval workflow, and full customization.","assets_banners_color":"","last_updated":"2026-07-26 10:24:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/thevitaminshots.com\/plugins\/","header_author_uri":"https:\/\/thevitaminshots.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":136,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"thevitaminshots","date":"2026-07-26 10:24:10"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3623208,"resolution":"256x256","location":"assets","locale":"","width":648,"height":648}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Admin dashboard \u2014 filter requests by status and type","2":"Settings \u2014 General tab","3":"Settings \u2014 Refund tab with configurable percentage and category exclusions","4":"Settings \u2014 Tax tab showing dual mode selector","5":"Customer-facing form \u2014 step 1, order verification","6":"Customer-facing form \u2014 step 2, refund calculation with breakdown","7":"Email notification example"}},"plugin_section":[],"plugin_tags":[273339,273340,170592,221712,221713],"plugin_category":[],"plugin_contributors":[272262],"plugin_business_model":[],"class_list":["post-344131","plugin","type-plugin","status-publish","hentry","plugin_tags-refund-request","plugin_tags-return-request","plugin_tags-rma","plugin_tags-woocommerce-refund","plugin_tags-woocommerce-returns","plugin_contributors-thevitaminshots","plugin_committers-thevitaminshots"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/thevitaminshots-refunds-returns-for-woocommerce\/assets\/icon-256x256.png?rev=3623208","icon_2x":"https:\/\/ps.w.org\/thevitaminshots-refunds-returns-for-woocommerce\/assets\/icon-256x256.png?rev=3623208","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>A complete refund and return request system for your WooCommerce store \u2014 free, GPL, and completely customizable.<\/strong><\/p>\n\n<p>Customers submit refund or return requests through a beautiful shortcode-based form. They enter their order number, get verified, describe the issue, and submit. You review the request in your WordPress admin, approve or deny it, and the customer gets notified automatically.<\/p>\n\n<p>Perfect for stores that want a proper RMA (Return Merchandise Authorization) flow without the complexity of enterprise-grade tools.<\/p>\n\n<h4>Why store owners love it<\/h4>\n\n<ul>\n<li><strong>Configurable refund percentage<\/strong> \u2014 100% full refunds, 50% partial refunds, or any value from 0 to 100<\/li>\n<li><strong>Two tax modes<\/strong> \u2014 use your existing WooCommerce tax settings, OR upload a US ZIP-based CSV for granular tax lookup<\/li>\n<li><strong>Order verification<\/strong> \u2014 customers must provide the order number AND matching email before they can submit<\/li>\n<li><strong>Excluded categories<\/strong> \u2014 auto-hide products in categories like \"Gift Cards\" or \"Bundles\" from refund forms<\/li>\n<li><strong>Return windows<\/strong> \u2014 enforce a \"returns must be requested within X days of purchase\" policy<\/li>\n<li><strong>Email notifications<\/strong> \u2014 customer gets a confirmation, admin gets alerted; both are configurable<\/li>\n<li><strong>Beautiful admin dashboard<\/strong> \u2014 filter by status\/type, view details, approve\/deny with one click<\/li>\n<li><strong>Fully translation-ready<\/strong> \u2014 text domain, <code>.pot<\/code> generation supported<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Two-in-one: <strong>refund requests<\/strong> AND <strong>return requests<\/strong> in the same plugin<\/li>\n<li>Requires WooCommerce (versions 5.6 to 8.x tested)<\/li>\n<li>Six tabs of settings: General, Refund, Return, Tax, Notifications, Advanced<\/li>\n<li>Customer form with three-step flow: Order lookup \u2192 Details \u2192 Submission confirmation<\/li>\n<li>Configurable refund percentage from 0% to 100%<\/li>\n<li>Two tax calculation modes: WooCommerce built-in tax rates OR CSV-based ZIP lookup<\/li>\n<li>Category exclusion (products in specific categories won't appear in refund forms)<\/li>\n<li>Return window enforcement (configurable 1-365 days)<\/li>\n<li>Optional evidence requirements: photo uploads and\/or video URL<\/li>\n<li>Six default return reasons (defective, wrong item, not as described, no longer needed, damaged in shipping, other) \u2014 pick which ones to offer<\/li>\n<li>Automatic customer confirmation email on submission<\/li>\n<li>Automatic customer status-update email when admin approves or denies<\/li>\n<li>Admin notification email routing<\/li>\n<li>Customizable form title, subtitle, and success message<\/li>\n<li>Accent color customization (matches your brand)<\/li>\n<li>Admin dashboard with filtering by status and type<\/li>\n<li>One-click approve\/deny buttons with optional admin notes<\/li>\n<li>WooCommerce order lookup by numeric ID or custom order number<\/li>\n<li>Lightweight: under 80 KB total<\/li>\n<li>Free and open-source under GPL v2<\/li>\n<\/ul>\n\n<h4>Use cases<\/h4>\n\n<ul>\n<li><strong>E-commerce stores<\/strong> \u2014 give customers a self-service refund\/return portal<\/li>\n<li><strong>Subscription businesses<\/strong> \u2014 handle first-time-only refund policies (100% for first order, X% for subsequent)<\/li>\n<li><strong>Digital goods stores<\/strong> \u2014 50% or 25% partial refund policies with clear documentation<\/li>\n<li><strong>Physical goods stores<\/strong> \u2014 full RMA workflow with photo\/video evidence<\/li>\n<li><strong>Multi-region US stores<\/strong> \u2014 precise per-ZIP tax refunds with CSV upload<\/li>\n<li><strong>International stores<\/strong> \u2014 use WooCommerce's built-in tax settings for automatic global tax handling<\/li>\n<\/ul>\n\n<h4>Compatibility<\/h4>\n\n<p>Works with <strong>Elementor<\/strong>, <strong>Divi<\/strong>, <strong>Beaver Builder<\/strong>, <strong>Bricks<\/strong>, <strong>Gutenberg<\/strong>, and the Classic Editor. Just paste the shortcode <code>[tvsret_form]<\/code> anywhere on your site. Tested on WordPress 5.6 through 7.0. Requires WooCommerce.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>All JavaScript and CSS files in this plugin are the actual source \u2014 nothing is minified or compiled. Every file in the plugin folder is human-readable production code.<\/p>\n\n<p>For updates and documentation: https:\/\/thevitaminshots.com\/plugins\/<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not connect to any external services controlled by the plugin author. All data (requests, tax rates, settings) is stored in your own WordPress database.<\/p>\n\n<p>The plugin uses only WooCommerce's own internal APIs (for order lookup, product data, and tax calculation) and WordPress core APIs (for options, database, and email). No third-party servers, no analytics, no telemetry.<\/p>\n\n<p>If the store owner enables the CSV tax mode, the plugin reads tax rates from a CSV file that the store owner uploads directly through the admin panel. No CSV file is downloaded from any external source by the plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce (required).<\/li>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Refunds &amp; Returns \u2192 Settings<\/strong> to configure.<\/li>\n<li>Choose a page in the \"General\" tab OR paste the shortcode <code>[tvsret_form]<\/code> anywhere.<\/li>\n<li>Save. Customers can now submit requests.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20really%20free%3F\"><h3>Is this really free?<\/h3><\/dt>\n<dd><p>Yes. 100% free forever. Every feature listed is included in the free version. No premium tier, no paid add-ons, no locked features. GPL v2 licensed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20woocommerce%3F\"><h3>Does it work without WooCommerce?<\/h3><\/dt>\n<dd><p>No. WooCommerce is required \u2014 the plugin uses WooCommerce for order lookup and product data. If WooCommerce is not active, an admin notice appears and the plugin stays inactive.<\/p><\/dd>\n<dt id=\"can%20i%20set%20the%20refund%20percentage%20to%20something%20other%20than%2050%25%20or%20100%25%3F\"><h3>Can I set the refund percentage to something other than 50% or 100%?<\/h3><\/dt>\n<dd><p>Yes. In <strong>Settings \u2192 Refund<\/strong>, you can set any percentage from 0 to 100, in decimal increments (e.g., 25.5%).<\/p><\/dd>\n<dt id=\"how%20does%20tax%20calculation%20work%3F\"><h3>How does tax calculation work?<\/h3><\/dt>\n<dd><p>Two modes. <strong>WooCommerce mode<\/strong> (default, recommended): the plugin uses your existing WooCommerce tax settings \u2014 the same rates already applied at checkout. <strong>CSV mode<\/strong>: upload a CSV of ZIP codes and tax rates (US-focused). Choose in <strong>Settings \u2192 Tax<\/strong>.<\/p><\/dd>\n<dt id=\"what%20csv%20format%20is%20supported%20for%20tax%20uploads%3F\"><h3>What CSV format is supported for tax uploads?<\/h3><\/dt>\n<dd><p>The CSV must include columns for <code>ZIP<\/code> (or <code>zip_code<\/code>) and <code>Tax_Rate<\/code> (or <code>combined_rate<\/code>). A <code>State<\/code> column is also read if present. Both percent values (<code>9.75<\/code>) and decimal values (<code>0.0975<\/code>) are accepted \u2014 the plugin auto-detects.<\/p><\/dd>\n<dt id=\"can%20customers%20upload%20photos%20with%20their%20request%3F\"><h3>Can customers upload photos with their request?<\/h3><\/dt>\n<dd><p>Video URL uploads are supported in v1.0. Photo attachment uploads are planned for a future release. If your policy requires photo evidence, you can enable \"Require photos\" now and the form will require the customer to describe photos in the details field \u2014 future updates will add direct uploads.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20store%3F\"><h3>What data does the plugin store?<\/h3><\/dt>\n<dd><p>Only what's necessary: the customer's name and email (from the verified order), the order number, the products selected, the reason for return, the calculated refund amount, and the admin's decision. All data lives in your WordPress database in two tables (<code>{prefix}tvsret_requests<\/code> and <code>{prefix}tvsret_tax_rates<\/code>).<\/p><\/dd>\n<dt id=\"will%20uninstalling%20delete%20my%20data%3F\"><h3>Will uninstalling delete my data?<\/h3><\/dt>\n<dd><p>By default, no. Uninstalling only removes the plugin files. If you want to delete all data, enable \"Delete all plugin data on uninstall\" in <strong>Settings \u2192 Advanced<\/strong> BEFORE uninstalling.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20custom%20order%20numbers%3F\"><h3>Does it work with custom order numbers?<\/h3><\/dt>\n<dd><p>Yes. The plugin recognizes both the default WooCommerce numeric order IDs AND custom order numbers set by plugins like \"WooCommerce Sequential Order Numbers\".<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20form%27s%20colors%3F\"><h3>Can I customize the form's colors?<\/h3><\/dt>\n<dd><p>Yes. Set the accent color in <strong>Settings \u2192 General<\/strong>. The form's header, buttons, and active tab all use this color.<\/p><\/dd>\n<dt id=\"are%20the%20emails%20customizable%3F\"><h3>Are the emails customizable?<\/h3><\/dt>\n<dd><p>The success message shown to customers is customizable in <strong>Settings \u2192 General<\/strong>. Email subject lines and body copy use translation strings \u2014 you can override them with a translation file or a <code>.pot<\/code>-based localization.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multiple%20languages%3F\"><h3>Does it support multiple languages?<\/h3><\/dt>\n<dd><p>Yes. The plugin is fully translation-ready. Text domain: <code>thevitaminshots-refunds-returns-for-woocommerce<\/code>. Use WP-CLI or Loco Translate to add translations.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Support forum: https:\/\/wordpress.org\/support\/plugin\/thevitaminshots-refunds-returns-for-woocommerce\/<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Removed load_plugin_textdomain() call \u2014 no longer needed for WordPress.org hosted plugins since WP 4.6.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: \"Email \u2192 Order dropdown\" lookup mode \u2014 customers enter their email and pick from a dropdown of their recent orders (with strict order#+email mode still available as the more privacy-safe default).<\/li>\n<li>New: Photo uploads \u2014 customers can attach up to 10 photos (JPG\/PNG\/WebP, 5MB each) as evidence for return requests. Files stored in your WordPress uploads folder under \/uploads\/tvsret\/.<\/li>\n<li>New: Separate \"Allow\" and \"Require\" settings for photos and video URL \u2014 you can now enable photo\/video fields without making them mandatory.<\/li>\n<li>New: Configurable max photos per request (1-10).<\/li>\n<li>New: \"Auto-approve requests\" setting \u2014 automatically approve all requests on submission, skipping manual review.<\/li>\n<li>New: Rate limiting on public lookup endpoints (10 requests per hour per IP) to prevent enumeration attacks.<\/li>\n<li>New: Privacy-safe order search limited to last 6 months of orders in email-only mode.<\/li>\n<li>Fixed: Photo evidence now actually uploads and stores (v1.0 stored URL only).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Major frontend redesign \u2014 form is now genuinely beautiful and highly customizable.<\/li>\n<li>New \"Design\" tab in Settings with ~25 visual controls: layout, colors, shape, typography, header style, header icon, progress indicator style, button style, field style, animations.<\/li>\n<li>Live preview panel in the Design tab \u2014 see your changes on the customer form in real time as you configure, without saving.<\/li>\n<li>Desktop and mobile preview toggle.<\/li>\n<li>New \"Content\" tab \u2014 every label, button, and heading on the customer form is now editable.<\/li>\n<li>CSS variables system \u2014 all styling driven by design tokens for consistency between preview and live form.<\/li>\n<li>Six bundled header icons (refund arrow, box, shield, cart, checkmark, or custom image URL).<\/li>\n<li>Progress indicator with three styles: numbered steps, dots, or bar.<\/li>\n<li>Field styles: outlined, filled, or underlined.<\/li>\n<li>Button styles: solid, gradient, or outlined.<\/li>\n<li>Shadow depth control from none to dramatic.<\/li>\n<li>Full color customization: accent, text on accent, background, text, muted, border colors.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Merged refund and return request workflows into a single plugin.<\/li>\n<li>Two tax calculation modes: WooCommerce built-in and CSV-based ZIP lookup.<\/li>\n<li>Configurable refund percentage (0-100%).<\/li>\n<li>Six-tab settings interface.<\/li>\n<li>Admin dashboard with filtering and one-click approve\/deny.<\/li>\n<li>Customer three-step form with order verification.<\/li>\n<li>Category exclusion for refund eligibility.<\/li>\n<li>Return window enforcement.<\/li>\n<li>Email notifications for customer and admin.<\/li>\n<li>Full translation-readiness.<\/li>\n<\/ul>","raw_excerpt":"Customer-facing refund and return request system for WooCommerce with configurable percentages, dual tax modes, and admin approval workflow. Free.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/344131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=344131"}],"author":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/thevitaminshots"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=344131"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=344131"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=344131"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=344131"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=344131"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=344131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}