{"id":255628,"date":"2025-12-08T08:29:59","date_gmt":"2025-12-08T08:29:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/nws-product-filter\/"},"modified":"2026-03-03T07:47:28","modified_gmt":"2026-03-03T07:47:28","slug":"nws-filter","status":"publish","type":"plugin","link":"https:\/\/bo.wordpress.org\/plugins\/nws-filter\/","author":17138818,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.21","stable_tag":"1.0.21","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"NWS Product Filter","header_author":"NEONUS, s.r.o.","header_description":"Advanced WooCommerce product filter with attributes, price range, and stock status filtering.","assets_banners_color":"","last_updated":"2026-03-03 07:47:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.neonus.sk\/woocommerce\/nws-product-filter\/","header_author_uri":"https:\/\/www.neonus.sk\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":302,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.17":{"tag":"1.0.17","author":"shamotj","date":"2025-12-08 08:29:48"},"1.0.18":{"tag":"1.0.18","author":"shamotj","date":"2026-01-13 12:17:47"},"1.0.19":{"tag":"1.0.19","author":"shamotj","date":"2026-01-13 12:28:22"},"1.0.20":{"tag":"1.0.20","author":"shamotj","date":"2026-01-20 14:20:30"},"1.0.21":{"tag":"1.0.21","author":"shamotj","date":"2026-03-03 07:47:28"}},"upgrade_notice":{"1.0.14":"<p>IMPORTANT: Breaking changes - shortcode names updated for WordPress.org compliance. Update [nws_product_filter] to [nwsfilter_product_filter] and [nws_selected_filters] to [nwsfilter_selected_filters]. Plugin settings will need to be reconfigured after upgrade.<\/p>","1.0.11":"<p>Stable release with enhanced performance, security fixes, and WordPress.org compliance improvements.<\/p>","1.0.10":"<p>Important bug fix: Categories now respect admin settings and only display when enabled.<\/p>","1.0.9":"<p>Important security and compliance updates for WordPress.org submission.<\/p>","1.0.8":"<p>Database security improvements.<\/p>","1.0.7":"<p>New shortcode feature for displaying selected filters separately.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.17","1.0.18","1.0.19","1.0.20","1.0.21"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3413978,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3413978,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"Main filter interface","2":"Admin configuration panel"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[9032,2236,237179,6033,286],"plugin_category":[45],"plugin_contributors":[251871,240919],"plugin_business_model":[],"class_list":["post-255628","plugin","type-plugin","status-publish","hentry","plugin_tags-attributes","plugin_tags-filter","plugin_tags-price-filter","plugin_tags-product-filter","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-neonus","plugin_contributors-shamotj","plugin_committers-shamotj"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/nws-filter.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/nws-filter\/assets\/screenshot-1.png?rev=3413978","caption":"Main filter interface"},{"src":"https:\/\/ps.w.org\/nws-filter\/assets\/screenshot-2.png?rev=3413978","caption":"Admin configuration panel"}],"raw_content":"<!--section=description-->\n<p>A powerful WooCommerce product filter plugin that allows customers to filter products by attributes, price range, stock status, and navigate between categories.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Attribute Filtering<\/strong> - Filter by any WooCommerce product attribute<\/li>\n<li><strong>Price Range Slider<\/strong> - Interactive price range filtering with visual slider<\/li>\n<li><strong>Stock Status Filter<\/strong> - Filter products by availability<\/li>\n<li><strong>Categories Navigation<\/strong> - Collapsible category tree for browsing product categories<\/li>\n<li><strong>Responsive Design<\/strong> - Mobile-friendly interface<\/li>\n<li><strong>Admin Configuration<\/strong> - Easy-to-use admin interface for setting up filters<\/li>\n<li><strong>Drag &amp; Drop Ordering<\/strong> - Reorder filter items in the admin<\/li>\n<li><strong>Shortcode Support<\/strong> - Display filters anywhere using shortcodes <code>[nwsfilter_product_filter]<\/code> and <code>[nwsfilter_selected_filters]<\/code><\/li>\n<li><strong>Clean Code<\/strong> - Object-oriented PHP with proper WordPress coding standards<\/li>\n<li><strong>AJAX Filtering<\/strong> - Fast filtering without page reloads<\/li>\n<li><strong>Multiple Filter Types<\/strong> - Price range, attributes, stock status, and categories<\/li>\n<li><strong>Selected Filters Display<\/strong> - Show active filters separately with remove buttons<\/li>\n<li><strong>Auto-expand Categories<\/strong> - Optional automatic expansion of parent categories<\/li>\n<\/ul>\n\n<h4>Filter Types<\/h4>\n\n<p><strong>Price Filter<\/strong>\nInteractive price range slider that automatically detects the price range for the current category with currency symbol support and real-time visual feedback.<\/p>\n\n<p><strong>Attribute Filters<\/strong>\nCheckbox-based filtering for product attributes with product counts for each option, supports multiple selections, and automatically hides options with zero products.<\/p>\n\n<p><strong>Stock Filter<\/strong>\nSimple checkbox to filter by stock availability, showing only products that are in stock.<\/p>\n\n<p><strong>Categories Menu<\/strong>\nCollapsible category tree showing hierarchical structure with product counts, expandable\/collapsible subcategories with visual indicators, current category highlighting, and optional auto-expand parent categories feature.<\/p>\n\n<h4>Usage<\/h4>\n\n<p>Display the main filter using the shortcode:\n    [nwsfilter_product_filter]<\/p>\n\n<p>Display only selected\/active filters:\n    [nwsfilter_selected_filters]<\/p>\n\n<p>Or use PHP in your template:\n    \n    display_filter_form(); ?&gt;<\/p>\n\n<h4>Configuration<\/h4>\n\n<ol>\n<li>Navigate to Settings &gt; Product Filter in your WordPress admin<\/li>\n<li>Select which attributes and filters you want to display<\/li>\n<li>Drag and drop to reorder the filter items<\/li>\n<li>Configure categories settings (auto-expand, display location)<\/li>\n<li>Configure selected filters display options<\/li>\n<li>Save your settings<\/li>\n<\/ol>\n\n<h4>Customization<\/h4>\n\n<p>The plugin includes comprehensive CSS classes for easy customization:\n* <code>.nws-filter<\/code> - Main container\n* <code>.filter-group<\/code> - Individual filter sections\n* <code>.filter-group.is-active<\/code> - Active filter sections\n* <code>.range-slider<\/code> - Price range slider\n* <code>.selected-filters-section<\/code> - Selected filters section\n* <code>.filter-chip<\/code> - Individual filter chip\n* <code>.nws-clear-filters<\/code> - Clear filters button<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/nws-filter\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Settings &gt; Product Filter to configure<\/li>\n<li>Display the filter using shortcode <code>[nwsfilter_product_filter]<\/code> or template functions<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20display%20the%20filter%3F\"><h3>How do I display the filter?<\/h3><\/dt>\n<dd><p>Use the shortcode <code>[nwsfilter_product_filter]<\/code> in any page or post, or add it to your theme template using <code>&lt;?php echo do_shortcode('[nwsfilter_product_filter]'); ?&gt;<\/code><\/p><\/dd>\n<dt id=\"can%20i%20display%20selected%20filters%20separately%3F\"><h3>Can I display selected filters separately?<\/h3><\/dt>\n<dd><p>Yes! Use the shortcode <code>[nwsfilter_selected_filters]<\/code> to display only the active\/selected filters with remove buttons. This is useful when you want to show filters in a different location or when you've hidden them from the main filter form.<\/p><\/dd>\n<dt id=\"how%20do%20i%20change%20the%20order%20of%20filters%3F\"><h3>How do I change the order of filters?<\/h3><\/dt>\n<dd><p>In the admin settings (Settings &gt; Product Filter), you can drag and drop the filter items to reorder them. The order you set will be reflected on the frontend.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20appearance%3F\"><h3>Can I customize the appearance?<\/h3><\/dt>\n<dd><p>Yes! The plugin includes comprehensive CSS classes that you can override in your theme's CSS file. All main elements have specific classes like <code>.nws-filter<\/code>, <code>.filter-group<\/code>, <code>.range-slider<\/code>, etc.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20ajax%3F\"><h3>Does it work with AJAX?<\/h3><\/dt>\n<dd><p>The filtering uses URL parameters and page reloads. The interface includes a loading indicator for better user experience.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20selected%20filters%20from%20the%20main%20filter%20form%3F\"><h3>Can I hide selected filters from the main filter form?<\/h3><\/dt>\n<dd><p>Yes! In the admin settings, enable \"Hide Selected Filters in Filter Form\" and use the <code>[nwsfilter_selected_filters]<\/code> shortcode to display them elsewhere.<\/p><\/dd>\n<dt id=\"how%20do%20i%20enable%20category%20auto-expand%3F\"><h3>How do I enable category auto-expand?<\/h3><\/dt>\n<dd><p>In Settings &gt; Product Filter, check the \"Auto-expand Parent Categories\" option. This will automatically expand parent categories when viewing a subcategory.<\/p><\/dd>\n<dt id=\"what%20woocommerce%20versions%20are%20supported%3F\"><h3>What WooCommerce versions are supported?<\/h3><\/dt>\n<dd><p>The plugin requires WooCommerce 4.0 or higher and is tested up to WooCommerce 8.0.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.21<\/h4>\n\n<ul>\n<li>ADDED: Czech translation<\/li>\n<\/ul>\n\n<h4>1.0.20<\/h4>\n\n<ul>\n<li>UPDATED: Added declaration about HPOS compatibility<\/li>\n<\/ul>\n\n<h4>1.0.19<\/h4>\n\n<ul>\n<li>UPDATED: Added missing translations<\/li>\n<\/ul>\n\n<h4>1.0.18<\/h4>\n\n<ul>\n<li>ADDED: Settings link in plugin action list for quick access to plugin settings<\/li>\n<li>UPDATED: Bumped WordPress tested up to version 6.9<\/li>\n<\/ul>\n\n<h4>1.0.17<\/h4>\n\n<ul>\n<li>UPDATED: Enhanced readme.txt with comprehensive description and features<\/li>\n<li>UPDATED: Added detailed FAQ section with 8 practical questions and answers<\/li>\n<li>UPDATED: Improved installation instructions and usage examples<\/li>\n<li>ENHANCED: Better WordPress.org plugin directory presentation<\/li>\n<li>DOCUMENTATION: Complete feature list and filter type descriptions<\/li>\n<\/ul>\n\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Fixed style enqueue in is_archive()<\/li>\n<\/ul>\n\n<h4>1.0.15<\/h4>\n\n<ul>\n<li>Fixed plugin URL in main plugin file<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>BREAKING CHANGE: Updated all prefixes from NWS_ to NWSFILTER_ for WordPress.org compliance (minimum 4 characters required)<\/li>\n<li>CHANGED: Shortcode names updated to [nwsfilter_product_filter] and [nwsfilter_selected_filters]<\/li>\n<li>CHANGED: Class names updated to NWSFILTER_Plugin, NWSFILTER_Frontend, NWSFILTER_Admin, NWSFILTER_Functions<\/li>\n<li>CHANGED: Option names updated to use nwsfilter_ prefix (e.g., nwsfilter_settings, nwsfilter_categories_auto_expand)<\/li>\n<li>CHANGED: Constants updated to NWSFILTER_VERSION, NWSFILTER_PLUGIN_DIR, NWSFILTER_PLUGIN_URL, NWSFILTER_PLUGIN_FILE<\/li>\n<li>CHANGED: Enqueue handles updated to nwsfilter-style, nwsfilter-script, nwsfilter-admin<\/li>\n<li>REMOVED: All inline  and  tags in favor of properly enqueued files<\/li>\n<li>ENHANCED: Full WordPress.org coding standards compliance<\/li>\n<li>ENHANCED: Proper use of wp_enqueue_script() and wp_enqueue_style()<\/li>\n<li>ENHANCED: Added wp_localize_script() for passing dynamic PHP data to JavaScript<\/li>\n<li>UPDATED: All documentation with new shortcode and class names<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Remove unused file, renmant of previous code<\/li>\n<li>Fixed URL handling<\/li>\n<li>Fixed filter on search results page, ie. support for \"s\" and \"post_type\" query params<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Optimize DB queries for retrieving max price in categories<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Stable release with all bug fixes and new features<\/li>\n<li>Enhanced filter performance and reliability<\/li>\n<li>Complete WordPress.org submission ready version<\/li>\n<li>All security and coding standard issues resolved<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Fixed categories displaying regardless of plugin settings<\/li>\n<li>Categories now only show when enabled in admin filter settings<\/li>\n<li>Improved filter setting validation<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fixed database query security issues for WordPress.org compliance<\/li>\n<li>Improved code quality and WordPress coding standards<\/li>\n<li>Updated all version numbers consistently across plugin files<\/li>\n<li>Enhanced plugin check compatibility<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fixed WordPress.DB.PreparedSQL.NotPrepared error in database queries<\/li>\n<li>Improved database query security by directly passing prepared statements<\/li>\n<li>Better WordPress Plugin Check compliance<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Added selected filters shortcode<\/li>\n<li>Added option to hide selected filters in main form<\/li>\n<li>Security improvements<\/li>\n<li>Complete Slovak translation<\/li>\n<li>Refactored code to eliminate duplication<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Enhanced filter functionality and stability improvements<\/li>\n<li>Bug fixes and performance optimizations<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Advanced WooCommerce product filter with attributes, price range, and stock status filtering.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/255628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=255628"}],"author":[{"embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shamotj"}],"wp:attachment":[{"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=255628"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=255628"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=255628"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=255628"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=255628"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=255628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}