From a71a4a7ba981028f88a048e7ba27440ae619120e Mon Sep 17 00:00:00 2001 From: Varun Kumar Dubey Date: Wed, 19 Aug 2026 17:01:47 +0530 Subject: [PATCH 1/2] Fix five QA findings from the 1.3.0 release; refute one of them Reported by QA in the release thread. Each was reproduced before being touched, and one turned out not to be a bug. * Fix - the FAQ tab never expanded or collapsed. Its accordion markup and toggle script both shipped, but the stylesheet had no rule for any of the accordion classes, so every answer was permanently open and the questions rendered as plain text with nothing to suggest they were clickable. The closed state has to come from CSS: the script opens a panel by setting an inline max-height and closes it by clearing that value, so with no max-height: 0 to fall back to there was no closed state at all. Verified: panel measures 0px closed, opens on click, closes again. * Fix - settings tabs rendered an empty Products Per Page box on a site whose options had never been saved. All four partials read their option with no default, and that field had no fallback of its own. Reproduced by deleting the options; verified fixed in the same state. * Improve - multisite uninstall now uses get_sites() instead of querying $wpdb->blogs directly. The old line also carried a phpcs:ignore that silenced the prepared-SQL sniff rather than resolving it. * Dev - the user guide no longer ships in the release zip. * Dev - settings registrations name their sanitize callback explicitly. REFUTED, with evidence: the report that four register_setting() calls lack a sanitize_callback and therefore "store raw unsanitized input" is not correct. WordPress core back-compats a bare callable third argument - option.php wraps it as sanitize_callback when is_callable( $args ) - so the validators were running the whole time. Proven behaviourally rather than by reading core: submitting a Products Per Page of 999 stored 100, which is the clamp inside validate_general_settings(). The key is now spelled out anyway, because the old form reads like the callback is ignored and is one deprecation away from that being true - and re-running the same 999 test after the change still stores 100. --- .distignore | 1 + README.txt | 9 +- ...-infinite-loader-for-woocommerce-admin.php | 15 +++- .../infinite-loader-for-woocommerce-admin.css | 80 ++++++++++++++++++ ...der-for-woocommerce-setting-button-tab.php | 2 +- ...der-for-woocommerce-setting-css-js-tab.php | 2 +- ...er-for-woocommerce-setting-general-tab.php | 4 +- ...oocommerce-setting-previous-button-tab.php | 2 +- ...infinite-loader-for-woocommerce-1.3.1.zip} | Bin 1282400 -> 1279790 bytes infinite-loader-for-woocommerce.php | 4 +- package.json | 2 +- uninstall.php | 11 ++- 12 files changed, 115 insertions(+), 17 deletions(-) rename dist/{infinite-loader-for-woocommerce-1.3.0.zip => infinite-loader-for-woocommerce-1.3.1.zip} (96%) diff --git a/.distignore b/.distignore index 91c7f33..f00831e 100644 --- a/.distignore +++ b/.distignore @@ -21,3 +21,4 @@ .DS_Store /developer-guide.md /faq-guide.md +/user-guide.md diff --git a/README.txt b/README.txt index 8611d45..71f095e 100644 --- a/README.txt +++ b/README.txt @@ -5,7 +5,7 @@ Tags: Woocommerce Requires at least: 6.5 Tested up to: 7.0 Requires PHP: 8.0 -Stable tag: 1.3.0 +Stable tag: 1.3.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -29,6 +29,13 @@ This section describes how to install the plugin and get it working. Woocommerce == Changelog == += 1.3.1 = +* Fix - The FAQ tab now expands and collapses. Its accordion shipped with no styles at all, so every answer was permanently open and the questions looked like plain text. +* Fix - Settings tabs show their default values on a site where the options have not been saved yet, instead of an empty Products Per Page box. +* Improve - Multisite uninstall uses the supported get_sites() API rather than a direct database query. +* Dev - Settings registrations name their sanitize callback explicitly. +* Dev - The user guide is no longer packaged in the release zip. + = 1.3.0 = * Fix - Custom CSS from the JavaScript/CSS tab now applies rules that use child or sibling combinators. Output was HTML-escaped inside the style tag, so a selector like "ul.products > li.product" shipped with an encoded arrow and silently never matched, while simple selectors kept working. * Fix - The bundled Font Awesome stylesheet now loads, so the default loading spinner is visible on themes that do not ship Font Awesome themselves. It was hooked too early to ever run. diff --git a/admin/class-infinite-loader-for-woocommerce-admin.php b/admin/class-infinite-loader-for-woocommerce-admin.php index 22d92df..58e42e0 100644 --- a/admin/class-infinite-loader-for-woocommerce-admin.php +++ b/admin/class-infinite-loader-for-woocommerce-admin.php @@ -418,10 +418,17 @@ private function render_overview_tab() { * @author Wbcom Designs */ public function infinite_loader_for_woocommerce_init_plugin_settings() { - register_setting( 'infinite_loader_admin_general_options', 'infinite_loader_admin_general_option', array( $this, 'validate_general_settings' ) ); - register_setting( 'infinite_loader_admin_button_options', 'infinite_loader_admin_button_option', array( $this, 'validate_button_settings' ) ); - register_setting( 'infinite_loader_admin_previous_button_options', 'infinite_loader_admin_previous_button_option', array( $this, 'validate_button_settings' ) ); - register_setting( 'infinite_loader_admin_css_js_options', 'infinite_loader_admin_css_js_option', array( $this, 'validate_css_js_settings' ) ); + /* + * The sanitize_callback key is spelled out rather than relying on + * register_setting()'s back-compat path, which wraps a bare callable + * third argument for you. That path works - the validators did run - + * but it reads like the callback is being ignored, and it is one core + * deprecation away from silently becoming true. + */ + register_setting( 'infinite_loader_admin_general_options', 'infinite_loader_admin_general_option', array( 'sanitize_callback' => array( $this, 'validate_general_settings' ) ) ); + register_setting( 'infinite_loader_admin_button_options', 'infinite_loader_admin_button_option', array( 'sanitize_callback' => array( $this, 'validate_button_settings' ) ) ); + register_setting( 'infinite_loader_admin_previous_button_options', 'infinite_loader_admin_previous_button_option', array( 'sanitize_callback' => array( $this, 'validate_button_settings' ) ) ); + register_setting( 'infinite_loader_admin_css_js_options', 'infinite_loader_admin_css_js_option', array( 'sanitize_callback' => array( $this, 'validate_css_js_settings' ) ) ); } /** diff --git a/admin/css/infinite-loader-for-woocommerce-admin.css b/admin/css/infinite-loader-for-woocommerce-admin.css index da008dc..bfa640c 100644 --- a/admin/css/infinite-loader-for-woocommerce-admin.css +++ b/admin/css/infinite-loader-for-woocommerce-admin.css @@ -359,3 +359,83 @@ select#infinity-loader-loading-type+.select2-container--default .select2-selecti grid-template-columns: repeat(2, minmax(0, 1fr)); } } + +/* FAQ accordion. + * + * The markup and the toggle script both shipped without any styles, so every + * answer was permanently open and the questions rendered as plain text with no + * hint they could be clicked. + * + * The script sets an inline max-height on the panel to open it and clears that + * value to close it, so the closed state has to come from CSS here - without a + * max-height of 0 there is nothing for "cleared" to fall back to. + */ +.wbcom-faq-accordion { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + width: 100%; + margin: 0; + padding: 14px 18px; + border: 1px solid #dcdcde; + border-radius: 4px; + background: #f6f7f7; + color: #1d2327; + font-size: 14px; + font-weight: 600; + text-align: left; + cursor: pointer; + transition: background 0.15s ease; +} + +.wbcom-faq-accordion + .wbcom-faq-accordion, +.wbcom-faq-panel + .wbcom-faq-accordion { + margin-top: 8px; +} + +.wbcom-faq-accordion:hover, +.wbcom-faq-accordion:focus-visible { + background: #eceded; +} + +.wbcom-faq-accordion:focus-visible { + outline: 2px solid #2271b1; + outline-offset: 1px; +} + +/* Chevron, rotated when the question is open. */ +.wbcom-faq-accordion::after { + content: ""; + flex: 0 0 auto; + width: 8px; + height: 8px; + border-right: 2px solid currentColor; + border-bottom: 2px solid currentColor; + transform: rotate(45deg) translate(-2px, -2px); + transition: transform 0.15s ease; +} + +.wbcom-faq-accordion.active::after { + transform: rotate(-135deg) translate(-2px, -2px); +} + +.wbcom-faq-accordion.active { + background: #e8f0f7; + border-color: #c3d4e3; +} + +.wbcom-faq-panel { + max-height: 0; + overflow: hidden; + padding: 0 18px; + border-inline: 1px solid transparent; + transition: max-height 0.2s ease; +} + +.wbcom-faq-panel p { + margin: 14px 0; + color: #50575e; + font-size: 13px; + line-height: 1.6; +} diff --git a/admin/partials/infinite-loader-for-woocommerce-setting-button-tab.php b/admin/partials/infinite-loader-for-woocommerce-setting-button-tab.php index b174086..c5e34dc 100644 --- a/admin/partials/infinite-loader-for-woocommerce-setting-button-tab.php +++ b/admin/partials/infinite-loader-for-woocommerce-setting-button-tab.php @@ -16,7 +16,7 @@ exit; } -$infinite_loader_button_setting = get_option( 'infinite_loader_admin_button_option' ); +$infinite_loader_button_setting = get_option( 'infinite_loader_admin_button_option', array() ); ?>
diff --git a/admin/partials/infinite-loader-for-woocommerce-setting-css-js-tab.php b/admin/partials/infinite-loader-for-woocommerce-setting-css-js-tab.php index 414e2ea..7fed5b5 100644 --- a/admin/partials/infinite-loader-for-woocommerce-setting-css-js-tab.php +++ b/admin/partials/infinite-loader-for-woocommerce-setting-css-js-tab.php @@ -16,7 +16,7 @@ exit; } -$infinite_loader_css_js_setting = get_option( 'infinite_loader_admin_css_js_option' ); +$infinite_loader_css_js_setting = get_option( 'infinite_loader_admin_css_js_option', array() ); $infinite_loader_custom_css = isset( $infinite_loader_css_js_setting['custom_css'] ) ? $infinite_loader_css_js_setting['custom_css'] : ''; $infinite_loader_before_update = isset( $infinite_loader_css_js_setting['before_update'] ) ? $infinite_loader_css_js_setting['before_update'] : ''; $infinite_loader_after_update = isset( $infinite_loader_css_js_setting['after_update'] ) ? $infinite_loader_css_js_setting['after_update'] : ''; diff --git a/admin/partials/infinite-loader-for-woocommerce-setting-general-tab.php b/admin/partials/infinite-loader-for-woocommerce-setting-general-tab.php index 2b9206e..e2d5c96 100644 --- a/admin/partials/infinite-loader-for-woocommerce-setting-general-tab.php +++ b/admin/partials/infinite-loader-for-woocommerce-setting-general-tab.php @@ -16,7 +16,7 @@ exit; } -$infinite_loader_general_setting = get_option( 'infinite_loader_admin_general_option' ); +$infinite_loader_general_setting = get_option( 'infinite_loader_admin_general_option', array() ); $infinite_loader_selected_icon = isset( $infinite_loader_general_setting['loading_image'] ) ? esc_attr( $infinite_loader_general_setting['loading_image'] ) : ''; ?> @@ -55,7 +55,7 @@

