Configuration
Aldono is configured in two places: the global settings page for store-wide display, and the Add-Ons tab in the product editor where you define each product’s fields. The global screen holds appearance and an on/off switch only, the actual options live on each product.
Global settings
Section titled “Global settings”Open WooCommerce > Add-Ons in wp-admin. The screen needs the manage_woocommerce capability, so shop managers can use it, not only administrators. All settings are stored in the single addons_settings option (an array).
Enable add-ons
Section titled “Enable add-ons”The master switch, on by default (enabled). When off, no add-on fields render on any product and no price deltas are applied in the cart, even on products that still have add-ons configured. Use it to take the whole feature offline without deleting any product’s settings.
Group heading
Section titled “Group heading”The heading printed above the fields on the product page (group_title), for example Product options or Personalise your order. The packaged default is Product options. Clear the field to render the fields with no heading at all.
Display
Section titled “Display”Three appearance checkboxes that change how the group looks. They affect presentation only, never pricing or which options show.
- Show the price next to paid options (
show_prices), appends the extra cost in brackets, e.g. Gift wrap (+$5.00). Free options never show a price. On by default. - Mark required fields with an asterisk (
show_required), adds a red*after a required field’s label. The requirement is still enforced with this off; the asterisk is only a visual cue. On by default. - Wrap the options in a bordered card (
card_style), groups the fields in a subtle bordered box (theaddons-fields--cardclass). Turn it off for a plain inline layout that inherits the theme. On by default.
Per-product fields
Section titled “Per-product fields”The options themselves live on the product. Edit a product, open the Add-Ons tab in the Product data panel, and add rows. Each row has:
- Label, the text the shopper sees. A row with no label is dropped on save.
- Type, one of Text, Textarea, Number, Date, Checkbox, Select or Radio. See Field types below.
- Price, an amount added to the cart line when the option is taken: a checkbox is ticked, or a text, textarea, number or date field is filled in. Leave it blank for a free option. The value is clamped to a non-negative surcharge: a negative price is saved as zero, so a buyer can never drive a line below its base price.
- Min chars / Max chars (Text and Textarea only), optional character limits. Leave them empty or at zero for no limit. The inputs are hidden for the other types.
- Required, when on, the field must be filled before the product can be added to the cart.
- Choices (Select and Radio only), one choice per line as
Label | price, e.g.Standard | 0andPremium | 9.99. Omit the price for a free choice. Each choice’s own price overrides the row price for that selection. The box is hidden for the other types.
Field types
Section titled “Field types”| Type | What the shopper sees | Checked at add to cart |
|---|---|---|
| Text | A single-line input. With limits set, a live character counter shows under it. | The Min chars and Max chars limits. |
| Textarea | A multi-line box (three rows). Line breaks are kept, and each one counts as a single character. | The same Min chars and Max chars limits as Text. |
| Number | A number input that accepts decimals. | The value must be numeric, otherwise: The option “Label” must be a number. |
| Date | The browser’s own date picker (<input type="date">). |
The value must be a real calendar date, otherwise: The option “Label” must be a valid date. |
| Checkbox | A tick box with the label beside it. | Only that box’s own value is accepted. |
| Select | A drop-down with a - Select - placeholder and one entry per choice. | The posted choice must be one of its own, otherwise: The choice for “Label” is not one of its options. |
| Radio | A group of radio buttons under the label, one per choice. | The same rule as Select. |
For Text, Textarea, Number, Date and Checkbox the row price is added once the field is filled or ticked. For Select and Radio the chosen choice’s price applies. A Number field adds its row price as a fixed amount: the number typed in does not multiply it. Number and Date fields have no minimum or maximum value of their own.
Definitions are stored as the _addons_definitions product meta, there are no custom database tables.
How the price combines
Section titled “How the price combines”When a shopper picks paid options, each price delta is added to the product’s cart line total automatically. The selected values are captured onto the cart line and copied to the order as line-item meta, keyed by the field label, with the price appended when the choice cost more than zero, so the store sees exactly what was chosen.
What is fixed by design
Section titled “What is fixed by design”- A negative price is never stored, deltas are always surcharges.
- A Select or Radio field with no choices is skipped on the storefront rather than rendering an empty control.
- The supported field types are text, textarea, number, date, checkbox, select and radio; any other type is rejected on save.
- Character limits apply to Text and Textarea only, so a limit left over after changing a row to another type never blocks it.
Uninstalling
Section titled “Uninstalling”Deleting the plugin runs the uninstall routine, which removes the addons_settings and addons_db_version options. Your per-product field definitions (the _addons_definitions meta) are kept on purpose, so re-installing Aldono restores the configured products without rebuilding the forms.
Developer hooks
Section titled “Developer hooks”For the filters and actions that let an extension reshape definitions or add admin fields, see Using Aldono > Developer hooks.