{"id":342206,"date":"2026-08-27T05:31:17","date_gmt":"2026-08-27T05:31:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kodlo-price-builder-for-woocommerce\/"},"modified":"2026-10-05T19:37:02","modified_gmt":"2026-10-05T19:37:02","slug":"kodlo-price-builder-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/kodlo-price-builder-for-woocommerce\/","author":23517482,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.9","stable_tag":"1.3.9","tested":"7.1.3","requires":"6.6","requires_php":"8.1","requires_plugins":null,"header_name":"Kodlo Price Builder for WooCommerce","header_author":"Kodlo","header_description":"Price component constructor for WooCommerce. Build product prices from reusable ingredients \u2014 update one component and all linked products update automatically.","assets_banners_color":"","last_updated":"2026-10-05 19:37:02","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/kodlo.dev\/","header_plugin_uri":"","header_author_uri":"https:\/\/kodlo.dev\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":390,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.8":{"tag":"1.3.8","author":"kodlo","date":"2026-10-05 19:35:36","revision":3729572},"1.3.9":{"tag":"1.3.9","author":"kodlo","date":"2026-10-05 19:37:02","revision":3729574}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":[],"assets_banners":[],"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3729575,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=kodlo-price-builder-for-woocommerce\",\"preferredVersions\":{\"php\":\"8.1\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"kodlo-price-builder-for-woocommerce\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.3.8","1.3.9"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3729571,"resolution":"1","location":"assets","locale":"","width":1493,"height":812},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3729571,"resolution":"2","location":"assets","locale":"","width":1493,"height":812},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3729571,"resolution":"3","location":"assets","locale":"","width":1493,"height":812},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3729571,"resolution":"4","location":"assets","locale":"","width":1493,"height":812}},"screenshots":{"1":"<strong>Component Manager<\/strong> \u2014 Create and manage reusable price components; each gets a unique token (like <code>comp_4<\/code>) to use in formulas.","2":"<strong>Formula Builder<\/strong> \u2014 Click components to build a formula, see a live price preview as you go, and toggle formula pricing on\/off per product.","3":"<strong>Variable Products<\/strong> \u2014 Build a separate formula per variation and switch between them from the same meta box.","4":"<strong>Dashboard Widget<\/strong> \u2014 Key stats on the WordPress admin home page."}},"plugin_section":[262246],"plugin_tags":[142522,15963,15432,154711,286],"plugin_category":[45],"plugin_contributors":[267795],"plugin_business_model":[],"class_list":["post-342206","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-cost-calculator","plugin_tags-dynamic-pricing","plugin_tags-price-calculator","plugin_tags-product-pricing","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-kodlo","plugin_committers-kodlo"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/kodlo-price-builder-for-woocommerce.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/kodlo-price-builder-for-woocommerce\/assets\/screenshot-1.jpg?rev=3729571","caption":"<strong>Component Manager<\/strong> \u2014 Create and manage reusable price components; each gets a unique token (like <code>comp_4<\/code>) to use in formulas."},{"src":"https:\/\/ps.w.org\/kodlo-price-builder-for-woocommerce\/assets\/screenshot-2.jpg?rev=3729571","caption":"<strong>Formula Builder<\/strong> \u2014 Click components to build a formula, see a live price preview as you go, and toggle formula pricing on\/off per product."},{"src":"https:\/\/ps.w.org\/kodlo-price-builder-for-woocommerce\/assets\/screenshot-3.jpg?rev=3729571","caption":"<strong>Variable Products<\/strong> \u2014 Build a separate formula per variation and switch between them from the same meta box."},{"src":"https:\/\/ps.w.org\/kodlo-price-builder-for-woocommerce\/assets\/screenshot-4.jpg?rev=3729571","caption":"<strong>Dashboard Widget<\/strong> \u2014 Key stats on the WordPress admin home page."}],"raw_content":"<!--section=description-->\n<p><strong>Kodlo Price Builder turns your WooCommerce prices into formulas built from reusable ingredients \u2014 so you never have to manually edit a product price again.<\/strong><\/p>\n\n<p>Need help? For questions, support, or feedback, contact us at hello@kodlo.dev or visit our website at <a href=\"https:\/\/kodlo.dev\">kodlo.dev<\/a>.<\/p>\n\n<p>Found a security issue? Please report it privately to hello@kodlo.dev rather than in a public forum. See <a href=\"https:\/\/plugins.trac.wordpress.org\/browser\/kodlo-price-builder-for-woocommerce\/trunk\/SECURITY.md\">SECURITY.md<\/a> for our disclosure process.<\/p>\n\n<h3>The Problem It Solves<\/h3>\n\n<p>If you sell products made from shared materials or ingredients, you already know the pain: the price of one ingredient changes, and suddenly you're manually editing 20, 30, or 100 product prices \u2014 one by one, hoping you don't miss any.<\/p>\n\n<ol>\n<li><p><strong>Rose price goes up. You have 30 bouquets to update.<\/strong> Every florist knows this drill. Miss one product and you're selling below cost without knowing it.<\/p><\/li>\n<li><p><strong>Material or labor cost changes. Every product using it needs a new price.<\/strong> Jewelers, custom furniture makers, and manufacturers deal with this constantly \u2014 fluctuating material costs, but static WooCommerce prices.<\/p><\/li>\n<li><p><strong>No visibility into what a price change will actually affect.<\/strong> Without Kodlo Price Builder, there's no way to know in advance which products use a given ingredient, or by how much their price will shift.<\/p><\/li>\n<\/ol>\n\n<p>Kodlo Price Builder solves this at the root: define a component once (e.g. \"Rose\" = 45.00), use it inside a formula on any product (<code>comp_1 * 7 + comp_3<\/code>), and every time you update the component's price, every linked product recalculates instantly \u2014 automatically, with no manual editing.<\/p>\n\n<h3>How It Works<\/h3>\n\n<ol>\n<li>Go to <strong>WooCommerce \u2192 Price Builder<\/strong> and create your price components (e.g. Rose = 45.00, Labor = 80.00, Packaging = 12.00).<\/li>\n<li>Open any product, find the <strong>Price Builder Formula<\/strong> box, and build an expression: <code>comp_1 * 7 + comp_2 + comp_3<\/code>.<\/li>\n<li>Save. WooCommerce now shows the calculated price everywhere \u2014 shop page, cart, checkout, emails.<\/li>\n<li>Change a component's price later, and every product using it updates automatically. No manual editing, no missed products.<\/li>\n<\/ol>\n\n<h3>Key Features<\/h3>\n\n<ul>\n<li><strong>Reusable price components<\/strong> \u2014 define ingredients\/materials once, reuse them across unlimited products, no limit on the free version<\/li>\n<li><strong>Formula-driven pricing<\/strong> \u2014 real math (<code>+ - * \/ ( )<\/code>) plus a built-in <code>qty<\/code> variable for quantity-based pricing<\/li>\n<li><strong>Formula toggle per product<\/strong> \u2014 turn formula pricing on or off per product without losing your setup; the standard WooCommerce price field shows a clear override notice when active<\/li>\n<li><strong>Live price preview<\/strong> \u2014 see the calculated price as you build the formula, before saving<\/li>\n<li><strong>Automatic recalculation<\/strong> \u2014 cached with WordPress transients, invalidated instantly whenever a component or product changes<\/li>\n<li><strong>No manual editing, ever<\/strong> \u2014 this is the entire point: change one number, every linked product updates<\/li>\n<li><strong>HPOS compatible<\/strong> \u2014 works with WooCommerce's High-Performance Order Storage<\/li>\n<li><strong>Multilingual<\/strong> \u2014 English and Ukrainian included, fully translation-ready<\/li>\n<\/ul>\n\n<h3>Who Is This Plugin For?<\/h3>\n\n<p><strong>Florists and flower shops.<\/strong> Flower prices change weekly or even daily. A single rose used across 30 bouquet variations means 30 manual price edits every time the wholesale cost shifts \u2014 or one component update with Kodlo Price Builder.<\/p>\n\n<p><strong>Jewelers, custom furniture makers, and handmade product sellers.<\/strong> Your prices are built from material cost + labor + markup. Kodlo Price Builder lets your WooCommerce price reflect your real cost structure instead of a static number you have to remember to update.<\/p>\n\n<p><strong>Any store where the same ingredient, material, or service appears across many products.<\/strong> Catering, sign shops, print shops, bakeries, fabricators \u2014 if you've ever thought \"I wish changing one thing updated all my products,\" this plugin is built for exactly that.<\/p>\n\n<p><em>No hidden fees on the free version. Unlimited components, fully functional, no time limit.<\/em><\/p>\n\n<h3>Free vs Pro \u2014 What You Get<\/h3>\n\n<p><strong>Free (this plugin) includes everything you need to try formula-based pricing:<\/strong><\/p>\n\n<ul>\n<li>Unlimited price components \u2014 no cap, no trial, no time limit<\/li>\n<li>Visual formula builder \u2014 click components to add them, drag to reorder, connect with <code>+<\/code> or <code>\u2212<\/code><\/li>\n<li>Formula toggle per product with live preview<\/li>\n<li>Automatic recalculation when a component price changes<\/li>\n<li>Variable product support \u2014 each variation can have its own independent formula<\/li>\n<li>Dashboard widget with quick stats<\/li>\n<li>HPOS compatible, fully translatable<\/li>\n<\/ul>\n\n<p><strong>Kodlo Price Builder Pro adds:<\/strong><\/p>\n\n<p><strong>Components<\/strong><\/p>\n\n<ul>\n<li>Component images (WordPress Media Library)<\/li>\n<li>SKU \/ internal code field for each component<\/li>\n<li>Extended description field<\/li>\n<li>Component Groups \u2014 organize components into named groups (e.g. Flowers, Decor, Labor)<\/li>\n<\/ul>\n\n<p><strong>Search &amp; Navigation<\/strong><\/p>\n\n<ul>\n<li>Live search by name, SKU, or description<\/li>\n<li>Pagination for large component libraries<\/li>\n<li>Filter components by group<\/li>\n<\/ul>\n\n<p><strong>Formulas<\/strong><\/p>\n\n<ul>\n<li>Quantity multiplier per component, plus <code>\u00d7<\/code> and <code>\u00f7<\/code> operators (Free covers <code>+<\/code>\/<code>\u2212<\/code> only)<\/li>\n<li>Advanced text editor \u2014 type formulas directly, with a <code>qty<\/code> variable for quantity-based pricing<\/li>\n<li><code>IF()<\/code> conditional expressions \u2014 e.g. bulk discounts based on quantity<\/li>\n<li><code>ROUND()<\/code>, <code>MIN()<\/code>, <code>MAX()<\/code>, <code>CEIL()<\/code>, <code>FLOOR()<\/code> functions<\/li>\n<li>Percentage operator (<code>comp_1 * 15%<\/code>)<\/li>\n<li>Save and reuse formula templates across products<\/li>\n<\/ul>\n\n<p><strong>Alerts &amp; Change Log<\/strong><\/p>\n\n<ul>\n<li>Impact Alert \u2014 before you save a new component price, see exactly which products are affected and by how much<\/li>\n<li>Full Change Log \u2014 who changed what and when, for every component<\/li>\n<li>One-click restore to any previous price<\/li>\n<\/ul>\n\n<p><strong>When is Free enough?<\/strong> If simple addition\/subtraction of components covers your pricing (e.g. \"Rose + Ribbon + Vase\"), Free is fully capable \u2014 permanently, no trial, no time limit.<\/p>\n\n<p><strong>When should you upgrade to Pro?<\/strong> If you need quantities per component, multiplication or division, conditional or percentage-based pricing, or want to see the impact of a price change before committing to it \u2014 Pro adds that on top of the free builder.<\/p>\n\n<h3>How to Upgrade to Pro<\/h3>\n\n<p>Kodlo Price Builder Pro is a separate, standalone plugin \u2014 installing it doesn't touch or remove the free version's data.<\/p>\n\n<ol>\n<li>From <strong>WooCommerce \u2192 Price Builder<\/strong>, click <strong>\"See Pro features\"<\/strong>, or go directly to <a href=\"https:\/\/kodlo.dev\/price-builder\">kodlo.dev\/price-builder<\/a>.<\/li>\n<li>Choose a plan and complete checkout.<\/li>\n<li>Download the Pro plugin ZIP from your Kodlo account and install it via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li><strong>Deactivate the free \"Kodlo Price Builder for WooCommerce\" plugin<\/strong>, then activate <strong>\"Kodlo Price Builder for WooCommerce Pro\"<\/strong>. The two share the same database tables, so all your components and formulas carry over automatically \u2014 nothing to re-enter.<\/li>\n<li>Enter your license key under <strong>WooCommerce \u2192 Price Builder \u2192 Account<\/strong> to unlock Pro features.<\/li>\n<\/ol>\n\n<p>If you ever deactivate Pro and go back to the free version, your data stays exactly as it was \u2014 components and formulas live in the same tables either way.<\/p>\n\n<h3>Translations<\/h3>\n\n<p>Kodlo Price Builder for WooCommerce is fully translatable \u2014 including the formula builder and every admin screen, not just static labels. The plugin follows your site's admin language automatically (change it under <strong>Users \u2192 Profile \u2192 Language<\/strong>, or <strong>Settings \u2192 General \u2192 Site Language<\/strong>), and the entire interface switches with it.<\/p>\n\n<p>Translations are managed through <a href=\"https:\/\/translate.wordpress.org\/\">translate.wordpress.org<\/a> \u2014 once community translations reach 100% for a language, WordPress delivers them automatically. No translation files are bundled with the plugin.<\/p>\n\n<p>Want to contribute a translation? Head to the plugin's page on <a href=\"https:\/\/translate.wordpress.org\/\">translate.wordpress.org<\/a> and submit strings for your language directly \u2014 no files to download or upload.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/kodlo-price-builder-for-woocommerce\/<\/code>, or install directly through <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Make sure WooCommerce is installed and active \u2014 Kodlo Price Builder requires it.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Price Builder<\/strong> to create your first components.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20problem%20does%20this%20actually%20solve%3F\"><h3>What problem does this actually solve?<\/h3><\/dt>\n<dd><p>It removes manual price editing when a shared ingredient, material, or cost changes. Instead of updating 30 products by hand, you update 1 component and every product using it recalculates automatically.<\/p><\/dd>\n<dt id=\"does%20the%20price%20actually%20change%20everywhere%2C%20or%20just%20on%20the%20product%20page%3F\"><h3>Does the price actually change everywhere, or just on the product page?<\/h3><\/dt>\n<dd><p>Everywhere. Kodlo Price Builder hooks directly into WooCommerce's core price functions, so the calculated price is the real product price \u2014 shown correctly in the shop, cart, checkout, order emails, and reports.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20variable%20products%3F\"><h3>Does this work with variable products?<\/h3><\/dt>\n<dd><p>Yes. Each variation can have its own independent formula (e.g. a \"5 roses\" variation and an \"11 roses\" variation of the same bouquet) \u2014 set it right in the Variations panel on the product edit screen.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20delete%20a%20component%20that%27s%20used%20in%20a%20formula%3F\"><h3>What happens if I delete a component that's used in a formula?<\/h3><\/dt>\n<dd><p>The product automatically falls back to its standard WooCommerce price, and the formula builder shows a warning so you can fix it.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20store%3F\"><h3>Will this slow down my store?<\/h3><\/dt>\n<dd><p>No. Calculated prices are cached using WordPress transients and only recalculated when a component price or the product itself changes \u2014 there's no extra computation on every page load.<\/p><\/dd>\n<dt id=\"is%20it%20safe%3F%20can%20formulas%20run%20arbitrary%20code%3F\"><h3>Is it safe? Can formulas run arbitrary code?<\/h3><\/dt>\n<dd><p>Formulas are parsed with a strict, purpose-built evaluator \u2014 never <code>eval()<\/code> and never arbitrary PHP or JavaScript execution. Only numbers, component tokens, and a fixed set of math operators\/functions are allowed.<\/p><\/dd>\n<dt id=\"how%20many%20components%20can%20i%20have%20on%20the%20free%20version%3F\"><h3>How many components can I have on the free version?<\/h3><\/dt>\n<dd><p>Unlimited \u2014 there's no cap, no trial period, no countdown. Pro adds richer formula tools (quantities, multiplication\/division, conditional pricing, templates) on top of the same unlimited components.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20uninstall%20the%20free%20version%20to%20use%20pro%3F\"><h3>Do I need to uninstall the free version to use Pro?<\/h3><\/dt>\n<dd><p>You need to <strong>deactivate<\/strong> the free plugin and activate Pro instead (both define the same functionality, so they can't run at the same time) \u2014 but you don't need to uninstall it, and your data isn't affected either way, since both plugins use the same database tables.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20formulas%20if%20i%20stop%20using%20pro%3F\"><h3>What happens to my formulas if I stop using Pro?<\/h3><\/dt>\n<dd><p>Nothing is deleted. If you deactivate Pro and go back to the free plugin, formulas using Pro-only functions (<code>IF()<\/code>, <code>ROUND()<\/code>, etc.) will simply show a \"Check formula\" notice until you either reactivate Pro or simplify them to basic <code>+<\/code>\/<code>-<\/code> math.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multi-currency%3F\"><h3>Does it support multi-currency?<\/h3><\/dt>\n<dd><p>Not built in yet \u2014 this is on our roadmap. If you need it now, please reach out at hello@kodlo.dev so we can prioritize it.<\/p><\/dd>\n<dt id=\"what%20product%20types%20are%20supported%3F\"><h3>What product types are supported?<\/h3><\/dt>\n<dd><p>Simple products and Variable products (with an independent formula per variation). Other product types (e.g. Subscriptions, Bundles) aren't officially supported yet.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20trial%20for%20pro%3F\"><h3>Is there a free trial for Pro?<\/h3><\/dt>\n<dd><p>There's no separate trial \u2014 the Free version itself has no time limit, so you can use it for as long as you like before deciding to upgrade. Pro purchases come with a 30-day money-back guarantee.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.9<\/h4>\n\n<ul>\n<li>Added price formula support for variable products \u2014 build a separate formula per variation, switch between them from the same \"Price Builder Formula\" meta box, with a read-only notice in WooCommerce's Variations panel when a variation's price is overridden<\/li>\n<li>Added a WordPress Playground blueprint so the plugin can be tried instantly via the \"Live Preview\" button on its WordPress.org page<\/li>\n<li>Fixed the Price Builder admin postbox titles rendering flush against the box edge instead of with the standard WordPress padding<\/li>\n<\/ul>\n\n<h4>1.3.8<\/h4>\n\n<ul>\n<li>Added url to plugin page<\/li>\n<\/ul>\n\n<h4>1.3.7<\/h4>\n\n<ul>\n<li>Verified compatibility with WordPress 7.1 and WooCommerce 11.0.1<\/li>\n<\/ul>\n\n<h4>1.3.6<\/h4>\n\n<ul>\n<li>Critical fix: resolved a fatal error on every admin page (<code>class_alias(): Argument #1 must be a user-defined class name, internal class name given<\/code>) introduced in 1.3.5<\/li>\n<li>Added a proper <code>.wrap<\/code> container to the Price Builder admin page so it renders correctly even before JavaScript loads<\/li>\n<li>Added <code>uninstall.php<\/code> to clean up internal housekeeping data (security logs, rate-limit transients); component\/formula data is intentionally kept so switching to Kodlo Price Builder Pro doesn't lose anything, since both plugins share the same database tables<\/li>\n<li>Added a documented security contact and SECURITY.md<\/li>\n<li>Fixed a docblock\/filter mismatch \u2014 the <code>kodlo_price_builder_component_price<\/code> filter now actually receives the product ID it always claimed to pass<\/li>\n<li>Replaced a remaining inline <code>style=\"\"<\/code> attribute with a properly enqueued rule<\/li>\n<li>Minor code-quality cleanups (redundant null-coalesce, explicit type cast)<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Code clarity: removed leftover conditional logic and stale comments referencing the old shared Free\/Pro codebase \u2014 no functional change, this build has never had a Pro state to begin with<\/li>\n<li>Regenerated the .pot translation template to match the current file structure (previous version referenced files that no longer exist in this plugin)<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Code clarity: simplified a redundant condition in the plugin-conflict safety check (no functional change)<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Fixed a sanitization warning on the variable product formula field \u2014 sanitization now happens at the same point where the input is read, not on a later line<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Security: fixed output escaping and input sanitization in the variable product formula UI (component price display, formula field, hidden variables field, and POST handling on save)<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Variable product support is now included in the free version \u2014 each variation can have its own independent formula, set in the Variations panel<\/li>\n<li>Renamed internal option\/transient names to consistently use the plugin's full prefix<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Kodlo Price Builder Pro is now a separate, standalone plugin instead of an in-place upgrade \u2014 install it alongside (after deactivating) the free version, no data is lost since both use the same database tables<\/li>\n<li>Removed the Freemius SDK from the free version entirely \u2014 this plugin now relies exclusively on WordPress.org for hosting and updates<\/li>\n<li>Added a safety check to prevent the free and Pro plugins from running at the same time<\/li>\n<li>Updated \"Upgrade to Pro\" links to point to kodlo.dev<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fixed a bug where formulas using Pro functions (IF, ROUND, MIN, MAX, CEIL, FLOOR) were not calculated correctly<\/li>\n<li>Fixed the live formula preview in the admin to correctly show results for formulas using those functions<\/li>\n<li>Fixed the Freemius connect notice showing on every admin page instead of only the Price Builder screen<\/li>\n<li>Removed a duplicate license-connect notice on the Price Builder page<\/li>\n<li>Cleaned up plugin metadata (readme and header fields)<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Removed the free-plan component limit \u2014 components are unlimited on the free version<\/li>\n<li>Simplified the free formula builder to a drag-and-drop <code>+<\/code>\/<code>\u2212<\/code> component builder; quantities, multiplication\/division, the advanced text editor, and functions are part of Pro<\/li>\n<li>Renamed the plugin to Kodlo Price Builder for WooCommerce for clarity<\/li>\n<li>The entire admin interface is translatable, including the formula builder \u2014 the plugin switches language automatically with your site's admin language<\/li>\n<li>Added a German (de_DE) translation<\/li>\n<li>Refreshed the Ukrainian translation to cover all current strings<\/li>\n<li>Added a direct \"Settings\" link on the Plugins list page<\/li>\n<li>Added a \"Requires Plugins\" header to prompt for WooCommerce if it isn't active<\/li>\n<li>Updated the bundled Freemius SDK to 2.13.4<\/li>\n<li>Raised minimum requirements to WordPress 6.6, WooCommerce 9.0, and PHP 8.1 to align with actively supported versions<\/li>\n<li>Security: rate limiting now keys off the actual connection IP instead of client-supplied headers, which are spoofable<\/li>\n<li>Refreshed plugin description, FAQ, and documentation<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Security: added multi-layer license verification<\/li>\n<li>Security: added REST API rate limiting and request validation<\/li>\n<li>Security: tightened capability checks across all REST endpoints<\/li>\n<li>General code audit and hardening ahead of the WordPress.org submission<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Added Simple mode formula builder with drag &amp; drop blocks (Pro)<\/li>\n<li>Added the ability to save and reuse formula templates across products (Pro)<\/li>\n<li>Redesigned the admin interface using the Tabler design system for a cleaner, more consistent look<\/li>\n<li>Various small UI\/UX polish passes on the formula builder<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Introduced Kodlo Price Builder Pro<\/li>\n<li>Added unlimited components, component images, and SKU support (Pro)<\/li>\n<li>Added component groups, live search, and pagination (Pro)<\/li>\n<li>Added Advanced mode functions: IF(), ROUND(), MIN(), MAX(), CEIL(), FLOOR() and the percentage operator (Pro)<\/li>\n<li>Added Impact Alert \u2014 preview affected products before saving a component price change (Pro)<\/li>\n<li>Added full Change Log with one-click price restore (Pro)<\/li>\n<li>Added variable product support with independent per-variation formulas (Pro)<\/li>\n<li>Added formula active\/inactive toggle per product, with a clear override notice on the WooCommerce price field<\/li>\n<li>Added a live price preview while editing a formula<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed the formula not saving correctly the first time a new product was published<\/li>\n<li>Fixed a notice shown when a product's quantity field was left empty<\/li>\n<li>Minor translation string corrections<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Free formula builder (Advanced\/text mode) with <code>+ - * \/ ( )<\/code> and a built-in <code>qty<\/code> variable<\/li>\n<li>Up to 5 reusable price components<\/li>\n<li>Automatic price recalculation when a component price changes<\/li>\n<li>Dashboard widget with basic stats<\/li>\n<\/ul>","raw_excerpt":"Stop editing 30 product prices every time one ingredient changes. Update one reusable component and every linked product price updates automatically.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/342206","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=342206"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kodlo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=342206"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=342206"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=342206"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=342206"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=342206"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=342206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}