plugin-icon

Personalize My Order

Collect product customization data after order placement. Supports custom fields, file uploads, partial saves, and completion tracking.
Version
1.0.2
Senast uppdaterat
Jul 25, 2026
Personalize My Order

Personalize My Order lets you collect product customization details from customers after they place an order — without blocking the checkout flow.

Once an order is paid, the customer receives a secure, time-limited link by email. They visit a dedicated customization page on your store, fill in the fields you’ve configured for each product, and submit. You see everything neatly displayed on the WooCommerce order detail page.

Key features:

  • Secure tokenized URLs — HMAC-SHA256 signed, time-limited (configurable expiry), works for both guests and logged-in customers
  • Per-product custom fields — configure different fields for each product, or set global fallback fields that apply to all products
  • 13 field types — text, textarea, select, radio, checkbox, file, number, email, URL, date, color, range, and tel
  • Local file uploads — uploaded files are stored securely in your WordPress uploads directory (wp-content/uploads/persmyor-uploads/); directory listing is blocked via .htaccess
  • Partial saves / autosave — customers can save a draft and come back later; the form autosaves on tab close
  • Per-item completion tracking — each order item is tracked independently as pending, partial, or complete
  • Admin display — submitted values shown inline on the order detail page, with a dedicated meta box and a status column on the orders list
  • My Account integration — customers can review and complete pending customizations from their My Account page
  • CAPTCHA protection — optionally require Google reCAPTCHA v2 or Cloudflare Turnstile on the customization form’s Submit and Save Draft actions, verified server-side
  • Developer hooks — filter fields per product or act when an order is fully customized

Configuration

General

  • Token expiry — number of days before the customization link expires (default: 30)
  • Send email on order — toggle the customization email sent to the customer after payment

Global fields

Define fallback fields that apply to all products that don’t have their own field configuration. Use the drag-and-drop field builder to add, reorder, and remove fields.

Per-product fields

On any product edit page, a Customization Fields meta box lets you configure fields specific to that product. These take priority over global fields.

CAPTCHA Protection

Go to WooCommerce Settings Personalize My Order CAPTCHA Protection to require a CAPTCHA challenge before a customer can Submit or Save Draft on the customization form.

  • Provider — Disabled, Google reCAPTCHA v2, or Cloudflare Turnstile
  • Site Key / Secret Key — enter the key pair for your chosen provider
  • Widget Theme — Light, Dark, or Auto (reCAPTCHA v2 doesn’t support Auto and falls back to Light)
  • Test this key — load a live widget and verify your Site Key/Secret Key pair against the provider directly from the settings page, before saving

The CAPTCHA token is verified server-side on every Submit and Save Draft request; if the secret key isn’t configured, verification is skipped so the form is never accidentally blocked.

Field types

The following field types are supported in the field builder:

  • text — single-line text input
  • textarea — multi-line text input
  • select — dropdown with predefined options
  • radio — radio button group
  • checkbox — single checkbox or multi-checkbox group
  • file — file upload (stored in your server’s uploads directory); supports accept (MIME types) and max_size (in MB)
  • number — numeric input; supports min, max, step
  • email — email address with format validation
  • url — URL with format validation
  • date — date picker
  • color — color picker
  • range — range slider; supports min, max, step
  • tel — telephone number input

How it works

  1. Customer places an order on your WooCommerce store.
  2. A secure HMAC-signed token is generated and stored against the order.
  3. After payment, the customer receives an email with a unique customization link (also appended to standard WooCommerce customer emails).
  4. The customer opens the link, fills in the form for each ordered product, and submits.
  5. Submitted values are saved as WooCommerce order item meta.
  6. The admin sees the customization data on the order detail page, along with uploaded file links and a completion status badge.
  7. When all items are complete, an order note is added and the persmyor_order_fully_customized action fires.

Developer hooks

Filters

persmyor_product_fields Modify the resolved field definitions for a product before the form is rendered or data is validated.

add_filter( 'persmyor_product_fields', function( $fields, $product_id, $product ) { // Add, remove, or modify fields return $fields; }, 10, 3 );

Actions

persmyor_order_fully_customized Fires when every customizable item in an order has been submitted with status complete. Receives the WC_Order object.

add_action( 'persmyor_order_fully_customized', function( $order ) { // e.g. trigger production workflow } );<h3>External services</h3>

This plugin can optionally connect to a CAPTCHA provider to help protect the customer-facing customization form from bots. Both integrations are off by default (”Disabled”) and only run once a store admin picks a provider and enters a Site Key / Secret Key under WooCommerce Settings Personalize My Order CAPTCHA Protection.

Google reCAPTCHA v2 (only used if you select it as the provider) * What it’s used for: displaying the reCAPTCHA widget on the customization form and verifying the customer’s response before accepting a Submit or Save Draft action. * What data is sent, and when: when a provider is selected and a customer loads the customization form, the widget script is loaded from Google’s servers; when the customer submits the form, the CAPTCHA token, the customer’s IP address, and your Secret Key are sent to Google for verification. * This service is provided by Google: Terms of Service, Privacy Policy.

Cloudflare Turnstile (only used if you select it as the provider) * What it’s used for: displaying the Turnstile widget on the customization form and verifying the customer’s response before accepting a Submit or Save Draft action. * What data is sent, and when: when a provider is selected and a customer loads the customization form, the widget script is loaded from Cloudflare’s servers; when the customer submits the form, the CAPTCHA token, the customer’s IP address, and your Secret Key are sent to Cloudflare for verification. * This service is provided by Cloudflare: Terms of Service, Privacy Policy.

In the plugin’s own settings page, a ”Test this key” tool lets you verify a Site Key/Secret Key pair before saving. The corresponding provider script is only loaded in your browser when you click Load Test Widget, and only for the provider you’re testing.

Gratispå betalda paket
Testat upp till
WordPress 7.0.3
Detta tillägg är tillgängligt för nedladdning för din .