Add extra fields that customers fill in or choose on the product page. Each field can add a price. Selections are shown in the cart, mini-cart and checkout, and saved on the order (admin screen, emails, My Account).
Field types
- Text: single line. Its price is charged only when the customer enters something.
- Textarea: collapsible multi-line text.
- Message: collapsible short text plus a message textarea.
- Radio cards: one choice. A label such as "Large – 500 ml" shows "500 ml" as a description line.
- Dropdown: one choice.
- Checkboxes: any number of choices. Each ticked option adds its price.
- Image swatches: one choice, shown as cards with one preview image per field.
Any field can be marked
required. Radio cards, dropdowns and image swatches always have a choice (the first option is pre-selected).
Variation radio buttons
Variation attributes such as size or colour are shown as buttons instead of dropdowns. WooCommerce's own dropdown stays in the page, hidden, so WooCommerce still does all the matching of variations, price, stock, image and availability. Combinations that WooCommerce disables or removes are disabled or hidden on the buttons too. You can switch this off store-wide.
Security
Prices are never taken from the browser. The page only sends which option was chosen (or the text typed). Every price is read from the product's configuration on the server and applied to the cart item there. Values are validated against the configuration, and anything else is rejected with a message.
- Make sure WooCommerce 8.2 or newer is active.
- Upload the
rexivue-restaurant-product-customization-fields folder to /wp-content/plugins/, or use Plugins → Add New → Upload Plugin.
- Activate the plugin.
Coming from the earlier "SP Flexible Product Addons" plugin (folder
sp-flexible-product-addons, up to version 2.1): this is a separate plugin with a new name. Install and activate it, then deactivate and delete the old one. Do not keep both active. Existing add-on configuration is picked up automatically. See "Migration" below.