- +
diff --git a/admin/partials/infinite-loader-for-woocommerce-setting-previous-button-tab.php b/admin/partials/infinite-loader-for-woocommerce-setting-previous-button-tab.php index 2325c14..7c3facf 100644 --- a/admin/partials/infinite-loader-for-woocommerce-setting-previous-button-tab.php +++ b/admin/partials/infinite-loader-for-woocommerce-setting-previous-button-tab.php @@ -16,7 +16,7 @@ exit; } -$infinite_loader_previous_button_setting = get_option( 'infinite_loader_admin_previous_button_option' ); +$infinite_loader_previous_button_setting = get_option( 'infinite_loader_admin_previous_button_option', array() ); ?>
diff --git a/dist/infinite-loader-for-woocommerce-1.3.0.zip b/dist/infinite-loader-for-woocommerce-1.3.1.zip similarity index 96% rename from dist/infinite-loader-for-woocommerce-1.3.0.zip rename to dist/infinite-loader-for-woocommerce-1.3.1.zip index 3aef956d07b275891a7b7652500ca36c81b8b371..5c6dc4e134653c55bec244b188ada71b4e518cef 100644 GIT binary patch delta 31591 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 delta 33991 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 z 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 diff --git a/infinite-loader-for-woocommerce.php b/infinite-loader-for-woocommerce.php index 10ca9fb..ae17df8 100644 --- a/infinite-loader-for-woocommerce.php +++ b/infinite-loader-for-woocommerce.php @@ -15,7 +15,7 @@ * Plugin Name: Wbcom Designs – Infinite Loader for WooCommerce * Plugin URI: https://wbcomdesigns.com/downloads/infinite-loader-for-woocommerce/ * Description: Streamline product browsing with AJAX-powered infinite scroll or a "Load More" button. Enhance user experience, reduce page loads, and keep customers engaged on your WooCommerce store. - * Version: 1.3.0 + * Version: 1.3.1 * Author: Wbcom Designs * Author URI: https://wbcomdesigns.com/ * License: GPL-2.0+ @@ -38,7 +38,7 @@ /** * Currently plugin version. */ -define( 'INFINITE_LOADER_FOR_WOOCOMMERCE_VERSION', '1.3.0' ); +define( 'INFINITE_LOADER_FOR_WOOCOMMERCE_VERSION', '1.3.1' ); if ( ! defined( 'INFINITE_LOADER_FOR_WOOCOMMERCE_PLUGIN_PATH' ) ) { define( 'INFINITE_LOADER_FOR_WOOCOMMERCE_PLUGIN_PATH', plugin_dir_path( __FILE__ ) ); diff --git a/package.json b/package.json index 9b58553..c5258e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "infinite-loader-for-woocommerce", - "version": "1.3.0", + "version": "1.3.1", "url": "https://github.com/wbcomdesigns/infinite-loader-for-woocommerce", "license": "GPL-2.0+", "description": "infinite Load products from next page via AJAX with infinite scrolling or load more products button.", diff --git a/uninstall.php b/uninstall.php index 80dd768..9f007fa 100644 --- a/uninstall.php +++ b/uninstall.php @@ -62,10 +62,13 @@ wp_cache_flush(); } else { // For Multisite. - global $wpdb; - - // Get all blog ids. - $infinite_loader_blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching + // + // get_sites() rather than a hand-written query against $wpdb->blogs: it is + // the supported API, it is cached, and it cannot go wrong on an install + // that stores sites differently. The raw query it replaces also tripped + // the prepared-SQL sniff, which had been silenced with a phpcs:ignore + // rather than resolved. + $infinite_loader_blog_ids = get_sites( array( 'fields' => 'ids' ) ); $infinite_loader_original_blog_id = get_current_blog_id(); foreach ( $infinite_loader_blog_ids as $infinite_loader_blog_id ) { From 39b7d7d09cba40fb2ff8c1298522fd7b41e67037 Mon Sep 17 00:00:00 2001 From: Varun Kumar Dubey Date: Wed, 19 Aug 2026 17:19:28 +0530 Subject: [PATCH 2/2] Fold the QA fixes into 1.3.0 rather than shipping a same-day 1.3.1 1.3.0 was announced for verification and has not gone out to customers yet, so the five fixes QA raised against it belong in that release rather than in a patch version that exists only because the findings arrived the same day. Version returns to 1.3.0 across header, constant, readme and package.json, and the changelog bullets join the matching Fix / Improve / Dev runs in the 1.3.0 entry instead of standing as their own section. Anyone who already pulled the earlier v1.3.0 asset needs to pull it again - the tag now points at different code. --- README.txt | 11 ++++------- ...infinite-loader-for-woocommerce-1.3.0.zip} | Bin 1279790 -> 1279785 bytes infinite-loader-for-woocommerce.php | 4 ++-- package.json | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) rename dist/{infinite-loader-for-woocommerce-1.3.1.zip => infinite-loader-for-woocommerce-1.3.0.zip} (98%) diff --git a/README.txt b/README.txt index 71f095e..93a28c3 100644 --- a/README.txt +++ b/README.txt @@ -5,7 +5,7 @@ Tags: Woocommerce Requires at least: 6.5 Tested up to: 7.0 Requires PHP: 8.0 -Stable tag: 1.3.1 +Stable tag: 1.3.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -29,14 +29,9 @@ This section describes how to install the plugin and get it working. Woocommerce == Changelog == -= 1.3.1 = += 1.3.0 = * Fix - The FAQ tab now expands and collapses. Its accordion shipped with no styles at all, so every answer was permanently open and the questions looked like plain text. * Fix - Settings tabs show their default values on a site where the options have not been saved yet, instead of an empty Products Per Page box. -* Improve - Multisite uninstall uses the supported get_sites() API rather than a direct database query. -* Dev - Settings registrations name their sanitize callback explicitly. -* Dev - The user guide is no longer packaged in the release zip. - -= 1.3.0 = * Fix - Custom CSS from the JavaScript/CSS tab now applies rules that use child or sibling combinators. Output was HTML-escaped inside the style tag, so a selector like "ul.products > li.product" shipped with an encoded arrow and silently never matched, while simple selectors kept working. * Fix - The bundled Font Awesome stylesheet now loads, so the default loading spinner is visible on themes that do not ship Font Awesome themselves. It was hooked too early to ever run. * Fix - Infinite scroll now waits until the shopper is near the end of the product list. It previously loaded the next page on any scroll, so the whole catalogue loaded while the shopper was still in the header. @@ -50,7 +45,9 @@ Woocommerce * New - Settings rebuilt on the shared Wbcom admin shell, matching the other Wbcom WooCommerce plugins, with a new Overview tab showing how the shop currently loads products. * New - Filter infinite_loader_scroll_threshold sets how close to the end of the list (in pixels, default 300) infinite scroll starts loading. * New - Filter infinite_loader_render_products_only returns false to go back to rendering the full archive, for themes that build their shop loop outside the standard WooCommerce loop templates. +* Improve - Multisite uninstall uses the supported get_sites() API rather than a direct database query. * Improve - A fresh activation now defaults to Load More instead of classic pagination. Existing sites keep the setting they saved. +* Dev - Settings registrations name their sanitize callback explicitly, and the user guide is no longer packaged in the release zip. * Dev - Added a build-freshness check (bin/verify-build-freshness.sh) that fails CI when a committed minified bundle does not match its source. = 1.2.2 = diff --git a/dist/infinite-loader-for-woocommerce-1.3.1.zip b/dist/infinite-loader-for-woocommerce-1.3.0.zip similarity index 98% rename from dist/infinite-loader-for-woocommerce-1.3.1.zip rename to dist/infinite-loader-for-woocommerce-1.3.0.zip index 5c6dc4e134653c55bec244b188ada71b4e518cef..370e0f231e4ab1788e34140bf9a9bddd32398664 100644 GIT binary patch delta 7569 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 KoXh}d3jPOKJVH?b diff --git a/infinite-loader-for-woocommerce.php b/infinite-loader-for-woocommerce.php index ae17df8..10ca9fb 100644 --- a/infinite-loader-for-woocommerce.php +++ b/infinite-loader-for-woocommerce.php @@ -15,7 +15,7 @@ * Plugin Name: Wbcom Designs – Infinite Loader for WooCommerce * Plugin URI: https://wbcomdesigns.com/downloads/infinite-loader-for-woocommerce/ * Description: Streamline product browsing with AJAX-powered infinite scroll or a "Load More" button. Enhance user experience, reduce page loads, and keep customers engaged on your WooCommerce store. - * Version: 1.3.1 + * Version: 1.3.0 * Author: Wbcom Designs * Author URI: https://wbcomdesigns.com/ * License: GPL-2.0+ @@ -38,7 +38,7 @@ /** * Currently plugin version. */ -define( 'INFINITE_LOADER_FOR_WOOCOMMERCE_VERSION', '1.3.1' ); +define( 'INFINITE_LOADER_FOR_WOOCOMMERCE_VERSION', '1.3.0' ); if ( ! defined( 'INFINITE_LOADER_FOR_WOOCOMMERCE_PLUGIN_PATH' ) ) { define( 'INFINITE_LOADER_FOR_WOOCOMMERCE_PLUGIN_PATH', plugin_dir_path( __FILE__ ) ); diff --git a/package.json b/package.json index c5258e3..9b58553 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "infinite-loader-for-woocommerce", - "version": "1.3.1", + "version": "1.3.0", "url": "https://github.com/wbcomdesigns/infinite-loader-for-woocommerce", "license": "GPL-2.0+", "description": "infinite Load products from next page via AJAX with infinite scrolling or load more products button.",