Commit Graph

143 Commits

Author SHA1 Message Date
grosssmutttr 1ccec7d156 class-wc-widget-layered-nav.php - Crawling Budget
Additional optimization to save up crawling budget.
Added $link = str_replace('%2C', ',', $link); on line 513

https://mydomain.com/produkt-kategorie/my-category/?filter_filter-color=orange,black

If you add another filter it encodes the existing commas:
https://mydomain.com/produkt-kategorie/my-category/?filter_filter-color=orange%2Cblack&filter_manufacturer=adidas&filter_cut=men.children

So sometimes you have "," as seperator and sometimes you have encoded "%2C".

After implementing this pull-request the seperator stays ",":
https://mydomain.com/produkt-kategorie/my-category/?filter_filter-farbe=orange,black&filter_manufacturer=adidas&filter_cut=men.children

This pull request belongs to the optimization https://github.com/woocommerce/woocommerce/pull/17134 to save up crawling budget,
2017-10-11 14:47:00 +02:00
grosssmutttr d9f0bd5e92 Keep link structure - prevent duplicate content
Added asort($current_filter) so the urls always look the same and there are not millions of urls possibilities when adding multiple filters.

Current url example:
https://myurl.com/produkt-kategorie/mycategory/?filter_filter-color=yellow,brown,blue,red
https://myurl.com/produkt-kategorie/mycategory/?filter_filter-color=yellow,blue,red,brown
https://myurl.com/produkt-kategorie/mycategory/?filter_filter-color=blue,yellow,red,brown
...

With asort you only have this url:
https://myurl.com/produkt-kategorie/mycategory/?filter_filter-color=blue,brown,red,yellow

