Order Change Requests for WooCommerce

Description

Order Change Requests for WooCommerce gives customers a structured self-service way to ask for changes after checkout while keeping the merchant in control.

Customers can submit a request from their order page, see its status, and withdraw a pending request. Store managers review requests from a dedicated WooCommerce inbox and can approve/mark completed or decline them.

This free release is intentionally request-based: approving a request does not automatically edit, cancel, refund, restock, reprice, recalculate, or otherwise mutate the WooCommerce order.

Customer features

  • Request a shipping-address change.
  • Request item quantity changes or item removal.
  • Request order cancellation.
  • Submit another change as free text.
  • See existing requests and their status on the order page.
  • Withdraw a pending request.
  • Receive email confirmation when a request is submitted and when the store decides it.
  • Use the flow for guest orders through a secure email-verification link.

Merchant features

  • Review requests in WooCommerce > Change requests.
  • Filter requests by Pending, Completed, Declined, or Withdrawn status.
  • Open the related WooCommerce order from the request.
  • Review normalized request details and audit history.
  • Approve and mark a request completed, or decline it.
  • Add an internal review note that is not sent to the customer.
  • Receive email notifications for new and withdrawn requests.
  • See the number of pending requests in the WooCommerce admin menu.

Safety and compatibility

  • Declares compatibility with WooCommerce High-Performance Order Storage (HPOS).
  • Uses WooCommerce order APIs rather than directly mutating order storage.
  • Uses optimistic locking to prevent stale concurrent request updates.
  • Uses mutation IDs to make workflow retries idempotent.
  • Uses short database transactions for request/event writes and guest token/session consumption.
  • Stores guest verification and session tokens only as one-way hashes.
  • Does not include analytics, telemetry, SaaS calls, payment automation, or refund automation.

By default, a new request is allowed for eligible orders within 30 minutes after order creation. The current eligible statuses are Pending payment, On hold, and Processing. Processing orders are flagged for merchant attention because fulfillment may already have started.

Privacy

The plugin stores order-change request records in custom database tables. Depending on the request type, stored data can include a new shipping name/address, requested item quantities, cancellation reasons, free-text messages, order/user identifiers, timestamps, request status, and audit history.

For guest orders, email addresses used for authorization are stored as one-way hashes in the plugin’s verification/session data. Raw verification and session tokens are not persisted.

Request-related email is sent through the site’s configured WordPress mail system. The plugin does not itself send request data to an external SaaS service and includes no telemetry or analytics.

A suggested privacy-policy section is added to WordPress’s Privacy Policy Guide for site administrators.

Screenshots

Installation

  1. In WordPress Admin, go to Plugins > Add New > Upload Plugin.
  2. Upload the plugin ZIP and activate it.
  3. Make sure WooCommerce is installed and active.
  4. Create a fresh eligible test order and open it from My Account > Orders.
  5. Customers will see the order-change request area on eligible order pages.
  6. Store managers can review requests under WooCommerce > Change requests.

FAQ

Does approving a request automatically change the WooCommerce order?

No. The free version records the request and the merchant decision only. The merchant must manually make any approved change in WooCommerce.

What changes can a customer request?

Shipping-address changes, item quantity/removal changes, cancellation, and a general free-text change request.

Can guests submit requests?

Yes. Guest orders use an email-verification flow. Verification links are single-use and temporary guest sessions are short-lived. Raw bearer tokens are not stored.

How long does a customer have to submit a request?

The default request window is 30 minutes after the order is created. This is intentionally conservative because fulfillment may start quickly.

Does it work with HPOS?

Yes. The plugin declares WooCommerce HPOS compatibility and uses WooCommerce order APIs for order access.

Does the plugin send my order data to an external service?

No. The plugin has no SaaS backend, analytics, or telemetry. Request emails use the WordPress mail configuration of the site.

What happens when the plugin is uninstalled?

The plugin-owned custom tables and plugin options are removed on uninstall. Deactivation alone keeps the data so the plugin can be reactivated without losing request history.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Order Change Requests for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.1

  • Review hardening: explicit request authorization before processing customer/guest mutations.
  • Replaced short OCR/ocr prefixes with unique order_change_requests/ORDER_CHANGE_REQUESTS identifiers.
  • Updated the text domain to match the assigned WordPress.org slug: order-change-requests-for-woocommerce.

1.0.0

  • First public WordPress.org release.
  • Lets customers request shipping-address, item/quantity, cancellation, or other order changes while merchants retain manual control.
  • Includes customer/guest request flows, merchant review, email notifications, audit history, HPOS compatibility, privacy guidance, and no automatic WooCommerce order mutation.

0.9.1

  • Replaced dynamic post-commit hook dispatch with explicit prefixed action names so WordPress Plugin Check can verify hook naming statically.
  • No workflow, schema, email, or order-mutation behavior changed.

0.9.0

  • Release-candidate packaging and WordPress.org readme cleanup for the Free MVP.
  • Added suggested Privacy Policy Guide text describing stored request and guest-verification data.
  • Added public FAQ, privacy disclosure, screenshot captions, installation guidance, and clearer Free-version boundaries.
  • Kept schema version 1 and preserved the no-automatic-order-mutation design.

For older development milestones, see changelog.txt in the plugin package.