{"id":396906,"date":"2026-11-04T11:24:32","date_gmt":"2026-11-04T11:24:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fxoapps-product-add-ons-for-woocommerce\/"},"modified":"2026-11-04T11:24:15","modified_gmt":"2026-11-04T11:24:15","slug":"fxoapps-product-add-ons-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/fxoapps-product-add-ons-for-woocommerce\/","author":23533300,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"FXOapps Product Add-Ons for WooCommerce","header_author":"fxoapps","header_description":"Visual product configuration, pricing, and conditional logic for WooCommerce \u2014 without exploding variations.","assets_banners_color":"99b7ff","last_updated":"2026-11-04 11:24:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.fxoapps.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":77,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"fxoapps","date":"2026-11-04 11:24:15","revision":3783781}},"upgrade_notice":{"1.0.2":"<p>Per-language storefront labels, safer handling of repeated or malformed option values, and WordPress.org review fixes.<\/p>","1.0.1":"<p>Required add-ons stay in the cart, percent price validation, and accessibility fixes.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3783819,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3783819,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3783819,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3783819,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2010,163084,65790,155785,286],"plugin_category":[45],"plugin_contributors":[274496],"plugin_business_model":[],"class_list":["post-396906","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-fields","plugin_tags-extra-product-options","plugin_tags-product-add-ons","plugin_tags-product-options","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-fxoapps","plugin_committers-fxoapps"],"banners":{"banner":"https:\/\/ps.w.org\/fxoapps-product-add-ons-for-woocommerce\/assets\/banner-772x250.png?rev=3783819","banner_2x":"https:\/\/ps.w.org\/fxoapps-product-add-ons-for-woocommerce\/assets\/banner-1544x500.png?rev=3783819","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/fxoapps-product-add-ons-for-woocommerce\/assets\/icon-128x128.png?rev=3783819","icon_2x":"https:\/\/ps.w.org\/fxoapps-product-add-ons-for-woocommerce\/assets\/icon-256x256.png?rev=3783819","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>FXOapps Product Add-Ons for WooCommerce<\/strong> adds extra fields to your product pages. Shoppers type a name for engraving, pick a gift wrap, choose a color, or tick extras, and the price updates on the page. You build fields once in an option group and assign it to all products, selected products, categories, tags, or a product type.<\/p>\n\n<p>This WordPress.org release is a complete add-ons plugin. There is no group cap, no field cap, and no license key. Every feature listed below works here. <a href=\"https:\/\/www.fxoapps.com\/fxoapps-product-add-ons-pro-for-woocommerce\/\">Product Add-Ons Pro<\/a> is a separate plugin. The Product Add-Ons Pro section below is what that plugin includes.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=Pl8RBApOW5I<\/p>\n\n<h4>What this free plugin includes<\/h4>\n\n<p>\u2713 <strong>Option groups<\/strong> \u2014 unlimited groups, assigned to all products, selected products, categories, tags, or a product type, with exclusions\n\u2713 <strong>Fields<\/strong> \u2014 text, textarea, number, email, URL, phone, date, select, radio, checkbox, checkbox group, multi-select, toggle, heading, paragraph, divider, and color swatches\n\u2713 <strong>Prices<\/strong> \u2014 none, fixed, percent, fixed deduction, and percent deduction, per field or per choice\n\u2713 <strong>Per-product values<\/strong> \u2014 set the values of an assigned group on each product's edit screen\n\u2713 <strong>Live total<\/strong> \u2014 the product page shows the options total and the new product price as the shopper picks\n\u2713 <strong>Server-side prices<\/strong> \u2014 add to cart validates every field and calculates the price on the server\n\u2713 <strong>Conditions<\/strong> \u2014 show or hide a field based on other fields, with match all or match any\n\u2713 <strong>Placement<\/strong> \u2014 stacked layout, WooCommerce placement hooks, or the <code>[fxoapps_product_options]<\/code> shortcode\n\u2713 <strong>Cart and orders<\/strong> \u2014 selected options in the classic cart and checkout, the Cart and Checkout blocks, orders, and emails, with High-Performance Order Storage support\n\u2713 <strong>Order snapshots<\/strong> \u2014 each order line keeps the labels, values, and prices chosen, even if you edit the group later\n\u2713 <strong>Store rules<\/strong> \u2014 required fields, merge identical cart lines, and variable products\n\u2713 <strong>Languages<\/strong> \u2014 per-language storefront labels with WPML or Polylang\n\u2713 <strong>Admin<\/strong> \u2014 FXOapps \u2192 Product Add-Ons, with Overview, Option Groups, Settings, Help &amp; docs, and Pro features tabs<\/p>\n\n<p>Groups you build here keep working after you install Pro. Pro is a separate plugin. It does not replace this one with a locked copy of the same screen.<\/p>\n\n<h4>Product Add-Ons Pro<\/h4>\n\n<p><a href=\"https:\/\/www.fxoapps.com\/fxoapps-product-add-ons-pro-for-woocommerce\/\">Upgrade to Product Add-Ons Pro<\/a><\/p>\n\n<p><strong>FXOapps Product Add-Ons Pro for WooCommerce<\/strong> is a separate plugin. Nothing in this plugin is switched off. The list below is what the Pro plugin includes.<\/p>\n\n<p><strong>Fields<\/strong>\n\u2713 Image swatches\n\u2713 Slider\n\u2713 Price summary\n\u2713 File upload\n\u2713 Formula prices\n\u2713 Linked catalog products, showing the live linked price<\/p>\n\n<p><strong>Pricing<\/strong>\n\u2713 Charge per character, per word, or per selected item\n\u2713 Lookup tables from two field values\n\u2713 Percent of the selected options total\n\u2713 Fixed price per selected option\n\u2713 Per-product overrides for extra prices<\/p>\n\n<p><strong>Logic and layout<\/strong>\n\u2713 Wizard steps\n\u2713 Nested conditions\n\u2713 Audience rules for role, login, quantity, variation, and product\n\u2713 Conditional color picker<\/p>\n\n<p><strong>Store<\/strong>\n\u2713 Edit options from the cart\n\u2713 Per-choice inventory\n\u2713 Copy an add-on setup from another product, with search by name or SKU\n\u2713 License activation and one-click updates from WordPress<\/p>\n\n<p>Groups you save here keep working after you install Pro. You do not rebuild your option groups from scratch.<\/p>\n\n<h4>Shop owner setup<\/h4>\n\n<p>After activation, open <strong>FXOapps \u2192 Product Add-Ons<\/strong> and:<\/p>\n\n<ol>\n<li><strong>Option Groups<\/strong> \u2014 click Create a group and give it a name<\/li>\n<li><strong>Fields<\/strong> \u2014 add fields from the field picker, set labels, choices, and prices<\/li>\n<li><strong>Logic<\/strong> \u2014 add show or hide conditions where a field depends on another<\/li>\n<li><strong>Assignment<\/strong> \u2014 choose the products, categories, tags, or product type, then save<\/li>\n<li><strong>Help &amp; docs<\/strong> \u2014 read field types, pricing examples, placement, and shortcodes inside the plugin<\/li>\n<li><strong>Pro features<\/strong> \u2014 read what the separate Pro plugin includes, and <a href=\"https:\/\/www.fxoapps.com\/fxoapps-product-add-ons-pro-for-woocommerce\/\">upgrade to Product Add-Ons Pro<\/a> if you want that plugin<\/li>\n<\/ol>\n\n<h4>External services<\/h4>\n\n<p>This plugin does not connect to any external service. It makes no remote requests, loads no remote scripts, styles, or fonts, and sends no data off your site. The only outside addresses are plain links to fxoapps.com in the admin, which open only when someone clicks them.<\/p>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[fxoapps_product_options]\n<\/code><\/pre>\n\n<p>Optional product: <code>[fxoapps_product_options id=\"123\"]<\/code><\/p>\n\n<p>Options also render from WooCommerce placement hooks. A field set to shortcode only is not printed by those hooks.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <strong>WooCommerce<\/strong>.<\/li>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it from the <strong>Plugins<\/strong> screen.<\/li>\n<li>Activate <strong>FXOapps Product Add-Ons for WooCommerce<\/strong> through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Open <strong>FXOapps \u2192 Product Add-Ons<\/strong>, create an option group, add fields, and assign it.<\/li>\n<li>Open a product on the storefront to confirm the options and the cart price.<\/li>\n<li>When you want the separate Pro plugin, <a href=\"https:\/\/www.fxoapps.com\/fxoapps-product-add-ons-pro-for-woocommerce\/\">upgrade to Product Add-Ons Pro<\/a>. Your saved groups stay in place.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20a%20license%3F\"><h3>Does this plugin require a license?<\/h3><\/dt>\n<dd><p>No. This release works without a license key, a trial, or an fxoapps.com account.<\/p><\/dd>\n<dt id=\"is%20there%20a%20limit%20on%20groups%20or%20fields%3F\"><h3>Is there a limit on groups or fields?<\/h3><\/dt>\n<dd><p>No. Add as many option groups and fields as your store needs.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. If WooCommerce is inactive, the plugin shows an admin notice and does not load its storefront features.<\/p><\/dd>\n<dt id=\"can%20a%20shopper%20change%20the%20price%20in%20the%20browser%3F\"><h3>Can a shopper change the price in the browser?<\/h3><\/dt>\n<dd><p>No. The product page previews a total, but add to cart validates the fields and calculates the price on the server.<\/p><\/dd>\n<dt id=\"will%20editing%20a%20group%20change%20old%20orders%3F\"><h3>Will editing a group change old orders?<\/h3><\/dt>\n<dd><p>No. Each order line stores a snapshot of the selected labels, values, and price.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20cart%20and%20checkout%20blocks%3F\"><h3>Does it work with the Cart and Checkout blocks?<\/h3><\/dt>\n<dd><p>Yes. Selected options show in the classic cart and checkout and in the Cart and Checkout blocks.<\/p><\/dd>\n<dt id=\"where%20can%20i%20show%20the%20options%3F\"><h3>Where can I show the options?<\/h3><\/dt>\n<dd><p>They print automatically through WooCommerce placement hooks, or you can place them with the <code>[fxoapps_product_options]<\/code> shortcode.<\/p><\/dd>\n<dt id=\"what%20do%20i%20get%20if%20i%20upgrade%20to%20product%20add-ons%20pro%3F\"><h3>What do I get if I upgrade to Product Add-Ons Pro?<\/h3><\/dt>\n<dd><p><a href=\"https:\/\/www.fxoapps.com\/fxoapps-product-add-ons-pro-for-woocommerce\/\">Product Add-Ons Pro<\/a> is a separate plugin. It does not turn anything in this plugin off. The Product Add-Ons Pro section on this page lists what that plugin includes: image swatches, sliders, file uploads, formula and lookup table prices, linked products, wizard steps, nested conditions, audience rules, cart editing, and per-choice inventory.<\/p>\n\n<p>You can read a shorter list any time under <strong>FXOapps \u2192 Product Add-Ons \u2192 Pro features<\/strong>.<\/p><\/dd>\n<dt id=\"will%20my%20groups%20still%20work%20after%20i%20upgrade%20to%20pro%3F\"><h3>Will my groups still work after I upgrade to Pro?<\/h3><\/dt>\n<dd><p>Yes. Option groups you save in this plugin keep working after you install Product Add-Ons Pro.<\/p><\/dd>\n<dt id=\"does%20uninstall%20delete%20orders%3F\"><h3>Does uninstall delete orders?<\/h3><\/dt>\n<dd><p>No. Deactivation does not delete data. Uninstall deletes plugin settings and option-group tables only when \"Delete plugin data on uninstall\" is turned on. Order snapshots stay on the order.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20to%20fxoapps%3F\"><h3>Does this plugin send data to FXOapps?<\/h3><\/dt>\n<dd><p>No. It does not phone home, check a license, or download updates from FXOapps. Updates come from WordPress.org.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New: redesigned admin in the FXOapps dashboard style, with a field picker, an in-plugin Help &amp; docs tab, and icon buttons for Duplicate and Delete.<\/li>\n<li>New: per-language storefront labels. With WPML or Polylang, pick a language on the Settings tab and enter its labels.<\/li>\n<li>Fix: a checkbox group or multi-select value posted more than once is counted and charged once.<\/li>\n<li>Fix: an array posted to a single-value field is rejected with a clear error instead of a PHP warning.<\/li>\n<li>Tweak: removed unused leftovers (per-choice stock box, linked product lookup, unused admin styles).<\/li>\n<li>Tweak: the admin menu icon CSS is loaded with wp_add_inline_style instead of a printed style tag.<\/li>\n<li>Tweak: coding standards cleanup.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: required add-ons can no longer be removed from the cart (no remove button, and the server rejects the request).<\/li>\n<li>Fix: the remove button for a color swatch add-on now reads the color name instead of the hex value.<\/li>\n<li>Fix: an add-on form submitted without its security token is rejected, the same as an invalid token.<\/li>\n<li>Fix: percent prices are validated on save and capped at price time (surcharge up to 1000%, deduction up to 100%).<\/li>\n<li>Tweak: the Pro tab feature list uses neutral bullets.<\/li>\n<li>Tested with WooCommerce 11.2.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Add reusable option groups to WooCommerce products: text, choices, color swatches, conditions, and server-checked prices.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/396906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=396906"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fxoapps"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=396906"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=396906"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=396906"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=396906"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=396906"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=396906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}