So it is independent on the sequence a user adds a filter
2017-10-11 08:33:46 +02:00
claudiulodro f1dac6f3ac Use esc_js instead of addslashes 2017-10-09 11:37:09 -07:00
claudiulodro 97d7ae7df8 Missing semicolon 2017-10-09 11:16:24 -07:00
claudiulodro 2ccd44afa7 Translate "no matches" message 2017-10-09 11:10:32 -07:00
Claudiu Lodromanean 2b49125b46 Enable clearing for attribute filter widget (#17093)
* Enable clearing for attribute filter widget

* Multiselect variant doesnt need clear button

* Make code less ugly
2017-10-09 11:21:21 +01:00
grosssmutttr 52beb782c6 Update class-wc-widget-layered-nav.php - Avoid duplicate content
Added rel="nofollow" to the filters to avoid duplicate content.
2017-10-05 19:55:10 +02:00
Mike Jolley ff5228e944 Standardise widget titles and descriptions
Follow the same pattern as core WP widgets, including title case.
Avoids terms like ‘layered nav’ which has no real meaning to new users.
2017-08-25 12:07:17 +01:00
Jaydeep Rami 3522857d23 Fix typo in WooCommerce plugin (#16135)
* Fixed typo

* Fixed more typo

* Fixed more typo

* Fix tyop

* Fix more typo

* Fix more typo

* Fix typo

* Fix typo

* Fix typo

* Fix typo datatime object

* Fix short name of compat

* Fix typo: update short name

* Fix typo "deactive" to "deactivate" and short BW - Compat

* Fix typo "Backwards compat"

* Fix typo 'parameters'

* Fix more typo 'pararmeters'

* Fix typo 'compund'

* FIx typo order

* Fix typo

* Fix typo 'incorrecly'

* Fix typo 'genarate'

* Fix typo 'reletive'

* Fix typo 'Handly'

* Fix typo 'rotatated'

* Fix typo

* Fix typo 'additonal'

* Fix typos
2017-07-17 11:10:52 +01:00
claudiulodro 4c4526424a Remove race condition 2017-07-11 13:21:42 -07:00
Mike Jolley 70420db6fd Spacing 2017-07-11 11:31:02 +01:00
Mike Jolley a527a9566b Add select2 to layered nav 2017-07-10 14:36:47 +01:00
Mike Jolley 0a3856c5cb Merge branch 'master' into feature-13189 2017-07-10 13:24:42 +01:00
Mike Jolley 67d13874ab Add transient caching to get_filtered_term_product_counts to reduce large queries 2017-06-16 13:35:31 +01:00
Rasmus Bengtsson 185934fad9 Fix phpdoc to include params and correct types 2017-05-15 13:50:52 +02:00
Caleb Burks c4805e41e1 Use Select2 for layered nav
WIP
2017-02-24 02:18:38 -06:00
Diego Zanella de02645544 Improved filter `woocommerce_layered_nav_link`
* Added term and taxonomy as additional parameters.
2017-01-09 19:27:01 +00:00
Mike Jolley e0e0c9e832 Replace rating filters with taxonomy 2016-12-09 15:43:25 +00:00
Mike Jolley 47fbae4d26 Product Visibility Taxonomies (#12527)
* Convert visibility and featured to taxonomy

* Comment

* Add missing tax_queries

* Only check SKU after read.

* Added visibility term for outofstock products to speed those queries up al

* wc_bool_to_string
2016-12-08 10:56:45 +00:00
opportus 4c8e694dce Layered Nav menu dropdown empty count fix 2016-11-22 19:48:39 +01:00
opportus 42bb48abf1 layered nav OR hide attributes applying to 0 product 2016-11-17 23:33:24 +01:00
Claudio Sanches 657c312cae Fix strings case (#12069)
* Fixed case for all _e, esc_attr_e and esc_html_e strings

* Fixed case for all _n_noop strings

* Fixed case for all _x strings

* Fixed case for all __, esc_html__ and esc_attr__ strings

* Fixed a few more strings

* Fixed strings in unit tests

* Fix PayPal Standard case.

* Save Order text
2016-10-12 11:16:30 +01:00
Mike Jolley 50544233f5 Wrap layered nav term in filter
Closes #11922
2016-10-11 18:23:25 +01:00
Justin Shreve 0d8e993cc3 Coding style fix. Add $taxonomy to the filter args. 2016-10-05 11:37:53 -07:00
Justin Shreve c7d191f84b Wrap the "Any % (taxonomy)" string in a filter so admins/dev can customize the text correctly for languages with genders. 2016-10-05 10:45:09 -07:00
Aristeides Stathopoulos 9668247b95 WordPress.PHP.YodaConditions.NotYoda 2016-09-09 03:14:28 +03:00
Aristeides Stathopoulos c823236098 Fix failing tests. 2016-09-02 00:33:36 +03:00
Aristeides Stathopoulos b063bcfe4c last item in a multiline-array should end in a comma 2016-08-27 04:46:45 +03:00
Mike Jolley 84e883657c Merge pull request #11412 from jlad26/master
Fix layered nav links on product attribute archives
2016-07-19 15:20:47 +02:00
Mike Jolley d79f21a501 Better search handling 2016-07-19 14:09:56 +01:00
Leon Francis Shelhamer a9e7c67230 fix search results layered nav counts issue 2016-07-13 21:44:00 -04:00
jlad26 ce0485a97c Fix layered nav links on product attribute archives
If the option 'Enable archives' is selected for a product attribute, then the layered nav widget can also be used to filter that archive.
However the widget then doesn't work correctly in 'List' and 'OR' mode for that archive (although it works fine on the main shop page).

Example:
The attribute "product-type" is created and archives are enabled. It has values like "Courses", "One-to-one-tuition", "Equipment rental" and so on. Another product attribute "teaching-level" is created which uses values of "Beginner", "Intermediate" and "Advanced".
When the archive http://www.domain.com/pa_product-type/courses/ is visited the correct products are displayed. A layered nav widget is added in 'List' and 'OR' mode for the attribute 'teaching-level'. Clicking on any of "Beginner", "Intermediate" and "Advanced" will work fine the first time as the links are correctly generated in the form http://www.domain.com/pa_product-type/courses/?filter_teaching-level=advanced&query_type_teaching-level=or. (Advanced used for the example). However once one has been clicked, the links generated are now incorrect - they are in the form http://www.domain.com/?taxonomy=pa_teaching-level&term=advanced&filter_teaching-level=advanced%2Cbeginner&query_type_teaching-level=or.

Using get_queried_object instead of get_query_var fixes the problem.
2016-07-12 11:46:16 +01:00
Mike Jolley cb13f11c14 Allow entire count query to be filtered
Closes #11145
2016-06-16 12:36:18 +01:00
Mike Jolley c8f55cfb8d Layered nav counts when term_id does not match term_taxonomy_id (before splitting).
@claudiosmweb this was a massive pita to fix
2016-06-15 19:20:50 +01:00
Mike Jolley 5ff18ebb12 Layered nav dropdowns - When getting counts, use 'or' to exclude self. We don't need 'and' because dropdown fields can only choose 1 option anyway.
#11123
2016-06-15 00:09:32 +01:00
Mike Jolley 1ff00adcf6 Spacing 2016-06-14 11:02:23 +01:00
Serg 60a4da9660 Fix Layered navigation permalinks issue on category page 2016-06-14 12:35:52 +03:00
Claudio Sanches 21ffc13ab3 Added $count and $term in woocommerce_layered_nav_count filter 2016-06-08 12:55:20 -03:00
Mike Jolley aa9e6542e3 woocommerce_layered_nav_count filter
Closes #11070
2016-06-08 16:29:27 +01:00
Mike Jolley 1dcf6c6058 Fix numeric sort in layered nav
Fixes #11069
2016-06-08 14:39:24 +01:00
Mike Jolley d4d6f3181c Best practice tweaks 2016-06-06 17:24:31 +01:00
Mike Jolley 020b8c92c6 Fix URLs with quot; characters
Fixes #10795
2016-04-27 15:24:10 +01:00
Mike Jolley 39fc5a98ae Fix base URL 2016-02-10 11:16:49 +00:00
Mike Jolley 0197b78b38 Combine all count queries per widget 2016-02-10 11:07:42 +00:00
Mike Jolley 0dba78acc0 Remove use of global 2016-02-10 10:19:32 +00:00
Mike Jolley 6bdd12d960 Rating counts 2016-02-10 10:02:50 +00:00
Mike Jolley 5f98720206 Combine count 2016-02-10 00:07:07 +00:00
Mike Jolley c9cae8b214 No need to include children 2016-02-09 23:11:50 +00:00
Mike Jolley d23c316326 Refactor queries to use WP_QUERY only 2016-02-09 21:14:55 +00:00
Mike Jolley 75cbb74520 Rating widget standards 2016-02-09 15:18:27 +00:00
Mike Jolley e20565c498 Fix merge conflicts 2016-02-09 14:46:06 +00:00
Mike Jolley cae1fe6b85 Refactors/improvements to layered nav to support slugs
#7806
2016-02-09 14:41:17 +00:00
Matthew Duhig 6ef4fcb144 Update class-wc-widget-layered-nav.php
Updates to layered nav to considerably improve speed on sites with large product databases (10k+). This method has seen speed improvements as notable as taking a 30 second plus load time of a /shop page with layered nav, down to 4 seconds.
2016-01-21 17:06:57 +00:00
Serg ef867131e0 Change layered nav filters by ID to SLUG field 2016-01-19 10:15:42 +03:00
Fredrik Forsmo bc9019458c Improve docblock comments WC_Widget classes
* Added better comment to `widget`, `form` and `update` methods.
2016-01-06 19:58:38 +01:00
Mike Jolley 6892d73ea9 Store product ids for terms in term meta rather than transient
Data is kept in sync by looking at when terms are set for an object and
then clearing the meta for old and new terms.
2015-11-14 16:25:09 +00:00
Ibrahim Ibn Dawood 28fbdaa4c4 added min_rating query arg to layered nav 2015-11-13 15:17:02 +05:30
Claudio Sanches ee30b5b308 Fixed php docs standards 2015-11-03 11:31:20 -02:00
Mike Jolley 5c948f374c Fix preg_replace in layered nav dropdown 2015-08-20 17:32:27 +01:00
Claudio Sanches 9e41552342 Removed all "@return void" 2015-07-16 16:55:48 -03:00
Claudio Sanches f333bb68b2 Improved js for widget layered nav #8332 2015-06-09 13:06:50 -03:00
Claudio Sanches 16ddd24887 [2.3] Fixed & and , for layered nav dropdowns, closes #8332 2015-06-09 12:49:57 -03:00
Claudio Sanches 55efdc5077 Escaped js/url in widget layered nav when use the dropdown option, closes #8320 2015-06-08 13:10:23 -03:00
James Koster cafe0927f5 count styles in widgets. closes #7677
make category / layered nav list styles and markup consistent with core
post category widget.
2015-03-09 16:06:48 +00:00
Mike Jolley d9455994c8 Use 30 days instead of year for transients to avoid bugs in memcache plugins.
Closes #7520
2015-02-24 12:02:56 +00:00
Mike Jolley 1f3adbd0c2 esc_html for the term name 2014-11-25 10:38:54 +00:00
Mike Jolley dd53f8e730 Move widget registration to own function/file - avoid register_widget in class files 2014-11-20 20:56:24 +00:00
Mike Jolley d3dc8be3ec Undo commit which autoloaded widgets
Since they are loaded every time with core, it doesn’t make sense to
autoload them.
2014-11-19 18:08:38 +00:00
claudiosmweb 24e17e36d3 Preventing errors when adding a widget using the WP Customize
Fixed coding standards and used methods from WC_Widget for start and end the widget
2014-11-14 23:12:59 -02:00
James Koster 452cb56cd9 layered nav count markup matches product/post categories. #5606 2014-11-13 08:30:10 +00:00
Mike Jolley 06f82686eb [2.2] and test, use term_taxonomy_id for transient names 2014-09-24 14:22:02 +01:00
shivapoudel fedb4dae7c Absolute path and Indentation fix for includes/widgets/*.php :) 2014-09-21 01:22:45 +05:45
Florian Ludwig f2f56ebb4a Removed lines, were already deleted in upstream 2014-08-12 19:04:11 +02:00
Florian Ludwig b8c2912138 More general approach for widget dropdown_layered_nav 2014-08-12 18:56:37 +02:00
Alexandru Furculita 130521a7ab Update class-wc-widget-layered-nav.php 2014-08-01 13:44:15 +03:00
Coen Jacobs 3617316357 Updated expiry times for transients 2014-03-12 12:58:41 +01:00
Coen Jacobs 03163c54b0 set_transient calls should have expiration to prevent autoloading 2014-03-07 09:29:01 +01:00
Mike Jolley 6ff4ae1a7d Merge pull request #4903 from splashingpixels/master
Ran through jshint and fixed coding standards
2014-02-25 15:51:50 +00:00
Mike Jolley dcf4a50ca0 Layered nag - remember orderby #4889 2014-02-24 15:45:43 +00:00
splashingpixels 7d96eb70ee layer nav using list OR was not displaying any terms fixes #4911 2014-02-22 13:42:13 -08:00
Coen Jacobs 5291f2eec6 Code changes as suggested in #4238 2013-11-28 14:12:08 +01:00
Gregory K cac9d12bf9 PhpDocs 2013-11-28 07:54:19 -05:00
Coen Jacobs 47ae00be28 Page functions woocommerce to wc refactor 2013-11-25 15:07:22 +01:00
Scott Basgaard 922fa990a5 esc_attr() all the things. 2013-11-20 20:11:59 +01:00
Scott Basgaard 97fe6adaeb It's possible there are no attributes. Let's check first to avoid undefined notices. 2013-11-13 21:15:30 -05:00
Mike Jolley 081bef7f6b Layered nav OR logic 2013-09-27 09:55:04 +01:00
Mike Jolley 355dd16962 Removed @coenjacobs helpers and cleaned up main clas 2013-09-12 14:41:02 +01:00
Mike Jolley 16ed6e4faf Make sort orders affect other get_terms calls Closes #3439. 2013-08-19 14:31:52 +01:00
Mike Jolley 3a4b83cffe Fix encoding in layered nav. Fixes #3600
@coenjacobs for .14
2013-08-19 13:12:49 +01:00
Coen Jacobs a55556332c Extra escaping on layered nav href to prevent injection 2013-06-26 11:44:35 +02:00
Mike Jolley fc104fc84b Post types need to exist first 2013-06-20 12:05:11 +01:00
Mike Jolley 1ff10d6ccf Enable for all taxonomies 2013-06-20 12:05:11 +01:00
Mike Jolley c75ea04c1c classes -> includes 2013-06-11 14:25:30 +01:00