{"id":343997,"date":"2026-07-27T12:15:12","date_gmt":"2026-07-27T12:15:12","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pablo-measurecart-lite\/"},"modified":"2026-07-27T12:17:30","modified_gmt":"2026-07-27T12:17:30","slug":"pablo-measurecart-lite","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/pablo-measurecart-lite\/","author":21020063,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.5","stable_tag":"1.2.5","tested":"7.0.2","requires":"6.7","requires_php":"8.3","requires_plugins":null,"header_name":"Pablo MeasureCart \u2013 Universal Unit Sales","header_author":"Pablo Rotem","header_description":"Universal WooCommerce plus\/minus ordering for items, weight, volume, length and package-based products, with fixed grid\/table catalogs and persistent cart tools.","assets_banners_color":"0c2630","last_updated":"2026-07-27 12:17:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/pablo-guides.net\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.5":{"tag":"1.2.5","author":"pablorotem9","date":"2026-07-27 12:17:30"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3624512,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3624512,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3624512,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3624512,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3624512,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3624512,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3624512,"resolution":"2","location":"assets","locale":"","width":1200,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3624512,"resolution":"3","location":"assets","locale":"","width":1200,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3624512,"resolution":"4","location":"assets","locale":"","width":1200,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3624512,"resolution":"5","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Five sale-option rows in the product editor.","2":"Grid view with unit choices, live totals, badges, and plus\/minus controls.","3":"Responsive table view.","4":"Persistent top cart and side cart.","5":"Grid and table display settings."}},"plugin_section":[],"plugin_tags":[146135,3070,13406,10234,286],"plugin_category":[45],"plugin_contributors":[272196],"plugin_business_model":[],"class_list":["post-343997","plugin","type-plugin","status-publish","hentry","plugin_tags-product-table","plugin_tags-quantity","plugin_tags-unit-price","plugin_tags-weight","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-pablorotem9","plugin_committers-pablorotem9"],"banners":{"banner":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/banner-772x250.png?rev=3624512","banner_2x":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/banner-1544x500.png?rev=3624512","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/icon.svg?rev=3624512","icon":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/icon.svg?rev=3624512","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/screenshot-1.png?rev=3624512","caption":"Five sale-option rows in the product editor."},{"src":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/screenshot-2.png?rev=3624512","caption":"Grid view with unit choices, live totals, badges, and plus\/minus controls."},{"src":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/screenshot-3.png?rev=3624512","caption":"Responsive table view."},{"src":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/screenshot-4.png?rev=3624512","caption":"Persistent top cart and side cart."},{"src":"https:\/\/ps.w.org\/pablo-measurecart-lite\/assets\/screenshot-5.png?rev=3624512","caption":"Grid and table display settings."}],"raw_content":"<!--section=description-->\n<p>Pablo MeasureCart replaces standard loop add-to-cart buttons with a fixed plus\/minus interface across WooCommerce product views.<\/p>\n\n<p>Each product provides five complete, independently enabled sale-option slots. Every slot includes:<\/p>\n\n<ul>\n<li>Unit type or a custom unit name.<\/li>\n<li>Base quantity, such as 0.5 kg.<\/li>\n<li>Price for the base quantity.<\/li>\n<li>Minimum quantity.<\/li>\n<li>Plus\/minus step.<\/li>\n<li>Starting quantity.<\/li>\n<li>Maximum quantity.<\/li>\n<\/ul>\n\n<p>The storefront displays the price per configured base quantity and a live total. For example, a product configured as $10 per 0.5 kg displays a total of $30 when the cart quantity reaches 1.5 kg.<\/p>\n\n<p>The plugin also provides:<\/p>\n\n<ul>\n<li>Plus\/minus controls on shop loops, product archives, related products, upsells, cross-sells, supported product blocks, single products, mini-cart, and cart pages.<\/li>\n<li>Grid and table layouts on the shop, product taxonomies, and product searches.<\/li>\n<li>A persistent top cart and side cart.<\/li>\n<li>Taxonomy-based product badges for every relevant product label.<\/li>\n<li>Administrator-selected fields for grid cards and table columns.<\/li>\n<li>Optional responsive table rows that expose extra fields through an accessible plus button.<\/li>\n<li>Decimal quantity validation for classic WooCommerce and the Store API.<\/li>\n<li>Bundled readable local styling and storefront behavior with structured settings only.<\/li>\n<\/ul>\n\n<p>Two focused MeasureCart administration screens configure grid fields and table fields. Every selectable field is predefined, validated and available directly to the administrator.<\/p>\n\n<h3>Source code<\/h3>\n\n<p>The human-readable frontend JavaScript source is included at <code>assets\/js\/frontend.src.js<\/code>. The runtime file <code>assets\/js\/frontend.js<\/code> is also readable and is generated by copying the source file without minification or transformation. No build tools are required.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP through Plugins \u2192 Add New \u2192 Upload Plugin.<\/li>\n<li>Activate Pablo MeasureCart.<\/li>\n<li>Edit a WooCommerce product and open the MeasureCart units tab.<\/li>\n<li>Enable the sale-option slots needed for the product and enter each slot's quantity and price rules.<\/li>\n<li>Create badges under Products \u2192 Product badges, then assign the relevant badges in the product editor.<\/li>\n<li>Open MeasureCart \u2192 Grid display and MeasureCart \u2192 Table display to configure the storefront.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20redirect%20customers%20to%20the%20product%20page%20after%20clicking%20plus%3F\"><h3>Does the plugin redirect customers to the product page after clicking plus?<\/h3><\/dt>\n<dd><p>No. Supported simple products and resolved variations are updated by a nonce-protected local AJAX request while the customer remains on the current page.<\/p><\/dd>\n<dt id=\"how%20is%20a%20price%20such%20as%20%2410%20per%200.5%20kg%20calculated%3F\"><h3>How is a price such as $10 per 0.5 kg calculated?<\/h3><\/dt>\n<dd><p>The plugin stores $10 as the price for the configured base quantity of 0.5 kg. WooCommerce receives the equivalent per-one-unit rate, so 1.5 kg totals $30.<\/p><\/dd>\n<dt id=\"can%20a%20product%20have%20more%20than%20one%20sale%20option%3F\"><h3>Can a product have more than one sale option?<\/h3><\/dt>\n<dd><p>Yes. Five complete slots are available and any unused slots can remain unchecked.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Fixed the Table switch and retained normal server-side links as a complete fallback.<\/li>\n<li>Added separate responsive Grid display and Table display administration screens.<\/li>\n<li>Added allowlisted field selection for grid cards and table columns.<\/li>\n<li>Added optional expandable table rows when selected columns exceed the available width.<\/li>\n<li>Moved the single-product quantity selector below the product image and above sale-unit selection.<\/li>\n<li>Added a dedicated local asset revision to prevent stale cached JavaScript after the table fix.<\/li>\n<li>Kept all PHP, JavaScript, and CSS human-readable and local, with predefined settings only.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Fixed literal WooCommerce currency entities such as <code>&amp;nbsp;<\/code> and <code>&amp;#8362;<\/code> in live price summaries.<\/li>\n<li>Display the configured starting quantity and its total before a product is added to the cart.<\/li>\n<li>Keep the real cart quantity separate from the pre-add starting-quantity preview.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Added <code>assets\/js\/frontend.src.js<\/code> as an explicit human-readable source counterpart for the runtime frontend script.<\/li>\n<li>Documented that the runtime frontend script is copied from the source without minification or transformation.<\/li>\n<li>Replaced slice-based sale-option processing with an explicit five-slot public schema.<\/li>\n<li>Improved badge assignment and product-block control loading.<\/li>\n<li>Expanded grid-column choices from one through twelve using predefined layouts.<\/li>\n<li>Reconfirmed that every supported unit type and pricing field is directly available in the editor.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Changed sale-option hover, keyboard-focus, and selected states to a fixed dark-blue background with white text.<\/li>\n<li>Shortened the WordPress.org short description to remain below 150 characters.<\/li>\n<li>Removed readme wording that could be mistaken for a source-code input feature.<\/li>\n<li>Removed the redundant WooCommerce dependency notice and rely on the Requires Plugins header.<\/li>\n<li>Retained nonce verification for public cart AJAX while making the action registration clearer to static scanners.<\/li>\n<li>Removed a redundant capability termination from the protected settings-page callback.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added five complete independently enabled sale-option slots per product.<\/li>\n<li>Added base quantity and base price fields with live unit-price and total displays.<\/li>\n<li>Added separate cart lines and prices for different sale options of the same product.<\/li>\n<li>Removed all plus-button navigation to product pages.<\/li>\n<li>Added taxonomy-based product badges and badge catalog filters.<\/li>\n<li>Added badges to grid, table, classic loops, blocks, and single-product displays.<\/li>\n<li>Preserved readable, non-minified local CSS and JavaScript.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Removed the dependency on an unavailable catalog-ordering helper.<\/li>\n<li>Reused WooCommerce's native archive query and ordering output.<\/li>\n<li>Corrected input sanitization and prefixed uninstall variables.<\/li>\n<\/ul>","raw_excerpt":"WooCommerce unit sales with plus\/minus ordering, configurable grids and tables, responsive row details, badges, and carts.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343997","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=343997"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pablorotem9"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343997"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343997"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343997"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343997"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343997"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}