Title: Personalize My Order
Author: Jay Suthar
Published: <strong>18. júní, 2026</strong>
Last modified: 25. júlí, 2026

---

Leita í viðbótum

![](https://ps.w.org/personalize-my-order/assets/banner-772x250.png?rev=3577521)

![](https://ps.w.org/personalize-my-order/assets/icon-256x256.png?rev=3577521)

# Personalize My Order

 Höfundur: [Jay Suthar](https://profiles.wordpress.org/jsjack74/)

[Sækja](https://downloads.wordpress.org/plugin/personalize-my-order.1.0.2.zip)

 * [Details](https://is.wordpress.org/plugins/personalize-my-order/#description)
 * [Reviews](https://is.wordpress.org/plugins/personalize-my-order/#reviews)
 *  [Installation](https://is.wordpress.org/plugins/personalize-my-order/#installation)
 * [Development](https://is.wordpress.org/plugins/personalize-my-order/#developers)

 [Aðstoð](https://wordpress.org/support/plugin/personalize-my-order/)

## Lýsing

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](https://policies.google.com/terms),
[Privacy Policy](https://policies.google.com/privacy).

**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](https://www.cloudflare.com/website-terms/),
[Privacy Policy](https://www.cloudflare.com/privacypolicy/).

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.

## Skjámyndir

[⌊Customization form as seen by the customer — tabbed per order item⌉⌊Customization
form as seen by the customer — tabbed per order item⌉[

Customization form as seen by the customer — tabbed per order item

[⌊Admin order detail page showing submitted customization data and file links⌉⌊Admin
order detail page showing submitted customization data and file links⌉[

Admin order detail page showing submitted customization data and file links

[⌊WooCommerce orders list with customization status column⌉⌊WooCommerce orders list
with customization status column⌉[

WooCommerce orders list with customization status column

[⌊Settings page — general and appearance options⌉⌊Settings page — general and appearance
options⌉[

Settings page — general and appearance options

[⌊Per-product field builder meta box on the product edit page⌉⌊Per-product field
builder meta box on the product edit page⌉[

Per-product field builder meta box on the product edit page

[⌊My Account — customer's customization overview tab⌉⌊My Account — customer's customization
overview tab⌉[

My Account — customer’s customization overview tab

## Uppsetning

 1. Upload the `personalize-my-order` folder to `/wp-content/plugins/`.
 2. Activate the plugin through the **Plugins** menu in WordPress.
 3. WooCommerce must be active — the plugin will show an admin notice if it isn’t.
 4. On activation, a **Order Customization** page is created automatically with the`[
    persmyor_customization_form]` shortcode. Do not delete this page.
 5. Go to **WooCommerce  Settings  Personalize My Order** to configure the plugin.

## SOS

### Does the plugin work for guest customers?

Yes. The tokenized URL is emailed to the billing address and works without requiring
the customer to log in.

### What happens if the customer doesn’t complete customization?

The order item stays in `pending` or `partial` status. You can see incomplete items
in the orders list column and on the order detail page. The customer can return 
to the customization page at any time before the token expires.

### Can I set different fields for different products?

Yes. Add fields via the **Customization Fields** meta box on each product edit page.
Products without their own fields fall back to the global fields configured in settings.

### Where are uploaded files stored?

Files are stored on your own server at `wp-content/uploads/persmyor-uploads/{order_id}_{
customer_name}/{product_name}/`. The directory is protected with an `.htaccess` 
file and an `index.php` stub to prevent direct browsing.

### Can I change the customization page?

Yes. Go to **WooCommerce  Settings  Personalize My Order  Customization Page** and
choose any published page that contains the `[persmyor_customization_form]` shortcode.

### What database tables does the plugin create?

Two custom tables are created on activation:
 – `{prefix}persmyor_item_submissions`—
tracks per-item submission status and timestamps – `{prefix}persmyor_uploaded_files`—
logs uploaded file metadata and local URLs

### Do I need CAPTCHA enabled?

No, it’s optional and disabled by default. Enable it under **WooCommerce  Settings
Personalize My Order  CAPTCHA Protection** if you want to protect the customization
form from bots.

## Umsagnir

There are no reviews for this plugin.

## Þátttakendur & höfundar

“Personalize My Order&#8221 er opinn hugbúnaður. Eftirfarandi aðilar hafa lagt sitt
af mörkum við smíði þessarar viðbótar.

Höfundar

 *   [ Jay Suthar ](https://profiles.wordpress.org/jsjack74/)

[Translate “Personalize My Order” into your language.](https://translate.wordpress.org/projects/wp-plugins/personalize-my-order)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/personalize-my-order/),
check out the [SVN repository](https://plugins.svn.wordpress.org/personalize-my-order/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/personalize-my-order/)
by [RSS](https://plugins.trac.wordpress.org/log/personalize-my-order/?limit=100&mode=stop_on_copy&format=rss).

## Breytingarsaga

#### 1.0.2

 * Fixed: The Google reCAPTCHA and Cloudflare Turnstile scripts were being loaded
   on every WooCommerce settings page (not just this plugin’s own tab), and regardless
   of whether CAPTCHA was enabled. These scripts are no longer preloaded at all —
   they’re now injected only when an admin explicitly clicks „Load Test Widget“ 
   on the plugin’s own CAPTCHA settings tab.
 * New: Documented the optional reCAPTCHA/Turnstile external services, including
   what data is sent and links to each provider’s terms and privacy policy — see
   the „External services“ section of this readme.

#### 1.0.1

 * New: CAPTCHA protection for the customization form — choose Google reCAPTCHA 
   v2 or Cloudflare Turnstile under **WooCommerce  Settings  Personalize My Order
   CAPTCHA Protection**. The widget is shown on both Submit and Save Draft, and 
   the token is verified server-side on every request.
 * New: „Test this key“ live panel in the CAPTCHA settings — load the widget and
   verify the currently-typed Site Key/Secret Key pair against the provider directly,
   without saving first.
 * New: Configurable widget theme (Light/Dark/Auto).
 * Improved: Settings page visual refresh — cleaner section headers, spacing, and
   layout.
 * Improved: Customization form UI polish, including a subtle fade-in transition
   when switching between item tabs.

#### 1.0.0

Initial release — no upgrade steps required.

## Tækni

 *  Version **1.0.2**
 *  Last updated **2 vikur síðan**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 8.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/personalize-my-order/)
 * Tags
 * [customization](https://is.wordpress.org/plugins/tags/customization/)[order customization](https://is.wordpress.org/plugins/tags/order-customization/)
   [personalize](https://is.wordpress.org/plugins/tags/personalize/)[product customization](https://is.wordpress.org/plugins/tags/product-customization/)
   [woocommerce](https://is.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://is.wordpress.org/plugins/personalize-my-order/advanced/)

## Einkunnir

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/personalize-my-order/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/personalize-my-order/reviews/)

## Höfundar

 *   [ Jay Suthar ](https://profiles.wordpress.org/jsjack74/)

## Aðstoð

Eitthvað sem þú vilt segja? Þarftu hjálp?

 [Skoða hjálparspjallborð](https://wordpress.org/support/plugin/personalize-my-order/)