Version Description
Released on 18 June 2021 =
New: support for WooCommerce 5.4
New: auto-populate taxonomy filters
New: support for YITH WooCommerce Color and Label Variations
New: support for Hello Elementor theme
New: automatically use term image, when available
New: option to choose where to show term labels in color/label layouts
New: added cron to delete transient with the old cache version
Update: YITH plugin framework
Tweak: changed name of the flag used to suppress filters query processing
Tweak: use svg instead of text for x icon in filters
Tweak: improved compatibility with Porto theme
Fix: issue with query-vars processing, causing orderby option to break
Fix: avoid possible JS error Cannot use in operator to search in null
Fix: multiple selection for categories, tags and brands does not work on OR mode in old widgets
Fix: avoid filters overwriting after new page is loaded (index overriding)
Dev: use babel to make scripts work on older browsers/devices
Dev: added trigger yith_wcan_preset_initialized
Dev: added new yith_wcan_query_post_in filter, to programmatically change products used by our plugin
Release Info
Developer | yithemes |
Plugin | YITH WooCommerce Ajax Product Filter |
Version | 4.1.0 |
Comparing to | |
See all releases |
Code changes from version 4.0.4 to 4.1.0
- README.txt +22 -1
- assets/css/admin.css +84 -20
- assets/css/admin.css.map +1 -1
- assets/css/admin.min.css +0 -1
- assets/css/frontend.min.css +0 -1
- assets/css/shortcodes.css +214 -14
- assets/css/shortcodes.css.map +1 -1
- assets/images/close.svg +1 -0
- assets/js/shortcodes/config.js +7 -0
- assets/js/shortcodes/index.js +30 -0
- assets/js/shortcodes/modules/yith-wcan-dropdown.js +604 -0
- assets/js/shortcodes/modules/yith-wcan-filter-labels.js +59 -0
- assets/js/shortcodes/modules/yith-wcan-filter.js +352 -0
- assets/js/shortcodes/modules/yith-wcan-modal-opener.js +93 -0
- assets/js/shortcodes/modules/yith-wcan-preset.js +1506 -0
- assets/js/shortcodes/modules/yith-wcan-reset-button.js +29 -0
- assets/js/yith-wcan-admin-filters.js +469 -39
- assets/js/yith-wcan-admin-filters.min.js +1 -1
- assets/js/yith-wcan-shortcodes.js +2322 -2387
- assets/js/yith-wcan-shortcodes.js.map +1 -0
- assets/js/yith-wcan-shortcodes.min.js +1 -1
- assets/scss/admin.scss +89 -14
- assets/scss/shortcodes.scss +245 -8
- includes/class.yith-wcan-admin.php +22 -2
- includes/class.yith-wcan-filter-factory.php +18 -0
- includes/class.yith-wcan-filter.php +327 -59
- includes/class.yith-wcan-frontend.php +2 -1
- includes/class.yith-wcan-install.php +14 -0
- includes/class.yith-wcan-preset-factory.php +14 -0
- includes/class.yith-wcan-preset.php +40 -0
- includes/class.yith-wcan-presets.php +11 -0
- includes/class.yith-wcan-query.php +83 -5
- includes/class.yith-wcan.php +7 -4
- includes/compatibility/plugins/yith-woocommerce-booking/yith-woocommerce-booking.php +138 -0
- includes/compatibility/themes/hello-elementor/hello-elementor.php +28 -0
- includes/compatibility/themes/porto/porto.php +32 -0
- includes/data-stores/class.yith-wcan-preset-data-store.php +1 -0
- includes/filters/class.yith-wcan-filter-tax.php +46 -13
- includes/functions.yith-wcan.php +1 -1
- includes/tables/class.yith-wcan-filter-presets-table.php +3 -3
- init.php +6 -3
- languages/yith-woocommerce-ajax-navigation-de_DE.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-de_DE.po +184 -102
- languages/yith-woocommerce-ajax-navigation-de_DE_formal.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-de_DE_formal.po +184 -102
- languages/yith-woocommerce-ajax-navigation-el.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-el.po +184 -102
- languages/yith-woocommerce-ajax-navigation-es_ES.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-es_ES.po +184 -102
- languages/yith-woocommerce-ajax-navigation-fr_FR.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-fr_FR.po +177 -93
- languages/yith-woocommerce-ajax-navigation-it_IT.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-it_IT.po +186 -102
- languages/yith-woocommerce-ajax-navigation-nl_NL.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-nl_NL.po +184 -102
- languages/yith-woocommerce-ajax-navigation-tr_TR.mo +0 -0
- languages/yith-woocommerce-ajax-navigation-tr_TR.po +178 -92
- languages/yith-woocommerce-ajax-navigation.pot +171 -87
- plugin-fw/assets/css/yit-plugin-panel.css +265 -3
- plugin-fw/assets/css/yith-fields.css +26 -4
- plugin-fw/assets/css/yith-icon.css +19 -7
- plugin-fw/assets/css/yith-plugin-ui.css +34 -1
- plugin-fw/assets/fonts/yith-icon.eot +0 -0
- plugin-fw/assets/fonts/yith-icon.ttf +0 -0
- plugin-fw/assets/fonts/yith-icon.woff2 +0 -0
- plugin-fw/assets/js/wp-pages.js +49 -9
- plugin-fw/assets/js/wp-pages.min.js +1 -1
- plugin-fw/assets/js/yit-plugin-panel.js +8 -4
- plugin-fw/assets/js/yit-plugin-panel.min.js +1 -1
- plugin-fw/assets/js/yith-enhanced-select.js +63 -0
- plugin-fw/assets/js/yith-enhanced-select.min.js +1 -1
- plugin-fw/assets/js/yith-fields.js +2 -2
- plugin-fw/assets/js/yith-fields.min.js +1 -1
- plugin-fw/dist/gutenberg/index.asset.php +1 -1
- plugin-fw/dist/gutenberg/index.js +1 -1
- plugin-fw/includes/class-yit-assets.php +21 -2
- plugin-fw/includes/class-yit-help-desk.php +187 -0
- plugin-fw/includes/class-yit-plugin-panel-woocommerce.php +4 -0
- plugin-fw/includes/class-yit-plugin-panel.php +117 -26
- plugin-fw/init.php +2 -2
- plugin-fw/languages/yith-plugin-fw-el.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-el.po +178 -72
- plugin-fw/languages/yith-plugin-fw-es_ES.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-es_ES.po +188 -74
- plugin-fw/languages/yith-plugin-fw-it_IT.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-it_IT.po +188 -75
- plugin-fw/languages/yith-plugin-fw-nl_NL.mo +0 -0
- plugin-fw/languages/yith-plugin-fw-nl_NL.po +191 -75
- plugin-fw/languages/yith-plugin-fw.pot +177 -71
- plugin-fw/templates/fields/ajax-pages.php +96 -0
- plugin-fw/templates/fields/image-dimensions.php +27 -0
- plugin-fw/templates/fields/text-array.php +52 -22
- plugin-fw/templates/panel/help-tab.php +211 -0
- plugin-fw/templates/panel/woocommerce/woocommerce-form.php +1 -1
- plugin-fw/yit-functions.php +74 -4
- plugin-fw/yit-plugin.php +1 -0
- plugin-options/filter-options.php +48 -18
- plugin-options/preset-options.php +19 -0
- templates/admin/preset-edit.php +38 -16
- templates/admin/preset-filter.php +5 -5
- templates/filters/filter-tax/items/color.php +2 -2
@@ -4,7 +4,7 @@ Contributors: yithemes
|
|
4 |
Tags: woocommerce ajax product filter download, woocommerce, widget, ajax, ajax filtered nav, ajax navigation, ajax filtered navigation, woocommerce layered navigation, woocommerce layered nav, product filter, product filters, ajax product filter, woocommerce ajax product filter, woocommerce filters, sidebar filter, sidebar ajax filter, ajax price filter, price filter, product sorting, woocommerce filter, taxonomy filter, attribute filter, attributes filter, woocommerce product sort, ajax sort, woocommerce ajax product filter, advanced product filters, ajax product filters, filters, woocommerce ajax product filters, woocommerce product filters, woocommerce product filters, category filter, attribute filters, woocommerce products filter, woocommerce price filter, yit, yith, yithemes
|
5 |
Requires at least: 5.3
|
6 |
Tested up to: 5.7
|
7 |
-
Stable tag: 4.0
|
8 |
License: GPLv3 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -152,6 +152,27 @@ If none of the previous listed actions helps you solve the problem, then, submit
|
|
152 |
|
153 |
== Changelog ==
|
154 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
= 4.0.4 - Released on 18 May 2021 =
|
156 |
|
157 |
* New: support for WooCommerce 5.3
|
4 |
Tags: woocommerce ajax product filter download, woocommerce, widget, ajax, ajax filtered nav, ajax navigation, ajax filtered navigation, woocommerce layered navigation, woocommerce layered nav, product filter, product filters, ajax product filter, woocommerce ajax product filter, woocommerce filters, sidebar filter, sidebar ajax filter, ajax price filter, price filter, product sorting, woocommerce filter, taxonomy filter, attribute filter, attributes filter, woocommerce product sort, ajax sort, woocommerce ajax product filter, advanced product filters, ajax product filters, filters, woocommerce ajax product filters, woocommerce product filters, woocommerce product filters, category filter, attribute filters, woocommerce products filter, woocommerce price filter, yit, yith, yithemes
|
5 |
Requires at least: 5.3
|
6 |
Tested up to: 5.7
|
7 |
+
Stable tag: 4.1.0
|
8 |
License: GPLv3 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
152 |
|
153 |
== Changelog ==
|
154 |
|
155 |
+
= 4.1.0 - Released on 18 June 2021 =
|
156 |
+
|
157 |
+
* New: support for WooCommerce 5.4
|
158 |
+
* New: auto-populate taxonomy filters
|
159 |
+
* New: support for YITH WooCommerce Color and Label Variations
|
160 |
+
* New: support for Hello Elementor theme
|
161 |
+
* New: automatically use term image, when available
|
162 |
+
* New: option to choose where to show term labels in color/label layouts
|
163 |
+
* New: added cron to delete transient with the old cache version
|
164 |
+
* Update: YITH plugin framework
|
165 |
+
* Tweak: changed name of the flag used to suppress filters query processing
|
166 |
+
* Tweak: use svg instead of text for x icon in filters
|
167 |
+
* Tweak: improved compatibility with Porto theme
|
168 |
+
* Fix: issue with query-vars processing, causing orderby option to break
|
169 |
+
* Fix: avoid possible JS error Cannot use in operator to search in null
|
170 |
+
* Fix: multiple selection for categories, tags and brands does not work on OR mode in old widgets
|
171 |
+
* Fix: avoid filters overwriting after new page is loaded (index overriding)
|
172 |
+
* Dev: use babel to make scripts work on older browsers/devices
|
173 |
+
* Dev: added trigger yith_wcan_preset_initialized
|
174 |
+
* Dev: added new yith_wcan_query_post_in filter, to programmatically change products used by our plugin
|
175 |
+
|
176 |
= 4.0.4 - Released on 18 May 2021 =
|
177 |
|
178 |
* New: support for WooCommerce 5.3
|
@@ -1,3 +1,4 @@
|
|
|
|
1 |
/* === Filter Preset List === */
|
2 |
#yith_wcan_panel_filter-preset {
|
3 |
position: relative;
|
@@ -112,40 +113,48 @@
|
|
112 |
position: relative;
|
113 |
}
|
114 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.shortcode .copy-on-click input {
|
115 |
-
background: #
|
|
|
|
|
116 |
cursor: pointer;
|
117 |
}
|
118 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.shortcode .copy-on-click:after {
|
119 |
color: #9d9d9d;
|
120 |
-
content: "
|
121 |
-
font-family: "
|
122 |
-
font-size:
|
123 |
position: absolute;
|
124 |
-
right:
|
125 |
-
top:
|
|
|
|
|
|
|
126 |
}
|
127 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a {
|
128 |
float: right;
|
129 |
}
|
130 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a.show-on-hover {
|
|
|
131 |
background: #fff;
|
|
|
132 |
border-radius: 100%;
|
133 |
color: #20659d;
|
134 |
-
display:
|
135 |
float: right;
|
136 |
-
font-size:
|
137 |
height: 35px;
|
138 |
margin-right: 8px;
|
|
|
|
|
|
|
139 |
width: 35px;
|
140 |
justify-content: center;
|
141 |
-
align-items: center;
|
142 |
-
box-shadow: 0 0 10px 0 rgba(167, 217, 236, 0.6);
|
143 |
}
|
144 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a.show-on-hover i {
|
145 |
-
font-size:
|
146 |
}
|
147 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a.show-on-hover:hover {
|
148 |
-
|
149 |
}
|
150 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a.show-on-hover.delete {
|
151 |
color: #ba3e3e;
|
@@ -157,7 +166,8 @@
|
|
157 |
margin: 5px 0;
|
158 |
}
|
159 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr:hover td.actions a.show-on-hover {
|
160 |
-
|
|
|
161 |
}
|
162 |
|
163 |
/* === Upgrade Note Modal === */
|
@@ -273,6 +283,17 @@
|
|
273 |
#yith_wcan_panel_filter-preset-edit h4 {
|
274 |
font-size: 14px;
|
275 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row {
|
277 |
background: none;
|
278 |
border: 1px solid #e0e0e0;
|
@@ -316,6 +337,7 @@
|
|
316 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title {
|
317 |
cursor: pointer;
|
318 |
padding: 20px 15px;
|
|
|
319 |
}
|
320 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .no-title {
|
321 |
color: #757575;
|
@@ -329,24 +351,27 @@
|
|
329 |
vertical-align: middle;
|
330 |
}
|
331 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .show-on-hover {
|
|
|
332 |
background: #fff;
|
|
|
333 |
border-radius: 100%;
|
334 |
color: #20659d;
|
335 |
-
display:
|
336 |
float: right;
|
337 |
-
font-size:
|
338 |
height: 35px;
|
339 |
margin-right: 8px;
|
|
|
|
|
|
|
340 |
width: 35px;
|
341 |
justify-content: center;
|
342 |
-
align-items: center;
|
343 |
-
box-shadow: 0 0 10px 0 rgba(167, 217, 236, 0.6);
|
344 |
}
|
345 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .show-on-hover i {
|
346 |
-
font-size:
|
347 |
}
|
348 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .show-on-hover:hover {
|
349 |
-
|
350 |
}
|
351 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .show-on-hover.delete {
|
352 |
color: #ba3e3e;
|
@@ -354,7 +379,8 @@
|
|
354 |
margin-right: 15px;
|
355 |
}
|
356 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title:hover .show-on-hover {
|
357 |
-
|
|
|
358 |
}
|
359 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .yith-plugin-fw-field-wrapper {
|
360 |
float: right;
|
@@ -365,6 +391,9 @@
|
|
365 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row {
|
366 |
width: 100%;
|
367 |
}
|
|
|
|
|
|
|
368 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row > label {
|
369 |
width: 180px;
|
370 |
}
|
@@ -375,6 +404,9 @@
|
|
375 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row span.description {
|
376 |
max-width: 100%;
|
377 |
}
|
|
|
|
|
|
|
378 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row .add-price-range {
|
379 |
margin-bottom: 15px;
|
380 |
}
|
@@ -624,6 +656,38 @@
|
|
624 |
border-radius: 4px;
|
625 |
margin: 20px 0;
|
626 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
627 |
|
628 |
/* === Widget Area === */
|
629 |
.yith_wcan_placeholder + .spinner {
|
1 |
+
@charset "UTF-8";
|
2 |
/* === Filter Preset List === */
|
3 |
#yith_wcan_panel_filter-preset {
|
4 |
position: relative;
|
113 |
position: relative;
|
114 |
}
|
115 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.shortcode .copy-on-click input {
|
116 |
+
background: #f1f1f1;
|
117 |
+
color: #999;
|
118 |
+
border: 1px dashed #ccc;
|
119 |
cursor: pointer;
|
120 |
}
|
121 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.shortcode .copy-on-click:after {
|
122 |
color: #9d9d9d;
|
123 |
+
content: "";
|
124 |
+
font-family: "yith-icon";
|
125 |
+
font-size: 14px;
|
126 |
position: absolute;
|
127 |
+
right: 15px;
|
128 |
+
top: 10px;
|
129 |
+
}
|
130 |
+
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions {
|
131 |
+
overflow: hidden;
|
132 |
}
|
133 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a {
|
134 |
float: right;
|
135 |
}
|
136 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a.show-on-hover {
|
137 |
+
align-items: center;
|
138 |
background: #fff;
|
139 |
+
box-shadow: 0px 2px 7px rgba(170, 198, 222, 0.5);
|
140 |
border-radius: 100%;
|
141 |
color: #20659d;
|
142 |
+
display: flex;
|
143 |
float: right;
|
144 |
+
font-size: 17px;
|
145 |
height: 35px;
|
146 |
margin-right: 8px;
|
147 |
+
opacity: 0;
|
148 |
+
transform: translate(0, -70px);
|
149 |
+
transition: all ease 0.3s;
|
150 |
width: 35px;
|
151 |
justify-content: center;
|
|
|
|
|
152 |
}
|
153 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a.show-on-hover i {
|
154 |
+
font-size: 17px;
|
155 |
}
|
156 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a.show-on-hover:hover {
|
157 |
+
background: #f3f3f3;
|
158 |
}
|
159 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr td.actions a.show-on-hover.delete {
|
160 |
color: #ba3e3e;
|
166 |
margin: 5px 0;
|
167 |
}
|
168 |
#yith_wcan_panel_filter-preset .yith-plugin-fw-list-table-container table.wp-list-table tbody tr:hover td.actions a.show-on-hover {
|
169 |
+
opacity: 1;
|
170 |
+
transform: none;
|
171 |
}
|
172 |
|
173 |
/* === Upgrade Note Modal === */
|
283 |
#yith_wcan_panel_filter-preset-edit h4 {
|
284 |
font-size: 14px;
|
285 |
}
|
286 |
+
#yith_wcan_panel_filter-preset-edit [data-currency] + .currency {
|
287 |
+
margin-left: 10px;
|
288 |
+
}
|
289 |
+
#yith_wcan_panel_filter-preset-edit input.validation-error {
|
290 |
+
border-color: red !important;
|
291 |
+
}
|
292 |
+
#yith_wcan_panel_filter-preset-edit input.validation-error + span.validation-message {
|
293 |
+
color: red;
|
294 |
+
display: block;
|
295 |
+
margin-top: 5px;
|
296 |
+
}
|
297 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row {
|
298 |
background: none;
|
299 |
border: 1px solid #e0e0e0;
|
337 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title {
|
338 |
cursor: pointer;
|
339 |
padding: 20px 15px;
|
340 |
+
overflow: hidden;
|
341 |
}
|
342 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .no-title {
|
343 |
color: #757575;
|
351 |
vertical-align: middle;
|
352 |
}
|
353 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .show-on-hover {
|
354 |
+
align-items: center;
|
355 |
background: #fff;
|
356 |
+
box-shadow: 0px 2px 7px rgba(170, 198, 222, 0.5);
|
357 |
border-radius: 100%;
|
358 |
color: #20659d;
|
359 |
+
display: flex;
|
360 |
float: right;
|
361 |
+
font-size: 17px;
|
362 |
height: 35px;
|
363 |
margin-right: 8px;
|
364 |
+
opacity: 0;
|
365 |
+
transform: translate(0, -70px);
|
366 |
+
transition: all ease 0.3s;
|
367 |
width: 35px;
|
368 |
justify-content: center;
|
|
|
|
|
369 |
}
|
370 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .show-on-hover i {
|
371 |
+
font-size: 17px;
|
372 |
}
|
373 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .show-on-hover:hover {
|
374 |
+
background: #f3f3f3;
|
375 |
}
|
376 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .show-on-hover.delete {
|
377 |
color: #ba3e3e;
|
379 |
margin-right: 15px;
|
380 |
}
|
381 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title:hover .show-on-hover {
|
382 |
+
opacity: 1;
|
383 |
+
transform: none;
|
384 |
}
|
385 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-title .yith-plugin-fw-field-wrapper {
|
386 |
float: right;
|
391 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row {
|
392 |
width: 100%;
|
393 |
}
|
394 |
+
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row.disabled {
|
395 |
+
display: none !important;
|
396 |
+
}
|
397 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row > label {
|
398 |
width: 180px;
|
399 |
}
|
404 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row span.description {
|
405 |
max-width: 100%;
|
406 |
}
|
407 |
+
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row span.description > span {
|
408 |
+
display: block;
|
409 |
+
}
|
410 |
#yith_wcan_panel_filter-preset-edit .yith-toggle-row .yith-toggle-content-row .add-price-range {
|
411 |
margin-bottom: 15px;
|
412 |
}
|
656 |
border-radius: 4px;
|
657 |
margin: 20px 0;
|
658 |
}
|
659 |
+
#yith_wcan_panel_filter-preset-edit .preset-saved {
|
660 |
+
background: var(--yith-success-lightest) !important;
|
661 |
+
border-radius: 5px;
|
662 |
+
border: 1px solid var(--yith-success-light);
|
663 |
+
box-shadow: 1px 1px 2px var(--yith-success-lighter);
|
664 |
+
color: var(--yith-content-text);
|
665 |
+
font-size: 14px;
|
666 |
+
margin: 15px 0 20px !important;
|
667 |
+
padding: 15px 40px 15px 45px !important;
|
668 |
+
position: relative;
|
669 |
+
text-align: left;
|
670 |
+
}
|
671 |
+
#yith_wcan_panel_filter-preset-edit .preset-saved p {
|
672 |
+
background: none !important;
|
673 |
+
font-weight: 600 !important;
|
674 |
+
margin: 0;
|
675 |
+
padding: 0 !important;
|
676 |
+
}
|
677 |
+
#yith_wcan_panel_filter-preset-edit .preset-saved p:before {
|
678 |
+
display: none !important;
|
679 |
+
}
|
680 |
+
#yith_wcan_panel_filter-preset-edit .preset-saved:before {
|
681 |
+
color: var(--yith-success);
|
682 |
+
content: "";
|
683 |
+
font-family: yith-icon;
|
684 |
+
font-weight: 400;
|
685 |
+
font-size: 21px;
|
686 |
+
left: 13px;
|
687 |
+
position: absolute;
|
688 |
+
top: 50%;
|
689 |
+
transform: translateY(-50%);
|
690 |
+
}
|
691 |
|
692 |
/* === Widget Area === */
|
693 |
.yith_wcan_placeholder + .spinner {
|
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sourceRoot":"","sources":["../scss/admin.scss"],"names":[],"mappings":"
|
1 |
+
{"version":3,"sourceRoot":"","sources":["../scss/admin.scss"],"names":[],"mappings":";AA4GA;AAEA;EACC;;AAGA;AAAA;EAEC;;AAID;EA9GA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AA+FD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAIA;EA1GH;EACA;EACA;EACA;;AAGA;EACC;EACA;;AAID;EACC,cA5EgB;EA6EhB;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAIF;EACC;;AAGD;AAAA;EAEC,YArGoB;;AA8KhB;EACC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAEA;EAnLP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC,OA1DI;EA2DJ;EACA;;AA6JK;EACC;EACA;;AAMF;EACC;EACA;;;AASP;AAEA;EACC;;AAEA;EACC;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;;;AAOL;AAKC;EACC;EACA;EAtTD;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AAwSD;EACC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAKF;EACC;;AAID;EACC;;AAID;EACC;;AAGD;EACC;EACA;EACA;;AAID;EAxTA;EACA;EACA;EACA;EAwTC;EACA;EACA;EACA;;AAxTD;EACC;EACA;;AAID;EACC,cA5EgB;EA6EhB;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAIF;EACC;;AAGD;AAAA;EAEC,YArGoB;;AAgYpB;EACC;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EAvXF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC,OA1DI;EA2DJ;EACA;;AAgWC;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;;AAEA;EACC;;AAIF;EACC;;AAGD;AAAA;EAEC;EACA;;AAEA;AAAA;AAAA;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;;AAEA;AAAA;EACC;;AAGD;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAIF;AAAA;EACC;EACA;;AAEA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC,OAnhBF;EAohBE;EACA;;AAMF;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;EACA;;AAIF;AAAA;EACC;EACA;EACA;;AAEA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;EACC,OAplBH;;AAwlBC;AAAA;EACC;;AAOH;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC,OA3nBD;EA4nBC;EACA;;AASN;EACC,kBAtoBoB;EAuoBpB;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,kBA9oByB;EA+oBzB,cA9oBqB;;AAmpBvB;EACC;EACA;EACA;EACA;EACA;EACA;EA5lBD;EACA;EACA;EACA;;AAGA;EACC;EACA;;AAID;EACC,cA5EgB;EA6EhB;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAIF;EACC;;AAGD;AAAA;EAEC,YArGoB;;AA+pBpB;EACC,YAhqBmB;;AAqqBrB;EACC;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKH;AAEA;EACC;EACA;EACA;EACA;;;AAGD;EACC;;AAEA;EACC;;AAGD;EACC;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;EAMC;;;AAGD;EACC;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAGC;AAAA;EAEC;;AAEA;AAAA;EACC;;AAIF;EACC","file":"admin.css"}
|
@@ -1 +0,0 @@
|
|
1 |
-
.yith_wcan_placeholder+.spinner{background-position:center;float:left;margin:10px 0;width:100%}.yith_wcan_placeholder table{width:100%}.yith_wcan_placeholder th{text-align:left}.yith_wcan_placeholder td{vertical-align:middle}div.yit-wcan-widget-tag-list,p#yit-wcan-show-count,p#yit-wcan-style,p.yit-wcan-display-color,p.yit-wcan-display-label,p.yit-wcan-display-tags{display:none}div.yit-wcan-widget-tag-list.tags{display:block}p#yit-wcan-show-count.yit-wcan-show-count-brands,p#yit-wcan-show-count.yit-wcan-show-count-categories,p#yit-wcan-show-count.yit-wcan-show-count-list,p#yit-wcan-show-count.yit-wcan-show-count-select,p#yit-wcan-show-count.yit-wcan-show-count-tags,p#yit-wcan-style.yit-wcan-style-color,p#yit-wcan-style.yit-wcan-style-multicolor{display:block}label.yith-wcan-reset-table{width:50%;display:inline-block;vertical-align:top}
|
|
@@ -1 +0,0 @@
|
|
1 |
-
.yith-woocommerce-ajax-product-filter{position:relative}.yith-wcan-group:after{content:"";display:table;clear:both}.yith-wcan-loading{background:url(../images/ajax-loader.gif) no-repeat center;height:100px}.woocommerce .widget_layered_nav ul.yith-wcan li span,.woocommerce-page .widget_layered_nav ul.yith-wcan li span{cursor:not-allowed}.yith-wcan-list-price-filter{margin-left:0}ul.yith-wcan-color.yith-wcan.yith-wcan-group,ul.yith-wcan-list{list-style:none;margin-left:0}.yith-wcan-color li:first-child{margin-left:0}.yith-wcan-color li{float:left}.woocommerce .widget_layered_nav ul.yith-wcan-color li a,.woocommerce .widget_layered_nav ul.yith-wcan-color li span,.woocommerce-page .widget_layered_nav ul.yith-wcan-color li a,.woocommerce-page .widget_layered_nav ul.yith-wcan-color li span{border:1px solid #ddd;display:block;height:20px;margin:5px 5px 5px 0;padding:0;width:20px;overflow:hidden;text-indent:100%;white-space:nowrap;box-sizing:content-box}.woocommerce .widget_layered_nav ul.yith-wcan-color li a:hover,.woocommerce .widget_layered_nav ul.yith-wcan-color li span:hover,.woocommerce .widget_layered_nav ul.yith-wcan-color li.chosen a,.woocommerce .widget_layered_nav ul.yith-wcan-color li.chosen span,.woocommerce-page .widget_layered_nav ul.yith-wcan-color li a:hover,.woocommerce-page .widget_layered_nav ul.yith-wcan-color li span:hover,.woocommerce-page .widget_layered_nav ul.yith-wcan-color li.chosen a,.woocommerce-page .widget_layered_nav ul.yith-wcan-color li.chosen span{border:1px solid #444;background-image:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.yith-wcan-label li{float:left}.woocommerce .widget_layered_nav ul.yith-wcan-label li a,.woocommerce .widget_layered_nav ul.yith-wcan-label li span,.woocommerce-page .widget_layered_nav ul.yith-wcan-label li a,.woocommerce-page .widget_layered_nav ul.yith-wcan-label li span{background:#efefef;border:1px solid #ddd;display:block;margin:5px 5px 5px 0;padding:2px;overflow:hidden;text-decoration:none}.woocommerce .widget_layered_nav ul.yith-wcan-label li a:hover,.woocommerce .widget_layered_nav ul.yith-wcan-label li.chosen a,.woocommerce-page .widget_layered_nav ul.yith-wcan-label li a:hover,.woocommerce-page .widget_layered_nav ul.yith-wcan-label li.chosen a{border:1px solid #444;background-image:none;background-color:#ad74a2;color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.yit-wcan-select-open{background:transparent url(../images/select-arrow.png) top 15px right no-repeat;border:1px solid #cecece;color:#838383;display:block;line-height:16px;margin-bottom:15px;margin-top:15px;overflow:hidden;padding:10px 30px 10px 10px}.yit-wcan-select-open.active{background:transparent url(../images/select-arrow.png) bottom 15px right no-repeat}.yith-wcan-select-wrapper{background:#fff;margin:0 4px 4px 0;max-height:240px;padding-bottom:30px;position:absolute;overflow-x:hidden;overflow-y:auto;width:100%;z-index:-1;border:1px solid #cecece;padding:10px 0;margin-top:-16px;display:none;opacity:0}.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li{padding:5px 8px;border-bottom:1px solid transparent;border-top:1px solid transparent}.woocommerce-page .widget_layered_nav .yith-wcan-select-wrapper ul li.chosen,.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li:hover{-webkit-box-shadow:0 3px 0 #f2f2f2 inset,0 -3px 0 #f2f2f2 inset;-moz-box-shadow:0 3px 0 #f2f2f2 inset,0 -3px 0 #f2f2f2 inset;box-shadow:0 3px 0 #f2f2f2 inset,0 -3px 0 #f2f2f2 inset;border-bottom:1px solid #cecece;border-top:1px solid #cecece}.widget .yit-wcan-select-open,.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li a{width:100%;color:#838383;box-sizing:border-box;-moz-box-sizing:border-box}.widget .yit-wcan-select-open,.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li a{width:auto;display:block}.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li.chosen a{padding:0}.widget .yit-wcan-select-open:hover,.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li a:hover{text-decoration:none;color:#838383}.woocommerce-page .widget_layered_nav .yith-wcan-select-wrapper ul li.chosen a{background:transparent url(../images/cross.png) bottom 6px left no-repeat;border:none}.woocommerce .widget_layered_nav ul.yith-wcan-select li.chosen a:before,.woocommerce-page .widget_layered_nav ul.yith-wcan-select li.chosen a:before{content:""}.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li.yit-wcan-child-terms.level-1{padding-left:30px}.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li.yit-wcan-child-terms.level-2{padding-left:60px}.yith-wcan-select-wrapper ul.yith-wcan-select.yith-wcan li.yit-wcan-child-terms.level-2{padding-left:90px}.yit-wcan-parent-terms ul.yith-child-terms.level-0{padding-left:20px}.yit-wcan-parent-terms ul.yith-child-terms.level-1{padding-left:40px}.yit-wcan-parent-terms ul.yith-child-terms.level-2{padding-left:60px}.yit-wcan-parent-terms ul.yith-child-terms.level-3{padding-left:80px}.yith-wcan-sort-by ul.orderby{list-style:none;padding:0}.yith-wcan-sort-by ul.orderby li.orderby-wrapper{margin-bottom:5px}.yith-wcan-sort-by ul.orderby li.orderby-wrapper>a.active:before,a.yith-wcan-instock-button.active:before,a.yith-wcan-onsale-button.active:before,a.yith-wcan-price-link.active:before,ul.yith-wcan-list li.chosen>a:before{font-family:WooCommerce;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-decoration:none;font-weight:400;line-height:1;content:"";color:#a00;margin-right:.618em}.woocommerce .widget_layered_nav ul.yith-wcan-color li a.multicolor{position:relative}.woocommerce .widget_layered_nav ul.yith-wcan-color li a span.multicolor{width:0;height:0;border-style:solid;position:absolute;top:0;left:0;margin:0;cursor:pointer}.woocommerce .widget_layered_nav ul.yith-wcan-color li a span.multicolor.color-1{border-width:20px 20px 0 0}.woocommerce .widget_layered_nav ul.yith-wcan-color li a span.multicolor.color-2{border-width:0 0 20px 20px}.woocommerce .widget_layered_nav ul.yith-wcan-color li a.multicolor.round{border-radius:50%}.yith-wcan-pro.woocommerce .widget_price_filter .price_slider_amount button{display:none}.woocommerce .widget_price_filter .price_slider_amount #max_price.yith_wcan_no_slider,.woocommerce .widget_price_filter .price_slider_amount #min_price.yith_wcan_no_slider{margin-bottom:10px}.yith-woocommerce-ajax-product-filter.with-checkbox ul{list-style-type:none;padding-left:0;margin-left:0}.yith-woocommerce-ajax-product-filter.yith-wcan-sort-by.with-checkbox ul{margin-left:0}.yith-woocommerce-ajax-product-filter.with-checkbox ul li a:before{content:'';display:inline-block;background-image:url(../images/checkbox_sprite.png);background-repeat:no-repeat;background-position:top center;width:11px;height:11px;margin-right:5px}.yith-woocommerce-ajax-product-filter.yith-wcan-sort-by.with-checkbox ul li a:before{background-image:url(../images/radio_sprite.png)}.widget_layered_nav.with-checkbox .chosen::before,.yith-woocommerce-ajax-product-filter.with-checkbox ul li.active>a:before,.yith-woocommerce-ajax-product-filter.with-checkbox ul li.chosen>a:before,.yith-woocommerce-ajax-product-filter.with-checkbox ul li>a.active:before,.yith-woocommerce-ajax-product-filter.with-checkbox ul li>a.chosen:before,.yith-woocommerce-ajax-product-filter.with-checkbox ul.orderby li a.active:before,.yith-woocommerce-ajax-product-filter.with-checkbox ul.orderby li a.chosen:before,.yith-woocommerce-ajax-product-filter.with-checkbox ul.orderby li.active>a:before,.yith-woocommerce-ajax-product-filter.with-checkbox ul.orderby li.chosen>a:before{content:'';background-position:bottom center}.widget_layered_nav.with-checkbox .chosen::before{display:none}.yith-woocommerce-ajax-product-filter.with-checkbox ul li a.active:after,.yith-woocommerce-ajax-product-filter.with-checkbox ul li a.chosen:after,.yith-woocommerce-ajax-product-filter.with-checkbox ul li a:after,.yith-woocommerce-ajax-product-filter.with-checkbox ul li.active a:after,.yith-woocommerce-ajax-product-filter.with-checkbox ul li.chosen a:after{content:'';display:none}.widget .yith-wcan-show-all-categories,.widget .yith-wcan-show-all-tags{margin-bottom:15px;display:inline-block}.widget .yith-wcan-show-all-categories a,.widget .yith-wcan-show-all-tags a{font-size:10px;text-transform:uppercase}.widget .yith-wcan-show-all-categories a:before,.widget .yith-wcan-show-all-tags a:before{content:"<";margin-right:5px;font-weight:700;font-size:12px}.yith-woocommerce-ajax-product-filter ul li{list-style:none}.theme-storefront .widget_layered_nav .yith-wcan-list li::before{width:0;content:""!important;float:none;padding-left:0!important}.theme-storefront .widget_layered_nav .yith-wcan-list li,.theme-storefront .yith-woocommerce-ajax-product-filter.widget_layered_nav ul li{padding-left:0!important}.theme-storefront .yith-woocommerce-ajax-product-filter ul li.chosen a:before,.theme-storefront .yith-woocommerce-ajax-product-filter.yith-wcan-sort-by ul li a.active:before{font-family:'Font Awesome 5 Free';content:"\f057"}.theme-storefront .yith-woocommerce-ajax-product-filter.with-checkbox ul li.chosen a:before,.theme-storefront .yith-woocommerce-ajax-product-filter.yith-wcan-sort-by.with-checkbox ul li a.active:before{content:""}.theme-storefront .widget-area .yith-woocommerce-ajax-product-filter a:not(.button):before{text-decoration:none;display:inline-block}.theme-flatsome .yith-woocommerce-ajax-product-filter ul.yith-child-terms{display:block}.theme-flatsome .yith-woocommerce-ajax-product-filter ul li.yit-wcan-parent-terms,.theme-flatsome .yith-woocommerce-ajax-product-filter ul.yith-child-terms li{display:inline}.theme-twentytwentyone.yith-wcan-pro .widget_layered_nav.yith-woo-ajax-navigation li.chosen::before{display:none}.theme-twentytwentyone.yith-wcan-pro .widget_layered_nav ul.yith-wcan-select li.chosen a::before{margin-right:15px}.theme-twentytwentyone.yith-wcan-pro .yith-wcan-select-wrapper{top:95px;display:none}
|
|
@@ -1,4 +1,3 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
/* === 1. PRESET SHORTCODE === */
|
3 |
.yith-wcan-filters {
|
4 |
background-color: var(--yith-wcan-filters_colors_background, transparent);
|
@@ -36,6 +35,9 @@
|
|
36 |
.yith-wcan-filters .yith-wcan-filter h4.collapsable:after {
|
37 |
right: 5px;
|
38 |
}
|
|
|
|
|
|
|
39 |
.yith-wcan-filters .yith-wcan-filter .filter-items {
|
40 |
float: none;
|
41 |
list-style: none;
|
@@ -92,6 +94,27 @@
|
|
92 |
display: inline-block;
|
93 |
position: relative;
|
94 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color .term-color {
|
96 |
border: 2px solid transparent;
|
97 |
border-radius: var(--yith-wcan-color_swatches_border_radius, 4px);
|
@@ -143,14 +166,21 @@
|
|
143 |
line-height: 1.4;
|
144 |
text-align: center;
|
145 |
}
|
|
|
|
|
|
|
146 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.active.color .term-color, .yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.active.color .term-image {
|
147 |
border-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
148 |
}
|
149 |
-
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.active.color > a:after {
|
150 |
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
|
|
|
|
|
|
|
|
151 |
border-radius: 100%;
|
152 |
color: #fff;
|
153 |
-
content: "
|
154 |
font-size: 16px;
|
155 |
height: 15px;
|
156 |
line-height: 15px;
|
@@ -174,14 +204,18 @@
|
|
174 |
display: block;
|
175 |
height: 100%;
|
176 |
}
|
177 |
-
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.active.with-image > a {
|
178 |
position: relative;
|
179 |
}
|
180 |
-
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.active.with-image > a:after {
|
181 |
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
|
|
|
|
|
|
|
|
182 |
border-radius: 100%;
|
183 |
color: #fff;
|
184 |
-
content: "
|
185 |
font-size: 16px;
|
186 |
height: 15px;
|
187 |
line-height: 15px;
|
@@ -216,6 +250,34 @@
|
|
216 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label:not(.with-image):not(.disabled):hover .item-count {
|
217 |
color: var(--yith-wcan-labels_style_text_hover, #fff);
|
218 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label .term-image {
|
220 |
display: inline-block;
|
221 |
font-size: 0;
|
@@ -229,6 +291,9 @@
|
|
229 |
display: block;
|
230 |
font-size: 0.8rem;
|
231 |
}
|
|
|
|
|
|
|
232 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.hierarchy-collapsable {
|
233 |
position: relative;
|
234 |
}
|
@@ -318,6 +383,9 @@
|
|
318 |
vertical-align: top;
|
319 |
width: calc(12.5% - 10px);
|
320 |
}
|
|
|
|
|
|
|
321 |
.yith-wcan-filters .yith-wcan-filter .yith-wcan-tooltip {
|
322 |
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
323 |
border-radius: 0;
|
@@ -346,6 +414,10 @@
|
|
346 |
top: calc(50% - 5px);
|
347 |
width: 0;
|
348 |
}
|
|
|
|
|
|
|
|
|
349 |
.yith-wcan-filters .yith-wcan-filter .filter-color .yith-wcan-tooltip,
|
350 |
.yith-wcan-filters .yith-wcan-filter .filter-label .yith-wcan-tooltip {
|
351 |
bottom: calc(100% + 15px);
|
@@ -365,11 +437,36 @@
|
|
365 |
left: calc(50% - 2px);
|
366 |
top: 100%;
|
367 |
}
|
368 |
-
.yith-wcan-filters .yith-wcan-filter .price-slider {
|
369 |
padding: 20px 10px;
|
370 |
}
|
371 |
-
.yith-wcan-filters .yith-wcan-filter .price-slider
|
372 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
}
|
374 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-bar,
|
375 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-line {
|
@@ -422,6 +519,12 @@
|
|
422 |
top: calc(50% - 5px);
|
423 |
width: 0;
|
424 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-from:before,
|
426 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-to:before,
|
427 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-single:before {
|
@@ -505,11 +608,11 @@
|
|
505 |
}
|
506 |
.yith-wcan-filters .yith-wcan-filter .yith-wcan-dropdown .dropdown-wrapper .matching-items::-webkit-scrollbar {
|
507 |
-webkit-appearance: none;
|
508 |
-
width:
|
509 |
}
|
510 |
.yith-wcan-filters .yith-wcan-filter .yith-wcan-dropdown .dropdown-wrapper .matching-items::-webkit-scrollbar-thumb {
|
|
|
511 |
border-radius: 4px;
|
512 |
-
background-color: #D7D7D7;
|
513 |
}
|
514 |
.yith-wcan-filters .yith-wcan-filter .yith-wcan-dropdown .dropdown-wrapper .show-more {
|
515 |
color: var(--yith-wcan-anchors_style_text_hover, #4e8ba2);
|
@@ -660,11 +763,11 @@
|
|
660 |
}
|
661 |
.yith-wcan-filters.filters-modal .filters-container::-webkit-scrollbar {
|
662 |
-webkit-appearance: none;
|
663 |
-
width:
|
664 |
}
|
665 |
.yith-wcan-filters.filters-modal .filters-container::-webkit-scrollbar-thumb {
|
|
|
666 |
border-radius: 4px;
|
667 |
-
background-color: #D7D7D7;
|
668 |
}
|
669 |
.yith-wcan-filters.filters-modal .filters-container > .clear-selection {
|
670 |
cursor: pointer;
|
@@ -727,6 +830,94 @@
|
|
727 |
right: 0;
|
728 |
width: 100%;
|
729 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
730 |
|
731 |
body.admin-bar .yith-wcan-filters.filters-modal {
|
732 |
top: 32px;
|
@@ -748,6 +939,11 @@ body.yith-wcan-preset-modal-open:after.admin-bar {
|
|
748 |
top: 32px;
|
749 |
}
|
750 |
|
|
|
|
|
|
|
|
|
|
|
751 |
@media (max-width: 782px) {
|
752 |
body.admin-bar .yith-wcan-filters.filters-modal {
|
753 |
top: 46px;
|
@@ -784,9 +980,13 @@ body.yith-wcan-preset-modal-open:after.admin-bar {
|
|
784 |
}
|
785 |
.yith-wcan-active-filters .active-filter .active-filter-label:after {
|
786 |
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
|
|
|
|
|
|
|
|
787 |
border-radius: 100%;
|
788 |
color: #fff;
|
789 |
-
content: "
|
790 |
font-size: 16px;
|
791 |
height: 15px;
|
792 |
line-height: 15px;
|
|
|
1 |
/* === 1. PRESET SHORTCODE === */
|
2 |
.yith-wcan-filters {
|
3 |
background-color: var(--yith-wcan-filters_colors_background, transparent);
|
35 |
.yith-wcan-filters .yith-wcan-filter h4.collapsable:after {
|
36 |
right: 5px;
|
37 |
}
|
38 |
+
.yith-wcan-filters .yith-wcan-filter h4.collapsable.collapsable.closed + .filter-content {
|
39 |
+
display: none;
|
40 |
+
}
|
41 |
.yith-wcan-filters .yith-wcan-filter .filter-items {
|
42 |
float: none;
|
43 |
list-style: none;
|
94 |
display: inline-block;
|
95 |
position: relative;
|
96 |
}
|
97 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.no-color, .yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.no-image {
|
98 |
+
font-size: 1rem;
|
99 |
+
text-align: center;
|
100 |
+
}
|
101 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.label-below, .yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.label-right {
|
102 |
+
font-size: 1rem;
|
103 |
+
}
|
104 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.label-right {
|
105 |
+
display: block;
|
106 |
+
margin: 0 0 10px;
|
107 |
+
width: 100%;
|
108 |
+
}
|
109 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.label-right .term-color,
|
110 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.label-right .term-image {
|
111 |
+
margin-bottom: 0;
|
112 |
+
margin-right: 10px;
|
113 |
+
}
|
114 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.label-right .term-label {
|
115 |
+
display: inline-block;
|
116 |
+
font-size: 1em;
|
117 |
+
}
|
118 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color .term-color {
|
119 |
border: 2px solid transparent;
|
120 |
border-radius: var(--yith-wcan-color_swatches_border_radius, 4px);
|
166 |
line-height: 1.4;
|
167 |
text-align: center;
|
168 |
}
|
169 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.color.label-hide .term-label {
|
170 |
+
display: none;
|
171 |
+
}
|
172 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.active.color .term-color, .yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.active.color .term-image {
|
173 |
border-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
174 |
}
|
175 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.active.color:not(.no-color):not(.no-image):not(.label-right) > a:after {
|
176 |
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
177 |
+
background-image: url("../images/close.svg");
|
178 |
+
background-position: center;
|
179 |
+
background-repeat: no-repeat;
|
180 |
+
background-size: 60%;
|
181 |
border-radius: 100%;
|
182 |
color: #fff;
|
183 |
+
content: "";
|
184 |
font-size: 16px;
|
185 |
height: 15px;
|
186 |
line-height: 15px;
|
204 |
display: block;
|
205 |
height: 100%;
|
206 |
}
|
207 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.active.with-image:not(.label-right) > a {
|
208 |
position: relative;
|
209 |
}
|
210 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.active.with-image:not(.label-right) > a:after {
|
211 |
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
212 |
+
background-image: url("../images/close.svg");
|
213 |
+
background-position: center;
|
214 |
+
background-repeat: no-repeat;
|
215 |
+
background-size: 60%;
|
216 |
border-radius: 100%;
|
217 |
color: #fff;
|
218 |
+
content: "";
|
219 |
font-size: 16px;
|
220 |
height: 15px;
|
221 |
line-height: 15px;
|
250 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label:not(.with-image):not(.disabled):hover .item-count {
|
251 |
color: var(--yith-wcan-labels_style_text_hover, #fff);
|
252 |
}
|
253 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.label-right.with-image {
|
254 |
+
background: none;
|
255 |
+
box-shadow: none;
|
256 |
+
display: block;
|
257 |
+
margin: 0 0 10px;
|
258 |
+
padding: 0;
|
259 |
+
text-align: left;
|
260 |
+
width: 100%;
|
261 |
+
}
|
262 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.label-right.with-image > a {
|
263 |
+
display: inline-block;
|
264 |
+
color: var(--yith-wcan-anchors_style_text, #434343);
|
265 |
+
}
|
266 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.label-right.with-image > a:hover {
|
267 |
+
color: var(--yith-wcan-anchors_style_text_hover, #4e8ba2);
|
268 |
+
}
|
269 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.label-right.with-image.active > a {
|
270 |
+
color: var(--yith-wcan-anchors_style_text_active, #4e8ba2);
|
271 |
+
}
|
272 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.label-right.with-image .term-image {
|
273 |
+
margin-right: 10px;
|
274 |
+
max-width: 70px;
|
275 |
+
vertical-align: middle;
|
276 |
+
}
|
277 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.label-right.with-image .term-label {
|
278 |
+
display: inline-block;
|
279 |
+
vertical-align: middle;
|
280 |
+
}
|
281 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label .term-image {
|
282 |
display: inline-block;
|
283 |
font-size: 0;
|
291 |
display: block;
|
292 |
font-size: 0.8rem;
|
293 |
}
|
294 |
+
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.label.label-hide.with-image .term-label {
|
295 |
+
display: none;
|
296 |
+
}
|
297 |
.yith-wcan-filters .yith-wcan-filter .filter-items .filter-item.hierarchy-collapsable {
|
298 |
position: relative;
|
299 |
}
|
383 |
vertical-align: top;
|
384 |
width: calc(12.5% - 10px);
|
385 |
}
|
386 |
+
.yith-wcan-filters .yith-wcan-filter.label-design .filter-items {
|
387 |
+
font-size: 0;
|
388 |
+
}
|
389 |
.yith-wcan-filters .yith-wcan-filter .yith-wcan-tooltip {
|
390 |
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
391 |
border-radius: 0;
|
414 |
top: calc(50% - 5px);
|
415 |
width: 0;
|
416 |
}
|
417 |
+
.yith-wcan-filters .yith-wcan-filter .yith-wcan-tooltip > img {
|
418 |
+
min-width: 40px;
|
419 |
+
height: auto;
|
420 |
+
}
|
421 |
.yith-wcan-filters .yith-wcan-filter .filter-color .yith-wcan-tooltip,
|
422 |
.yith-wcan-filters .yith-wcan-filter .filter-label .yith-wcan-tooltip {
|
423 |
bottom: calc(100% + 15px);
|
437 |
left: calc(50% - 2px);
|
438 |
top: 100%;
|
439 |
}
|
440 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.both {
|
441 |
padding: 20px 10px;
|
442 |
}
|
443 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.both:after {
|
444 |
+
content: "";
|
445 |
+
display: block;
|
446 |
+
clear: both;
|
447 |
+
}
|
448 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.both .price-slider-min,
|
449 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.both .price-slider-max {
|
450 |
+
min-width: 0;
|
451 |
+
width: 50px;
|
452 |
+
}
|
453 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.both .irs {
|
454 |
+
margin-bottom: 20px;
|
455 |
+
}
|
456 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.both .price-slider-min {
|
457 |
+
float: left;
|
458 |
+
}
|
459 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.both .price-slider-max {
|
460 |
+
float: right;
|
461 |
+
}
|
462 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.fields {
|
463 |
+
padding: 20px 0;
|
464 |
+
}
|
465 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.fields .price-slider-min,
|
466 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider.fields .price-slider-max {
|
467 |
+
min-width: 0;
|
468 |
+
width: 70px;
|
469 |
+
margin: 0 5px;
|
470 |
}
|
471 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-bar,
|
472 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-line {
|
519 |
top: calc(50% - 5px);
|
520 |
width: 0;
|
521 |
}
|
522 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-from > img,
|
523 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-to > img,
|
524 |
+
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-single > img {
|
525 |
+
min-width: 40px;
|
526 |
+
height: auto;
|
527 |
+
}
|
528 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-from:before,
|
529 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-to:before,
|
530 |
.yith-wcan-filters .yith-wcan-filter .price-slider .irs-single:before {
|
608 |
}
|
609 |
.yith-wcan-filters .yith-wcan-filter .yith-wcan-dropdown .dropdown-wrapper .matching-items::-webkit-scrollbar {
|
610 |
-webkit-appearance: none;
|
611 |
+
width: 6px;
|
612 |
}
|
613 |
.yith-wcan-filters .yith-wcan-filter .yith-wcan-dropdown .dropdown-wrapper .matching-items::-webkit-scrollbar-thumb {
|
614 |
+
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
615 |
border-radius: 4px;
|
|
|
616 |
}
|
617 |
.yith-wcan-filters .yith-wcan-filter .yith-wcan-dropdown .dropdown-wrapper .show-more {
|
618 |
color: var(--yith-wcan-anchors_style_text_hover, #4e8ba2);
|
763 |
}
|
764 |
.yith-wcan-filters.filters-modal .filters-container::-webkit-scrollbar {
|
765 |
-webkit-appearance: none;
|
766 |
+
width: 6px;
|
767 |
}
|
768 |
.yith-wcan-filters.filters-modal .filters-container::-webkit-scrollbar-thumb {
|
769 |
+
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
770 |
border-radius: 4px;
|
|
|
771 |
}
|
772 |
.yith-wcan-filters.filters-modal .filters-container > .clear-selection {
|
773 |
cursor: pointer;
|
830 |
right: 0;
|
831 |
width: 100%;
|
832 |
}
|
833 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) {
|
834 |
+
text-align: left;
|
835 |
+
}
|
836 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter {
|
837 |
+
display: inline-block;
|
838 |
+
margin-bottom: 8px;
|
839 |
+
min-width: 200px;
|
840 |
+
position: relative;
|
841 |
+
vertical-align: top;
|
842 |
+
}
|
843 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable {
|
844 |
+
border: 1px solid #D7D7D7;
|
845 |
+
border-radius: 4px;
|
846 |
+
font-weight: 400;
|
847 |
+
margin-top: 0;
|
848 |
+
margin-bottom: 10px;
|
849 |
+
margin-right: 15px;
|
850 |
+
padding: 10px 40px 10px 20px;
|
851 |
+
}
|
852 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable:after {
|
853 |
+
right: 15px;
|
854 |
+
}
|
855 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable span.filter-count {
|
856 |
+
border: 2px solid var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
857 |
+
padding: 0 5px;
|
858 |
+
font-size: 0.8em;
|
859 |
+
margin: 0 10px;
|
860 |
+
}
|
861 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable.opened,
|
862 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable.opened + .filter-content {
|
863 |
+
border: 1px solid rgba(var(--yith-wcan-filters_colors_accent_r, 73), var(--yith-wcan-filters_colors_accent_g, 139), var(--yith-wcan-filters_colors_accent_b, 162), 0.3);
|
864 |
+
box-shadow: 0 0 7px 0 rgba(var(--yith-wcan-filters_colors_accent_r, 73), var(--yith-wcan-filters_colors_accent_g, 139), var(--yith-wcan-filters_colors_accent_b, 162), 0.3);
|
865 |
+
}
|
866 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable + .filter-content {
|
867 |
+
background-color: #fff;
|
868 |
+
border: 1px solid #D7D7D7;
|
869 |
+
border-radius: 4px;
|
870 |
+
min-width: 300px;
|
871 |
+
position: absolute;
|
872 |
+
padding: 20px;
|
873 |
+
width: 100%;
|
874 |
+
z-index: 1001;
|
875 |
+
}
|
876 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable + .filter-content .filter-content-footer {
|
877 |
+
background-color: #f0f0f0;
|
878 |
+
margin: 20px -20px -20px;
|
879 |
+
padding: 15px 20px;
|
880 |
+
text-align: right;
|
881 |
+
}
|
882 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable + .filter-content .filter-content-footer .apply-filters {
|
883 |
+
margin: 0;
|
884 |
+
}
|
885 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter h4.collapsable + .filter-content .filter-content-footer .clear-selection {
|
886 |
+
background: #CBCBCB;
|
887 |
+
border-color: #CBCBCB;
|
888 |
+
color: #434343;
|
889 |
+
margin-bottom: 0;
|
890 |
+
margin-right: 15px;
|
891 |
+
}
|
892 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter .filter-items {
|
893 |
+
max-height: 200px;
|
894 |
+
overflow-y: scroll;
|
895 |
+
overflow-x: hidden;
|
896 |
+
padding: 5px 2px 0 0;
|
897 |
+
}
|
898 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter .filter-items::-webkit-scrollbar {
|
899 |
+
-webkit-appearance: none;
|
900 |
+
width: 6px;
|
901 |
+
}
|
902 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter .filter-items::-webkit-scrollbar-thumb {
|
903 |
+
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
904 |
+
border-radius: 4px;
|
905 |
+
}
|
906 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter.label-design .filter-items {
|
907 |
+
padding-top: 8px;
|
908 |
+
}
|
909 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter .dropdown-wrapper .search-field-container {
|
910 |
+
margin-bottom: 20px;
|
911 |
+
}
|
912 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter .dropdown-wrapper .search-field-container input {
|
913 |
+
width: 100%;
|
914 |
+
}
|
915 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter .dropdown-wrapper .matching-items a {
|
916 |
+
cursor: pointer;
|
917 |
+
}
|
918 |
+
.yith-wcan-filters.horizontal:not(.filters-modal) form > .apply-filters {
|
919 |
+
margin-top: 0;
|
920 |
+
}
|
921 |
|
922 |
body.admin-bar .yith-wcan-filters.filters-modal {
|
923 |
top: 32px;
|
939 |
top: 32px;
|
940 |
}
|
941 |
|
942 |
+
@media (max-width: 991px) {
|
943 |
+
body.filters-in-modal .yith-wcan-filters {
|
944 |
+
display: none;
|
945 |
+
}
|
946 |
+
}
|
947 |
@media (max-width: 782px) {
|
948 |
body.admin-bar .yith-wcan-filters.filters-modal {
|
949 |
top: 46px;
|
980 |
}
|
981 |
.yith-wcan-active-filters .active-filter .active-filter-label:after {
|
982 |
background-color: var(--yith-wcan-filters_colors_accent, #4e8ba2);
|
983 |
+
background-image: url("../images/close.svg");
|
984 |
+
background-position: center;
|
985 |
+
background-repeat: no-repeat;
|
986 |
+
background-size: 60%;
|
987 |
border-radius: 100%;
|
988 |
color: #fff;
|
989 |
+
content: "";
|
990 |
font-size: 16px;
|
991 |
height: 15px;
|
992 |
line-height: 15px;
|
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sourceRoot":"","sources":["../scss/shortcodes.scss"],"names":[],"mappings":";
|
1 |
+
{"version":3,"sourceRoot":"","sources":["../scss/shortcodes.scss"],"names":[],"mappings":"AAwJA;AAEA;EACC;EACA;;AAGC;EACC;;AAIF;EACC;;AAGA;EACC;;AAEA;EAjJF;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAeA;;AAXA;EAOA;;AA2HG;EACC;;AAGD;EACC;;AAMH;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;AAGD;EACC;EACA;;AAIA;EACC;EACA;;AAIF;EACC;;AAGD;EAEC;EACA;;AAGA;EAEC,OA9NU;EA+NV;;AAGD;EAEC;;AAGD;EACC;;AAGD;EAEC,OAzOY;EA0OZ;;AAGD;EAEC;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EAEC;EACA;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC,cArTQ;;AAyTV;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,cArUQ;;AAwUT;EACC;EACA;;AAIF;EAEC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;;AAKD;EACC,cAjWS;;AAoWV;EAlSJ,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAwRG;EACC;EACA;EACA,eAzWW;EA0WX;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;;AAEA;EAzTL,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA4SM;EACA;;AAIF;EAEC;EACA,OAtYS;;AAyYV;EACC;EACA;EACA;;AAEA;AAAA;EAEC;;AAIF;EACC;EACA;EACA;;AAEA;AAAA;EAEC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA,OAzaQ;;AA2aR;EACC;;AAQF;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AAGD;EACC;;AAKF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAzbJ;;AA6bI;EAjcJ;;AAqcI;EACC;;AAKF;EACC,OArfY;EAsfZ;;AAID;EAjfH;EACA;EACA;EACA;;AAmfG;EACC,kBArgBU;EAsgBV,cAtgBU;;AAwgBX;EACC,kBAzgBU;;AA6Ib;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAKC;EARD;EACA;EACA;EACA;;AAyYC;EACC;;AAID;EAjbD,kBArGc;EAsGd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA4aE;EACA;EACA;;AA5aF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAgaC;AAAA;EACC;EACA;;AAIF;EACC;;AAEA;EACC;;AAMD;AAAA;EACC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;;AAEA;AAAA;EAEC;EACA;EACA;;AAIF;AAAA;EAEC;EACA,eAjmBY;;AAomBb;EACC,kBAzmBW;;AA4mBZ;EACC;EACA,kBA9mBW;EA+mBX;EACA;EACA;EACA;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;EAthBF,kBArGc;EAsGd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAmhBG;;AAjhBH;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;EACC;EACA;;AAkgBE;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;;AAMH;EACC;EACA,eA3oBa;EA4oBb;EA3nBF;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EAeA;;AAXA;EAOA;;AAsmBE;EACC;EACA;EACA,eAnpBY;EAopBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC,cA1qBQ;EA2qBR;EACA,eA5qBQ;;AAgrBV;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAEA;EACC;EACA;;AAjpBN;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AA0sBZ;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC,OArtBS;;AA0tBZ;EACC;;AAEA;EAhtBH;EACA;EACA;EACA;;AAktBE;EACC;EACA;;AAEA;EACC;;AAMH;EACC;EACA;EACA;EACA;;AAMD;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA,eAzwBY;EA0wBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA,kBA7xBW;EA8xBX,cA9xBW;EA+xBX;EACA;;AAIF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,kBAt0BW;EAu0BX;;AAIF;EACC,OAt0BU;;AA20BZ;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACC,YA71BU;EA81BV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAn0BF;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AAy3Bb;EACC;EACA;EACA;;AAIF;EACC;;AAGD;EACC;EACA,eAt4Ba;EAu4Bb;EACA;;AAEA;EACC;;AAEA;EACC;;AAIF;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC,OAj6BY;EAk6BZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,OAj7BW;;AAq7Bb;EACC,kBAt7BY;EAu7BZ,cAv7BY;EAw7BZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA,eA/8BY;EAg9BZ;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAIF;AAAA;EAEC;EACA;;AAGD;EACC;EACA;EACA,eA3+BY;EA4+BZ;EACA;EACA;EACA;EACA,SA1+BM;;AA4+BN;EACC,kBA/+Ba;EAg/Bb;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EAEA;EACA;;AAMH;EACC;EACA;EACA;EACA;;AA19BH;EACC;EACA;;AAGD;EACC,kBA5Da;EA6Db,eAzDc;;AAihCb;EACC;;AAKA;EACC;;AAEA;EACC;;AAKD;EACC;;AAMJ;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SArjCS;;AAujCT;EACC;;;AAIF;EACC;IACC;;;AAIF;EACC;IACC;;;AAIF;AAEA;EACC;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EA5gCD;EACA;EACA,OAvFc;EAwFd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAogCE;;AAEA;EAriCF,kBAlEc;EAmEd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAyhCE;EA7lCF;EACA;EACA;EACA;EA4lCG;;AAKH;EACC;;AAGD;EACC,OAjnCW;;AAonCZ;EApiCA;EACA;EACA,OAvFc;EAwFd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA4hCC,kBA7nCa;EA8nCb;;AAEA;EACC;EACA;;;AAKH;AAEA;EACC;EACA,eAvoCe;EAwoCf;EACA,OA5oCc;EA6oCd;EACA,eA/oCc;;AAipCd;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,YA9pCa;EA+pCb,cA/pCa;EAgqCb;;AAEA;EACC","file":"shortcodes.css"}
|
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path stroke="white" fill="white" stroke-width="5" d="M29.313 5.272l1.414 1.414-24.04 24.04-1.415-1.413z"/><path stroke="white" fill="white" stroke-width="5" d="M6.687 5.273l24.04 24.04-1.413 1.415L5.272 6.688z"/></svg>
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
+
|
5 |
+
const $ = jQuery; // we can do this as WebPack will compact all together inside a closure.
|
6 |
+
|
7 |
+
export { $ };
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
+
|
5 |
+
import YITH_WCAN_Filter from './modules/yith-wcan-filter';
|
6 |
+
import YITH_WCAN_Reset_Button from './modules/yith-wcan-reset-button';
|
7 |
+
import YITH_WCAN_Preset from './modules/yith-wcan-preset';
|
8 |
+
|
9 |
+
jQuery( function ( $ ) {
|
10 |
+
$( document )
|
11 |
+
.on(
|
12 |
+
'yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode',
|
13 |
+
function () {
|
14 |
+
$( '.yith-wcan-filters' )
|
15 |
+
.not( '.enhanced' )
|
16 |
+
.each( function () {
|
17 |
+
new YITH_WCAN_Preset( $( this ) );
|
18 |
+
} );
|
19 |
+
|
20 |
+
$( '.yith-wcan-reset-filters' )
|
21 |
+
.not( '.enhanced' )
|
22 |
+
.each( function () {
|
23 |
+
new YITH_WCAN_Reset_Button( $( this ) );
|
24 |
+
} );
|
25 |
+
}
|
26 |
+
)
|
27 |
+
.trigger( 'yith_wcan_init_shortcodes' );
|
28 |
+
|
29 |
+
globalThis.product_filter = new YITH_WCAN_Filter();
|
30 |
+
} );
|
@@ -0,0 +1,604 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
+
|
5 |
+
import { $ } from '../config.js';
|
6 |
+
|
7 |
+
export default class YITH_WCAN_Dropdown {
|
8 |
+
// current button
|
9 |
+
$originalSelect = null;
|
10 |
+
|
11 |
+
// main element
|
12 |
+
$_main = null;
|
13 |
+
|
14 |
+
// label element
|
15 |
+
$_label = null;
|
16 |
+
|
17 |
+
// dropdown
|
18 |
+
$_dropdown = null;
|
19 |
+
|
20 |
+
// search input
|
21 |
+
$_search = null;
|
22 |
+
|
23 |
+
// show more link
|
24 |
+
$_showMore = null;
|
25 |
+
|
26 |
+
// items list
|
27 |
+
$_items = null;
|
28 |
+
|
29 |
+
// current page
|
30 |
+
currentPage = 1;
|
31 |
+
|
32 |
+
// options
|
33 |
+
options = {};
|
34 |
+
|
35 |
+
// init object
|
36 |
+
constructor( el, opts ) {
|
37 |
+
this.$originalSelect = el;
|
38 |
+
|
39 |
+
if ( ! this.$originalSelect.is( 'select' ) ) {
|
40 |
+
return;
|
41 |
+
}
|
42 |
+
|
43 |
+
const defaultPerPage = this.$originalSelect.data( 'per_page' ),
|
44 |
+
defaultOrder = this.$originalSelect.data( 'order' ),
|
45 |
+
defaultAll = this.$originalSelect.data( 'all-label' ),
|
46 |
+
defaults = {
|
47 |
+
showSearch: this.$originalSelect.data( 'show_search' ),
|
48 |
+
paginate: this.$originalSelect.data( 'paginate' ),
|
49 |
+
perPage: defaultPerPage ? defaultPerPage : 10,
|
50 |
+
order: defaultOrder ? defaultOrder : 'ASC',
|
51 |
+
getElements: null,
|
52 |
+
labels: {
|
53 |
+
emptyLabel: defaultAll
|
54 |
+
? defaultAll
|
55 |
+
: yith_wcan_shortcodes.labels.empty_option,
|
56 |
+
searchPlaceholder:
|
57 |
+
yith_wcan_shortcodes.labels.search_placeholder,
|
58 |
+
noItemsFound: yith_wcan_shortcodes.labels.no_items,
|
59 |
+
showMore: yith_wcan_shortcodes.labels.show_more,
|
60 |
+
},
|
61 |
+
};
|
62 |
+
|
63 |
+
this.options = $.extend( defaults, opts );
|
64 |
+
|
65 |
+
this._hideSelect();
|
66 |
+
this._initTemplate();
|
67 |
+
this._initActions();
|
68 |
+
|
69 |
+
this.$originalSelect.data( 'dropdown', this ).addClass( 'enhanced' );
|
70 |
+
}
|
71 |
+
|
72 |
+
// hide select
|
73 |
+
_hideSelect() {
|
74 |
+
this.$originalSelect.hide();
|
75 |
+
}
|
76 |
+
|
77 |
+
// create dropdown
|
78 |
+
_initTemplate() {
|
79 |
+
const $mainSpan = $( '<div/>', {
|
80 |
+
class: 'yith-wcan-dropdown closed',
|
81 |
+
} ),
|
82 |
+
$labelSpan = $( '<div/>', {
|
83 |
+
class: 'dropdown-label',
|
84 |
+
html: this.getLabel(),
|
85 |
+
} ),
|
86 |
+
$dropdownSpan = $( '<div>', {
|
87 |
+
class: 'dropdown-wrapper',
|
88 |
+
} ),
|
89 |
+
$matchingItemsList = $( '<ul/>', {
|
90 |
+
class: 'matching-items filter-items',
|
91 |
+
} );
|
92 |
+
|
93 |
+
$dropdownSpan.append( $matchingItemsList );
|
94 |
+
$mainSpan.append( $labelSpan ).append( $dropdownSpan );
|
95 |
+
|
96 |
+
if ( this.options.showSearch ) {
|
97 |
+
this._initSearchTemplate( $dropdownSpan );
|
98 |
+
}
|
99 |
+
|
100 |
+
if ( this.options.paginate ) {
|
101 |
+
this._initShowMoreTemplate( $dropdownSpan );
|
102 |
+
}
|
103 |
+
|
104 |
+
this.$originalSelect.after( $mainSpan );
|
105 |
+
this.$_main = $mainSpan;
|
106 |
+
this.$_label = $labelSpan;
|
107 |
+
this.$_dropdown = $dropdownSpan;
|
108 |
+
this.$_items = $matchingItemsList;
|
109 |
+
}
|
110 |
+
|
111 |
+
// create search field
|
112 |
+
_initSearchTemplate( $dropdwonSpan ) {
|
113 |
+
const $container = $( '<div/>', {
|
114 |
+
class: 'search-field-container',
|
115 |
+
} ),
|
116 |
+
$search = $( '<input/>', {
|
117 |
+
name: 's',
|
118 |
+
class: 'search-field',
|
119 |
+
type: 'search',
|
120 |
+
placeholder: this.options.labels.searchPlaceholder,
|
121 |
+
} );
|
122 |
+
|
123 |
+
$container.append( $search ).prependTo( $dropdwonSpan );
|
124 |
+
this.$_search = $search;
|
125 |
+
}
|
126 |
+
|
127 |
+
// create showMore field
|
128 |
+
_initShowMoreTemplate( $dropdwonSpan ) {
|
129 |
+
const $showMore = $( '<a/>', {
|
130 |
+
class: 'show-more',
|
131 |
+
text: this.options.labels.showMore.replace(
|
132 |
+
'%d',
|
133 |
+
this.options.perPage
|
134 |
+
),
|
135 |
+
} );
|
136 |
+
|
137 |
+
$showMore.on( 'click', this.loadNextPage.bind( this ) ).hide();
|
138 |
+
|
139 |
+
$dropdwonSpan.append( $showMore );
|
140 |
+
this.$_showMore = $showMore;
|
141 |
+
}
|
142 |
+
|
143 |
+
// init actions performed over dropdown elements
|
144 |
+
_initActions() {
|
145 |
+
const self = this;
|
146 |
+
|
147 |
+
// main open event
|
148 |
+
this.$_main?.on( 'click', ( ev ) => {
|
149 |
+
ev.stopPropagation();
|
150 |
+
self.toggleDropdown();
|
151 |
+
} );
|
152 |
+
this.$_dropdown.on( 'click', ( ev ) => {
|
153 |
+
ev.stopPropagation();
|
154 |
+
} );
|
155 |
+
|
156 |
+
// search event
|
157 |
+
this.$_search?.on( 'keyup search', () => {
|
158 |
+
self._populateItems();
|
159 |
+
} );
|
160 |
+
|
161 |
+
// select event
|
162 |
+
this.$_items.on( 'change', ':input', function () {
|
163 |
+
let $li = $( this ).closest( 'li' ),
|
164 |
+
value = $li.data( 'value' ),
|
165 |
+
isActive = false;
|
166 |
+
|
167 |
+
if (
|
168 |
+
$li.hasClass( 'disabled' ) &&
|
169 |
+
! self.isValueSelected( value )
|
170 |
+
) {
|
171 |
+
return false;
|
172 |
+
}
|
173 |
+
|
174 |
+
$li.toggleClass( 'active' );
|
175 |
+
isActive = $li.hasClass( 'active' );
|
176 |
+
|
177 |
+
self._changeItemStatus( value, isActive );
|
178 |
+
} );
|
179 |
+
this.$_items.on( 'click', 'li:not(.checkbox) a', function ( ev ) {
|
180 |
+
let $li = $( this ).closest( 'li' ),
|
181 |
+
value = $li.data( 'value' ),
|
182 |
+
isActive = false;
|
183 |
+
|
184 |
+
ev.preventDefault();
|
185 |
+
|
186 |
+
if (
|
187 |
+
$li.hasClass( 'disabled' ) &&
|
188 |
+
! self.isValueSelected( value )
|
189 |
+
) {
|
190 |
+
return false;
|
191 |
+
}
|
192 |
+
|
193 |
+
$li.toggleClass( 'active' );
|
194 |
+
isActive = $li.hasClass( 'active' );
|
195 |
+
|
196 |
+
if ( isActive ) {
|
197 |
+
$li.siblings().removeClass( 'active' );
|
198 |
+
}
|
199 |
+
|
200 |
+
self._changeItemStatus( value, isActive );
|
201 |
+
} );
|
202 |
+
this.$_items.on( 'click', 'label > a', function ( ev ) {
|
203 |
+
const input = $( this ).parent().find( ':input' );
|
204 |
+
|
205 |
+
ev.preventDefault();
|
206 |
+
|
207 |
+
if (
|
208 |
+
input.is( '[type="radio"]' ) ||
|
209 |
+
input.is( '[type="checkbox"]' )
|
210 |
+
) {
|
211 |
+
input.prop( 'checked', ! input.prop( 'checked' ) );
|
212 |
+
}
|
213 |
+
|
214 |
+
input.change();
|
215 |
+
} );
|
216 |
+
|
217 |
+
// select change
|
218 |
+
this.$originalSelect.on( 'change', ( ev, selfOriginated ) => {
|
219 |
+
if ( selfOriginated ) {
|
220 |
+
return;
|
221 |
+
}
|
222 |
+
|
223 |
+
self.$_items.find( 'li' ).each( function () {
|
224 |
+
const value = $( this ).data( 'value' );
|
225 |
+
|
226 |
+
if ( self.isValueSelected( value ) ) {
|
227 |
+
self._selectItem( value );
|
228 |
+
} else {
|
229 |
+
self._deselectItem( value );
|
230 |
+
}
|
231 |
+
} );
|
232 |
+
|
233 |
+
self.updateLabel();
|
234 |
+
} );
|
235 |
+
|
236 |
+
// close dropdown on external click
|
237 |
+
$( document ).on( 'click', this.closeDropdown.bind( this ) );
|
238 |
+
}
|
239 |
+
|
240 |
+
// open dropdown
|
241 |
+
openDropdown() {
|
242 |
+
this.$_main?.addClass( 'open' ).removeClass( 'closed' );
|
243 |
+
this._afterDropdownOpen();
|
244 |
+
}
|
245 |
+
|
246 |
+
// close dropdown
|
247 |
+
closeDropdown() {
|
248 |
+
this.$_main?.removeClass( 'open' ).addClass( 'closed' );
|
249 |
+
}
|
250 |
+
|
251 |
+
// close other dropdowns
|
252 |
+
_closeOtherDropdowns() {
|
253 |
+
const self = this,
|
254 |
+
dropdowns = $( document )
|
255 |
+
.find( 'select.enhanced' )
|
256 |
+
.filter( function ( i, select ) {
|
257 |
+
const $el = $( select );
|
258 |
+
|
259 |
+
return (
|
260 |
+
!! $el.data( 'dropdown' ) &&
|
261 |
+
! $el.is( self.$originalSelect )
|
262 |
+
);
|
263 |
+
} );
|
264 |
+
|
265 |
+
dropdowns.each( function () {
|
266 |
+
$( this ).data( 'dropdown' ).closeDropdown();
|
267 |
+
} );
|
268 |
+
}
|
269 |
+
|
270 |
+
// toggle dropdown
|
271 |
+
toggleDropdown() {
|
272 |
+
this.$_main?.toggleClass( 'open' ).toggleClass( 'closed' );
|
273 |
+
|
274 |
+
if ( this.$_main?.hasClass( 'open' ) ) {
|
275 |
+
this._afterDropdownOpen();
|
276 |
+
}
|
277 |
+
}
|
278 |
+
|
279 |
+
// perform operations after dropdown is open
|
280 |
+
_afterDropdownOpen() {
|
281 |
+
this._closeOtherDropdowns();
|
282 |
+
|
283 |
+
if ( this.$_search?.length ) {
|
284 |
+
this.$_search.val( '' );
|
285 |
+
}
|
286 |
+
|
287 |
+
this._populateItems();
|
288 |
+
}
|
289 |
+
|
290 |
+
// get elements
|
291 |
+
getMatchingElements( search, limit ) {
|
292 |
+
let matchingElements = [],
|
293 |
+
$options = this.getOptions(),
|
294 |
+
promise;
|
295 |
+
|
296 |
+
promise = new Promise( ( resolve ) => {
|
297 |
+
// first of all, search across select option
|
298 |
+
$options.each( function () {
|
299 |
+
const t = $( this ),
|
300 |
+
value = t.val(),
|
301 |
+
label = t.html(),
|
302 |
+
regex = new RegExp( '.*' + search + '.*', 'i' ),
|
303 |
+
show =
|
304 |
+
! search || regex.test( value ) || regex.test( label );
|
305 |
+
|
306 |
+
if ( show ) {
|
307 |
+
matchingElements.push( {
|
308 |
+
value,
|
309 |
+
label,
|
310 |
+
} );
|
311 |
+
}
|
312 |
+
} );
|
313 |
+
|
314 |
+
// then retrieve additional items
|
315 |
+
if ( this.options.getElements ) {
|
316 |
+
// we're expecting key => value pairs
|
317 |
+
this.options
|
318 |
+
.getElements( search )
|
319 |
+
.then( ( retrievedElements ) => {
|
320 |
+
if ( retrievedElements ) {
|
321 |
+
// reformat retrieved array
|
322 |
+
retrievedElements = retrievedElements.reduce(
|
323 |
+
( a, v, i ) => {
|
324 |
+
a.push( { label: i, value: v } );
|
325 |
+
return a;
|
326 |
+
},
|
327 |
+
[]
|
328 |
+
);
|
329 |
+
|
330 |
+
// merge found results with options
|
331 |
+
matchingElements = $.extend(
|
332 |
+
matchingElements,
|
333 |
+
retrievedElements
|
334 |
+
);
|
335 |
+
}
|
336 |
+
|
337 |
+
resolve( this._formatItems( matchingElements, limit ) );
|
338 |
+
} );
|
339 |
+
} else {
|
340 |
+
resolve( this._formatItems( matchingElements, limit ) );
|
341 |
+
}
|
342 |
+
} );
|
343 |
+
|
344 |
+
return promise;
|
345 |
+
}
|
346 |
+
|
347 |
+
// format items as key/value pairs for further processing
|
348 |
+
_formatItems( items, limit ) {
|
349 |
+
let indexes = [],
|
350 |
+
hasMore = false;
|
351 |
+
|
352 |
+
// remove duplicates and sort array of results
|
353 |
+
items
|
354 |
+
.filter( ( v ) => {
|
355 |
+
if ( -1 === indexes.indexOf( v.value ) ) {
|
356 |
+
indexes.push( v.value );
|
357 |
+
return true;
|
358 |
+
}
|
359 |
+
|
360 |
+
return false;
|
361 |
+
} )
|
362 |
+
.sort( ( a, b ) => {
|
363 |
+
const order = this.options.order,
|
364 |
+
mod = order === 'ASC' ? 1 : -1;
|
365 |
+
|
366 |
+
if ( a.value < b.value ) {
|
367 |
+
return -1 * mod;
|
368 |
+
} else if ( a.value > b.value ) {
|
369 |
+
return mod;
|
370 |
+
}
|
371 |
+
|
372 |
+
return 0;
|
373 |
+
} );
|
374 |
+
|
375 |
+
// paginate when needed
|
376 |
+
if ( limit ) {
|
377 |
+
hasMore = limit < Object.keys( items ).length;
|
378 |
+
items = items.slice( 0, limit );
|
379 |
+
}
|
380 |
+
|
381 |
+
return {
|
382 |
+
items,
|
383 |
+
hasMore,
|
384 |
+
};
|
385 |
+
}
|
386 |
+
|
387 |
+
// generate item to append to items list
|
388 |
+
_generateItem( value, label ) {
|
389 |
+
let active = this.isValueSelected( value ),
|
390 |
+
option = this.getOptionByValue( value ),
|
391 |
+
$item = $( '<li/>', {
|
392 |
+
'data-value': value,
|
393 |
+
class: option.length ? option.attr( 'class' ) : '',
|
394 |
+
} ),
|
395 |
+
$anchor;
|
396 |
+
|
397 |
+
if ( option.length ) {
|
398 |
+
const template = option.data( 'template' ),
|
399 |
+
count = option.data( 'count' );
|
400 |
+
|
401 |
+
label = template ? template : label;
|
402 |
+
|
403 |
+
if ( !! count ) {
|
404 |
+
label += count;
|
405 |
+
}
|
406 |
+
}
|
407 |
+
|
408 |
+
$anchor = $( '<a/>', {
|
409 |
+
href: option.length ? option.data( 'filter_url' ) : '#',
|
410 |
+
html: label,
|
411 |
+
'data-title': option.length ? option.data( 'title' ) : '',
|
412 |
+
} );
|
413 |
+
|
414 |
+
if ( this.$originalSelect.prop( 'multiple' ) ) {
|
415 |
+
const $checkbox = $( '<input/>', {
|
416 |
+
type: 'checkbox',
|
417 |
+
value,
|
418 |
+
} ),
|
419 |
+
$label = $( '<label>' );
|
420 |
+
|
421 |
+
$checkbox.prop( 'checked', active );
|
422 |
+
$label.prepend( $checkbox ).append( $anchor );
|
423 |
+
$item.append( $label ).addClass( 'checkbox' );
|
424 |
+
} else {
|
425 |
+
$item.append( $anchor );
|
426 |
+
}
|
427 |
+
|
428 |
+
active ? $item.addClass( 'active' ) : $item.removeClass( 'active' );
|
429 |
+
|
430 |
+
return $item;
|
431 |
+
}
|
432 |
+
|
433 |
+
// populate items list
|
434 |
+
_populateItems( page ) {
|
435 |
+
let search = this.$_search?.length ? this.$_search.val() : '',
|
436 |
+
perPage = this.options.paginate ? this.options.perPage : 0,
|
437 |
+
limit;
|
438 |
+
|
439 |
+
page = page ? parseInt( page ) : 1;
|
440 |
+
limit = page * perPage;
|
441 |
+
|
442 |
+
this.getMatchingElements( search, limit ).then( ( resultSet ) => {
|
443 |
+
let matchingItems = resultSet.items,
|
444 |
+
items = [],
|
445 |
+
hasMore = false;
|
446 |
+
|
447 |
+
// remove all previous items
|
448 |
+
this._emptyItems();
|
449 |
+
this._hideLoadMore();
|
450 |
+
|
451 |
+
if ( ! matchingItems.length ) {
|
452 |
+
items.push(
|
453 |
+
$( '<li/>', { text: this.options.labels.noItemsFound } )
|
454 |
+
);
|
455 |
+
|
456 |
+
this.currentPage = 1;
|
457 |
+
} else {
|
458 |
+
for ( const v of matchingItems ) {
|
459 |
+
if ( v.value === '' ) {
|
460 |
+
items.unshift( this._generateItem( v.value, v.label ) );
|
461 |
+
} else {
|
462 |
+
items.push( this._generateItem( v.value, v.label ) );
|
463 |
+
}
|
464 |
+
}
|
465 |
+
|
466 |
+
this.currentPage = page;
|
467 |
+
hasMore = resultSet.hasMore;
|
468 |
+
}
|
469 |
+
|
470 |
+
this.$_items.append( items );
|
471 |
+
|
472 |
+
$( document ).trigger( 'yith_wcan_dropdown_updated' );
|
473 |
+
|
474 |
+
if ( hasMore ) {
|
475 |
+
this._showLoadMore();
|
476 |
+
}
|
477 |
+
} );
|
478 |
+
}
|
479 |
+
|
480 |
+
// load next page of items
|
481 |
+
loadNextPage() {
|
482 |
+
const page = this.currentPage + 1;
|
483 |
+
|
484 |
+
this._populateItems( page );
|
485 |
+
}
|
486 |
+
|
487 |
+
// set an item as active
|
488 |
+
_selectItem( value ) {
|
489 |
+
return this._changeItemStatus( value, true );
|
490 |
+
}
|
491 |
+
|
492 |
+
// disable an item
|
493 |
+
_deselectItem( value ) {
|
494 |
+
return this._changeItemStatus( value, false );
|
495 |
+
}
|
496 |
+
|
497 |
+
// change item status
|
498 |
+
_changeItemStatus( value, status ) {
|
499 |
+
const $option = this.$originalSelect.find(
|
500 |
+
`option[value="${ value }"]`
|
501 |
+
);
|
502 |
+
|
503 |
+
if ( $option.length ) {
|
504 |
+
$option.prop( 'selected', status );
|
505 |
+
|
506 |
+
this.closeDropdown();
|
507 |
+
this.updateLabel();
|
508 |
+
|
509 |
+
this.$originalSelect.trigger( 'change', [ true ] );
|
510 |
+
|
511 |
+
return true;
|
512 |
+
}
|
513 |
+
return false;
|
514 |
+
}
|
515 |
+
|
516 |
+
// empty items list
|
517 |
+
_emptyItems() {
|
518 |
+
this.$_items.html( '' );
|
519 |
+
}
|
520 |
+
|
521 |
+
// show "Load more" link
|
522 |
+
_showLoadMore() {
|
523 |
+
this.$_showMore.show();
|
524 |
+
}
|
525 |
+
|
526 |
+
// hide "Load more" link
|
527 |
+
_hideLoadMore() {
|
528 |
+
this.$_showMore.hide();
|
529 |
+
}
|
530 |
+
|
531 |
+
// returns select label
|
532 |
+
getLabel() {
|
533 |
+
return this.hasSelectedValues()
|
534 |
+
? this.getSelectedLabels().join( ', ' )
|
535 |
+
: this.options.labels.emptyLabel;
|
536 |
+
}
|
537 |
+
|
538 |
+
// update label to match new selection
|
539 |
+
updateLabel() {
|
540 |
+
const label = this.getLabel();
|
541 |
+
|
542 |
+
this.$_label?.html( label );
|
543 |
+
}
|
544 |
+
|
545 |
+
// returns select options
|
546 |
+
getOptions() {
|
547 |
+
return this.$originalSelect.find( 'option' );
|
548 |
+
}
|
549 |
+
|
550 |
+
// checks whether select has selected values
|
551 |
+
hasSelectedValues() {
|
552 |
+
return this.getSelectedOptions().length;
|
553 |
+
}
|
554 |
+
|
555 |
+
// checks whether a value is selected
|
556 |
+
isValueSelected( value ) {
|
557 |
+
const found = this.getSelectedValues().indexOf( value.toString() );
|
558 |
+
|
559 |
+
return -1 !== found;
|
560 |
+
}
|
561 |
+
|
562 |
+
// retrieve selected options
|
563 |
+
getSelectedOptions() {
|
564 |
+
return this.$originalSelect.find( 'option' ).filter( ':selected' );
|
565 |
+
}
|
566 |
+
|
567 |
+
// retrieves an option node by value
|
568 |
+
getOptionByValue( value ) {
|
569 |
+
return this.$originalSelect.find( `option[value="${ value }"]` );
|
570 |
+
}
|
571 |
+
|
572 |
+
// retrieve labels for selected options
|
573 |
+
getSelectedLabels() {
|
574 |
+
const labels = [];
|
575 |
+
|
576 |
+
this.getSelectedOptions().each( function () {
|
577 |
+
let $option = $( this ),
|
578 |
+
template = $option.data( 'template' );
|
579 |
+
|
580 |
+
template = template
|
581 |
+
? template
|
582 |
+
: $option.html().replace( /\([0-9]*\)/, '' );
|
583 |
+
|
584 |
+
labels.push( template );
|
585 |
+
} );
|
586 |
+
|
587 |
+
return labels;
|
588 |
+
}
|
589 |
+
|
590 |
+
// retrieve values for selected options
|
591 |
+
getSelectedValues() {
|
592 |
+
const values = [];
|
593 |
+
|
594 |
+
this.getSelectedOptions().each( function () {
|
595 |
+
values.push( $( this ).val() );
|
596 |
+
} );
|
597 |
+
|
598 |
+
return values;
|
599 |
+
}
|
600 |
+
|
601 |
+
destroy() {
|
602 |
+
// TBD
|
603 |
+
}
|
604 |
+
}
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
+
|
5 |
+
import { $ } from '../config.js';
|
6 |
+
|
7 |
+
export default class YITH_WCAN_Filter_Labels {
|
8 |
+
// current label set
|
9 |
+
$label_set = null;
|
10 |
+
|
11 |
+
// labels of current set
|
12 |
+
$labels = false;
|
13 |
+
|
14 |
+
// init object
|
15 |
+
constructor( el ) {
|
16 |
+
// current label set
|
17 |
+
this.$label_set = el;
|
18 |
+
|
19 |
+
this._initLabels();
|
20 |
+
|
21 |
+
this.$label_set.data( 'filter_labels', this ).addClass( 'enhanced' );
|
22 |
+
}
|
23 |
+
|
24 |
+
// init labels
|
25 |
+
_initLabels() {
|
26 |
+
const self = this;
|
27 |
+
|
28 |
+
this.getLabels().each( function () {
|
29 |
+
const $label = $( this );
|
30 |
+
|
31 |
+
self._initLabel( $label );
|
32 |
+
} );
|
33 |
+
}
|
34 |
+
|
35 |
+
// init label
|
36 |
+
_initLabel( $label ) {
|
37 |
+
$label.on( 'click', () => this.disableLabel( $label ) );
|
38 |
+
}
|
39 |
+
|
40 |
+
// get labels
|
41 |
+
getLabels() {
|
42 |
+
if ( false === this.$labels ) {
|
43 |
+
this.$labels = this.$label_set.find( '.active-filter-label' );
|
44 |
+
}
|
45 |
+
|
46 |
+
return this.$labels;
|
47 |
+
}
|
48 |
+
|
49 |
+
// disable filter
|
50 |
+
disableLabel( $label ) {
|
51 |
+
const properties = $label.data( 'filters' );
|
52 |
+
// search for preset
|
53 |
+
$( '.yith-wcan-filters' ).each( function () {
|
54 |
+
const preset = $( this ).data( 'preset' );
|
55 |
+
|
56 |
+
preset.deactivateFilterByProperties( properties, true );
|
57 |
+
} );
|
58 |
+
}
|
59 |
+
}
|
@@ -0,0 +1,352 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
+
|
5 |
+
import { $ } from '../config.js';
|
6 |
+
|
7 |
+
export default class YITH_WCAN_Filter {
|
8 |
+
// currently executing xhr
|
9 |
+
xhr = null;
|
10 |
+
|
11 |
+
// flag set during ajax call handling
|
12 |
+
doingAjax = false;
|
13 |
+
|
14 |
+
// register original url search param
|
15 |
+
originalSearch = location.search;
|
16 |
+
|
17 |
+
// flag set once init has executed
|
18 |
+
initialized = false;
|
19 |
+
|
20 |
+
// init object
|
21 |
+
constructor() {
|
22 |
+
const head = $( 'head' ).html(),
|
23 |
+
pageTitle = document.title,
|
24 |
+
alternativeUrl = this.searchAlternativeUrl( head );
|
25 |
+
|
26 |
+
alternativeUrl &&
|
27 |
+
! this.doingAjax &&
|
28 |
+
! this.initialized &&
|
29 |
+
! yith_wcan_shortcodes.ajax_filters &&
|
30 |
+
this.pushUrlToHistory( alternativeUrl, pageTitle );
|
31 |
+
|
32 |
+
this.initialized = true;
|
33 |
+
}
|
34 |
+
|
35 |
+
// execute call to filter products in current view
|
36 |
+
doFilter( filters, target, preset ) {
|
37 |
+
let targetUrl,
|
38 |
+
$target = target ? $( target ) : $( 'body' ),
|
39 |
+
customFilters;
|
40 |
+
|
41 |
+
// filter properties
|
42 |
+
customFilters = $(
|
43 |
+
document
|
44 |
+
).triggerHandler( 'yith_wcan_filters_parameters', [ filters ] );
|
45 |
+
|
46 |
+
if ( !! customFilters ) {
|
47 |
+
filters = customFilters;
|
48 |
+
}
|
49 |
+
|
50 |
+
// block elements before filtering
|
51 |
+
$target && this.block( $target );
|
52 |
+
|
53 |
+
// calculate target url
|
54 |
+
targetUrl = this.buildUrl( filters );
|
55 |
+
|
56 |
+
// if no ajax, simply change page url
|
57 |
+
if ( ! yith_wcan_shortcodes.ajax_filters ) {
|
58 |
+
window.location = targetUrl;
|
59 |
+
return;
|
60 |
+
}
|
61 |
+
|
62 |
+
// start doing ajax
|
63 |
+
this.doingAjax = true;
|
64 |
+
|
65 |
+
return this._doAjax( targetUrl ).done( ( response ) => {
|
66 |
+
targetUrl = this.searchAlternativeUrl( response, targetUrl );
|
67 |
+
|
68 |
+
this._beforeFilter( response, filters );
|
69 |
+
|
70 |
+
this.refreshFragments( target, preset, response );
|
71 |
+
this.pushUrlToHistory( targetUrl, response.pageTitle );
|
72 |
+
|
73 |
+
$target && this.unblock( $target );
|
74 |
+
|
75 |
+
this._afterFilter( response, filters );
|
76 |
+
|
77 |
+
this.doingAjax = false;
|
78 |
+
} );
|
79 |
+
}
|
80 |
+
|
81 |
+
// actions performed before filter
|
82 |
+
_beforeFilter( response, filters ) {
|
83 |
+
$( document ).trigger( 'yith-wcan-ajax-loading', [
|
84 |
+
response,
|
85 |
+
filters,
|
86 |
+
] );
|
87 |
+
}
|
88 |
+
|
89 |
+
// actions performed after filter
|
90 |
+
_afterFilter( response, filters ) {
|
91 |
+
$( '.woocommerce-ordering' ).on(
|
92 |
+
'change',
|
93 |
+
'select.orderby',
|
94 |
+
function () {
|
95 |
+
$( this ).closest( 'form' ).submit();
|
96 |
+
}
|
97 |
+
);
|
98 |
+
|
99 |
+
$( window ).trigger( 'scroll' );
|
100 |
+
|
101 |
+
$( document )
|
102 |
+
.trigger( 'yith-wcan-ajax-filtered', [ response, filters ] )
|
103 |
+
.trigger( 'yith_wcwl_reload_fragments' );
|
104 |
+
}
|
105 |
+
|
106 |
+
// build url to show
|
107 |
+
buildUrl( filters ) {
|
108 |
+
let queryParam = yith_wcan_shortcodes.query_param,
|
109 |
+
params = {},
|
110 |
+
location = window.location,
|
111 |
+
url = !! yith_wcan_shortcodes.base_url
|
112 |
+
? yith_wcan_shortcodes.base_url
|
113 |
+
: location?.origin + location?.pathname,
|
114 |
+
search = '',
|
115 |
+
self = this;
|
116 |
+
|
117 |
+
const haveFilters =
|
118 |
+
typeof filters === 'object' && Object.keys( filters ).length;
|
119 |
+
|
120 |
+
// remove filter session from current url, if any
|
121 |
+
if ( !! yith_wcan_shortcodes.session_param ) {
|
122 |
+
url = url.replace(
|
123 |
+
new RegExp(
|
124 |
+
'/' + yith_wcan_shortcodes.session_param + '/[^/]*/'
|
125 |
+
),
|
126 |
+
''
|
127 |
+
);
|
128 |
+
}
|
129 |
+
|
130 |
+
if ( haveFilters ) {
|
131 |
+
params[ queryParam ] = 1;
|
132 |
+
}
|
133 |
+
|
134 |
+
if ( !! this.originalSearch ) {
|
135 |
+
const searchParams = this.originalSearch
|
136 |
+
.replace( '?', '' )
|
137 |
+
.split( '&' )
|
138 |
+
.reduce( ( a, v ) => {
|
139 |
+
const items = v.split( '=' );
|
140 |
+
|
141 |
+
if ( items.length === 2 ) {
|
142 |
+
if ( this.isFilterParam( items[ 0 ] ) ) {
|
143 |
+
return a;
|
144 |
+
}
|
145 |
+
|
146 |
+
a[ items[ 0 ] ] = items[ 1 ];
|
147 |
+
}
|
148 |
+
|
149 |
+
return a;
|
150 |
+
}, {} );
|
151 |
+
|
152 |
+
params = $.extend( params, searchParams );
|
153 |
+
}
|
154 |
+
|
155 |
+
if ( haveFilters ) {
|
156 |
+
params = $.extend( params, filters );
|
157 |
+
}
|
158 |
+
|
159 |
+
search = Object.keys( params )
|
160 |
+
.reduce( function ( a, i ) {
|
161 |
+
const v = params[ i ];
|
162 |
+
|
163 |
+
if ( ! v || ! i ) {
|
164 |
+
return a;
|
165 |
+
}
|
166 |
+
|
167 |
+
a += self._cleanParam( i ) + '=' + self._cleanParam( v ) + '&';
|
168 |
+
|
169 |
+
return a;
|
170 |
+
}, '?' )
|
171 |
+
.replace( /&$/g, '' )
|
172 |
+
.replace( /%2B/g, '+' )
|
173 |
+
.replace( /%2C/g, ',' );
|
174 |
+
|
175 |
+
if ( search.length > 1 ) {
|
176 |
+
url += search;
|
177 |
+
}
|
178 |
+
|
179 |
+
return url;
|
180 |
+
}
|
181 |
+
|
182 |
+
// retrieves alternative sharing url in response body
|
183 |
+
searchAlternativeUrl( response, defaultUrl = '' ) {
|
184 |
+
let url = defaultUrl,
|
185 |
+
matches;
|
186 |
+
|
187 |
+
if ( -1 === response.indexOf( 'yith_wcan:sharing_url' ) ) {
|
188 |
+
return url;
|
189 |
+
}
|
190 |
+
|
191 |
+
matches = response.match(
|
192 |
+
/<meta name="yith_wcan:sharing_url" content="([^"]*)">/
|
193 |
+
);
|
194 |
+
url = matches && 1 in matches ? matches[ 1 ] : url;
|
195 |
+
|
196 |
+
return url;
|
197 |
+
}
|
198 |
+
|
199 |
+
// push url to browser history
|
200 |
+
pushUrlToHistory( url, title ) {
|
201 |
+
if (
|
202 |
+
! yith_wcan_shortcodes.change_browser_url ||
|
203 |
+
navigator.userAgent.match( /msie/i )
|
204 |
+
) {
|
205 |
+
return;
|
206 |
+
}
|
207 |
+
|
208 |
+
window.history.pushState(
|
209 |
+
{
|
210 |
+
pageTitle: title,
|
211 |
+
},
|
212 |
+
'',
|
213 |
+
url
|
214 |
+
);
|
215 |
+
}
|
216 |
+
|
217 |
+
// replaces elements in the page with refreshed ones
|
218 |
+
refreshFragments( target, preset, response ) {
|
219 |
+
const responseDom = document.createElement( 'html' ),
|
220 |
+
$response = $( responseDom );
|
221 |
+
|
222 |
+
responseDom.innerHTML = response;
|
223 |
+
|
224 |
+
if ( target ) {
|
225 |
+
let $preset = $( preset ),
|
226 |
+
$target = $( target ),
|
227 |
+
$destination;
|
228 |
+
|
229 |
+
if ( $preset.length ) {
|
230 |
+
$destination = $response.find( preset );
|
231 |
+
|
232 |
+
if ( $destination.length ) {
|
233 |
+
$preset.replaceWith( $destination.first() );
|
234 |
+
}
|
235 |
+
}
|
236 |
+
|
237 |
+
if ( $target.length ) {
|
238 |
+
$destination = $response.find( target );
|
239 |
+
|
240 |
+
if ( $destination.length ) {
|
241 |
+
$target.replaceWith( $destination.first() );
|
242 |
+
}
|
243 |
+
}
|
244 |
+
} else {
|
245 |
+
const content = $( yith_wcan_shortcodes.content );
|
246 |
+
|
247 |
+
if ( content.length ) {
|
248 |
+
content.replaceWith(
|
249 |
+
$response.find( yith_wcan_shortcodes.content )
|
250 |
+
);
|
251 |
+
} else {
|
252 |
+
$( 'body' ).replaceWith( $response.find( 'body' ) );
|
253 |
+
}
|
254 |
+
}
|
255 |
+
|
256 |
+
$( document ).trigger( 'yith_wcan_init_shortcodes' );
|
257 |
+
}
|
258 |
+
|
259 |
+
// clean url parameters
|
260 |
+
_cleanParam( param ) {
|
261 |
+
if (
|
262 |
+
! yith_wcan_shortcodes?.process_sanitize ||
|
263 |
+
yith_wcan_shortcodes?.skip_sanitize
|
264 |
+
) {
|
265 |
+
return param;
|
266 |
+
}
|
267 |
+
|
268 |
+
return encodeURIComponent( param );
|
269 |
+
}
|
270 |
+
|
271 |
+
// executes Ajax calls
|
272 |
+
_doAjax( url, params ) {
|
273 |
+
if ( this.xhr ) {
|
274 |
+
this.xhr.abort();
|
275 |
+
}
|
276 |
+
|
277 |
+
params = $.extend(
|
278 |
+
{
|
279 |
+
url,
|
280 |
+
},
|
281 |
+
params
|
282 |
+
);
|
283 |
+
|
284 |
+
this.xhr = $.ajax( params );
|
285 |
+
|
286 |
+
return this.xhr;
|
287 |
+
}
|
288 |
+
|
289 |
+
// block dom elements
|
290 |
+
block( $el ) {
|
291 |
+
if ( typeof $.fn.block === 'undefined' ) {
|
292 |
+
return;
|
293 |
+
}
|
294 |
+
|
295 |
+
let background = '#fff center center no-repeat';
|
296 |
+
|
297 |
+
if ( yith_wcan_shortcodes?.loader ) {
|
298 |
+
background = `url('${ yith_wcan_shortcodes.loader }') ${ background }`;
|
299 |
+
}
|
300 |
+
|
301 |
+
$el.block( {
|
302 |
+
message: null,
|
303 |
+
overlayCSS: {
|
304 |
+
background,
|
305 |
+
opacity: 0.7,
|
306 |
+
},
|
307 |
+
} );
|
308 |
+
}
|
309 |
+
|
310 |
+
// unblock dom elements
|
311 |
+
unblock( $el ) {
|
312 |
+
if ( typeof $.fn.unblock === 'undefined' ) {
|
313 |
+
return;
|
314 |
+
}
|
315 |
+
|
316 |
+
$el.unblock();
|
317 |
+
}
|
318 |
+
|
319 |
+
// checks if param is one used by layared nav to filter products.
|
320 |
+
isFilterParam( param ) {
|
321 |
+
let supportedParams = [
|
322 |
+
'rating_filter',
|
323 |
+
'min_price',
|
324 |
+
'max_price',
|
325 |
+
'price_ranges',
|
326 |
+
'onsale_filter',
|
327 |
+
'instock_filter',
|
328 |
+
'featured_filter',
|
329 |
+
'orderby',
|
330 |
+
'product-page',
|
331 |
+
yith_wcan_shortcodes.query_param,
|
332 |
+
].concat(
|
333 |
+
yith_wcan_shortcodes.supported_taxonomies.map( ( i ) =>
|
334 |
+
i.replace( 'pa_', 'filter_' )
|
335 |
+
)
|
336 |
+
);
|
337 |
+
|
338 |
+
if ( -1 !== supportedParams.indexOf( param ) ) {
|
339 |
+
return true;
|
340 |
+
}
|
341 |
+
|
342 |
+
if ( -1 !== param.indexOf( 'filter_' ) ) {
|
343 |
+
return true;
|
344 |
+
}
|
345 |
+
|
346 |
+
if ( -1 !== param.indexOf( 'query_type_' ) ) {
|
347 |
+
return true;
|
348 |
+
}
|
349 |
+
|
350 |
+
return false;
|
351 |
+
}
|
352 |
+
}
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
+
|
5 |
+
import { $ } from '../config.js';
|
6 |
+
|
7 |
+
export default class YITH_WCAN_Modal_Opener {
|
8 |
+
// current button
|
9 |
+
$button = null;
|
10 |
+
|
11 |
+
// YITH_WCAN_Preset object
|
12 |
+
preset = null;
|
13 |
+
|
14 |
+
// preset dom node
|
15 |
+
$preset = null;
|
16 |
+
|
17 |
+
// is mobile flag
|
18 |
+
isMobile = false;
|
19 |
+
|
20 |
+
// init object
|
21 |
+
constructor( el ) {
|
22 |
+
// current button
|
23 |
+
this.$button = el;
|
24 |
+
|
25 |
+
this._initPreset();
|
26 |
+
this._initResponsive();
|
27 |
+
this._initActions();
|
28 |
+
|
29 |
+
this.$button.data( 'modalOpener', this ).addClass( 'enhanced' );
|
30 |
+
}
|
31 |
+
|
32 |
+
// search for related preset
|
33 |
+
_initPreset() {
|
34 |
+
let target = this.$button.data( 'target' ),
|
35 |
+
$target;
|
36 |
+
|
37 |
+
if ( target ) {
|
38 |
+
$target = $( `#${ target }` );
|
39 |
+
} else {
|
40 |
+
$target = $( '.yith-wcan-filters' );
|
41 |
+
}
|
42 |
+
|
43 |
+
if ( ! $target.length ) {
|
44 |
+
return;
|
45 |
+
}
|
46 |
+
|
47 |
+
this.$preset = $target.first();
|
48 |
+
this.preset = this.$preset.data( 'preset' );
|
49 |
+
}
|
50 |
+
|
51 |
+
// init responsive
|
52 |
+
_initResponsive() {
|
53 |
+
if ( ! yith_wcan_shortcodes.modal_on_mobile || ! this.preset ) {
|
54 |
+
this.$button.hide();
|
55 |
+
return;
|
56 |
+
}
|
57 |
+
|
58 |
+
const media = window.matchMedia(
|
59 |
+
`(max-width: ${ yith_wcan_shortcodes.mobile_media_query }px)`
|
60 |
+
);
|
61 |
+
|
62 |
+
$( window )
|
63 |
+
.on( 'resize', () => {
|
64 |
+
const isMobile = !! media.matches;
|
65 |
+
|
66 |
+
if ( isMobile !== this.isMobile ) {
|
67 |
+
this.isMobile = isMobile;
|
68 |
+
this._afterLayoutChange();
|
69 |
+
}
|
70 |
+
} )
|
71 |
+
.resize();
|
72 |
+
}
|
73 |
+
|
74 |
+
// init actions
|
75 |
+
_initActions() {
|
76 |
+
if ( ! this.$preset?.length ) {
|
77 |
+
return;
|
78 |
+
}
|
79 |
+
|
80 |
+
const self = this;
|
81 |
+
|
82 |
+
this.$button.on( 'click', function ( ev ) {
|
83 |
+
ev.preventDefault();
|
84 |
+
|
85 |
+
self.preset.openModal();
|
86 |
+
} );
|
87 |
+
}
|
88 |
+
|
89 |
+
// hide/show button when needed
|
90 |
+
_afterLayoutChange() {
|
91 |
+
this.isMobile ? this.$button.show() : this.$button.hide();
|
92 |
+
}
|
93 |
+
}
|
@@ -0,0 +1,1506 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
+
|
5 |
+
import { $ } from '../config.js';
|
6 |
+
import YITH_WCAN_Dropdown from './yith-wcan-dropdown';
|
7 |
+
|
8 |
+
export default class YITH_WCAN_Preset {
|
9 |
+
// main preset node
|
10 |
+
preset = false;
|
11 |
+
$preset = false;
|
12 |
+
|
13 |
+
// target of the filter, if any
|
14 |
+
target = false;
|
15 |
+
$target = false;
|
16 |
+
|
17 |
+
// filters node
|
18 |
+
$filters = false;
|
19 |
+
|
20 |
+
// filter button
|
21 |
+
$filterButtons = false;
|
22 |
+
|
23 |
+
// nodes created just for modal layout
|
24 |
+
modalElements = {};
|
25 |
+
|
26 |
+
// retains current status of filters
|
27 |
+
activeFilters = false;
|
28 |
+
|
29 |
+
// mobile flag
|
30 |
+
isMobile = false;
|
31 |
+
|
32 |
+
// slider timeout
|
33 |
+
sliderTimeout = false;
|
34 |
+
|
35 |
+
// registers when status has changed
|
36 |
+
originalFilters = null;
|
37 |
+
dirty = false;
|
38 |
+
|
39 |
+
// init object
|
40 |
+
constructor( el ) {
|
41 |
+
// main preset node
|
42 |
+
this.preset = '#' + el.attr( 'id' );
|
43 |
+
this.$preset = el;
|
44 |
+
|
45 |
+
// target of the filter, if any
|
46 |
+
this.target = this.$preset.data( 'target' );
|
47 |
+
this.$target = this.target ? $( this.target ) : false;
|
48 |
+
|
49 |
+
this._regiterStatus();
|
50 |
+
this._initFilterButton();
|
51 |
+
this._initResponsive();
|
52 |
+
this._initFilters();
|
53 |
+
this._initActions();
|
54 |
+
|
55 |
+
this.$preset
|
56 |
+
.data( 'preset', this )
|
57 |
+
.addClass( 'enhanced' )
|
58 |
+
.trigger( 'yith_wcan_preset_initialized', [ this ] );
|
59 |
+
}
|
60 |
+
|
61 |
+
// init filters
|
62 |
+
_initFilters() {
|
63 |
+
const self = this;
|
64 |
+
|
65 |
+
this.getFilters().each( function () {
|
66 |
+
const $filter = $( this );
|
67 |
+
|
68 |
+
self._initFilter( $filter );
|
69 |
+
} );
|
70 |
+
|
71 |
+
this.maybeShowClearAllFilters();
|
72 |
+
}
|
73 |
+
|
74 |
+
// init filter button
|
75 |
+
_initFilterButton() {
|
76 |
+
this.$filterButtons = this.$preset.find( '.apply-filters' );
|
77 |
+
|
78 |
+
if ( ! this.$filterButtons.length ) {
|
79 |
+
return;
|
80 |
+
}
|
81 |
+
|
82 |
+
// manage filter button
|
83 |
+
this.$filterButtons
|
84 |
+
.on( 'click', ( ev ) => {
|
85 |
+
ev.preventDefault();
|
86 |
+
this.filter();
|
87 |
+
} )
|
88 |
+
.hide();
|
89 |
+
}
|
90 |
+
|
91 |
+
// init generic actions
|
92 |
+
_initActions() {
|
93 |
+
this.$preset.find( 'form' ).on( 'submit', ( ev ) => {
|
94 |
+
ev.preventDefault();
|
95 |
+
} );
|
96 |
+
}
|
97 |
+
|
98 |
+
// init responsive
|
99 |
+
_initResponsive() {
|
100 |
+
if ( ! yith_wcan_shortcodes.modal_on_mobile ) {
|
101 |
+
return;
|
102 |
+
}
|
103 |
+
|
104 |
+
const media = window.matchMedia(
|
105 |
+
`(max-width: ${ yith_wcan_shortcodes.mobile_media_query }px)`
|
106 |
+
);
|
107 |
+
|
108 |
+
$( window )
|
109 |
+
.on( 'resize', () => {
|
110 |
+
const isMobile = !! media.matches;
|
111 |
+
|
112 |
+
if ( isMobile !== this.isMobile ) {
|
113 |
+
this.isMobile = isMobile;
|
114 |
+
this._afterLayoutChange();
|
115 |
+
}
|
116 |
+
} )
|
117 |
+
.resize();
|
118 |
+
}
|
119 |
+
|
120 |
+
// init filter
|
121 |
+
_initFilter( $filter ) {
|
122 |
+
const self = this,
|
123 |
+
handleChange = function ( ev ) {
|
124 |
+
const t = $( this ),
|
125 |
+
$currentFilter = t.closest( '.yith-wcan-filter' ),
|
126 |
+
multiple = $currentFilter.length
|
127 |
+
? 'yes' === $currentFilter.data( 'multiple' )
|
128 |
+
: false,
|
129 |
+
$item = t.closest( '.filter-item' ),
|
130 |
+
$items = $item.length
|
131 |
+
? $currentFilter.find( '.filter-item' ).not( $item )
|
132 |
+
: [];
|
133 |
+
|
134 |
+
if ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {
|
135 |
+
ev.preventDefault();
|
136 |
+
return false;
|
137 |
+
}
|
138 |
+
|
139 |
+
ev.preventDefault();
|
140 |
+
|
141 |
+
$items.length &&
|
142 |
+
! multiple &&
|
143 |
+
$items
|
144 |
+
.removeClass( 'active' )
|
145 |
+
.children( 'label' )
|
146 |
+
.find( ':input' )
|
147 |
+
.prop( 'checked', false )
|
148 |
+
.parent( '.checked' )
|
149 |
+
.removeClass( 'checked' );
|
150 |
+
$item.length && $item.toggleClass( 'active' );
|
151 |
+
|
152 |
+
// reset active filters.
|
153 |
+
self.activeFilters = false;
|
154 |
+
|
155 |
+
self.maybeFilter( $filter );
|
156 |
+
self.maybeToggleClearAllFilters();
|
157 |
+
self.maybeToggleClearFilter( $currentFilter );
|
158 |
+
};
|
159 |
+
|
160 |
+
// handle filter activation/deactivation by click on label (no input involved)
|
161 |
+
$filter
|
162 |
+
.find( '.filter-item' )
|
163 |
+
.not( '.checkbox' )
|
164 |
+
.not( '.radio' )
|
165 |
+
.on( 'click', 'a', function ( ev ) {
|
166 |
+
const t = $( this ),
|
167 |
+
$item = t.closest( '.filter-item' );
|
168 |
+
|
169 |
+
if ( ! $( ev?.delegateTarget ).is( $item ) ) {
|
170 |
+
return false;
|
171 |
+
}
|
172 |
+
|
173 |
+
handleChange.call( this, ev );
|
174 |
+
} );
|
175 |
+
|
176 |
+
// handle filter activation/deactivation from input change
|
177 |
+
$filter.find( ':input' ).on( 'change', function ( ev ) {
|
178 |
+
const t = $( this ),
|
179 |
+
$item = t.closest( '.filter-item' );
|
180 |
+
|
181 |
+
if ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {
|
182 |
+
t.prop( 'checked', false );
|
183 |
+
return false;
|
184 |
+
}
|
185 |
+
|
186 |
+
handleChange.call( this, ev );
|
187 |
+
} );
|
188 |
+
|
189 |
+
// handle filter activation/deactivation by click on label (there is an input whose state can be switched)
|
190 |
+
$filter.find( 'label > a' ).on( 'click', function ( ev ) {
|
191 |
+
const t = $( this ),
|
192 |
+
$item = t.closest( '.filter-item' );
|
193 |
+
|
194 |
+
ev.preventDefault();
|
195 |
+
|
196 |
+
if ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {
|
197 |
+
return false;
|
198 |
+
}
|
199 |
+
|
200 |
+
const $input = t.parent().find( ':input' );
|
201 |
+
|
202 |
+
if (
|
203 |
+
$input.is( '[type="radio"]' ) ||
|
204 |
+
$input.is( '[type="checkbox"]' )
|
205 |
+
) {
|
206 |
+
$input.prop( 'checked', ! $input.prop( 'checked' ) );
|
207 |
+
}
|
208 |
+
|
209 |
+
$input.change();
|
210 |
+
} );
|
211 |
+
|
212 |
+
// init tooltip
|
213 |
+
this._initTooltip( $filter );
|
214 |
+
|
215 |
+
// init price slider
|
216 |
+
this._initPriceSlider( $filter );
|
217 |
+
|
218 |
+
// init dropdown
|
219 |
+
this._initDropdown( $filter );
|
220 |
+
|
221 |
+
// init collapsable
|
222 |
+
this._initCollapsable( $filter );
|
223 |
+
|
224 |
+
// init clear anchors
|
225 |
+
this.maybeShowClearFilter( $filter );
|
226 |
+
|
227 |
+
// init custom inputs
|
228 |
+
if ( this.$preset?.hasClass( 'custom-style' ) ) {
|
229 |
+
this._initCustomInput( $filter );
|
230 |
+
}
|
231 |
+
}
|
232 |
+
|
233 |
+
// init tooltip
|
234 |
+
_initTooltip( $filter, position ) {
|
235 |
+
$filter.find( '[data-title]' ).each( function () {
|
236 |
+
const t = $( this );
|
237 |
+
|
238 |
+
if ( t.hasClass( 'tooltip-added' ) || ! t.data( 'title' ) ) {
|
239 |
+
return;
|
240 |
+
}
|
241 |
+
|
242 |
+
t.on( 'mouseenter', function () {
|
243 |
+
let th = $( this ),
|
244 |
+
tooltip = null,
|
245 |
+
wrapperWidth = th.outerWidth(),
|
246 |
+
left = 0,
|
247 |
+
width = 0;
|
248 |
+
|
249 |
+
if (
|
250 |
+
! position ||
|
251 |
+
( 'top' !== position && 'right' !== position )
|
252 |
+
) {
|
253 |
+
const container = th.closest( '.filter-item' );
|
254 |
+
|
255 |
+
position =
|
256 |
+
container.hasClass( 'color' ) ||
|
257 |
+
container.hasClass( 'label' )
|
258 |
+
? 'top'
|
259 |
+
: 'right';
|
260 |
+
}
|
261 |
+
|
262 |
+
tooltip = $( '<span>', {
|
263 |
+
class: 'yith-wcan-tooltip',
|
264 |
+
html: th.data( 'title' ),
|
265 |
+
} );
|
266 |
+
|
267 |
+
th.append( tooltip );
|
268 |
+
|
269 |
+
width = tooltip.outerWidth() + 6;
|
270 |
+
tooltip.outerWidth( width );
|
271 |
+
|
272 |
+
if ( 'top' === position ) {
|
273 |
+
left = ( wrapperWidth - width ) / 2;
|
274 |
+
} else {
|
275 |
+
left = wrapperWidth + 15;
|
276 |
+
}
|
277 |
+
|
278 |
+
tooltip.css( { left: left.toFixed( 0 ) + 'px' } ).fadeIn( 200 );
|
279 |
+
|
280 |
+
th.addClass( 'with-tooltip' );
|
281 |
+
} ).on( 'mouseleave', function () {
|
282 |
+
const th = $( this );
|
283 |
+
|
284 |
+
th.find( '.yith-wcan-tooltip' ).fadeOut( 200, function () {
|
285 |
+
th.removeClass( 'with-tooltip' )
|
286 |
+
.find( '.yith-wcan-tooltip' )
|
287 |
+
.remove();
|
288 |
+
} );
|
289 |
+
} );
|
290 |
+
|
291 |
+
t.addClass( 'tooltip-added' );
|
292 |
+
} );
|
293 |
+
}
|
294 |
+
|
295 |
+
// init dropdown
|
296 |
+
_initDropdown( $filter ) {
|
297 |
+
const $dropdown = $filter.find( 'select.filter-dropdown' );
|
298 |
+
|
299 |
+
if ( ! $dropdown.length ) {
|
300 |
+
return;
|
301 |
+
}
|
302 |
+
|
303 |
+
if (
|
304 |
+
$dropdown.hasClass( 'select2-hidden-accessible' ) &&
|
305 |
+
'undefined' !== typeof $.fn.selectWoo
|
306 |
+
) {
|
307 |
+
$dropdown.selectWoo( 'destroy' );
|
308 |
+
}
|
309 |
+
|
310 |
+
this._initDropdownObject( $dropdown, {
|
311 |
+
paginate: true,
|
312 |
+
perPage: yith_wcan_shortcodes.terms_per_page,
|
313 |
+
} );
|
314 |
+
}
|
315 |
+
|
316 |
+
// init dropdown object
|
317 |
+
_initDropdownObject( $dropdown, opts ) {
|
318 |
+
return new YITH_WCAN_Dropdown( $dropdown, opts );
|
319 |
+
}
|
320 |
+
|
321 |
+
// init price slider
|
322 |
+
_initPriceSlider( $filter ) {
|
323 |
+
if ( ! $filter.hasClass( 'filter-price-slider' ) ) {
|
324 |
+
return;
|
325 |
+
}
|
326 |
+
|
327 |
+
const self = this,
|
328 |
+
$container = $filter.find( '.price-slider' ),
|
329 |
+
$minInput = $container.find( '.price-slider-min' ),
|
330 |
+
$maxInput = $container.find( '.price-slider-max' ),
|
331 |
+
min = parseFloat( $container.data( 'min' ) ),
|
332 |
+
max = parseFloat( $container.data( 'max' ) ),
|
333 |
+
currentMin = parseFloat( $minInput.val() ),
|
334 |
+
currentMax = parseFloat( $maxInput.val() ),
|
335 |
+
step = parseFloat( $container.data( 'step' ) ),
|
336 |
+
handleSliderChange = function () {
|
337 |
+
if ( self.sliderTimeout ) {
|
338 |
+
clearTimeout( self.sliderTimeout );
|
339 |
+
}
|
340 |
+
|
341 |
+
self.sliderTimeout = setTimeout( () => {
|
342 |
+
self.maybeFilter( $filter );
|
343 |
+
}, 200 );
|
344 |
+
};
|
345 |
+
|
346 |
+
$filter.find( '.price-slider-ui' ).ionRangeSlider( {
|
347 |
+
skin: 'round',
|
348 |
+
type: 'double',
|
349 |
+
min,
|
350 |
+
max,
|
351 |
+
step,
|
352 |
+
from: currentMin,
|
353 |
+
to: currentMax,
|
354 |
+
min_interval: step,
|
355 |
+
values_separator: ' - ',
|
356 |
+
prettify: ( v ) => this.formatPrice( v ),
|
357 |
+
onChange: ( data ) => {
|
358 |
+
$minInput.val( data.from );
|
359 |
+
$maxInput.val( data.to );
|
360 |
+
},
|
361 |
+
onFinish: handleSliderChange,
|
362 |
+
} );
|
363 |
+
|
364 |
+
$minInput
|
365 |
+
.add( $maxInput )
|
366 |
+
.off( 'change' )
|
367 |
+
.on( 'keyup', () => {
|
368 |
+
if ( ! $minInput.val() || ! $maxInput.val() ) {
|
369 |
+
return;
|
370 |
+
}
|
371 |
+
|
372 |
+
handleSliderChange();
|
373 |
+
} );
|
374 |
+
}
|
375 |
+
|
376 |
+
// init collapsable
|
377 |
+
_initCollapsable( $filter ) {
|
378 |
+
this._initTitleCollapsable( $filter );
|
379 |
+
this._initHierarchyCollapsable( $filter );
|
380 |
+
}
|
381 |
+
|
382 |
+
// init toggle on click of the title
|
383 |
+
_initTitleCollapsable( $filter ) {
|
384 |
+
const $title = $filter.find( '.collapsable' );
|
385 |
+
|
386 |
+
if ( ! $title.length ) {
|
387 |
+
return;
|
388 |
+
}
|
389 |
+
|
390 |
+
this._initToggle( $title, $title, $filter.find( '.filter-content' ) );
|
391 |
+
}
|
392 |
+
|
393 |
+
// init toggle on click of the parent li
|
394 |
+
_initHierarchyCollapsable( $filter ) {
|
395 |
+
const $items = $filter.find( '.hierarchy-collapsable' );
|
396 |
+
|
397 |
+
if ( ! $items.length ) {
|
398 |
+
return;
|
399 |
+
}
|
400 |
+
|
401 |
+
// set parents of currently active term as open
|
402 |
+
const self = this,
|
403 |
+
active = $filter.find( '.active' );
|
404 |
+
|
405 |
+
if ( active.length ) {
|
406 |
+
active
|
407 |
+
.parents( '.hierarchy-collapsable' )
|
408 |
+
.removeClass( 'closed' )
|
409 |
+
.addClass( 'opened' );
|
410 |
+
|
411 |
+
if (
|
412 |
+
active.hasClass( 'hierarchy-collapsable' ) &&
|
413 |
+
yith_wcan_shortcodes.show_current_children
|
414 |
+
) {
|
415 |
+
active.removeClass( 'closed' ).addClass( 'opened' );
|
416 |
+
}
|
417 |
+
}
|
418 |
+
|
419 |
+
$items.each( function () {
|
420 |
+
const $t = $( this ),
|
421 |
+
$toggle = $( '<span/>', {
|
422 |
+
class: 'toggle-handle',
|
423 |
+
} );
|
424 |
+
|
425 |
+
$toggle.appendTo( $t );
|
426 |
+
|
427 |
+
self._initToggle( $toggle, $t, $t.children( 'ul.filter-items' ) );
|
428 |
+
} );
|
429 |
+
}
|
430 |
+
|
431 |
+
// init toggle to generic toggle/target pair
|
432 |
+
_initToggle( $toggle, $container, $target ) {
|
433 |
+
if ( $container.hasClass( 'closed' ) ) {
|
434 |
+
$target.hide();
|
435 |
+
}
|
436 |
+
|
437 |
+
$toggle.off( 'click' ).on( 'click', ( ev ) => {
|
438 |
+
ev.stopPropagation();
|
439 |
+
|
440 |
+
$target.slideToggle( 400, () => {
|
441 |
+
$container.toggleClass( 'opened' ).toggleClass( 'closed' );
|
442 |
+
} );
|
443 |
+
} );
|
444 |
+
}
|
445 |
+
|
446 |
+
// init custom input
|
447 |
+
_initCustomInput( $filter ) {
|
448 |
+
$filter.find( ':input' ).each( function () {
|
449 |
+
let input = $( this ),
|
450 |
+
type = input.attr( 'type' ),
|
451 |
+
containerClass = `${ type }button`,
|
452 |
+
container;
|
453 |
+
|
454 |
+
if ( 'checkbox' !== type && 'radio' !== type ) {
|
455 |
+
return;
|
456 |
+
}
|
457 |
+
|
458 |
+
if ( input.closest( `.${ containerClass }` ).length ) {
|
459 |
+
return;
|
460 |
+
}
|
461 |
+
|
462 |
+
if ( input.is( ':checked' ) ) {
|
463 |
+
containerClass += ' checked';
|
464 |
+
}
|
465 |
+
|
466 |
+
container = $( '<span/>', {
|
467 |
+
class: containerClass,
|
468 |
+
} );
|
469 |
+
|
470 |
+
input.wrap( container ).on( 'change', function () {
|
471 |
+
const t = $( this );
|
472 |
+
|
473 |
+
t.prop( 'checked' )
|
474 |
+
? t.parent().addClass( 'checked' )
|
475 |
+
: t.parent().removeClass( 'checked' );
|
476 |
+
} );
|
477 |
+
} );
|
478 |
+
}
|
479 |
+
|
480 |
+
// register initial status
|
481 |
+
_regiterStatus() {
|
482 |
+
this.originalFilters = this.getFiltersProperties();
|
483 |
+
}
|
484 |
+
|
485 |
+
// trigger handling after layout change
|
486 |
+
_afterLayoutChange() {
|
487 |
+
if ( this.isMobile ) {
|
488 |
+
this.$preset
|
489 |
+
.addClass( 'filters-modal' )
|
490 |
+
.attr( 'role', 'dialog' )
|
491 |
+
.attr( 'tabindex', '-1' )
|
492 |
+
.hide();
|
493 |
+
|
494 |
+
this._addCloseModalButton();
|
495 |
+
this._addApplyFiltersModalButton();
|
496 |
+
this._switchToCollapsables();
|
497 |
+
|
498 |
+
this.$filterButtons?.hide();
|
499 |
+
} else {
|
500 |
+
this.$preset
|
501 |
+
.removeClass( 'filters-modal' )
|
502 |
+
.removeClass( 'open' )
|
503 |
+
.removeAttr( 'role' )
|
504 |
+
.removeAttr( 'tabindex' )
|
505 |
+
.show();
|
506 |
+
|
507 |
+
$( 'body' )
|
508 |
+
.css( 'overflow', 'auto' )
|
509 |
+
.removeClass( 'yith-wcan-preset-modal-open' );
|
510 |
+
|
511 |
+
this._removeCloseModalButton();
|
512 |
+
this._removeApplyFiltersModalButton();
|
513 |
+
this._switchBackCollapsables();
|
514 |
+
|
515 |
+
this.$filterButtons?.show();
|
516 |
+
}
|
517 |
+
}
|
518 |
+
|
519 |
+
// add modal close button
|
520 |
+
_addCloseModalButton() {
|
521 |
+
const $closeButton = $( '<a/>', {
|
522 |
+
class: 'close-button',
|
523 |
+
html: '×',
|
524 |
+
'data-dismiss': 'modal',
|
525 |
+
'aria-label': yith_wcan_shortcodes.labels.close,
|
526 |
+
} );
|
527 |
+
|
528 |
+
$closeButton
|
529 |
+
.prependTo( this.$preset )
|
530 |
+
.on( 'click', this.closeModal.bind( this ) );
|
531 |
+
this.modalElements.closeButton = $closeButton;
|
532 |
+
}
|
533 |
+
|
534 |
+
// remove modal close button
|
535 |
+
_removeCloseModalButton() {
|
536 |
+
this.modalElements?.closeButton?.remove();
|
537 |
+
}
|
538 |
+
|
539 |
+
// show main filter button for the modal
|
540 |
+
_addApplyFiltersModalButton() {
|
541 |
+
const $filterButton = $( '<button/>', {
|
542 |
+
class: 'apply-filters main-modal-button',
|
543 |
+
html: yith_wcan_shortcodes.labels.show_results,
|
544 |
+
'data-dismiss': 'modal',
|
545 |
+
} );
|
546 |
+
|
547 |
+
$filterButton.appendTo( this.$preset ).on( 'click', () => {
|
548 |
+
this.filter();
|
549 |
+
this.closeModal();
|
550 |
+
} );
|
551 |
+
this.modalElements.applyFiltersButton = $filterButton;
|
552 |
+
}
|
553 |
+
|
554 |
+
// hide main filter button for the modal
|
555 |
+
_removeApplyFiltersModalButton() {
|
556 |
+
this.modalElements?.applyFiltersButton?.remove();
|
557 |
+
}
|
558 |
+
|
559 |
+
// convert all filters to collapsable
|
560 |
+
_switchToCollapsables() {
|
561 |
+
const self = this;
|
562 |
+
|
563 |
+
this.getFilters().each( function () {
|
564 |
+
const $filter = $( this ),
|
565 |
+
$title = $filter.find( '.filter-title' );
|
566 |
+
|
567 |
+
if ( ! $title.length || $title.hasClass( 'collapsable' ) ) {
|
568 |
+
return;
|
569 |
+
}
|
570 |
+
|
571 |
+
$title.addClass( 'collapsable' ).data( 'disable-collapse', true );
|
572 |
+
|
573 |
+
self._initTitleCollapsable( $filter );
|
574 |
+
} );
|
575 |
+
}
|
576 |
+
|
577 |
+
// switch back filters to their previous collapsable state
|
578 |
+
_switchBackCollapsables() {
|
579 |
+
this.getFilters().each( function () {
|
580 |
+
const $filter = $( this ),
|
581 |
+
$title = $filter.find( '.filter-title' );
|
582 |
+
|
583 |
+
if (
|
584 |
+
! $title.length ||
|
585 |
+
! $title.hasClass( 'collapsable' ) ||
|
586 |
+
! $title.data( 'disable-collapse' )
|
587 |
+
) {
|
588 |
+
return;
|
589 |
+
}
|
590 |
+
|
591 |
+
$title
|
592 |
+
.removeClass( 'collapsable' )
|
593 |
+
.removeData( 'disable-collapse', true )
|
594 |
+
.off( 'click' );
|
595 |
+
|
596 |
+
$filter.find( '.filter-content' ).show();
|
597 |
+
} );
|
598 |
+
}
|
599 |
+
|
600 |
+
// close all collpasable before showing modal
|
601 |
+
_closeAllCollapsables() {
|
602 |
+
this.$filters
|
603 |
+
.not( '.no-title' )
|
604 |
+
.not( ( i, v ) => {
|
605 |
+
return this.isFilterActive( $( v ) );
|
606 |
+
} )
|
607 |
+
.find( '.filter-content' )
|
608 |
+
.hide()
|
609 |
+
.end()
|
610 |
+
.find( '.filter-title' )
|
611 |
+
.addClass( 'closed' )
|
612 |
+
.removeClass( 'opened' );
|
613 |
+
}
|
614 |
+
|
615 |
+
// update status change flag, if filters have changed
|
616 |
+
maybeRegisterStatusChange() {
|
617 |
+
const currentFilters = this.getFiltersProperties(),
|
618 |
+
currentStr = JSON.stringify( currentFilters ),
|
619 |
+
originalStr = JSON.stringify( this.originalFilters );
|
620 |
+
|
621 |
+
this.dirty = currentStr !== originalStr;
|
622 |
+
}
|
623 |
+
|
624 |
+
// apply filters when possible
|
625 |
+
maybeFilter( $initiator ) {
|
626 |
+
// register status change
|
627 |
+
this.maybeRegisterStatusChange();
|
628 |
+
|
629 |
+
// filter, or show filter button.
|
630 |
+
if ( yith_wcan_shortcodes.instant_filters && ! this.isMobile ) {
|
631 |
+
this.filter();
|
632 |
+
} else if (
|
633 |
+
! yith_wcan_shortcodes.instant_filters &&
|
634 |
+
! this.isMobile
|
635 |
+
) {
|
636 |
+
this.dirty
|
637 |
+
? this.$filterButtons?.show()
|
638 |
+
: this.$filterButtons?.hide();
|
639 |
+
} else if ( this.isMobile && this.dirty ) {
|
640 |
+
this.$preset.addClass( 'with-filter-button' );
|
641 |
+
this.modalElements.applyFiltersButton?.show();
|
642 |
+
}
|
643 |
+
}
|
644 |
+
|
645 |
+
// main filtering method
|
646 |
+
filter() {
|
647 |
+
const filter = window?.product_filter;
|
648 |
+
|
649 |
+
filter
|
650 |
+
?.doFilter( this.getFiltersProperties(), this.target, this.preset )
|
651 |
+
?.done( () => {
|
652 |
+
let newPreset = $( this.preset );
|
653 |
+
|
654 |
+
if (
|
655 |
+
! this.isMobile &&
|
656 |
+
newPreset.length &&
|
657 |
+
yith_wcan_shortcodes.scroll_top
|
658 |
+
) {
|
659 |
+
let targetOffset = newPreset.offset().top;
|
660 |
+
|
661 |
+
if ( !! yith_wcan_shortcodes.scroll_target ) {
|
662 |
+
const scrollTarget = $(
|
663 |
+
yith_wcan_shortcodes.scroll_target
|
664 |
+
);
|
665 |
+
|
666 |
+
targetOffset = scrollTarget.length
|
667 |
+
? scrollTarget.offset().top
|
668 |
+
: targetOffset;
|
669 |
+
}
|
670 |
+
$( 'body, html' ).animate( {
|
671 |
+
scrollTop: targetOffset - 100,
|
672 |
+
} );
|
673 |
+
}
|
674 |
+
|
675 |
+
// register new filters, clear status flag
|
676 |
+
this.originalFilters = this.getFiltersProperties();
|
677 |
+
this.dirty = false;
|
678 |
+
} );
|
679 |
+
|
680 |
+
if ( this.isMobile ) {
|
681 |
+
this.$preset.removeClass( 'with-filter-button' );
|
682 |
+
this.modalElements.applyFiltersButton?.hide();
|
683 |
+
}
|
684 |
+
}
|
685 |
+
|
686 |
+
// get all filter nodes
|
687 |
+
getFilters() {
|
688 |
+
if ( false === this.$filters ) {
|
689 |
+
this.$filters = this.$preset.find( '.yith-wcan-filter' );
|
690 |
+
}
|
691 |
+
|
692 |
+
return this.$filters;
|
693 |
+
}
|
694 |
+
|
695 |
+
// retrieves all filters that we want to apply
|
696 |
+
getActiveFilters() {
|
697 |
+
if ( false === this.activeFilters ) {
|
698 |
+
this.activeFilters = this.getFiltersProperties();
|
699 |
+
}
|
700 |
+
|
701 |
+
return this.activeFilters;
|
702 |
+
}
|
703 |
+
|
704 |
+
// check whether there is any filter active
|
705 |
+
isAnyFilterActive() {
|
706 |
+
return !! Object.keys( this.getActiveFilters() ).length;
|
707 |
+
}
|
708 |
+
|
709 |
+
// checks whether current filter is active
|
710 |
+
isFilterActive( $filter ) {
|
711 |
+
let filterType = $filter.data( 'filter-type' ),
|
712 |
+
active,
|
713 |
+
filteredActive;
|
714 |
+
|
715 |
+
switch ( filterType ) {
|
716 |
+
case 'tax':
|
717 |
+
case 'review':
|
718 |
+
case 'price_range':
|
719 |
+
const $dropdown = $filter.find( '.filter-dropdown' );
|
720 |
+
|
721 |
+
if ( $dropdown.length ) {
|
722 |
+
const val = $dropdown.val();
|
723 |
+
|
724 |
+
active = 'object' === typeof val ? !! val?.length : !! val;
|
725 |
+
break;
|
726 |
+
}
|
727 |
+
|
728 |
+
// if we use type other than dropdown, fallthrough
|
729 |
+
case 'stock_sale':
|
730 |
+
active = $filter.find( '.filter-item' ).filter( '.active' )
|
731 |
+
.length;
|
732 |
+
break;
|
733 |
+
case 'price_slider':
|
734 |
+
const min = parseFloat(
|
735 |
+
$filter.find( '.price-slider' ).data( 'min' )
|
736 |
+
),
|
737 |
+
max = parseFloat(
|
738 |
+
$filter.find( '.price-slider' ).data( 'max' )
|
739 |
+
),
|
740 |
+
currentMin = parseFloat(
|
741 |
+
$filter.find( '.price-slider-min' ).val()
|
742 |
+
),
|
743 |
+
currentMax = parseFloat(
|
744 |
+
$filter.find( '.price-slider-max' ).val()
|
745 |
+
);
|
746 |
+
|
747 |
+
active = currentMin > min || currentMax < max;
|
748 |
+
break;
|
749 |
+
case 'orderby':
|
750 |
+
active =
|
751 |
+
'menu_order' !== $filter.find( '.filter-order-by' ).val();
|
752 |
+
break;
|
753 |
+
default:
|
754 |
+
active = false;
|
755 |
+
break;
|
756 |
+
}
|
757 |
+
|
758 |
+
filteredActive = $filter.triggerHandler( 'yith_wcan_is_filter_active', [
|
759 |
+
active,
|
760 |
+
this,
|
761 |
+
] );
|
762 |
+
active =
|
763 |
+
typeof filteredActive !== 'undefined' ? filteredActive : active;
|
764 |
+
|
765 |
+
return active;
|
766 |
+
}
|
767 |
+
|
768 |
+
// count the number of active items per filter
|
769 |
+
countActiveItems( $filter ) {
|
770 |
+
let filterType = $filter.data( 'filter-type' ),
|
771 |
+
count;
|
772 |
+
|
773 |
+
switch ( filterType ) {
|
774 |
+
case 'tax':
|
775 |
+
case 'review':
|
776 |
+
case 'price_range':
|
777 |
+
const $dropdown = $filter.find( '.filter-dropdown' );
|
778 |
+
|
779 |
+
if ( $dropdown.length ) {
|
780 |
+
const val = $dropdown.val();
|
781 |
+
|
782 |
+
count = 'object' === typeof val ? val?.length : +!! val;
|
783 |
+
break;
|
784 |
+
}
|
785 |
+
|
786 |
+
// if we use type other than dropdown, fallthrough
|
787 |
+
case 'stock_sale':
|
788 |
+
count = $filter.find( '.filter-items' ).find( '.active' )
|
789 |
+
.length;
|
790 |
+
break;
|
791 |
+
case 'orderby':
|
792 |
+
if ( this.isFilterActive( $filter ) ) {
|
793 |
+
count = 1;
|
794 |
+
}
|
795 |
+
break;
|
796 |
+
case 'price_slider':
|
797 |
+
default:
|
798 |
+
count = 0;
|
799 |
+
break;
|
800 |
+
}
|
801 |
+
|
802 |
+
return count;
|
803 |
+
}
|
804 |
+
|
805 |
+
// retrieves filter properties for the filter
|
806 |
+
getFilterProperties( $filter ) {
|
807 |
+
let filterType = $filter.data( 'filter-type' ),
|
808 |
+
multiple = 'yes' === $filter.data( 'multiple' ),
|
809 |
+
$dropdown = $filter.find( '.filter-dropdown' ),
|
810 |
+
properties = {},
|
811 |
+
filteredProperties,
|
812 |
+
$active;
|
813 |
+
|
814 |
+
switch ( filterType ) {
|
815 |
+
case 'tax':
|
816 |
+
let activeTerms = [],
|
817 |
+
taxonomy = $filter.data( 'taxonomy' ),
|
818 |
+
isAttr = 0 === taxonomy.indexOf( 'filter' ),
|
819 |
+
relation = $filter.data( 'relation' );
|
820 |
+
|
821 |
+
if ( $dropdown.length ) {
|
822 |
+
if ( multiple ) {
|
823 |
+
activeTerms = $dropdown.val();
|
824 |
+
} else {
|
825 |
+
activeTerms.push( $dropdown.val() );
|
826 |
+
}
|
827 |
+
} else {
|
828 |
+
$active = $filter
|
829 |
+
.find( '.filter-item' )
|
830 |
+
.filter( '.active' )
|
831 |
+
.children( 'a, label' );
|
832 |
+
|
833 |
+
activeTerms = $active.get().reduce( function ( a, v ) {
|
834 |
+
let val;
|
835 |
+
|
836 |
+
v = $( v );
|
837 |
+
val = v.is( 'label' )
|
838 |
+
? v.find( ':input' ).val()
|
839 |
+
: v.data( 'term-slug' );
|
840 |
+
|
841 |
+
if ( ! val ) {
|
842 |
+
return a;
|
843 |
+
}
|
844 |
+
|
845 |
+
a.push( val );
|
846 |
+
|
847 |
+
return a;
|
848 |
+
}, activeTerms );
|
849 |
+
}
|
850 |
+
|
851 |
+
if ( ! multiple ) {
|
852 |
+
properties[ taxonomy ] = activeTerms.pop();
|
853 |
+
} else {
|
854 |
+
const glue = ! isAttr && 'and' === relation ? '+' : ',';
|
855 |
+
properties[ taxonomy ] = activeTerms.join( glue );
|
856 |
+
}
|
857 |
+
|
858 |
+
if ( isAttr ) {
|
859 |
+
properties[
|
860 |
+
taxonomy.replace( 'filter_', 'query_type_' )
|
861 |
+
] = relation;
|
862 |
+
}
|
863 |
+
|
864 |
+
break;
|
865 |
+
case 'review':
|
866 |
+
if ( $dropdown.length ) {
|
867 |
+
properties.rating_filter = $dropdown.val();
|
868 |
+
} else {
|
869 |
+
$active = $filter
|
870 |
+
.find( '.filter-item' )
|
871 |
+
.filter( '.active' )
|
872 |
+
.children( 'a, label' );
|
873 |
+
|
874 |
+
if ( ! multiple ) {
|
875 |
+
$active = $active.first();
|
876 |
+
properties.rating_filter = $active.is( 'label' )
|
877 |
+
? $active.find( ':input' ).val()
|
878 |
+
: $active.data( 'rating' );
|
879 |
+
} else {
|
880 |
+
properties.rating_filter = $active
|
881 |
+
.get()
|
882 |
+
.reduce( function ( a, v ) {
|
883 |
+
let val;
|
884 |
+
|
885 |
+
v = $( v );
|
886 |
+
val = v.is( 'label' )
|
887 |
+
? v.find( ':input' ).val()
|
888 |
+
: v.data( 'rating' );
|
889 |
+
|
890 |
+
if ( ! val ) {
|
891 |
+
return a;
|
892 |
+
}
|
893 |
+
|
894 |
+
a.push( val );
|
895 |
+
|
896 |
+
return a;
|
897 |
+
}, [] )
|
898 |
+
.join( ',' );
|
899 |
+
}
|
900 |
+
}
|
901 |
+
break;
|
902 |
+
case 'price_range':
|
903 |
+
if ( $dropdown.length ) {
|
904 |
+
if ( multiple ) {
|
905 |
+
properties.price_ranges = $dropdown.val().join( ',' );
|
906 |
+
} else {
|
907 |
+
properties.min_price = $dropdown
|
908 |
+
.val()
|
909 |
+
.split( '-' )[ 0 ];
|
910 |
+
properties.max_price = $dropdown
|
911 |
+
.val()
|
912 |
+
.split( '-' )[ 1 ];
|
913 |
+
}
|
914 |
+
} else {
|
915 |
+
$active = $filter
|
916 |
+
.find( '.filter-item' )
|
917 |
+
.filter( '.active' )
|
918 |
+
.children( 'a, label' );
|
919 |
+
|
920 |
+
if ( multiple ) {
|
921 |
+
properties.price_ranges = $active
|
922 |
+
.get()
|
923 |
+
.reduce( ( a, v ) => {
|
924 |
+
let min = $( v ).data( 'range-min' ),
|
925 |
+
max = $( v ).data( 'range-max' );
|
926 |
+
|
927 |
+
a += ( max ? `${ min }-${ max }` : min ) + ',';
|
928 |
+
|
929 |
+
return a;
|
930 |
+
}, '' )
|
931 |
+
.replace( /^(.*),$/, '$1' );
|
932 |
+
} else {
|
933 |
+
properties.min_price = parseFloat(
|
934 |
+
$active.first().data( 'range-min' )
|
935 |
+
);
|
936 |
+
properties.max_price = parseFloat(
|
937 |
+
$active.first().data( 'range-max' )
|
938 |
+
);
|
939 |
+
}
|
940 |
+
}
|
941 |
+
break;
|
942 |
+
case 'price_slider':
|
943 |
+
properties.min_price = parseFloat(
|
944 |
+
$filter.find( '.price-slider-min' ).val()
|
945 |
+
);
|
946 |
+
properties.max_price = parseFloat(
|
947 |
+
$filter.find( '.price-slider-max' ).val()
|
948 |
+
);
|
949 |
+
break;
|
950 |
+
case 'stock_sale':
|
951 |
+
if ( $filter.find( '.filter-on-sale' ).is( '.active' ) ) {
|
952 |
+
properties.onsale_filter = 1;
|
953 |
+
}
|
954 |
+
if ( $filter.find( '.filter-in-stock' ).is( '.active' ) ) {
|
955 |
+
properties.instock_filter = 1;
|
956 |
+
}
|
957 |
+
if ( $filter.find( '.filter-featured' ).is( '.active' ) ) {
|
958 |
+
properties.featured_filter = 1;
|
959 |
+
}
|
960 |
+
break;
|
961 |
+
case 'orderby':
|
962 |
+
properties.orderby = $filter.find( '.filter-order-by' ).val();
|
963 |
+
break;
|
964 |
+
default:
|
965 |
+
break;
|
966 |
+
}
|
967 |
+
|
968 |
+
filteredProperties = $filter.triggerHandler(
|
969 |
+
'yith_wcan_filter_properties',
|
970 |
+
[ properties, self ]
|
971 |
+
);
|
972 |
+
properties =
|
973 |
+
typeof filteredProperties !== 'undefined'
|
974 |
+
? filteredProperties
|
975 |
+
: properties;
|
976 |
+
|
977 |
+
return properties;
|
978 |
+
}
|
979 |
+
|
980 |
+
// retrieves properties for all filters of the preset
|
981 |
+
getFiltersProperties() {
|
982 |
+
let properties = {};
|
983 |
+
const self = this;
|
984 |
+
|
985 |
+
this.getFilters().each( function () {
|
986 |
+
const $filter = $( this );
|
987 |
+
|
988 |
+
if ( self.isFilterActive( $filter ) ) {
|
989 |
+
const filterProperties = self.getFilterProperties( $filter );
|
990 |
+
|
991 |
+
properties = self.mergeProperties(
|
992 |
+
properties,
|
993 |
+
filterProperties,
|
994 |
+
$filter
|
995 |
+
);
|
996 |
+
}
|
997 |
+
} );
|
998 |
+
|
999 |
+
return properties;
|
1000 |
+
}
|
1001 |
+
|
1002 |
+
// retrieve filters matching any of the properties passed
|
1003 |
+
getFiltersByProperties( properties ) {
|
1004 |
+
const self = this;
|
1005 |
+
|
1006 |
+
return this.getFilters().filter( function () {
|
1007 |
+
const $filter = $( this );
|
1008 |
+
|
1009 |
+
if ( self.isFilterActive( $filter ) ) {
|
1010 |
+
let filterProperties = self.getFilterProperties( $filter ),
|
1011 |
+
hasProp = false;
|
1012 |
+
|
1013 |
+
for ( const prop in properties ) {
|
1014 |
+
if (
|
1015 |
+
[ 'min_price', 'max_price', 'price_ranges' ].includes(
|
1016 |
+
prop
|
1017 |
+
) &&
|
1018 |
+
( filterProperties.min_price ||
|
1019 |
+
filterProperties.price_ranges )
|
1020 |
+
) {
|
1021 |
+
hasProp = true;
|
1022 |
+
break;
|
1023 |
+
} else if ( filterProperties[ prop ] ) {
|
1024 |
+
hasProp = true;
|
1025 |
+
break;
|
1026 |
+
}
|
1027 |
+
}
|
1028 |
+
|
1029 |
+
return hasProp;
|
1030 |
+
}
|
1031 |
+
|
1032 |
+
return false;
|
1033 |
+
} );
|
1034 |
+
}
|
1035 |
+
|
1036 |
+
// show clear selection anchor
|
1037 |
+
maybeToggleClearFilter( $filter ) {
|
1038 |
+
if ( ! this.isFilterActive( $filter ) ) {
|
1039 |
+
this.maybeHideClearFilter( $filter );
|
1040 |
+
} else {
|
1041 |
+
this.maybeShowClearFilter( $filter );
|
1042 |
+
}
|
1043 |
+
}
|
1044 |
+
|
1045 |
+
// show clear all selections anchor
|
1046 |
+
maybeToggleClearAllFilters() {
|
1047 |
+
if ( ! this.isAnyFilterActive() ) {
|
1048 |
+
this.maybeHideClearAllFilters();
|
1049 |
+
} else {
|
1050 |
+
this.maybeShowClearAllFilters();
|
1051 |
+
}
|
1052 |
+
}
|
1053 |
+
|
1054 |
+
// show clear selection anchor
|
1055 |
+
maybeShowClearFilter( $filter ) {
|
1056 |
+
if (
|
1057 |
+
! this.isFilterActive( $filter ) ||
|
1058 |
+
! yith_wcan_shortcodes.show_clear_filter
|
1059 |
+
) {
|
1060 |
+
return;
|
1061 |
+
}
|
1062 |
+
|
1063 |
+
// remove clear selection link if already added.
|
1064 |
+
$filter.find( '.clear-selection' ).remove();
|
1065 |
+
|
1066 |
+
// add new clear selection link.
|
1067 |
+
$( '<a/>', {
|
1068 |
+
class: 'clear-selection',
|
1069 |
+
text: yith_wcan_shortcodes.labels.clear_selection,
|
1070 |
+
role: 'button',
|
1071 |
+
} )
|
1072 |
+
.prependTo( $filter.find( '.filter-content' ) )
|
1073 |
+
.on( 'click', ( ev ) => {
|
1074 |
+
ev.preventDefault();
|
1075 |
+
|
1076 |
+
this.deactivateFilter(
|
1077 |
+
$filter,
|
1078 |
+
false,
|
1079 |
+
yith_wcan_shortcodes.instant_filters
|
1080 |
+
);
|
1081 |
+
this.maybeHideClearFilter( $filter );
|
1082 |
+
|
1083 |
+
if ( yith_wcan_shortcodes.instant_filters ) {
|
1084 |
+
this.closeModal();
|
1085 |
+
}
|
1086 |
+
} );
|
1087 |
+
}
|
1088 |
+
|
1089 |
+
// show clearAll anchor, when on mobile layout
|
1090 |
+
maybeShowClearAllFilters() {
|
1091 |
+
if ( ! this.isAnyFilterActive() || ! this.isMobile ) {
|
1092 |
+
return;
|
1093 |
+
}
|
1094 |
+
|
1095 |
+
// remove clear selection link if already added.
|
1096 |
+
this.$preset.find( '.clear-selection' ).remove();
|
1097 |
+
|
1098 |
+
// add new clear selection link.
|
1099 |
+
$( '<a/>', {
|
1100 |
+
class: 'clear-selection',
|
1101 |
+
text: yith_wcan_shortcodes.labels.clear_all_selections,
|
1102 |
+
role: 'button',
|
1103 |
+
} )
|
1104 |
+
.prependTo( this.$preset.find( '.filters-container' ) )
|
1105 |
+
.on( 'click', ( ev ) => {
|
1106 |
+
ev.preventDefault();
|
1107 |
+
|
1108 |
+
this.deactivateAllFilters(
|
1109 |
+
yith_wcan_shortcodes.instant_filters
|
1110 |
+
);
|
1111 |
+
this.maybeHideClearAllFilters();
|
1112 |
+
|
1113 |
+
if ( yith_wcan_shortcodes.instant_filters ) {
|
1114 |
+
this.closeModal();
|
1115 |
+
}
|
1116 |
+
} );
|
1117 |
+
}
|
1118 |
+
|
1119 |
+
// hide clear selection anchor
|
1120 |
+
maybeHideClearFilter( $filter ) {
|
1121 |
+
if (
|
1122 |
+
this.isFilterActive( $filter ) ||
|
1123 |
+
! yith_wcan_shortcodes.show_clear_filter
|
1124 |
+
) {
|
1125 |
+
return;
|
1126 |
+
}
|
1127 |
+
|
1128 |
+
// remove clear selection link.
|
1129 |
+
$filter.find( '.clear-selection' ).remove();
|
1130 |
+
}
|
1131 |
+
|
1132 |
+
// show clearAll anchor, when on mobile layout
|
1133 |
+
maybeHideClearAllFilters() {
|
1134 |
+
if ( this.isAnyFilterActive() ) {
|
1135 |
+
return;
|
1136 |
+
}
|
1137 |
+
|
1138 |
+
// remove clear selection link.
|
1139 |
+
this.$preset
|
1140 |
+
.find( '.filters-container' )
|
1141 |
+
.children( '.clear-selection' )
|
1142 |
+
.remove();
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
// deactivate filter
|
1146 |
+
deactivateFilter( $filter, properties, doFilter ) {
|
1147 |
+
const filterType = $filter.data( 'filter-type' ),
|
1148 |
+
$items = $filter.find( '.filter-item' ),
|
1149 |
+
$activeItems = $items.filter( '.active' ),
|
1150 |
+
$dropdown = $filter.find( '.filter-dropdown' );
|
1151 |
+
|
1152 |
+
switch ( filterType ) {
|
1153 |
+
case 'tax':
|
1154 |
+
const taxonomy = $filter.data( 'taxonomy' );
|
1155 |
+
|
1156 |
+
if ( $dropdown.length ) {
|
1157 |
+
if ( ! properties ) {
|
1158 |
+
$dropdown.find( 'option' ).prop( 'selected', false );
|
1159 |
+
} else {
|
1160 |
+
$dropdown.find( 'option' ).each( function () {
|
1161 |
+
const $option = $( this );
|
1162 |
+
|
1163 |
+
if ( $option.val() === properties[ taxonomy ] ) {
|
1164 |
+
$option.prop( 'selected', false );
|
1165 |
+
}
|
1166 |
+
} );
|
1167 |
+
}
|
1168 |
+
|
1169 |
+
$dropdown.change();
|
1170 |
+
} else if ( ! properties ) {
|
1171 |
+
$activeItems.children( 'label' ).children( 'a' ).click();
|
1172 |
+
$activeItems.removeClass( 'active' );
|
1173 |
+
} else {
|
1174 |
+
$activeItems.each( function () {
|
1175 |
+
let $item = $( this ),
|
1176 |
+
$label = $item.children( 'label' ),
|
1177 |
+
$anchor = $item.children( 'a' ),
|
1178 |
+
value;
|
1179 |
+
|
1180 |
+
value = $label.length
|
1181 |
+
? $label.find( ':input' ).val()
|
1182 |
+
: $anchor.data( 'term-slug' );
|
1183 |
+
|
1184 |
+
if ( value === properties[ taxonomy ] ) {
|
1185 |
+
$item.children( 'label' ).children( 'a' ).click();
|
1186 |
+
$item.removeClass( 'active' );
|
1187 |
+
}
|
1188 |
+
} );
|
1189 |
+
}
|
1190 |
+
break;
|
1191 |
+
case 'review':
|
1192 |
+
if ( $dropdown.length ) {
|
1193 |
+
if ( ! properties ) {
|
1194 |
+
$dropdown.find( 'option' ).prop( 'selected', false );
|
1195 |
+
} else {
|
1196 |
+
$dropdown.find( 'option' ).each( function () {
|
1197 |
+
const $option = $( this );
|
1198 |
+
|
1199 |
+
if ( $option.val() === properties.rating_filter ) {
|
1200 |
+
$option.prop( 'selected', false );
|
1201 |
+
}
|
1202 |
+
} );
|
1203 |
+
}
|
1204 |
+
|
1205 |
+
$dropdown.change();
|
1206 |
+
} else if ( ! properties ) {
|
1207 |
+
$activeItems.children( 'label' ).children( 'a' ).click();
|
1208 |
+
$activeItems.removeClass( 'active' );
|
1209 |
+
} else {
|
1210 |
+
$activeItems.each( function () {
|
1211 |
+
let $item = $( this ),
|
1212 |
+
$label = $item.children( 'label' ),
|
1213 |
+
$anchor = $item.children( 'a' ),
|
1214 |
+
value;
|
1215 |
+
|
1216 |
+
value = $label.length
|
1217 |
+
? $label.find( ':input' ).val()
|
1218 |
+
: $anchor.data( 'rating' );
|
1219 |
+
|
1220 |
+
if ( value === properties.rating_filter ) {
|
1221 |
+
$item.children( 'label' ).children( 'a' ).click();
|
1222 |
+
$item.removeClass( 'active' );
|
1223 |
+
}
|
1224 |
+
} );
|
1225 |
+
}
|
1226 |
+
break;
|
1227 |
+
case 'price_range':
|
1228 |
+
if ( $dropdown.length ) {
|
1229 |
+
if ( ! properties ) {
|
1230 |
+
$dropdown.find( 'option' ).prop( 'selected', false );
|
1231 |
+
} else {
|
1232 |
+
$dropdown.find( 'option' ).each( function () {
|
1233 |
+
const $option = $( this ),
|
1234 |
+
formattedRange =
|
1235 |
+
properties.min_price +
|
1236 |
+
( properties.max_price
|
1237 |
+
? `-${ properties.max_price }`
|
1238 |
+
: '' );
|
1239 |
+
|
1240 |
+
if ( $option.val() === formattedRange ) {
|
1241 |
+
$option.prop( 'selected', false );
|
1242 |
+
}
|
1243 |
+
} );
|
1244 |
+
}
|
1245 |
+
|
1246 |
+
$dropdown.change();
|
1247 |
+
} else if ( ! properties ) {
|
1248 |
+
$activeItems.children( 'label' ).children( 'a' ).click();
|
1249 |
+
$activeItems.removeClass( 'active' );
|
1250 |
+
} else {
|
1251 |
+
$activeItems.each( function () {
|
1252 |
+
let $item = $( this ),
|
1253 |
+
$label = $item.children( 'label' ),
|
1254 |
+
$anchor = $item.children( 'a' ),
|
1255 |
+
formattedRange,
|
1256 |
+
value;
|
1257 |
+
|
1258 |
+
value = $label.length
|
1259 |
+
? $label.find( ':input' ).val()
|
1260 |
+
: $anchor.data( 'min_price' ) +
|
1261 |
+
( $anchor.data( 'max_price' )
|
1262 |
+
? '-' + $anchor.data( 'max_price' )
|
1263 |
+
: '' );
|
1264 |
+
|
1265 |
+
if ( properties.min_price ) {
|
1266 |
+
formattedRange =
|
1267 |
+
properties.min_price +
|
1268 |
+
( properties.max_price
|
1269 |
+
? '-' + properties.max_price
|
1270 |
+
: '' );
|
1271 |
+
} else if ( properties.price_ranges ) {
|
1272 |
+
formattedRange = properties.price_ranges;
|
1273 |
+
}
|
1274 |
+
|
1275 |
+
if ( value === formattedRange ) {
|
1276 |
+
$item.children( 'label' ).children( 'a' ).click();
|
1277 |
+
$item.removeClass( 'active' );
|
1278 |
+
}
|
1279 |
+
} );
|
1280 |
+
}
|
1281 |
+
break;
|
1282 |
+
case 'price_slider':
|
1283 |
+
const $priceSlider = $filter.find( '.price-slider' );
|
1284 |
+
|
1285 |
+
$filter
|
1286 |
+
.find( '.price-slider-min' )
|
1287 |
+
.val( $priceSlider.data( 'min' ) );
|
1288 |
+
$filter
|
1289 |
+
.find( '.price-slider-max' )
|
1290 |
+
.val( $priceSlider.data( 'max' ) )
|
1291 |
+
.change();
|
1292 |
+
break;
|
1293 |
+
case 'orderby':
|
1294 |
+
$filter.find( 'select' ).val( 'menu_order' );
|
1295 |
+
break;
|
1296 |
+
case 'stock_sale':
|
1297 |
+
if ( ! properties ) {
|
1298 |
+
$filter
|
1299 |
+
.find( '.filter-in-stock' )
|
1300 |
+
.find( ':input' )
|
1301 |
+
.prop( 'checked', false )
|
1302 |
+
.change();
|
1303 |
+
$filter
|
1304 |
+
.find( '.filter-on-sale' )
|
1305 |
+
.find( ':input' )
|
1306 |
+
.prop( 'checked', false )
|
1307 |
+
.change();
|
1308 |
+
$filter
|
1309 |
+
.find( '.filter-featured' )
|
1310 |
+
.find( ':input' )
|
1311 |
+
.prop( 'checked', false )
|
1312 |
+
.change();
|
1313 |
+
|
1314 |
+
$items.removeClass( 'active' );
|
1315 |
+
} else {
|
1316 |
+
if ( properties?.instock_filter ) {
|
1317 |
+
$filter
|
1318 |
+
.find( '.filter-in-stock' )
|
1319 |
+
.find( ':input' )
|
1320 |
+
.prop( 'checked', false )
|
1321 |
+
.change()
|
1322 |
+
.closest( '.filter-item' )
|
1323 |
+
.removeClass( 'active' );
|
1324 |
+
}
|
1325 |
+
|
1326 |
+
if ( properties?.onsale_filter ) {
|
1327 |
+
$filter
|
1328 |
+
.find( '.filter-on-sale' )
|
1329 |
+
.find( ':input' )
|
1330 |
+
.prop( 'checked', false )
|
1331 |
+
.change()
|
1332 |
+
.closest( '.filter-item' )
|
1333 |
+
.removeClass( 'active' );
|
1334 |
+
}
|
1335 |
+
|
1336 |
+
if ( properties?.featured_filter ) {
|
1337 |
+
$filter
|
1338 |
+
.find( '.filter-featured' )
|
1339 |
+
.find( ':input' )
|
1340 |
+
.prop( 'checked', false )
|
1341 |
+
.change()
|
1342 |
+
.closest( '.filter-item' )
|
1343 |
+
.removeClass( 'active' );
|
1344 |
+
}
|
1345 |
+
}
|
1346 |
+
break;
|
1347 |
+
default:
|
1348 |
+
$items.removeClass( 'active' );
|
1349 |
+
break;
|
1350 |
+
}
|
1351 |
+
|
1352 |
+
this.activeFilters = false;
|
1353 |
+
|
1354 |
+
if ( doFilter ) {
|
1355 |
+
this.filter();
|
1356 |
+
}
|
1357 |
+
}
|
1358 |
+
|
1359 |
+
// deactivate all filters
|
1360 |
+
deactivateAllFilters( doFilter ) {
|
1361 |
+
const self = this,
|
1362 |
+
$filters = this.getFilters();
|
1363 |
+
|
1364 |
+
$filters.each( function () {
|
1365 |
+
const $filter = $( this );
|
1366 |
+
|
1367 |
+
self.deactivateFilter( $filter );
|
1368 |
+
} );
|
1369 |
+
|
1370 |
+
this.activeFilters = false;
|
1371 |
+
|
1372 |
+
if ( doFilter ) {
|
1373 |
+
this.filter();
|
1374 |
+
}
|
1375 |
+
}
|
1376 |
+
|
1377 |
+
// deactivate filters that matches a specific set of properties
|
1378 |
+
deactivateFilterByProperties( properties, doFilter ) {
|
1379 |
+
const self = this,
|
1380 |
+
$filters = this.getFiltersByProperties( properties );
|
1381 |
+
|
1382 |
+
if ( ! $filters.length ) {
|
1383 |
+
return;
|
1384 |
+
}
|
1385 |
+
|
1386 |
+
$filters.each( function () {
|
1387 |
+
const $filter = $( this );
|
1388 |
+
|
1389 |
+
self.deactivateFilter( $filter, properties, doFilter );
|
1390 |
+
} );
|
1391 |
+
}
|
1392 |
+
|
1393 |
+
// open filters as a modal, when in mobile layout
|
1394 |
+
openModal() {
|
1395 |
+
if ( ! this.isMobile ) {
|
1396 |
+
return;
|
1397 |
+
}
|
1398 |
+
|
1399 |
+
this._closeAllCollapsables();
|
1400 |
+
|
1401 |
+
$( 'body' )
|
1402 |
+
.css( 'overflow', 'hidden' )
|
1403 |
+
.addClass( 'yith-wcan-preset-modal-open' );
|
1404 |
+
|
1405 |
+
this.$preset.show();
|
1406 |
+
|
1407 |
+
setTimeout( () => {
|
1408 |
+
this.$preset.addClass( 'open' );
|
1409 |
+
}, 100 );
|
1410 |
+
}
|
1411 |
+
|
1412 |
+
// close filters modal, when in mobile layout
|
1413 |
+
closeModal() {
|
1414 |
+
if ( ! this.isMobile ) {
|
1415 |
+
return;
|
1416 |
+
}
|
1417 |
+
|
1418 |
+
this.$preset.removeClass( 'open' );
|
1419 |
+
|
1420 |
+
setTimeout( () => {
|
1421 |
+
this.$preset.hide();
|
1422 |
+
$( 'body' )
|
1423 |
+
.css( 'overflow', 'auto' )
|
1424 |
+
.removeClass( 'yith-wcan-preset-modal-open' );
|
1425 |
+
}, 300 );
|
1426 |
+
}
|
1427 |
+
|
1428 |
+
// utility that formats the price according to store configuration.
|
1429 |
+
formatPrice( price ) {
|
1430 |
+
if ( 'undefined' !== typeof accounting ) {
|
1431 |
+
price = accounting.formatMoney( price, {
|
1432 |
+
symbol: yith_wcan_shortcodes.currency_format.symbol,
|
1433 |
+
decimal: yith_wcan_shortcodes.currency_format.decimal,
|
1434 |
+
thousand: yith_wcan_shortcodes.currency_format.thousand,
|
1435 |
+
precision: 0,
|
1436 |
+
format: yith_wcan_shortcodes.currency_format.format,
|
1437 |
+
} );
|
1438 |
+
}
|
1439 |
+
|
1440 |
+
return price;
|
1441 |
+
}
|
1442 |
+
|
1443 |
+
// utility that merges together sets of filter properties
|
1444 |
+
mergeProperties( set1, set2, $filter ) {
|
1445 |
+
// search for common properties
|
1446 |
+
for ( const prop in set2 ) {
|
1447 |
+
if ( ! set2.hasOwnProperty( prop ) ) {
|
1448 |
+
continue;
|
1449 |
+
}
|
1450 |
+
|
1451 |
+
if ( !! set1[ prop ] ) {
|
1452 |
+
switch ( prop ) {
|
1453 |
+
case 'rating_filter':
|
1454 |
+
case 'min_price':
|
1455 |
+
case 'max_price':
|
1456 |
+
case 'onsale_filter':
|
1457 |
+
case 'instock_filter':
|
1458 |
+
case 'orderby':
|
1459 |
+
// just override default value
|
1460 |
+
set1[ prop ] = set2[ prop ];
|
1461 |
+
break;
|
1462 |
+
default:
|
1463 |
+
if ( 0 === prop.indexOf( 'query_type_' ) ) {
|
1464 |
+
// query_type param
|
1465 |
+
set1[ prop ] = set2[ prop ];
|
1466 |
+
} else {
|
1467 |
+
// we're dealing with taxonomy
|
1468 |
+
const isAttr = 0 === prop.indexOf( 'filter_' ),
|
1469 |
+
glue = isAttr ? ',' : '+';
|
1470 |
+
|
1471 |
+
let newValue =
|
1472 |
+
set1[ prop ].replace( ',', glue ) +
|
1473 |
+
glue +
|
1474 |
+
set2[ prop ].replace( ',', glue );
|
1475 |
+
|
1476 |
+
newValue = newValue
|
1477 |
+
.split( glue )
|
1478 |
+
.filter(
|
1479 |
+
( value, index, arr ) =>
|
1480 |
+
arr.indexOf( value ) === index
|
1481 |
+
)
|
1482 |
+
.join( glue );
|
1483 |
+
|
1484 |
+
set1[ prop ] = newValue;
|
1485 |
+
|
1486 |
+
if ( isAttr ) {
|
1487 |
+
const queryTypeParam = prop.replace(
|
1488 |
+
'filter_',
|
1489 |
+
'query_type_'
|
1490 |
+
);
|
1491 |
+
|
1492 |
+
set1[ queryTypeParam ] = 'and';
|
1493 |
+
set2[ queryTypeParam ] = 'and';
|
1494 |
+
}
|
1495 |
+
}
|
1496 |
+
}
|
1497 |
+
|
1498 |
+
delete set2[ prop ];
|
1499 |
+
}
|
1500 |
+
}
|
1501 |
+
|
1502 |
+
$.extend( set1, set2 );
|
1503 |
+
|
1504 |
+
return set1;
|
1505 |
+
}
|
1506 |
+
}
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
+
|
5 |
+
import { $ } from '../config.js';
|
6 |
+
|
7 |
+
export default class YITH_WCAN_Reset_Button {
|
8 |
+
// current button
|
9 |
+
$reset = null;
|
10 |
+
|
11 |
+
// init object
|
12 |
+
constructor( el ) {
|
13 |
+
// current button
|
14 |
+
this.$reset = el;
|
15 |
+
|
16 |
+
this.$reset.on( 'click', function ( ev ) {
|
17 |
+
ev.preventDefault();
|
18 |
+
|
19 |
+
$( '.yith-wcan-filters' ).each( function () {
|
20 |
+
const preset = $( this ).data( 'preset' );
|
21 |
+
|
22 |
+
preset.deactivateAllFilters( true );
|
23 |
+
preset.closeModal();
|
24 |
+
} );
|
25 |
+
} );
|
26 |
+
|
27 |
+
this.$reset.data( 'reset', this ).addClass( 'enhanced' );
|
28 |
+
}
|
29 |
+
}
|
@@ -13,29 +13,51 @@ function YITH_WCAN_Filters( $ ) {
|
|
13 |
taxonomy: {
|
14 |
type: 'tax',
|
15 |
},
|
16 |
-
|
17 |
type: 'tax',
|
18 |
},
|
19 |
-
|
20 |
type: 'tax',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
},
|
22 |
column_number: {
|
23 |
filter_design: [ 'label', 'color' ],
|
|
|
|
|
|
|
|
|
|
|
24 |
},
|
25 |
terms_options: {
|
26 |
-
|
|
|
27 |
},
|
28 |
show_search: {
|
|
|
29 |
filter_design: 'select',
|
30 |
},
|
31 |
price_ranges: {
|
32 |
type: 'price_range',
|
33 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
price_slider_min: {
|
35 |
type: 'price_slider',
|
|
|
36 |
},
|
37 |
price_slider_max: {
|
38 |
type: 'price_slider',
|
|
|
39 |
},
|
40 |
price_slider_step: {
|
41 |
type: 'price_slider',
|
@@ -49,6 +71,9 @@ function YITH_WCAN_Filters( $ ) {
|
|
49 |
show_sale_filter: {
|
50 |
type: 'stock_sale',
|
51 |
},
|
|
|
|
|
|
|
52 |
toggle_style: {
|
53 |
show_toggle: ':checked',
|
54 |
},
|
@@ -66,10 +91,11 @@ function YITH_WCAN_Filters( $ ) {
|
|
66 |
filter_design: [ 'checkbox', 'radio', 'text' ],
|
67 |
},
|
68 |
multiple: {
|
69 |
-
type: 'tax',
|
70 |
-
filter_design: '
|
71 |
},
|
72 |
relation: {
|
|
|
73 |
multiple: ':checked',
|
74 |
},
|
75 |
adoptive: {
|
@@ -91,6 +117,8 @@ function YITH_WCAN_Filters( $ ) {
|
|
91 |
|
92 |
self.$filters = self.$filtersContainer.find( '.yith-toggle-row' );
|
93 |
|
|
|
|
|
94 |
self.$page = $( '#paged' );
|
95 |
|
96 |
self.$submit = $( '#submit' );
|
@@ -101,14 +129,13 @@ function YITH_WCAN_Filters( $ ) {
|
|
101 |
self.initFilters();
|
102 |
self.initAddFilter();
|
103 |
self.initLoadMoreFilters();
|
|
|
104 |
self.initSubmit();
|
105 |
};
|
106 |
|
107 |
-
// init
|
108 |
|
109 |
self.initAddFilter = function () {
|
110 |
-
self.updateRowIndex();
|
111 |
-
|
112 |
self.$addNewFilterButtons.on( 'click', function ( ev ) {
|
113 |
ev.preventDefault();
|
114 |
|
@@ -125,7 +152,27 @@ function YITH_WCAN_Filters( $ ) {
|
|
125 |
};
|
126 |
|
127 |
self.initSubmit = function () {
|
128 |
-
self.$submit.on( 'click', () =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
};
|
130 |
|
131 |
self.initFilters = function () {
|
@@ -155,8 +202,8 @@ function YITH_WCAN_Filters( $ ) {
|
|
155 |
|
156 |
self.initFilterTitle( $filter );
|
157 |
self.initFilterToggle( $filter );
|
158 |
-
self.initFilterFields( $filter );
|
159 |
self.initFilterFieldsDependencies( $filter );
|
|
|
160 |
self.initFilterSave( $filter );
|
161 |
self.initFilterDelete( $filter );
|
162 |
self.initFilterClone( $filter );
|
@@ -168,7 +215,13 @@ function YITH_WCAN_Filters( $ ) {
|
|
168 |
|
169 |
self.initFilterFields = function ( $filter ) {
|
170 |
self.initFilterTermSearch( $filter );
|
|
|
|
|
171 |
self.initFilterType( $filter );
|
|
|
|
|
|
|
|
|
172 |
};
|
173 |
|
174 |
self.initFilterFieldsDependencies = function ( $filter ) {
|
@@ -230,11 +283,6 @@ function YITH_WCAN_Filters( $ ) {
|
|
230 |
// init terms select
|
231 |
$termSearch.selectWoo( select2_args );
|
232 |
|
233 |
-
// clear terms select when taxonomy is changed
|
234 |
-
$taxonomySelect.on( 'change', () => {
|
235 |
-
$termSearch.find( 'option' ).remove().end().change();
|
236 |
-
} );
|
237 |
-
|
238 |
// on term changes redraw Customize terms section
|
239 |
$termSearch.on( 'change', () => {
|
240 |
self.updateTerms( $filter );
|
@@ -297,12 +345,101 @@ function YITH_WCAN_Filters( $ ) {
|
|
297 |
} );
|
298 |
};
|
299 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
self.initFilterType = function ( $filter ) {
|
301 |
-
const $filterType = $filter.find( '
|
|
|
302 |
|
303 |
$filterType
|
304 |
.on( 'change', () => {
|
305 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
} )
|
307 |
.change();
|
308 |
};
|
@@ -380,6 +517,38 @@ function YITH_WCAN_Filters( $ ) {
|
|
380 |
} );
|
381 |
};
|
382 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
self.afterAddFilter = function ( $filter ) {
|
384 |
self.closeAllFilters();
|
385 |
self.openFilter( $filter );
|
@@ -401,6 +570,111 @@ function YITH_WCAN_Filters( $ ) {
|
|
401 |
}
|
402 |
};
|
403 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
404 |
self._findFilterField = function (
|
405 |
$filter,
|
406 |
field,
|
@@ -472,7 +746,9 @@ function YITH_WCAN_Filters( $ ) {
|
|
472 |
result = condition( fieldValue );
|
473 |
} else if ( 0 === condition.indexOf( ':' ) ) {
|
474 |
result = $field.is( condition );
|
475 |
-
} else if ( 0 === condition.indexOf( '
|
|
|
|
|
476 |
result = condition.toString().substring( 1 ) !== fieldValue;
|
477 |
} else {
|
478 |
result = condition.toString() === fieldValue;
|
@@ -493,11 +769,11 @@ function YITH_WCAN_Filters( $ ) {
|
|
493 |
|
494 |
self._confirmAddAllTerms = function ( $select ) {
|
495 |
let v = $select.val(),
|
496 |
-
|
497 |
message = yith_wcan_admin.messages.confirm_add_all_terms;
|
498 |
|
499 |
-
if (
|
500 |
-
message = message.replace( '%s',
|
501 |
return confirm( message );
|
502 |
}
|
503 |
return true;
|
@@ -703,16 +979,21 @@ function YITH_WCAN_Filters( $ ) {
|
|
703 |
};
|
704 |
|
705 |
self.saveFilter = function ( $filter ) {
|
|
|
|
|
|
|
|
|
706 |
self.ajaxSaveFilter( $filter ).done( ( data ) => {
|
707 |
self.maybeSetPresetId( data.id );
|
708 |
self.closeFilter( $filter );
|
709 |
} );
|
710 |
};
|
711 |
|
712 |
-
self.
|
713 |
-
|
714 |
-
|
715 |
|
|
|
716 |
// fix title
|
717 |
$filter
|
718 |
.find( '.yith-toggle-title' )
|
@@ -727,6 +1008,10 @@ function YITH_WCAN_Filters( $ ) {
|
|
727 |
.promise();
|
728 |
};
|
729 |
|
|
|
|
|
|
|
|
|
730 |
self.closeFilter = function ( $filter ) {
|
731 |
// fix title
|
732 |
$filter
|
@@ -791,12 +1076,92 @@ function YITH_WCAN_Filters( $ ) {
|
|
791 |
} else {
|
792 |
self.$page.val( page );
|
793 |
}
|
|
|
|
|
|
|
794 |
}
|
795 |
} );
|
796 |
};
|
797 |
|
798 |
self.updateFilters = function () {
|
799 |
self.$filters = self.$filtersContainer.find( '.yith-toggle-row' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
800 |
};
|
801 |
|
802 |
self.getRowIndex = function ( $row ) {
|
@@ -809,8 +1174,7 @@ function YITH_WCAN_Filters( $ ) {
|
|
809 |
let maxIndex = 0;
|
810 |
|
811 |
self.$filters.each( function ( i ) {
|
812 |
-
const
|
813 |
-
numericId = id.replace( 'filter_', '' );
|
814 |
|
815 |
maxIndex = maxIndex < numericId ? numericId : maxIndex;
|
816 |
} );
|
@@ -840,14 +1204,37 @@ function YITH_WCAN_Filters( $ ) {
|
|
840 |
return $filter.find( '.term-box' );
|
841 |
};
|
842 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
843 |
self.initTerms = function ( $filter ) {
|
844 |
-
const $terms = $filter.find( '.term-box' )
|
|
|
845 |
|
846 |
$terms.each( function () {
|
847 |
self.initTerm( $( this ) );
|
848 |
} );
|
849 |
|
850 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
851 |
};
|
852 |
|
853 |
self.initTerm = function ( $term ) {
|
@@ -958,12 +1345,24 @@ function YITH_WCAN_Filters( $ ) {
|
|
958 |
};
|
959 |
|
960 |
self.initTermsDragDrop = function ( $filter ) {
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
967 |
};
|
968 |
|
969 |
self.showTermTab = function ( $term, tab, force ) {
|
@@ -1016,10 +1415,14 @@ function YITH_WCAN_Filters( $ ) {
|
|
1016 |
};
|
1017 |
|
1018 |
self.updateTerms = function ( $filter ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
1019 |
const selectedTerms = self._getSelectedTerms( $filter ),
|
1020 |
-
$termsContainer = $filter.find( '.terms-wrapper' ),
|
1021 |
$existingTerms = $termsContainer.find( '.term-box' ),
|
1022 |
-
$filterType = $filter.find( '[name*="filter_design"]' ),
|
1023 |
newTerms = [];
|
1024 |
|
1025 |
if ( selectedTerms ) {
|
@@ -1057,7 +1460,7 @@ function YITH_WCAN_Filters( $ ) {
|
|
1057 |
} );
|
1058 |
}
|
1059 |
|
1060 |
-
self.updateTermFields( $filter,
|
1061 |
|
1062 |
$filter.trigger( 'yith_fields_init' );
|
1063 |
};
|
@@ -1066,7 +1469,7 @@ function YITH_WCAN_Filters( $ ) {
|
|
1066 |
const $terms = $filter.find( '.term-box' );
|
1067 |
|
1068 |
switch ( type ) {
|
1069 |
-
case '
|
1070 |
$terms
|
1071 |
.find( '.term-tab-headers' )
|
1072 |
.show()
|
@@ -1085,7 +1488,18 @@ function YITH_WCAN_Filters( $ ) {
|
|
1085 |
);
|
1086 |
} );
|
1087 |
break;
|
1088 |
-
case '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1089 |
$terms
|
1090 |
.find( '.term-tab-headers' )
|
1091 |
.show()
|
@@ -1096,6 +1510,7 @@ function YITH_WCAN_Filters( $ ) {
|
|
1096 |
|
1097 |
self.showTermTab( $terms, 'image', true );
|
1098 |
break;
|
|
|
1099 |
default:
|
1100 |
$terms.find( '.term-tab-headers' ).hide();
|
1101 |
$terms.find( '.tab.tab-color' ).hide();
|
@@ -1493,6 +1908,21 @@ function YITH_WCAN_Filters( $ ) {
|
|
1493 |
.trim();
|
1494 |
};
|
1495 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1496 |
// let's start the game
|
1497 |
self.init();
|
1498 |
}
|
13 |
taxonomy: {
|
14 |
type: 'tax',
|
15 |
},
|
16 |
+
use_all_terms: {
|
17 |
type: 'tax',
|
18 |
},
|
19 |
+
term_ids: {
|
20 |
type: 'tax',
|
21 |
+
use_all_terms: '!:checked',
|
22 |
+
},
|
23 |
+
filter_design: {
|
24 |
+
type: [ 'tax', 'review', 'price_range' ],
|
25 |
+
},
|
26 |
+
label_position: {
|
27 |
+
filter_design: [ 'label', 'color' ],
|
28 |
},
|
29 |
column_number: {
|
30 |
filter_design: [ 'label', 'color' ],
|
31 |
+
label_position: [ 'below', 'hide' ],
|
32 |
+
},
|
33 |
+
customize_terms: {
|
34 |
+
type: 'tax',
|
35 |
+
use_all_terms: '!:checked',
|
36 |
},
|
37 |
terms_options: {
|
38 |
+
term_ids: ( v ) => !! v,
|
39 |
+
customize_terms: ':checked',
|
40 |
},
|
41 |
show_search: {
|
42 |
+
type: 'tax',
|
43 |
filter_design: 'select',
|
44 |
},
|
45 |
price_ranges: {
|
46 |
type: 'price_range',
|
47 |
},
|
48 |
+
price_slider_adaptive_limits: {
|
49 |
+
type: 'price_slider',
|
50 |
+
},
|
51 |
+
price_slider_design: {
|
52 |
+
type: 'price_slider',
|
53 |
+
},
|
54 |
price_slider_min: {
|
55 |
type: 'price_slider',
|
56 |
+
price_slider_adaptive_limits: '!:checked',
|
57 |
},
|
58 |
price_slider_max: {
|
59 |
type: 'price_slider',
|
60 |
+
price_slider_adaptive_limits: '!:checked',
|
61 |
},
|
62 |
price_slider_step: {
|
63 |
type: 'price_slider',
|
71 |
show_sale_filter: {
|
72 |
type: 'stock_sale',
|
73 |
},
|
74 |
+
show_featured_filter: {
|
75 |
+
type: 'stock_sale',
|
76 |
+
},
|
77 |
toggle_style: {
|
78 |
show_toggle: ':checked',
|
79 |
},
|
91 |
filter_design: [ 'checkbox', 'radio', 'text' ],
|
92 |
},
|
93 |
multiple: {
|
94 |
+
type: [ 'tax', 'review', 'price_range' ],
|
95 |
+
filter_design: '!radio',
|
96 |
},
|
97 |
relation: {
|
98 |
+
type: 'tax',
|
99 |
multiple: ':checked',
|
100 |
},
|
101 |
adoptive: {
|
117 |
|
118 |
self.$filters = self.$filtersContainer.find( '.yith-toggle-row' );
|
119 |
|
120 |
+
self.$layout = $( '#preset_layout' );
|
121 |
+
|
122 |
self.$page = $( '#paged' );
|
123 |
|
124 |
self.$submit = $( '#submit' );
|
129 |
self.initFilters();
|
130 |
self.initAddFilter();
|
131 |
self.initLoadMoreFilters();
|
132 |
+
self.initLayout();
|
133 |
self.initSubmit();
|
134 |
};
|
135 |
|
136 |
+
// general init
|
137 |
|
138 |
self.initAddFilter = function () {
|
|
|
|
|
139 |
self.$addNewFilterButtons.on( 'click', function ( ev ) {
|
140 |
ev.preventDefault();
|
141 |
|
152 |
};
|
153 |
|
154 |
self.initSubmit = function () {
|
155 |
+
self.$submit.on( 'click', () => {
|
156 |
+
if ( ! self.$form.get( 0 ).reportValidity() ) {
|
157 |
+
return false;
|
158 |
+
}
|
159 |
+
|
160 |
+
if ( ! self.validateFilters() ) {
|
161 |
+
return false;
|
162 |
+
}
|
163 |
+
|
164 |
+
self.block( self.$form );
|
165 |
+
} );
|
166 |
+
};
|
167 |
+
|
168 |
+
self.initLayout = function () {
|
169 |
+
self.$layout
|
170 |
+
.on( 'change', 'input', () => {
|
171 |
+
self.afterLayoutChange();
|
172 |
+
} )
|
173 |
+
.find( 'input' )
|
174 |
+
.first()
|
175 |
+
.change();
|
176 |
};
|
177 |
|
178 |
self.initFilters = function () {
|
202 |
|
203 |
self.initFilterTitle( $filter );
|
204 |
self.initFilterToggle( $filter );
|
|
|
205 |
self.initFilterFieldsDependencies( $filter );
|
206 |
+
self.initFilterFields( $filter );
|
207 |
self.initFilterSave( $filter );
|
208 |
self.initFilterDelete( $filter );
|
209 |
self.initFilterClone( $filter );
|
215 |
|
216 |
self.initFilterFields = function ( $filter ) {
|
217 |
self.initFilterTermSearch( $filter );
|
218 |
+
self.initFilterCustomizeTerms( $filter );
|
219 |
+
self.initTaxonomy( $filter );
|
220 |
self.initFilterType( $filter );
|
221 |
+
self.initFilterDesign( $filter );
|
222 |
+
self.initFilterCurrencyFields( $filter );
|
223 |
+
self.clearFilterErrors( $filter );
|
224 |
+
self.initInvalidFields( $filter );
|
225 |
};
|
226 |
|
227 |
self.initFilterFieldsDependencies = function ( $filter ) {
|
283 |
// init terms select
|
284 |
$termSearch.selectWoo( select2_args );
|
285 |
|
|
|
|
|
|
|
|
|
|
|
286 |
// on term changes redraw Customize terms section
|
287 |
$termSearch.on( 'change', () => {
|
288 |
self.updateTerms( $filter );
|
345 |
} );
|
346 |
};
|
347 |
|
348 |
+
self.initFilterCustomizeTerms = function ( $filter ) {
|
349 |
+
const $customizeTerms = $filter
|
350 |
+
.find( '.customize-terms' )
|
351 |
+
.find( 'input' ),
|
352 |
+
$orderBy = $filter.find( '.order-by' );
|
353 |
+
|
354 |
+
$customizeTerms
|
355 |
+
.on( 'change', () => {
|
356 |
+
$orderBy
|
357 |
+
.find( '[value="include"]' )
|
358 |
+
.prop( 'disabled', ! $customizeTerms.is( ':checked' ) );
|
359 |
+
$orderBy
|
360 |
+
.removeClass( 'enhanced' )
|
361 |
+
.trigger( 'wc-enhanced-select-init' );
|
362 |
+
! $orderBy.val() && $orderBy.val( 'name' );
|
363 |
+
|
364 |
+
self.updateTerms( $filter );
|
365 |
+
} )
|
366 |
+
.change();
|
367 |
+
};
|
368 |
+
|
369 |
+
self.initTaxonomy = function ( $filter ) {
|
370 |
+
const $taxonomySelect = $filter.find( '.taxonomy' ).first(),
|
371 |
+
$filterDesign = $filter.find( '.filter-design' ).first();
|
372 |
+
|
373 |
+
$taxonomySelect.on( 'change', () => {
|
374 |
+
self.afterTaxonomyChange( $filter );
|
375 |
+
} );
|
376 |
+
|
377 |
+
$filterDesign.on( 'change', () => {
|
378 |
+
self.customizeTermsNotice( $filter );
|
379 |
+
} );
|
380 |
+
};
|
381 |
+
|
382 |
self.initFilterType = function ( $filter ) {
|
383 |
+
const $filterType = $filter.find( '.filter-type' ),
|
384 |
+
$filterDesign = $filter.find( '.filter-design' );
|
385 |
|
386 |
$filterType
|
387 |
.on( 'change', () => {
|
388 |
+
const filterType = $filterType.val();
|
389 |
+
|
390 |
+
switch ( filterType ) {
|
391 |
+
case 'review':
|
392 |
+
case 'price_range':
|
393 |
+
$filterDesign
|
394 |
+
.find( '[value="color"]' )
|
395 |
+
.remove()
|
396 |
+
.end()
|
397 |
+
.find( '[value="label"]' )
|
398 |
+
.remove();
|
399 |
+
break;
|
400 |
+
default:
|
401 |
+
for ( let design in yith_wcan_admin.supported_designs ) {
|
402 |
+
if (
|
403 |
+
! yith_wcan_admin.supported_designs.hasOwnProperty(
|
404 |
+
design
|
405 |
+
)
|
406 |
+
) {
|
407 |
+
continue;
|
408 |
+
}
|
409 |
+
|
410 |
+
if (
|
411 |
+
$filterDesign.find( `[value="${ design }"]` )
|
412 |
+
.length
|
413 |
+
) {
|
414 |
+
continue;
|
415 |
+
}
|
416 |
+
|
417 |
+
console.log( 'not found' );
|
418 |
+
|
419 |
+
$filterDesign.append(
|
420 |
+
$( '<option/>', {
|
421 |
+
value: design,
|
422 |
+
text:
|
423 |
+
yith_wcan_admin.supported_designs[
|
424 |
+
design
|
425 |
+
],
|
426 |
+
} )
|
427 |
+
);
|
428 |
+
}
|
429 |
+
break;
|
430 |
+
}
|
431 |
+
|
432 |
+
$filterDesign.change();
|
433 |
+
} )
|
434 |
+
.change();
|
435 |
+
};
|
436 |
+
|
437 |
+
self.initFilterDesign = function ( $filter ) {
|
438 |
+
const $filterType = $filter.find( '.filter-design' );
|
439 |
+
|
440 |
+
$filterType
|
441 |
+
.on( 'change', () => {
|
442 |
+
self.updateTermFields( $filter, self.getTermsType( $filter ) );
|
443 |
} )
|
444 |
.change();
|
445 |
};
|
517 |
} );
|
518 |
};
|
519 |
|
520 |
+
self.initFilterCurrencyFields = function ( $filter ) {
|
521 |
+
$filter.find( '[data-currency]' ).each( function () {
|
522 |
+
const $field = $( this ),
|
523 |
+
$currencySpan = $( '<span/>', {
|
524 |
+
text: $field.data( 'currency' ),
|
525 |
+
class: 'currency',
|
526 |
+
} );
|
527 |
+
|
528 |
+
$field.after( $currencySpan );
|
529 |
+
} );
|
530 |
+
};
|
531 |
+
|
532 |
+
self.initInvalidFields = function ( $filter ) {
|
533 |
+
/**
|
534 |
+
* Invalid event does not bubble, so we need to handle it for each filter added
|
535 |
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/invalid_event
|
536 |
+
*/
|
537 |
+
$filter.find( ':input' ).on( 'invalid', ( ev ) => {
|
538 |
+
const target = ev.target,
|
539 |
+
$target = $( target );
|
540 |
+
|
541 |
+
ev.preventDefault();
|
542 |
+
|
543 |
+
self.goToFilter( $filter, $target ).done( () => {
|
544 |
+
self.addInputValidationMessage(
|
545 |
+
$target,
|
546 |
+
target.validationMessage
|
547 |
+
);
|
548 |
+
} );
|
549 |
+
} );
|
550 |
+
};
|
551 |
+
|
552 |
self.afterAddFilter = function ( $filter ) {
|
553 |
self.closeAllFilters();
|
554 |
self.openFilter( $filter );
|
570 |
}
|
571 |
};
|
572 |
|
573 |
+
self.afterTaxonomyChange = function ( $filter ) {
|
574 |
+
const $termSearch = $filter.find( '.term-search' ).first();
|
575 |
+
|
576 |
+
// clear terms select when taxonomy is changed
|
577 |
+
$termSearch.find( 'option' ).remove().end().change();
|
578 |
+
|
579 |
+
// handle changes to Customize Terms description
|
580 |
+
self.customizeTermsNotice( $filter );
|
581 |
+
};
|
582 |
+
|
583 |
+
self.afterLayoutChange = function () {
|
584 |
+
const layout = self.$layout.find( ':checked' ).val();
|
585 |
+
|
586 |
+
self.$filters.each( ( i, v ) => {
|
587 |
+
const $filter = $( v ),
|
588 |
+
$showToggle = $filter.find( '.show-toggle' ),
|
589 |
+
$showToggleRow = $showToggle.closest(
|
590 |
+
'.yith-toggle-content-row'
|
591 |
+
);
|
592 |
+
|
593 |
+
if ( 'horizontal' === layout ) {
|
594 |
+
$showToggle
|
595 |
+
.find( ':input' )
|
596 |
+
.prop( 'checked', false )
|
597 |
+
.removeClass( 'onoffchecked' )
|
598 |
+
.change();
|
599 |
+
$showToggleRow.hide();
|
600 |
+
|
601 |
+
$filter.find( '.term-tooltip' ).hide();
|
602 |
+
} else {
|
603 |
+
$showToggleRow.show();
|
604 |
+
|
605 |
+
$filter.find( '.term-tooltip' ).show();
|
606 |
+
}
|
607 |
+
} );
|
608 |
+
};
|
609 |
+
|
610 |
+
self.customizeTermsNotice = function ( $filter ) {
|
611 |
+
const $taxonomySelect = $filter.find( '.taxonomy' ).first(),
|
612 |
+
$filterDesign = $filter.find( '.filter-design' ).first(),
|
613 |
+
$customizeTermsWrapper = $filter
|
614 |
+
.find( '.customize-terms' )
|
615 |
+
.parent(),
|
616 |
+
$customizeTermsRow = $customizeTermsWrapper.closest(
|
617 |
+
'.yith-toggle-content-row'
|
618 |
+
),
|
619 |
+
$customizeTermsDescription = $customizeTermsWrapper.next(
|
620 |
+
'.description'
|
621 |
+
),
|
622 |
+
$customizeTerms = $customizeTermsWrapper.find( 'input' ),
|
623 |
+
$wcclNotice = $customizeTermsDescription.find( '.wccl-notice' ),
|
624 |
+
$imagesNotice = $customizeTermsDescription.find( '.images-notice' ),
|
625 |
+
taxonomies = $taxonomySelect.data( 'taxonomies' ),
|
626 |
+
taxonomy = $taxonomySelect.val(),
|
627 |
+
filterDesign = $filterDesign.val();
|
628 |
+
|
629 |
+
// show Colors & Labels notice
|
630 |
+
if (
|
631 |
+
! yith_wcan_admin.yith_wccl_enabled ||
|
632 |
+
! taxonomies[ taxonomy ]?.is_attribute
|
633 |
+
) {
|
634 |
+
$wcclNotice.hide();
|
635 |
+
} else {
|
636 |
+
$wcclNotice.show();
|
637 |
+
}
|
638 |
+
|
639 |
+
// show images notice
|
640 |
+
if (
|
641 |
+
! taxonomies[ taxonomy ]?.supports_images ||
|
642 |
+
'label' !== filterDesign
|
643 |
+
) {
|
644 |
+
$imagesNotice.hide();
|
645 |
+
} else {
|
646 |
+
$imagesNotice.show();
|
647 |
+
}
|
648 |
+
|
649 |
+
// hide option if not needed
|
650 |
+
if (
|
651 |
+
'color' === filterDesign &&
|
652 |
+
( ! yith_wcan_admin.yith_wccl_enabled ||
|
653 |
+
! taxonomies[ taxonomy ]?.is_attribute )
|
654 |
+
) {
|
655 |
+
$customizeTerms.prop( 'checked', true );
|
656 |
+
$customizeTermsRow.addClass( 'disabled' );
|
657 |
+
} else {
|
658 |
+
$customizeTermsRow.removeClass( 'disabled' );
|
659 |
+
}
|
660 |
+
};
|
661 |
+
|
662 |
+
self.clearFilterErrors = function ( $filter ) {
|
663 |
+
$filter.on( 'change keydown', ':input', function () {
|
664 |
+
const $input = $( this );
|
665 |
+
|
666 |
+
if ( $input.hasClass( 'validation-error' ) ) {
|
667 |
+
// remove any validation class
|
668 |
+
$input
|
669 |
+
.removeClass( 'validation-error' )
|
670 |
+
.removeClass( 'required-field-empty' );
|
671 |
+
|
672 |
+
// remove any error message
|
673 |
+
$input.next( '.validation-message' ).remove();
|
674 |
+
}
|
675 |
+
} );
|
676 |
+
};
|
677 |
+
|
678 |
self._findFilterField = function (
|
679 |
$filter,
|
680 |
field,
|
746 |
result = condition( fieldValue );
|
747 |
} else if ( 0 === condition.indexOf( ':' ) ) {
|
748 |
result = $field.is( condition );
|
749 |
+
} else if ( 0 === condition.indexOf( '!:' ) ) {
|
750 |
+
result = ! $field.is( condition.toString().substring( 1 ) );
|
751 |
+
} else if ( 0 === condition.indexOf( '!' ) ) {
|
752 |
result = condition.toString().substring( 1 ) !== fieldValue;
|
753 |
} else {
|
754 |
result = condition.toString() === fieldValue;
|
769 |
|
770 |
self._confirmAddAllTerms = function ( $select ) {
|
771 |
let v = $select.val(),
|
772 |
+
details = $select.data( 'taxonomies' ),
|
773 |
message = yith_wcan_admin.messages.confirm_add_all_terms;
|
774 |
|
775 |
+
if ( details[ v ]?.terms_count && details[ v ]?.terms_count > 1 ) {
|
776 |
+
message = message.replace( '%s', details[ v ]?.terms_count );
|
777 |
return confirm( message );
|
778 |
}
|
779 |
return true;
|
979 |
};
|
980 |
|
981 |
self.saveFilter = function ( $filter ) {
|
982 |
+
if ( ! self.validateFilter( $filter ) ) {
|
983 |
+
return false;
|
984 |
+
}
|
985 |
+
|
986 |
self.ajaxSaveFilter( $filter ).done( ( data ) => {
|
987 |
self.maybeSetPresetId( data.id );
|
988 |
self.closeFilter( $filter );
|
989 |
} );
|
990 |
};
|
991 |
|
992 |
+
self.isFilterOpen = function ( $filter ) {
|
993 |
+
return $filter.hasClass( 'yith-toggle-row-opened' );
|
994 |
+
};
|
995 |
|
996 |
+
self.openFilter = function ( $filter ) {
|
997 |
// fix title
|
998 |
$filter
|
999 |
.find( '.yith-toggle-title' )
|
1008 |
.promise();
|
1009 |
};
|
1010 |
|
1011 |
+
self.isFilterClosed = function ( $filter ) {
|
1012 |
+
return ! self.isFilterOpen( $filter );
|
1013 |
+
};
|
1014 |
+
|
1015 |
self.closeFilter = function ( $filter ) {
|
1016 |
// fix title
|
1017 |
$filter
|
1076 |
} else {
|
1077 |
self.$page.val( page );
|
1078 |
}
|
1079 |
+
|
1080 |
+
// update registered filters.
|
1081 |
+
self.updateFilters();
|
1082 |
}
|
1083 |
} );
|
1084 |
};
|
1085 |
|
1086 |
self.updateFilters = function () {
|
1087 |
self.$filters = self.$filtersContainer.find( '.yith-toggle-row' );
|
1088 |
+
|
1089 |
+
self.updateRowIndex();
|
1090 |
+
};
|
1091 |
+
|
1092 |
+
self.validateFilters = function () {
|
1093 |
+
let valid = true;
|
1094 |
+
|
1095 |
+
self.$filters.each( function () {
|
1096 |
+
if ( ! valid ) {
|
1097 |
+
return;
|
1098 |
+
}
|
1099 |
+
|
1100 |
+
let $filter = $( this );
|
1101 |
+
|
1102 |
+
valid = self.validateFilter( $filter );
|
1103 |
+
} );
|
1104 |
+
|
1105 |
+
return valid;
|
1106 |
+
};
|
1107 |
+
|
1108 |
+
self.validateFilter = function ( $filter ) {
|
1109 |
+
const layout = self.$layout.find( ':checked' ).val(),
|
1110 |
+
$title = $filter.find( '.filter-title' ),
|
1111 |
+
title = $title?.val();
|
1112 |
+
|
1113 |
+
// horizontal layout needs title for each filter
|
1114 |
+
if ( 'horizontal' === layout && ! title ) {
|
1115 |
+
self.addInputValidationMessage(
|
1116 |
+
$title,
|
1117 |
+
yith_wcan_admin.messages.filter_title_required
|
1118 |
+
);
|
1119 |
+
self.goToFilter( $filter );
|
1120 |
+
|
1121 |
+
return false;
|
1122 |
+
}
|
1123 |
+
|
1124 |
+
// trigger default browser validation.
|
1125 |
+
let valid = true;
|
1126 |
+
|
1127 |
+
$filter.find( ':input' ).each( function () {
|
1128 |
+
if ( ! valid ) {
|
1129 |
+
return;
|
1130 |
+
}
|
1131 |
+
valid = this.reportValidity();
|
1132 |
+
} );
|
1133 |
+
|
1134 |
+
return valid;
|
1135 |
+
};
|
1136 |
+
|
1137 |
+
self.goToFilter = function ( $filter, $target ) {
|
1138 |
+
if ( self.isFilterOpen( $filter ) ) {
|
1139 |
+
$target = $target || $filter;
|
1140 |
+
|
1141 |
+
return $( 'html, body' )
|
1142 |
+
.stop( true )
|
1143 |
+
.animate( {
|
1144 |
+
scrollTop: $target.offset().top - 100,
|
1145 |
+
} )
|
1146 |
+
.promise();
|
1147 |
+
}
|
1148 |
+
return $( 'html, body' )
|
1149 |
+
.stop( true )
|
1150 |
+
.animate( {
|
1151 |
+
scrollTop: $filter.offset().top - 100,
|
1152 |
+
} )
|
1153 |
+
.promise()
|
1154 |
+
.done( () => {
|
1155 |
+
self.openFilter( $filter );
|
1156 |
+
|
1157 |
+
if ( ! $target || ! $target.length ) {
|
1158 |
+
return;
|
1159 |
+
}
|
1160 |
+
|
1161 |
+
$( 'html, body' ).animate( {
|
1162 |
+
scrollTop: $target.offset().top - 100,
|
1163 |
+
} );
|
1164 |
+
} );
|
1165 |
};
|
1166 |
|
1167 |
self.getRowIndex = function ( $row ) {
|
1174 |
let maxIndex = 0;
|
1175 |
|
1176 |
self.$filters.each( function ( i ) {
|
1177 |
+
const numericId = $( this ).data( 'item_key' );
|
|
|
1178 |
|
1179 |
maxIndex = maxIndex < numericId ? numericId : maxIndex;
|
1180 |
} );
|
1204 |
return $filter.find( '.term-box' );
|
1205 |
};
|
1206 |
|
1207 |
+
self.getTermsType = function ( $filter ) {
|
1208 |
+
const $filterType = $filter.find( '.filter-design' ),
|
1209 |
+
filterType = $filterType?.val();
|
1210 |
+
|
1211 |
+
if ( 'label' !== filterType && 'color' !== filterType ) {
|
1212 |
+
return 'labels_only';
|
1213 |
+
} else if ( 'color' === filterType ) {
|
1214 |
+
return 'complete';
|
1215 |
+
}
|
1216 |
+
|
1217 |
+
return 'image_only';
|
1218 |
+
};
|
1219 |
+
|
1220 |
self.initTerms = function ( $filter ) {
|
1221 |
+
const $terms = $filter.find( '.term-box' ),
|
1222 |
+
$orderBy = $filter.find( '.order-by' );
|
1223 |
|
1224 |
$terms.each( function () {
|
1225 |
self.initTerm( $( this ) );
|
1226 |
} );
|
1227 |
|
1228 |
+
$orderBy.on( 'change', function () {
|
1229 |
+
const $t = $( this ),
|
1230 |
+
v = $t.val(),
|
1231 |
+
methodToRun =
|
1232 |
+
'include' === v
|
1233 |
+
? 'initTermsDragDrop'
|
1234 |
+
: 'destroyTermsDragDrop';
|
1235 |
+
|
1236 |
+
self[ methodToRun ]( $filter );
|
1237 |
+
} );
|
1238 |
};
|
1239 |
|
1240 |
self.initTerm = function ( $term ) {
|
1345 |
};
|
1346 |
|
1347 |
self.initTermsDragDrop = function ( $filter ) {
|
1348 |
+
try {
|
1349 |
+
$filter.find( '.terms-wrapper' ).sortable( {
|
1350 |
+
cursor: 'move',
|
1351 |
+
scrollSensitivity: 40,
|
1352 |
+
forcePlaceholderSize: true,
|
1353 |
+
helper: 'clone',
|
1354 |
+
} );
|
1355 |
+
} catch ( e ) {
|
1356 |
+
// do nothing.
|
1357 |
+
}
|
1358 |
+
};
|
1359 |
+
|
1360 |
+
self.destroyTermsDragDrop = function ( $filter ) {
|
1361 |
+
try {
|
1362 |
+
$filter.find( '.terms-wrapper' ).sortable( 'destroy' );
|
1363 |
+
} catch ( e ) {
|
1364 |
+
// do nothing.
|
1365 |
+
}
|
1366 |
};
|
1367 |
|
1368 |
self.showTermTab = function ( $term, tab, force ) {
|
1415 |
};
|
1416 |
|
1417 |
self.updateTerms = function ( $filter ) {
|
1418 |
+
const $termsContainer = $filter.find( '.terms-wrapper' );
|
1419 |
+
|
1420 |
+
if ( ! $termsContainer.is( ':visible' ) ) {
|
1421 |
+
return;
|
1422 |
+
}
|
1423 |
+
|
1424 |
const selectedTerms = self._getSelectedTerms( $filter ),
|
|
|
1425 |
$existingTerms = $termsContainer.find( '.term-box' ),
|
|
|
1426 |
newTerms = [];
|
1427 |
|
1428 |
if ( selectedTerms ) {
|
1460 |
} );
|
1461 |
}
|
1462 |
|
1463 |
+
self.updateTermFields( $filter, self.getTermsType( $filter ) );
|
1464 |
|
1465 |
$filter.trigger( 'yith_fields_init' );
|
1466 |
};
|
1469 |
const $terms = $filter.find( '.term-box' );
|
1470 |
|
1471 |
switch ( type ) {
|
1472 |
+
case 'complete':
|
1473 |
$terms
|
1474 |
.find( '.term-tab-headers' )
|
1475 |
.show()
|
1488 |
);
|
1489 |
} );
|
1490 |
break;
|
1491 |
+
case 'colors_only':
|
1492 |
+
$terms
|
1493 |
+
.find( '.term-tab-headers' )
|
1494 |
+
.show()
|
1495 |
+
.find( 'a[data-tab="image"], span' )
|
1496 |
+
.hide();
|
1497 |
+
$terms.find( '.tab.tab-color' ).show();
|
1498 |
+
$terms.find( '.tab.tab-image' ).hide();
|
1499 |
+
|
1500 |
+
self.showTermTab( $terms, 'image', true );
|
1501 |
+
break;
|
1502 |
+
case 'image_only':
|
1503 |
$terms
|
1504 |
.find( '.term-tab-headers' )
|
1505 |
.show()
|
1510 |
|
1511 |
self.showTermTab( $terms, 'image', true );
|
1512 |
break;
|
1513 |
+
case 'labels_only':
|
1514 |
default:
|
1515 |
$terms.find( '.term-tab-headers' ).hide();
|
1516 |
$terms.find( '.tab.tab-color' ).hide();
|
1908 |
.trim();
|
1909 |
};
|
1910 |
|
1911 |
+
self.addInputValidationMessage = function ( $input, message ) {
|
1912 |
+
const $message = $( '<span/>', {
|
1913 |
+
class: 'validation-message',
|
1914 |
+
text: message,
|
1915 |
+
} );
|
1916 |
+
|
1917 |
+
$input
|
1918 |
+
.addClass( 'required-field-empty' )
|
1919 |
+
.addClass( 'validation-error' )
|
1920 |
+
.next( '.validation-message' )
|
1921 |
+
.remove()
|
1922 |
+
.end()
|
1923 |
+
.after( $message );
|
1924 |
+
};
|
1925 |
+
|
1926 |
// let's start the game
|
1927 |
self.init();
|
1928 |
}
|
@@ -1 +1 @@
|
|
1 |
-
"use strict";function YITH_WCAN_Filters(e){const t=this;t.rowIndex=0,t.dependencies={taxonomy:{type:"tax"},terms:{type:"tax"},filter_design:{type:"tax"},column_number:{filter_design:["label","color"]},terms_options:{terms:e=>!!e},show_search:{filter_design:"select"},price_ranges:{type:"price_range"},price_slider_min:{type:"price_slider"},price_slider_max:{type:"price_slider"},price_slider_step:{type:"price_slider"},order_options:{type:"orderby"},show_stock_filter:{type:"stock_sale"},show_sale_filter:{type:"stock_sale"},toggle_style:{show_toggle:":checked"},order_by:{type:"tax"},order:{type:"tax"},show_count:{type:["tax","price_range","review","stock_sale"]},hierarchical:{type:"tax",filter_design:["checkbox","radio","text"]},multiple:{type:"tax",filter_design:"-radio"},relation:{multiple:":checked"},adoptive:{type:["tax","price_range","review","stock_sale"]}},t.$form=e("#plugin-fw-wc"),t.$mainAddNewFilterButton=e("#add_new_filter"),t.$addNewFilterButtons=e(".add-new-filter"),t.$loadMoreFiltersButtons=e(".load-more-filters"),t.$filtersContainer=e(".preset-filters"),t.$filters=t.$filtersContainer.find(".yith-toggle-row"),t.$page=e("#paged"),t.$submit=e("#submit"),t.init=function(){t.initFilters(),t.initAddFilter(),t.initLoadMoreFilters(),t.initSubmit()},t.initAddFilter=function(){t.updateRowIndex(),t.$addNewFilterButtons.on("click",(function(e){e.preventDefault(),t.addFilter()}))},t.initLoadMoreFilters=function(){t.$loadMoreFiltersButtons.on("click",(function(e){e.preventDefault(),t.loadMoreFilters()}))},t.initSubmit=function(){t.$submit.on("click",(()=>t.block(t.$form)))},t.initFilters=function(){t.initFiltersDragDrop(),t.$filters.each((function(){t.initFilter(e(this))}))},t.initFiltersDragDrop=function(){t.$filtersContainer.sortable({cursor:"move",handle:".yith-toggle-title",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0})},t.initFilter=function(e){e.hasClass("initialized")||(t.initFilterTitle(e),t.initFilterToggle(e),t.initFilterFields(e),t.initFilterFieldsDependencies(e),t.initFilterSave(e),t.initFilterDelete(e),t.initFilterClone(e),t.initTerms(e),t.initRanges(e),e.addClass("initialized"))},t.initFilterFields=function(e){t.initFilterTermSearch(e),t.initFilterType(e)},t.initFilterFieldsDependencies=function(e){e.find(":input").on("change",(()=>{t._applyFilterDependencies(e)})).first().change()},t.initFilterTermSearch=function(i){const n=i.find(".term-search").first(),r=i.find(".taxonomy").first(),o=n.closest(".yith-plugin-fw-field-wrapper"),a=function(e){return{term:e.term,all:void 0!==e.all?e.all:0,taxonomy:r.val(),selected:n.val(),action:"yith_wcan_search_term",security:yith_wcan_admin.nonce.search_term}},l={placeholder:e(this).data("placeholder"),minimumInputLength:"1",templateSelection:e=>t.removeHierarchyFromString(e.text),templateResult:e=>e.text.replace("&","&"),ajax:{url:ajaxurl,dataType:"json",delay:250,data:a,processResults(t){const i=[];return t&&e.each(t,(function(e,t){i.push({id:e,text:t})})),{results:i}},cache:!0},sorter:e=>e};n.selectWoo(l),r.on("change",(()=>{n.find("option").remove().end().change()})),n.on("change",(()=>{t.updateTerms(i)})),o.find(".yith-plugin-fw-select-all").on("click",(function(i){return i.preventDefault(),!!t._confirmAddAllTerms(r)&&(t.block(o),e.get(ajaxurl,a({term:"",all:1})).then((i=>{let r=n.val();r||(r=[]),n.find("option").not(":selected").remove(),e.each(i,(function(t,i){r.push(t),n.append(e("<option/>",{value:t,text:i}))})),n.val(r).change(),t.unblock(o)})),!1)})),o.find(".yith-plugin-fw-deselect-all").on("click",(function(e){return e.preventDefault(),n.find("option").remove().end().val("").change(),!1}))},t.initFilterType=function(e){const i=e.find('[name*="filter_design"]');i.on("change",(()=>{t.updateTermFields(e,i.val())})).change()},t.initFilterTitle=function(e){const t=e.find(".heading-field").first(),i=e.find("h3.title");i.length&&t.length&&t.on("keyup",(()=>{const e=t.val();i.html(e||'<span class="no-title">'+yith_wcan_admin.labels.no_title+"</span>")}))},t.initFilterSave=function(e){e.find(".save").on("click",(function(i){return i.stopPropagation(),t.saveFilter(e),!1}))},t.initFilterDelete=function(e){e.find(".delete").on("click",(function(i){return i.stopPropagation(),t.removeFilter(e),!1}))},t.initFilterClone=function(e){e.find(".clone").on("click",(function(i){return i.stopPropagation(),t.cloneFilter(e),!1}))},t.initFilterToggle=function(i){i.find(".yith-toggle-title").on("click",(function(i){const n=e(i.target);if(i.preventDefault(),n.is(".yith-plugin-fw-onoff")){const e=n.prev('input[type="checkbox"]');return e.prop("checked",!e.prop("checked")),!1}const r=e(this).parent();return r.hasClass("yith-toggle-row-opened")?t.closeFilter(r):t.openFilter(r),!1}))},t.afterAddFilter=function(e){t.closeAllFilters(),t.openFilter(e),t.updateFilters(),t.maybeHideEmptyBox(t.$filtersContainer,t.$filters),t.$mainAddNewFilterButton.show(),e.trigger("yith_fields_init"),t.initFilter(e)},t.afterRemoveFilter=function(){t.updateFilters(),t.maybeShowEmptyBox(t.$filtersContainer,t.$filters),t.$filters.length||t.$mainAddNewFilterButton.hide()},t._findFilterField=function(e,t,i=!0){let n;switch(t){case"terms_options":n=e.find(".terms-wrapper");break;case"price_ranges":n=e.find(".ranges-wrapper");break;default:n=e.find(':input[name*="['+t+']"]')}return n.length?i?n.closest(".yith-toggle-content-row"):n:null},t._applyFilterDependencies=function(i){e.each(t.dependencies,(function(e,n){const r=t._findFilterField(i,e);t._checkFilterFieldConditions(i,n)?r?.css({display:"table"}):r?.hide()}))},t._checkFilterFieldConditions=function(i,n){let r=!0;return e.each(n,(function(e,n){let o,a;r&&(o=t._findFilterField(i,e,!1),o?.length&&(a=o.first().is('input[type="radio"]')?o.filter(":checked").val().toString():o?.val()?.toString(),r=Array.isArray(n)?n.includes(a):"function"==typeof n?n(a):0===n.indexOf(":")?o.is(n):0===n.indexOf("-")?n.toString().substring(1)!==a:n.toString()===a,void 0!==t.dependencies[e]&&(r=r&&t._checkFilterFieldConditions(i,t.dependencies[e]))))})),r},t._confirmAddAllTerms=function(e){let t=e.val(),i=e.data("counts"),n=yith_wcan_admin.messages.confirm_add_all_terms;return!(i[t]&&i[t]>1)||(n=n.replace("%s",i[t]),confirm(n))},t.addFilter=function(){const i=wp.template("yith-wcan-filter")({id:t.nextRowIndex()}),n=e(i);return t.$filtersContainer.append(n),t.afterAddFilter(n),n},t.removeFilter=function(e){confirm(yith_wcan_admin.messages.confirm_delete)&&t.ajaxDeleteFilter(e).done((()=>{e.remove(),t.afterRemoveFilter()}))},t.getFilterData=function(i){return t.serialize(i,(e=>e.replace(/filters\[[0-9]+]\[([a-z_-]+)]/,"$1")),((t,i)=>!e(i).is('select[name*="terms"]')))},t.populateFilter=function(i,n){for(const r in n){const o=`filters_${t.getRowIndex(i)}_${r}`,a=i.find(`#${o}`),l=n[r];if(a.length||"price_ranges"===r)if("terms"===r){const n=l;if("object"!=typeof n)continue;for(const t in n){if(!n[t]?.label)continue;const i=e("<option/>",{value:t,text:n[t]?.label,selected:!0});a.append(i)}a.change(),t.updateTerms(i);for(const e in n)for(const t in n[e]){const r=`${o}_${e}_${t}`,a=i.find(`#${r}`);a.length&&a.val(n[e][t])}}else if("price_ranges"===r){const e=l;if("object"!=typeof e)continue;for(const n in e){const r=e[n];t.addRange(i,r.min,r.max,r.unlimited)}}else a.is(":checkbox")?a.prop("checked","yes"===l).change():a.is('[data-type="radio"]')?a.find(":input").prop("checked",!1).filter('[value="'+l+'"]').prop("checked",!0).change():"title"===r?a.val(n[r]).keyup():a.val(n[r]).change()}},t.cloneFilter=function(i){t.closeAllFilters((()=>{const n=t.addFilter(),r=t.getRowIndex(i),o=t.currentRowIndex();i.find(":input").each((function(){let i,a,l=e(this),c=l.attr("id");void 0!==c&&(a=c.replace("filters_"+r+"_","filters_"+o+"_"),i=n.find("#"+a),i.length&&(i.is('input[type="radio"]')||i.is('input[type="checkbox"]')?i.prop("checked",l.is(":checked")):i.is("select")?(i.find("option").length||l.find("option").clone().appendTo(i),i.val(l.val())):i.val(l.val()),-1===a.indexOf("color_2")||l.prop("disabled")||t.showTermAdditionalColor(i.closest(".term-box")),-1!==a.indexOf("mode")&&t.showTermTab(i.closest(".term-box"),i.val()),-1!==a.indexOf("image")&&i.val()&&i.closest(".image-selector").find(".placeholder-image").hide().end().find(".selected-image").show().append(l.closest(".image-selector").find(".selected-image").find("img").clone()),i.change().keyup()))}))}))},t.saveFilter=function(e){t.ajaxSaveFilter(e).done((i=>{t.maybeSetPresetId(i.id),t.closeFilter(e)}))},t.openFilter=function(e){return e.find(".yith-toggle-title").find(".title-arrow").text("keyboard_arrow_down"),e.addClass("yith-toggle-row-opened").find(".yith-toggle-content").slideDown().promise()},t.closeFilter=function(e){return e.find(".yith-toggle-title").find(".title-arrow").text("keyboard_arrow_right"),e.find(".yith-toggle-content").slideUp(400,(function(){e.removeClass("yith-toggle-row-opened")})).promise()},t.closeAllFilters=function(e){t.closeFilter(t.$filters).done((()=>{"function"==typeof e&&e()}))},t.loadMoreFilters=function(){let i=t.$page.val();t.doAjax("yith_wcan_load_more_filters",{preset:t.getPresetId(),page:++i,_wpnonce:yith_wcan_admin.nonce.load_more_filters},t.$loadMoreFiltersButtons,{method:"get"}).done((n=>{if(n){if(n.filters)for(const i in n.filters){const r=n.filters[i],o=wp.template("yith-wcan-filter")({id:i}),a=e(o);t.populateFilter(a,r),t.$filtersContainer.append(a),t.afterAddFilter(a),a.find(".heading-field").keyup()}n.has_more?t.$page.val(i):(t.$loadMoreFiltersButtons.remove(),t.$page.remove(),t.$page=null)}}))},t.updateFilters=function(){t.$filters=t.$filtersContainer.find(".yith-toggle-row")},t.getRowIndex=function(e){const t=e.data("item_key");return t?parseInt(t):0},t.updateRowIndex=function(){let e=0;t.$filters.each((function(t){const i=this.id.replace("filter_","");e=e<i?i:e})),t.rowIndex=e},t.nextRowIndex=function(){return t.rowIndex||t.updateRowIndex(),++t.rowIndex},t.currentRowIndex=function(){return t.rowIndex||t.updateRowIndex(),t.rowIndex},t.getTerms=function(e){return e.find(".term-box")},t.initTerms=function(i){i.find(".term-box").each((function(){t.initTerm(e(this))})),t.initTermsDragDrop(i)},t.initTerm=function(e){t.initTermTabs(e),t.initTermImageSelector(e),t.initTermAdditionalColor(e)},t.initTermTabs=function(i){i.find(".term-tab-header").on("click",(function(n){const r=e(this).data("tab");n.preventDefault(),t.showTermTab(i,r)})),t.showTermTab(i,i.find(".term-mode").val())},t.initTermAdditionalColor=function(i){i.find(".term-add-second-color").on("click",(function(n){e(this);n.preventDefault(),t.showTermAdditionalColor(i)})),i.find(".term-hide-second-color").on("click",(function(n){e(this);n.preventDefault(),t.hideTermAdditionalColor(i)}))},t.initTermImageSelector=function(i){let n,r=i.find(".image-selector"),o=r.find(".placeholder-image"),a=r.find(".selected-image"),l=a.find("img"),c=r.find(".term-image"),d=a.find(".clear-image");o.off("click").on("click",(function(){t.block(o),n||(n=wp.media({title:yith_wcan_admin.labels.upload_media,button:{text:yith_wcan_admin.labels.confirm_media},multiple:!1}),n.on("select",(function(){const i=n.state().get("selection").first().toJSON();l.remove(),l=e("<img/>",{src:i.url}),a.prepend(l),c.val(i.id),t.unblock(o),o.hide(),a.show()})),n.on("close",(function(){t.unblock(o)}))),n.open()})),d.off("click").on("click",(function(e){e.preventDefault(),c.val(""),a.hide(),o.show()}))},t.initTermsDragDrop=function(e){e.find(".terms-wrapper").sortable({cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone"})},t.showTermTab=function(e,t,i){const n=e.find(".term-tab-header"),r=e.find(".tab"),o=r.filter(".tab-"+t);if(!o.length||!n.is(":visible")&&!i)return;const a=e.find(".term-mode");n.removeClass("active").filter('[data-tab="'+t+'"]').addClass("active"),r.hide(),o.show(),a.val(t)},t.showTermAdditionalColor=function(e){e.find(".term-add-second-color").parent().hide().next(".additional-color").show().find(".wp-color-picker").prop("disabled",!1)},t.hideTermAdditionalColor=function(e){e.find(".term-hide-second-color").parent().find(".wp-color-picker").prop("disabled",!0).end().hide().prev("p").show()},t.updateTerms=function(i){const n=t._getSelectedTerms(i),r=i.find(".terms-wrapper"),o=r.find(".term-box"),a=i.find('[name*="filter_design"]'),l=[];n&&e.each(n,(function(n,r){const a=o.filter('[data-term_id="'+r.id+'"]');if(a.length)l.push(a);else{const n=wp.template("yith-wcan-filter-term")({id:t.getRowIndex(i),term_id:r.id,name:r.name,label:r.name,tooltip:""}),o=e(n);l.push(o)}})),o.detach(),l.length&&e.each(l,(function(e,i){r.append(i),t.afterAddTerm(i)})),t.updateTermFields(i,a.val()),i.trigger("yith_fields_init")},t.updateTermFields=function(i,n){const r=i.find(".term-box");switch(n){case"color":r.find(".term-tab-headers").show().find('a[data-tab="color"], span').show(),r.find(".tab.tab-color").show(),r.find(".tab.tab-image").show(),r.each((function(){const i=e(this);t.showTermTab(i,i.find(".term-mode").val(),!0)}));break;case"label":r.find(".term-tab-headers").show().find('a[data-tab="color"], span').hide(),r.find(".tab.tab-color").hide(),r.find(".tab.tab-image").show(),t.showTermTab(r,"image",!0);break;default:r.find(".term-tab-headers").hide(),r.find(".tab.tab-color").hide(),r.find(".tab.tab-image").hide()}},t.afterAddTerm=function(e){t.initTerm(e)},t._getSelectedTerms=function(i){const n=i.find(".term-search").first(),r=[];if(!n.length)return r;const o=n.val();return o?(e.each(o,(function(e,i){const o=n.find('option[value="'+i+'"]');o.length&&r.push({id:i,name:t.removeHierarchyFromString(o.text())})})),r):r},t.initRanges=function(i){const n=i.find(".range-box");t.initAddRange(i),t.initRangesPosition(i),t.initRangesDragDrop(i),n.each((function(){t.initRange(e(this))}))},t.initRange=function(e){t.initRangeDependencies(e),t.initRangeRemove(e)},t.initAddRange=function(e){e.find(".add-price-range").on("click",(function(i){i.preventDefault(),t.addRange(e),t.initRangesPosition(e)}))},t.initRangeRemove=function(e){e.find("a.range-remove").on("click",(i=>{const n=t.getItemFilter(e);i.preventDefault(),e.remove(),t.initRangesPosition(n)}))},t.initRangeDependencies=function(t){t.find('[name*="unlimited"]').on("change",(function(){const t=e(this),i=t.closest(".range-box").find(".max");t.is(":checked")?i.hide():i.show()})).change()},t.initRangesPosition=function(t){t.find(".range-box").each((function(){const t=e(this),i=t.find(".unlimited"),n=i.find(":input");t.is(":last-child")?i.show():(n.prop("checked",!1).change(),i.hide())}))},t.initRangesDragDrop=function(i){i.find(".ranges-wrapper").sortable({cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop(){e(this).find(".range-box").each((function(t){e(this).data("range_id",t).find(":input").attr("name",(function(){return e(this).attr("name").replace(/\[price_ranges]\[[0-9]+]/,"[price_ranges]["+t+"]")})).attr("id",(function(){return e(this).attr("id").replace(/price_ranges_[0-9]+/,"price_ranges_"+t)}))})),t.initRangesPosition(i)}})},t.addRange=function(i,n="",r="",o=!1){const a=wp.template("yith-wcan-filter-range")({id:t.getRowIndex(i),range_id:t.getNextRangeIndex(i),min:0,max:0}),l=e(a);return l.find(".min").find(":input").val(n),l.find(".max").find(":input").val(r),l.find(".unlimited").find(":input").prop("checked",o),i.find(".ranges-wrapper").append(l),t.afterAddRange(l),l},t.afterAddRange=function(e){t.initRange(e)},t.getNextRangeIndex=function(e){let t=e.find(".ranges-wrapper"),i=t.data("index"),n=0;return i||(i=t.find(".range-box").length),n=++i,t.data("index",n),n},t.ajaxSaveFilter=function(i){const n=t.getPresetId(),r=t.getFilterData(i),o=i.attr("id").replace("filter_","");return r.terms_order=t.getTerms(i).toArray().map((t=>e(t).data("term_id"))),t.doAjax("yith_wcan_save_preset_filter",{preset:n,filter:r,filter_id:o,_wpnonce:yith_wcan_admin.nonce.save_preset_filter},i)},t.ajaxDeleteFilter=function(e){const i=t.getPresetId();if(!i)return jQuery.Deferred().resolve();const n=e.attr("id").replace("filter_","");return t.doAjax("yith_wcan_delete_preset_filter",{preset:i,filter_id:n,_wpnonce:yith_wcan_admin.nonce.delete_preset_filter})},t.doAjax=function(i,n,r,o){n||(n={}),n.action=i;let a={beforeSend:()=>{r&&r.length&&t.block(r)},complete:()=>{r&&r.length&&t.unblock(r)},data:n,method:"post",dataType:"json",url:ajaxurl};return o&&(a=e.extend(a,o)),e.ajax(a)},t.getItemFilter=function(e){return e.closest(".yith-toggle-row")},t.maybeShowEmptyBox=function(e,i){const n=e.children(".yith-wcan-admin-no-post");!n.length||n.is(":visible")||i.length||t.$loadMoreFiltersButtons.length||n.show()},t.maybeHideEmptyBox=function(e,t){const i=e.children(".yith-wcan-admin-no-post");i.length&&i.is(":visible")&&t.length&&i.hide()},t.block=function(t){void 0!==e.fn.block&&t.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},t.unblock=function(t){void 0!==e.fn.unblock&&t.unblock()},t.serialize=function(t,i,n){let r={},o=t.find(":input").not("[disabled]");return"function"==typeof n&&(o=o.filter(n)),o.each((function(){let t,n=e(this),o=n.attr("name");if(o&&(o=o.replace(/^(.*)\[]$/,"$1"),"function"==typeof i&&(o=i(o)),(!n.is('[type="checkbox"]')||n.is(":checked"))&&(!n.is('[type="radio"]')||n.is(":checked"))))if(t=n.val(),-1!==o.indexOf("[")){const i=o.split("[").map((e=>e.replace(/[\[, \]]/g,""))),n=i.shift(),a=i.reverse().reduce(((e,t)=>({[t]:e})),t);void 0===r[n]?r[n]=a:r[n]=e.extend(!0,r[n],a)}else r[o]=t})),r},t.getPresetId=function(){return e("#preset_id").val()},t.maybeSetPresetId=function(i){!t.getPresetId()&&i&&e("#preset_id").val(i)},t.removeHierarchyFromString=function(e){return e.replace(/^(.*>)([^>]+)$/,"$2").replace("&","&").trim()},t.init()}
|
1 |
+
"use strict";function YITH_WCAN_Filters(e){const t=this;t.rowIndex=0,t.dependencies={taxonomy:{type:"tax"},use_all_terms:{type:"tax"},term_ids:{type:"tax",use_all_terms:"!:checked"},filter_design:{type:["tax","review","price_range"]},label_position:{filter_design:["label","color"]},column_number:{filter_design:["label","color"],label_position:["below","hide"]},customize_terms:{type:"tax",use_all_terms:"!:checked"},terms_options:{term_ids:e=>!!e,customize_terms:":checked"},show_search:{type:"tax",filter_design:"select"},price_ranges:{type:"price_range"},price_slider_adaptive_limits:{type:"price_slider"},price_slider_design:{type:"price_slider"},price_slider_min:{type:"price_slider",price_slider_adaptive_limits:"!:checked"},price_slider_max:{type:"price_slider",price_slider_adaptive_limits:"!:checked"},price_slider_step:{type:"price_slider"},order_options:{type:"orderby"},show_stock_filter:{type:"stock_sale"},show_sale_filter:{type:"stock_sale"},show_featured_filter:{type:"stock_sale"},toggle_style:{show_toggle:":checked"},order_by:{type:"tax"},order:{type:"tax"},show_count:{type:["tax","price_range","review","stock_sale"]},hierarchical:{type:"tax",filter_design:["checkbox","radio","text"]},multiple:{type:["tax","review","price_range"],filter_design:"!radio"},relation:{type:"tax",multiple:":checked"},adoptive:{type:["tax","price_range","review","stock_sale"]}},t.$form=e("#plugin-fw-wc"),t.$mainAddNewFilterButton=e("#add_new_filter"),t.$addNewFilterButtons=e(".add-new-filter"),t.$loadMoreFiltersButtons=e(".load-more-filters"),t.$filtersContainer=e(".preset-filters"),t.$filters=t.$filtersContainer.find(".yith-toggle-row"),t.$layout=e("#preset_layout"),t.$page=e("#paged"),t.$submit=e("#submit"),t.init=function(){t.initFilters(),t.initAddFilter(),t.initLoadMoreFilters(),t.initLayout(),t.initSubmit()},t.initAddFilter=function(){t.$addNewFilterButtons.on("click",(function(e){e.preventDefault(),t.addFilter()}))},t.initLoadMoreFilters=function(){t.$loadMoreFiltersButtons.on("click",(function(e){e.preventDefault(),t.loadMoreFilters()}))},t.initSubmit=function(){t.$submit.on("click",(()=>!!t.$form.get(0).reportValidity()&&(!!t.validateFilters()&&void t.block(t.$form))))},t.initLayout=function(){t.$layout.on("change","input",(()=>{t.afterLayoutChange()})).find("input").first().change()},t.initFilters=function(){t.initFiltersDragDrop(),t.$filters.each((function(){t.initFilter(e(this))}))},t.initFiltersDragDrop=function(){t.$filtersContainer.sortable({cursor:"move",handle:".yith-toggle-title",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0})},t.initFilter=function(e){e.hasClass("initialized")||(t.initFilterTitle(e),t.initFilterToggle(e),t.initFilterFieldsDependencies(e),t.initFilterFields(e),t.initFilterSave(e),t.initFilterDelete(e),t.initFilterClone(e),t.initTerms(e),t.initRanges(e),e.addClass("initialized"))},t.initFilterFields=function(e){t.initFilterTermSearch(e),t.initFilterCustomizeTerms(e),t.initTaxonomy(e),t.initFilterType(e),t.initFilterDesign(e),t.initFilterCurrencyFields(e),t.clearFilterErrors(e),t.initInvalidFields(e)},t.initFilterFieldsDependencies=function(e){e.find(":input").on("change",(()=>{t._applyFilterDependencies(e)})).first().change()},t.initFilterTermSearch=function(i){const n=i.find(".term-search").first(),o=i.find(".taxonomy").first(),r=n.closest(".yith-plugin-fw-field-wrapper"),a=function(e){return{term:e.term,all:void 0!==e.all?e.all:0,taxonomy:o.val(),selected:n.val(),action:"yith_wcan_search_term",security:yith_wcan_admin.nonce.search_term}},l={placeholder:e(this).data("placeholder"),minimumInputLength:"1",templateSelection:e=>t.removeHierarchyFromString(e.text),templateResult:e=>e.text.replace("&","&"),ajax:{url:ajaxurl,dataType:"json",delay:250,data:a,processResults(t){const i=[];return t&&e.each(t,(function(e,t){i.push({id:e,text:t})})),{results:i}},cache:!0},sorter:e=>e};n.selectWoo(l),n.on("change",(()=>{t.updateTerms(i)})),r.find(".yith-plugin-fw-select-all").on("click",(function(i){return i.preventDefault(),!!t._confirmAddAllTerms(o)&&(t.block(r),e.get(ajaxurl,a({term:"",all:1})).then((i=>{let o=n.val();o||(o=[]),n.find("option").not(":selected").remove(),e.each(i,(function(t,i){o.push(t),n.append(e("<option/>",{value:t,text:i}))})),n.val(o).change(),t.unblock(r)})),!1)})),r.find(".yith-plugin-fw-deselect-all").on("click",(function(e){return e.preventDefault(),n.find("option").remove().end().val("").change(),!1}))},t.initFilterCustomizeTerms=function(e){const i=e.find(".customize-terms").find("input"),n=e.find(".order-by");i.on("change",(()=>{n.find('[value="include"]').prop("disabled",!i.is(":checked")),n.removeClass("enhanced").trigger("wc-enhanced-select-init"),!n.val()&&n.val("name"),t.updateTerms(e)})).change()},t.initTaxonomy=function(e){const i=e.find(".taxonomy").first(),n=e.find(".filter-design").first();i.on("change",(()=>{t.afterTaxonomyChange(e)})),n.on("change",(()=>{t.customizeTermsNotice(e)}))},t.initFilterType=function(t){const i=t.find(".filter-type"),n=t.find(".filter-design");i.on("change",(()=>{switch(i.val()){case"review":case"price_range":n.find('[value="color"]').remove().end().find('[value="label"]').remove();break;default:for(let t in yith_wcan_admin.supported_designs)yith_wcan_admin.supported_designs.hasOwnProperty(t)&&(n.find(`[value="${t}"]`).length||(console.log("not found"),n.append(e("<option/>",{value:t,text:yith_wcan_admin.supported_designs[t]}))))}n.change()})).change()},t.initFilterDesign=function(e){e.find(".filter-design").on("change",(()=>{t.updateTermFields(e,t.getTermsType(e))})).change()},t.initFilterTitle=function(e){const t=e.find(".heading-field").first(),i=e.find("h3.title");i.length&&t.length&&t.on("keyup",(()=>{const e=t.val();i.html(e||'<span class="no-title">'+yith_wcan_admin.labels.no_title+"</span>")}))},t.initFilterSave=function(e){e.find(".save").on("click",(function(i){return i.stopPropagation(),t.saveFilter(e),!1}))},t.initFilterDelete=function(e){e.find(".delete").on("click",(function(i){return i.stopPropagation(),t.removeFilter(e),!1}))},t.initFilterClone=function(e){e.find(".clone").on("click",(function(i){return i.stopPropagation(),t.cloneFilter(e),!1}))},t.initFilterToggle=function(i){i.find(".yith-toggle-title").on("click",(function(i){const n=e(i.target);if(i.preventDefault(),n.is(".yith-plugin-fw-onoff")){const e=n.prev('input[type="checkbox"]');return e.prop("checked",!e.prop("checked")),!1}const o=e(this).parent();return o.hasClass("yith-toggle-row-opened")?t.closeFilter(o):t.openFilter(o),!1}))},t.initFilterCurrencyFields=function(t){t.find("[data-currency]").each((function(){const t=e(this),i=e("<span/>",{text:t.data("currency"),class:"currency"});t.after(i)}))},t.initInvalidFields=function(i){i.find(":input").on("invalid",(n=>{const o=n.target,r=e(o);n.preventDefault(),t.goToFilter(i,r).done((()=>{t.addInputValidationMessage(r,o.validationMessage)}))}))},t.afterAddFilter=function(e){t.closeAllFilters(),t.openFilter(e),t.updateFilters(),t.maybeHideEmptyBox(t.$filtersContainer,t.$filters),t.$mainAddNewFilterButton.show(),e.trigger("yith_fields_init"),t.initFilter(e)},t.afterRemoveFilter=function(){t.updateFilters(),t.maybeShowEmptyBox(t.$filtersContainer,t.$filters),t.$filters.length||t.$mainAddNewFilterButton.hide()},t.afterTaxonomyChange=function(e){e.find(".term-search").first().find("option").remove().end().change(),t.customizeTermsNotice(e)},t.afterLayoutChange=function(){const i=t.$layout.find(":checked").val();t.$filters.each(((t,n)=>{const o=e(n),r=o.find(".show-toggle"),a=r.closest(".yith-toggle-content-row");"horizontal"===i?(r.find(":input").prop("checked",!1).removeClass("onoffchecked").change(),a.hide(),o.find(".term-tooltip").hide()):(a.show(),o.find(".term-tooltip").show())}))},t.customizeTermsNotice=function(e){const t=e.find(".taxonomy").first(),i=e.find(".filter-design").first(),n=e.find(".customize-terms").parent(),o=n.closest(".yith-toggle-content-row"),r=n.next(".description"),a=n.find("input"),l=r.find(".wccl-notice"),s=r.find(".images-notice"),c=t.data("taxonomies"),d=t.val(),f=i.val();yith_wcan_admin.yith_wccl_enabled&&c[d]?.is_attribute?l.show():l.hide(),c[d]?.supports_images&&"label"===f?s.show():s.hide(),"color"!==f||yith_wcan_admin.yith_wccl_enabled&&c[d]?.is_attribute?o.removeClass("disabled"):(a.prop("checked",!0),o.addClass("disabled"))},t.clearFilterErrors=function(t){t.on("change keydown",":input",(function(){const t=e(this);t.hasClass("validation-error")&&(t.removeClass("validation-error").removeClass("required-field-empty"),t.next(".validation-message").remove())}))},t._findFilterField=function(e,t,i=!0){let n;switch(t){case"terms_options":n=e.find(".terms-wrapper");break;case"price_ranges":n=e.find(".ranges-wrapper");break;default:n=e.find(':input[name*="['+t+']"]')}return n.length?i?n.closest(".yith-toggle-content-row"):n:null},t._applyFilterDependencies=function(i){e.each(t.dependencies,(function(e,n){const o=t._findFilterField(i,e);t._checkFilterFieldConditions(i,n)?o?.css({display:"table"}):o?.hide()}))},t._checkFilterFieldConditions=function(i,n){let o=!0;return e.each(n,(function(e,n){let r,a;o&&(r=t._findFilterField(i,e,!1),r?.length&&(a=r.first().is('input[type="radio"]')?r.filter(":checked").val().toString():r?.val()?.toString(),o=Array.isArray(n)?n.includes(a):"function"==typeof n?n(a):0===n.indexOf(":")?r.is(n):0===n.indexOf("!:")?!r.is(n.toString().substring(1)):0===n.indexOf("!")?n.toString().substring(1)!==a:n.toString()===a,void 0!==t.dependencies[e]&&(o=o&&t._checkFilterFieldConditions(i,t.dependencies[e]))))})),o},t._confirmAddAllTerms=function(e){let t=e.val(),i=e.data("taxonomies"),n=yith_wcan_admin.messages.confirm_add_all_terms;return!(i[t]?.terms_count&&i[t]?.terms_count>1)||(n=n.replace("%s",i[t]?.terms_count),confirm(n))},t.addFilter=function(){const i=wp.template("yith-wcan-filter")({id:t.nextRowIndex()}),n=e(i);return t.$filtersContainer.append(n),t.afterAddFilter(n),n},t.removeFilter=function(e){confirm(yith_wcan_admin.messages.confirm_delete)&&t.ajaxDeleteFilter(e).done((()=>{e.remove(),t.afterRemoveFilter()}))},t.getFilterData=function(i){return t.serialize(i,(e=>e.replace(/filters\[[0-9]+]\[([a-z_-]+)]/,"$1")),((t,i)=>!e(i).is('select[name*="terms"]')))},t.populateFilter=function(i,n){for(const o in n){const r=`filters_${t.getRowIndex(i)}_${o}`,a=i.find(`#${r}`),l=n[o];if(a.length||"price_ranges"===o)if("terms"===o){const n=l;if("object"!=typeof n)continue;for(const t in n){if(!n[t]?.label)continue;const i=e("<option/>",{value:t,text:n[t]?.label,selected:!0});a.append(i)}a.change(),t.updateTerms(i);for(const e in n)for(const t in n[e]){const o=`${r}_${e}_${t}`,a=i.find(`#${o}`);a.length&&a.val(n[e][t])}}else if("price_ranges"===o){const e=l;if("object"!=typeof e)continue;for(const n in e){const o=e[n];t.addRange(i,o.min,o.max,o.unlimited)}}else a.is(":checkbox")?a.prop("checked","yes"===l).change():a.is('[data-type="radio"]')?a.find(":input").prop("checked",!1).filter('[value="'+l+'"]').prop("checked",!0).change():"title"===o?a.val(n[o]).keyup():a.val(n[o]).change()}},t.cloneFilter=function(i){t.closeAllFilters((()=>{const n=t.addFilter(),o=t.getRowIndex(i),r=t.currentRowIndex();i.find(":input").each((function(){let i,a,l=e(this),s=l.attr("id");void 0!==s&&(a=s.replace("filters_"+o+"_","filters_"+r+"_"),i=n.find("#"+a),i.length&&(i.is('input[type="radio"]')||i.is('input[type="checkbox"]')?i.prop("checked",l.is(":checked")):i.is("select")?(i.find("option").length||l.find("option").clone().appendTo(i),i.val(l.val())):i.val(l.val()),-1===a.indexOf("color_2")||l.prop("disabled")||t.showTermAdditionalColor(i.closest(".term-box")),-1!==a.indexOf("mode")&&t.showTermTab(i.closest(".term-box"),i.val()),-1!==a.indexOf("image")&&i.val()&&i.closest(".image-selector").find(".placeholder-image").hide().end().find(".selected-image").show().append(l.closest(".image-selector").find(".selected-image").find("img").clone()),i.change().keyup()))}))}))},t.saveFilter=function(e){if(!t.validateFilter(e))return!1;t.ajaxSaveFilter(e).done((i=>{t.maybeSetPresetId(i.id),t.closeFilter(e)}))},t.isFilterOpen=function(e){return e.hasClass("yith-toggle-row-opened")},t.openFilter=function(e){return e.find(".yith-toggle-title").find(".title-arrow").text("keyboard_arrow_down"),e.addClass("yith-toggle-row-opened").find(".yith-toggle-content").slideDown().promise()},t.isFilterClosed=function(e){return!t.isFilterOpen(e)},t.closeFilter=function(e){return e.find(".yith-toggle-title").find(".title-arrow").text("keyboard_arrow_right"),e.find(".yith-toggle-content").slideUp(400,(function(){e.removeClass("yith-toggle-row-opened")})).promise()},t.closeAllFilters=function(e){t.closeFilter(t.$filters).done((()=>{"function"==typeof e&&e()}))},t.loadMoreFilters=function(){let i=t.$page.val();t.doAjax("yith_wcan_load_more_filters",{preset:t.getPresetId(),page:++i,_wpnonce:yith_wcan_admin.nonce.load_more_filters},t.$loadMoreFiltersButtons,{method:"get"}).done((n=>{if(n){if(n.filters)for(const i in n.filters){const o=n.filters[i],r=wp.template("yith-wcan-filter")({id:i}),a=e(r);t.populateFilter(a,o),t.$filtersContainer.append(a),t.afterAddFilter(a),a.find(".heading-field").keyup()}n.has_more?t.$page.val(i):(t.$loadMoreFiltersButtons.remove(),t.$page.remove(),t.$page=null),t.updateFilters()}}))},t.updateFilters=function(){t.$filters=t.$filtersContainer.find(".yith-toggle-row"),t.updateRowIndex()},t.validateFilters=function(){let i=!0;return t.$filters.each((function(){if(!i)return;let n=e(this);i=t.validateFilter(n)})),i},t.validateFilter=function(e){const i=t.$layout.find(":checked").val(),n=e.find(".filter-title"),o=n?.val();if("horizontal"===i&&!o)return t.addInputValidationMessage(n,yith_wcan_admin.messages.filter_title_required),t.goToFilter(e),!1;let r=!0;return e.find(":input").each((function(){r&&(r=this.reportValidity())})),r},t.goToFilter=function(i,n){return t.isFilterOpen(i)?(n=n||i,e("html, body").stop(!0).animate({scrollTop:n.offset().top-100}).promise()):e("html, body").stop(!0).animate({scrollTop:i.offset().top-100}).promise().done((()=>{t.openFilter(i),n&&n.length&&e("html, body").animate({scrollTop:n.offset().top-100})}))},t.getRowIndex=function(e){const t=e.data("item_key");return t?parseInt(t):0},t.updateRowIndex=function(){let i=0;t.$filters.each((function(t){const n=e(this).data("item_key");i=i<n?n:i})),t.rowIndex=i},t.nextRowIndex=function(){return t.rowIndex||t.updateRowIndex(),++t.rowIndex},t.currentRowIndex=function(){return t.rowIndex||t.updateRowIndex(),t.rowIndex},t.getTerms=function(e){return e.find(".term-box")},t.getTermsType=function(e){const t=e.find(".filter-design")?.val();return"label"!==t&&"color"!==t?"labels_only":"color"===t?"complete":"image_only"},t.initTerms=function(i){const n=i.find(".term-box"),o=i.find(".order-by");n.each((function(){t.initTerm(e(this))})),o.on("change",(function(){const n=e(this).val();t["include"===n?"initTermsDragDrop":"destroyTermsDragDrop"](i)}))},t.initTerm=function(e){t.initTermTabs(e),t.initTermImageSelector(e),t.initTermAdditionalColor(e)},t.initTermTabs=function(i){i.find(".term-tab-header").on("click",(function(n){const o=e(this).data("tab");n.preventDefault(),t.showTermTab(i,o)})),t.showTermTab(i,i.find(".term-mode").val())},t.initTermAdditionalColor=function(i){i.find(".term-add-second-color").on("click",(function(n){e(this);n.preventDefault(),t.showTermAdditionalColor(i)})),i.find(".term-hide-second-color").on("click",(function(n){e(this);n.preventDefault(),t.hideTermAdditionalColor(i)}))},t.initTermImageSelector=function(i){let n,o=i.find(".image-selector"),r=o.find(".placeholder-image"),a=o.find(".selected-image"),l=a.find("img"),s=o.find(".term-image"),c=a.find(".clear-image");r.off("click").on("click",(function(){t.block(r),n||(n=wp.media({title:yith_wcan_admin.labels.upload_media,button:{text:yith_wcan_admin.labels.confirm_media},multiple:!1}),n.on("select",(function(){const i=n.state().get("selection").first().toJSON();l.remove(),l=e("<img/>",{src:i.url}),a.prepend(l),s.val(i.id),t.unblock(r),r.hide(),a.show()})),n.on("close",(function(){t.unblock(r)}))),n.open()})),c.off("click").on("click",(function(e){e.preventDefault(),s.val(""),a.hide(),r.show()}))},t.initTermsDragDrop=function(e){try{e.find(".terms-wrapper").sortable({cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone"})}catch(e){}},t.destroyTermsDragDrop=function(e){try{e.find(".terms-wrapper").sortable("destroy")}catch(e){}},t.showTermTab=function(e,t,i){const n=e.find(".term-tab-header"),o=e.find(".tab"),r=o.filter(".tab-"+t);if(!r.length||!n.is(":visible")&&!i)return;const a=e.find(".term-mode");n.removeClass("active").filter('[data-tab="'+t+'"]').addClass("active"),o.hide(),r.show(),a.val(t)},t.showTermAdditionalColor=function(e){e.find(".term-add-second-color").parent().hide().next(".additional-color").show().find(".wp-color-picker").prop("disabled",!1)},t.hideTermAdditionalColor=function(e){e.find(".term-hide-second-color").parent().find(".wp-color-picker").prop("disabled",!0).end().hide().prev("p").show()},t.updateTerms=function(i){const n=i.find(".terms-wrapper");if(!n.is(":visible"))return;const o=t._getSelectedTerms(i),r=n.find(".term-box"),a=[];o&&e.each(o,(function(n,o){const l=r.filter('[data-term_id="'+o.id+'"]');if(l.length)a.push(l);else{const n=wp.template("yith-wcan-filter-term")({id:t.getRowIndex(i),term_id:o.id,name:o.name,label:o.name,tooltip:""}),r=e(n);a.push(r)}})),r.detach(),a.length&&e.each(a,(function(e,i){n.append(i),t.afterAddTerm(i)})),t.updateTermFields(i,t.getTermsType(i)),i.trigger("yith_fields_init")},t.updateTermFields=function(i,n){const o=i.find(".term-box");switch(n){case"complete":o.find(".term-tab-headers").show().find('a[data-tab="color"], span').show(),o.find(".tab.tab-color").show(),o.find(".tab.tab-image").show(),o.each((function(){const i=e(this);t.showTermTab(i,i.find(".term-mode").val(),!0)}));break;case"colors_only":o.find(".term-tab-headers").show().find('a[data-tab="image"], span').hide(),o.find(".tab.tab-color").show(),o.find(".tab.tab-image").hide(),t.showTermTab(o,"image",!0);break;case"image_only":o.find(".term-tab-headers").show().find('a[data-tab="color"], span').hide(),o.find(".tab.tab-color").hide(),o.find(".tab.tab-image").show(),t.showTermTab(o,"image",!0);break;case"labels_only":default:o.find(".term-tab-headers").hide(),o.find(".tab.tab-color").hide(),o.find(".tab.tab-image").hide()}},t.afterAddTerm=function(e){t.initTerm(e)},t._getSelectedTerms=function(i){const n=i.find(".term-search").first(),o=[];if(!n.length)return o;const r=n.val();return r?(e.each(r,(function(e,i){const r=n.find('option[value="'+i+'"]');r.length&&o.push({id:i,name:t.removeHierarchyFromString(r.text())})})),o):o},t.initRanges=function(i){const n=i.find(".range-box");t.initAddRange(i),t.initRangesPosition(i),t.initRangesDragDrop(i),n.each((function(){t.initRange(e(this))}))},t.initRange=function(e){t.initRangeDependencies(e),t.initRangeRemove(e)},t.initAddRange=function(e){e.find(".add-price-range").on("click",(function(i){i.preventDefault(),t.addRange(e),t.initRangesPosition(e)}))},t.initRangeRemove=function(e){e.find("a.range-remove").on("click",(i=>{const n=t.getItemFilter(e);i.preventDefault(),e.remove(),t.initRangesPosition(n)}))},t.initRangeDependencies=function(t){t.find('[name*="unlimited"]').on("change",(function(){const t=e(this),i=t.closest(".range-box").find(".max");t.is(":checked")?i.hide():i.show()})).change()},t.initRangesPosition=function(t){t.find(".range-box").each((function(){const t=e(this),i=t.find(".unlimited"),n=i.find(":input");t.is(":last-child")?i.show():(n.prop("checked",!1).change(),i.hide())}))},t.initRangesDragDrop=function(i){i.find(".ranges-wrapper").sortable({cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop(){e(this).find(".range-box").each((function(t){e(this).data("range_id",t).find(":input").attr("name",(function(){return e(this).attr("name").replace(/\[price_ranges]\[[0-9]+]/,"[price_ranges]["+t+"]")})).attr("id",(function(){return e(this).attr("id").replace(/price_ranges_[0-9]+/,"price_ranges_"+t)}))})),t.initRangesPosition(i)}})},t.addRange=function(i,n="",o="",r=!1){const a=wp.template("yith-wcan-filter-range")({id:t.getRowIndex(i),range_id:t.getNextRangeIndex(i),min:0,max:0}),l=e(a);return l.find(".min").find(":input").val(n),l.find(".max").find(":input").val(o),l.find(".unlimited").find(":input").prop("checked",r),i.find(".ranges-wrapper").append(l),t.afterAddRange(l),l},t.afterAddRange=function(e){t.initRange(e)},t.getNextRangeIndex=function(e){let t=e.find(".ranges-wrapper"),i=t.data("index"),n=0;return i||(i=t.find(".range-box").length),n=++i,t.data("index",n),n},t.ajaxSaveFilter=function(i){const n=t.getPresetId(),o=t.getFilterData(i),r=i.attr("id").replace("filter_","");return o.terms_order=t.getTerms(i).toArray().map((t=>e(t).data("term_id"))),t.doAjax("yith_wcan_save_preset_filter",{preset:n,filter:o,filter_id:r,_wpnonce:yith_wcan_admin.nonce.save_preset_filter},i)},t.ajaxDeleteFilter=function(e){const i=t.getPresetId();if(!i)return jQuery.Deferred().resolve();const n=e.attr("id").replace("filter_","");return t.doAjax("yith_wcan_delete_preset_filter",{preset:i,filter_id:n,_wpnonce:yith_wcan_admin.nonce.delete_preset_filter})},t.doAjax=function(i,n,o,r){n||(n={}),n.action=i;let a={beforeSend:()=>{o&&o.length&&t.block(o)},complete:()=>{o&&o.length&&t.unblock(o)},data:n,method:"post",dataType:"json",url:ajaxurl};return r&&(a=e.extend(a,r)),e.ajax(a)},t.getItemFilter=function(e){return e.closest(".yith-toggle-row")},t.maybeShowEmptyBox=function(e,i){const n=e.children(".yith-wcan-admin-no-post");!n.length||n.is(":visible")||i.length||t.$loadMoreFiltersButtons.length||n.show()},t.maybeHideEmptyBox=function(e,t){const i=e.children(".yith-wcan-admin-no-post");i.length&&i.is(":visible")&&t.length&&i.hide()},t.block=function(t){void 0!==e.fn.block&&t.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},t.unblock=function(t){void 0!==e.fn.unblock&&t.unblock()},t.serialize=function(t,i,n){let o={},r=t.find(":input").not("[disabled]");return"function"==typeof n&&(r=r.filter(n)),r.each((function(){let t,n=e(this),r=n.attr("name");if(r&&(r=r.replace(/^(.*)\[]$/,"$1"),"function"==typeof i&&(r=i(r)),(!n.is('[type="checkbox"]')||n.is(":checked"))&&(!n.is('[type="radio"]')||n.is(":checked"))))if(t=n.val(),-1!==r.indexOf("[")){const i=r.split("[").map((e=>e.replace(/[\[, \]]/g,""))),n=i.shift(),a=i.reverse().reduce(((e,t)=>({[t]:e})),t);void 0===o[n]?o[n]=a:o[n]=e.extend(!0,o[n],a)}else o[r]=t})),o},t.getPresetId=function(){return e("#preset_id").val()},t.maybeSetPresetId=function(i){!t.getPresetId()&&i&&e("#preset_id").val(i)},t.removeHierarchyFromString=function(e){return e.replace(/^(.*>)([^>]+)$/,"$2").replace("&","&").trim()},t.addInputValidationMessage=function(t,i){const n=e("<span/>",{class:"validation-message",text:i});t.addClass("required-field-empty").addClass("validation-error").next(".validation-message").remove().end().after(n)},t.init()}
|
@@ -1,2413 +1,2348 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
4 |
|
5 |
-
function
|
6 |
-
const self = this;
|
7 |
|
8 |
-
|
9 |
-
self.xhr = null;
|
10 |
|
11 |
-
// flag set during ajax call handling
|
12 |
-
self.doingAjax = false;
|
13 |
|
14 |
-
// flag set once init has executed
|
15 |
-
self.initialized = false;
|
16 |
|
17 |
-
|
18 |
-
|
|
|
|
|
19 |
|
20 |
-
|
21 |
-
self._init = function () {
|
22 |
-
const head = $( 'head' ).html(),
|
23 |
-
pageTitle = document.title,
|
24 |
-
alternativeUrl = self.searchAlternativeUrl( head );
|
25 |
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
-
self.originalSearch = location.search;
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
let targetUrl,
|
40 |
-
$target = target ? $( target ) : $( 'body' ),
|
41 |
-
customFilters;
|
42 |
-
|
43 |
-
// filter properties
|
44 |
-
customFilters = $(
|
45 |
-
document
|
46 |
-
).triggerHandler( 'yith_wcan_filters_parameters', [ filters ] );
|
47 |
-
|
48 |
-
if ( !! customFilters ) {
|
49 |
-
filters = customFilters;
|
50 |
-
}
|
51 |
-
|
52 |
-
// block elements before filtering
|
53 |
-
$target && self.block( $target );
|
54 |
-
|
55 |
-
// calculate target url
|
56 |
-
targetUrl = self.buildUrl( filters );
|
57 |
-
|
58 |
-
// if no ajax, simply change page url
|
59 |
-
if ( ! yith_wcan_shortcodes.ajax_filters ) {
|
60 |
-
window.location = targetUrl;
|
61 |
-
return;
|
62 |
-
}
|
63 |
-
|
64 |
-
// start doing ajax
|
65 |
-
self.doingAjax = true;
|
66 |
-
|
67 |
-
return self._doAjax( targetUrl ).done( function ( response ) {
|
68 |
-
targetUrl = self.searchAlternativeUrl( response, targetUrl );
|
69 |
-
|
70 |
-
self._beforeFilter( response, filters );
|
71 |
-
|
72 |
-
self.refreshFragments( target, preset, response );
|
73 |
-
self.pushUrlToHistory( targetUrl, response.pageTitle );
|
74 |
-
|
75 |
-
$target && self.unblock( $target );
|
76 |
-
|
77 |
-
self._afterFilter( response, filters );
|
78 |
-
|
79 |
-
self.doingAjax = false;
|
80 |
-
} );
|
81 |
-
};
|
82 |
-
|
83 |
-
// actions performed before filter
|
84 |
-
self._beforeFilter = function ( response, filters ) {
|
85 |
-
$( document ).trigger( 'yith-wcan-ajax-loading', [
|
86 |
-
response,
|
87 |
-
filters,
|
88 |
-
] );
|
89 |
-
};
|
90 |
-
|
91 |
-
// clean url parameters
|
92 |
-
self._cleanParam = function ( param ) {
|
93 |
-
let sanitized = encodeURIComponent( param );
|
94 |
-
|
95 |
-
if ( yith_wcan_shortcodes?.skip_sanitize ) {
|
96 |
-
sanitized = param;
|
97 |
-
}
|
98 |
-
|
99 |
-
return sanitized;
|
100 |
-
};
|
101 |
-
|
102 |
-
// actions performed after filter
|
103 |
-
self._afterFilter = function ( response, filters ) {
|
104 |
-
$( '.woocommerce-ordering' ).on(
|
105 |
-
'change',
|
106 |
-
'select.orderby',
|
107 |
-
function () {
|
108 |
-
$( this ).closest( 'form' ).submit();
|
109 |
-
}
|
110 |
-
);
|
111 |
-
|
112 |
-
$( window ).trigger( 'scroll' );
|
113 |
-
|
114 |
-
$( document )
|
115 |
-
.trigger( 'yith-wcan-ajax-filtered', [ response, filters ] )
|
116 |
-
.trigger( 'yith_wcwl_reload_fragments' );
|
117 |
-
};
|
118 |
-
|
119 |
-
// build url to show
|
120 |
-
self.buildUrl = function ( filters ) {
|
121 |
-
let queryParam = yith_wcan_shortcodes.query_param,
|
122 |
-
params = {},
|
123 |
-
location = window.location,
|
124 |
-
url = !! yith_wcan_shortcodes.base_url
|
125 |
-
? yith_wcan_shortcodes.base_url
|
126 |
-
: location?.origin + location?.pathname,
|
127 |
-
search = '';
|
128 |
-
|
129 |
-
const haveFilters =
|
130 |
-
typeof filters === 'object' && Object.keys( filters ).length;
|
131 |
-
|
132 |
-
// remove filter session from current url, if any
|
133 |
-
if ( !! yith_wcan_shortcodes.session_param ) {
|
134 |
-
url = url.replace(
|
135 |
-
new RegExp(
|
136 |
-
'/' + yith_wcan_shortcodes.session_param + '/[^/]*/'
|
137 |
-
),
|
138 |
-
''
|
139 |
-
);
|
140 |
-
}
|
141 |
-
|
142 |
-
if ( haveFilters ) {
|
143 |
-
params[ queryParam ] = 1;
|
144 |
-
}
|
145 |
-
|
146 |
-
if ( !! self.originalSearch ) {
|
147 |
-
const searchParams = self.originalSearch
|
148 |
-
.replace( '?', '' )
|
149 |
-
.split( '&' )
|
150 |
-
.reduce( ( a, v ) => {
|
151 |
-
const items = v.split( '=' );
|
152 |
-
|
153 |
-
if ( items.length === 2 ) {
|
154 |
-
if ( self.isFilterParam( items[ 0 ] ) ) {
|
155 |
-
return a;
|
156 |
-
}
|
157 |
-
|
158 |
-
a[ items[ 0 ] ] = items[ 1 ];
|
159 |
-
}
|
160 |
-
|
161 |
-
return a;
|
162 |
-
}, {} );
|
163 |
-
|
164 |
-
params = $.extend( params, searchParams );
|
165 |
-
}
|
166 |
-
|
167 |
-
if ( haveFilters ) {
|
168 |
-
params = $.extend( params, filters );
|
169 |
-
}
|
170 |
-
|
171 |
-
search = Object.keys( params )
|
172 |
-
.reduce( function ( a, i ) {
|
173 |
-
const v = params[ i ];
|
174 |
-
|
175 |
-
if ( ! v || ! i ) {
|
176 |
-
return a;
|
177 |
-
}
|
178 |
-
|
179 |
-
a +=
|
180 |
-
self._cleanParam( i ) +
|
181 |
-
'=' +
|
182 |
-
self._cleanParam( v ) +
|
183 |
-
'&';
|
184 |
-
|
185 |
-
return a;
|
186 |
-
}, '?' )
|
187 |
-
.replace( /&$/g, '' )
|
188 |
-
.replace( /%2B/g, '+' )
|
189 |
-
.replace( /%2C/g, ',' );
|
190 |
-
|
191 |
-
if ( search.length > 1 ) {
|
192 |
-
url += search;
|
193 |
-
}
|
194 |
-
|
195 |
-
return url;
|
196 |
-
};
|
197 |
-
|
198 |
-
// retrieves alternative sharing url in response body
|
199 |
-
self.searchAlternativeUrl = function ( response, defaultUrl = '' ) {
|
200 |
-
let url = defaultUrl,
|
201 |
-
matches;
|
202 |
-
|
203 |
-
if ( -1 === response.indexOf( 'yith_wcan:sharing_url' ) ) {
|
204 |
-
return url;
|
205 |
-
}
|
206 |
-
|
207 |
-
matches = response.match(
|
208 |
-
/<meta name="yith_wcan:sharing_url" content="([^"]*)">/
|
209 |
-
);
|
210 |
-
url = 1 in matches ? matches[ 1 ] : url;
|
211 |
-
|
212 |
-
return url;
|
213 |
-
};
|
214 |
-
|
215 |
-
// push url to browser history
|
216 |
-
self.pushUrlToHistory = function ( url, title ) {
|
217 |
-
if (
|
218 |
-
! yith_wcan_shortcodes.change_browser_url ||
|
219 |
-
navigator.userAgent.match( /msie/i )
|
220 |
-
) {
|
221 |
-
return;
|
222 |
-
}
|
223 |
-
|
224 |
-
window.history.pushState(
|
225 |
-
{
|
226 |
-
pageTitle: title,
|
227 |
-
},
|
228 |
-
'',
|
229 |
-
url
|
230 |
-
);
|
231 |
-
};
|
232 |
-
|
233 |
-
// replaces elements in the page with refreshed ones
|
234 |
-
self.refreshFragments = function ( target, preset, response ) {
|
235 |
-
const responseDom = document.createElement( 'html' ),
|
236 |
-
$response = $( responseDom );
|
237 |
-
|
238 |
-
responseDom.innerHTML = response;
|
239 |
-
|
240 |
-
if ( target ) {
|
241 |
-
let $preset = $( preset ),
|
242 |
-
$target = $( target ),
|
243 |
-
$destination;
|
244 |
-
|
245 |
-
if ( $preset.length ) {
|
246 |
-
$destination = $response.find( preset );
|
247 |
-
|
248 |
-
if ( $destination.length ) {
|
249 |
-
$preset.replaceWith( $destination.first() );
|
250 |
-
}
|
251 |
-
}
|
252 |
-
|
253 |
-
if ( $target.length ) {
|
254 |
-
$destination = $response.find( target );
|
255 |
-
|
256 |
-
if ( $destination.length ) {
|
257 |
-
$target.replaceWith( $destination.first() );
|
258 |
-
}
|
259 |
-
}
|
260 |
-
} else {
|
261 |
-
const content = $( yith_wcan_shortcodes.content );
|
262 |
-
|
263 |
-
if ( content.length ) {
|
264 |
-
content.replaceWith(
|
265 |
-
$response.find( yith_wcan_shortcodes.content )
|
266 |
-
);
|
267 |
-
} else {
|
268 |
-
$( 'body' ).replaceWith( $response.find( 'body' ) );
|
269 |
-
}
|
270 |
-
}
|
271 |
-
|
272 |
-
$( document ).trigger( 'yith_wcan_init_shortcodes' );
|
273 |
-
};
|
274 |
-
|
275 |
-
// executes Ajax calls
|
276 |
-
self._doAjax = function ( url, params ) {
|
277 |
-
if ( self.xhr ) {
|
278 |
-
self.xhr.abort();
|
279 |
-
}
|
280 |
-
|
281 |
-
params = $.extend(
|
282 |
-
{
|
283 |
-
url,
|
284 |
-
},
|
285 |
-
params
|
286 |
-
);
|
287 |
-
|
288 |
-
self.xhr = $.ajax( params );
|
289 |
-
|
290 |
-
return self.xhr;
|
291 |
-
};
|
292 |
-
|
293 |
-
// block dom elements
|
294 |
-
self.block = function ( $el ) {
|
295 |
-
if ( typeof $.fn.block === 'undefined' ) {
|
296 |
-
return;
|
297 |
-
}
|
298 |
-
|
299 |
-
let background = '#fff center center no-repeat';
|
300 |
-
|
301 |
-
if ( yith_wcan_shortcodes?.loader ) {
|
302 |
-
background = `url('${ yith_wcan_shortcodes.loader }') ${ background }`;
|
303 |
-
}
|
304 |
-
|
305 |
-
$el.block( {
|
306 |
-
message: null,
|
307 |
-
overlayCSS: {
|
308 |
-
background,
|
309 |
-
opacity: 0.7,
|
310 |
-
},
|
311 |
-
} );
|
312 |
-
};
|
313 |
-
|
314 |
-
// unblock dom elements
|
315 |
-
self.unblock = function ( $el ) {
|
316 |
-
if ( typeof $.fn.unblock === 'undefined' ) {
|
317 |
-
return;
|
318 |
-
}
|
319 |
-
|
320 |
-
$el.unblock();
|
321 |
-
};
|
322 |
-
|
323 |
-
// checks if param is one used by layared nav to filter products.
|
324 |
-
self.isFilterParam = function ( param ) {
|
325 |
-
let supportedParams = [
|
326 |
-
'rating_filter',
|
327 |
-
'min_price',
|
328 |
-
'max_price',
|
329 |
-
'onsale_filter',
|
330 |
-
'instock_filter',
|
331 |
-
'orderby',
|
332 |
-
'product-page',
|
333 |
-
yith_wcan_shortcodes.query_param,
|
334 |
-
].concat(
|
335 |
-
yith_wcan_shortcodes.supported_taxonomies.map( ( i ) =>
|
336 |
-
i.replace( 'pa_', 'filter_' )
|
337 |
-
)
|
338 |
-
);
|
339 |
-
|
340 |
-
if ( -1 !== supportedParams.indexOf( param ) ) {
|
341 |
-
return true;
|
342 |
-
}
|
343 |
-
|
344 |
-
if ( -1 !== param.indexOf( 'filter_' ) ) {
|
345 |
-
return true;
|
346 |
-
}
|
347 |
-
|
348 |
-
if ( -1 !== param.indexOf( 'query_type_' ) ) {
|
349 |
-
return true;
|
350 |
-
}
|
351 |
-
|
352 |
-
return false;
|
353 |
-
};
|
354 |
-
|
355 |
-
// let's start the game
|
356 |
-
self._init();
|
357 |
-
|
358 |
-
return self;
|
359 |
-
}
|
360 |
-
|
361 |
-
function YITH_WCAN_Preset( el, $ ) {
|
362 |
-
const self = this;
|
363 |
-
|
364 |
-
// main preset node
|
365 |
-
self.preset = '#' + el.attr( 'id' );
|
366 |
-
self.$preset = el;
|
367 |
-
|
368 |
-
// target of the filter, if any
|
369 |
-
self.target = self.$preset.data( 'target' );
|
370 |
-
self.$target = self.target ? $( self.target ) : false;
|
371 |
-
|
372 |
-
// filters node
|
373 |
-
self.$filters = false;
|
374 |
-
|
375 |
-
// filter button
|
376 |
-
self.$filterButtons = false;
|
377 |
-
|
378 |
-
// nodes created just for modal layout
|
379 |
-
self.modalElements = {};
|
380 |
-
|
381 |
-
// retains current status of filters
|
382 |
-
self.activeFilters = false;
|
383 |
-
|
384 |
-
// mobile flag
|
385 |
-
self.isMobile = false;
|
386 |
-
|
387 |
-
// slider timeout
|
388 |
-
self.sliderTimeout = false;
|
389 |
-
|
390 |
-
// registers when status has changed
|
391 |
-
self.originalFilters = null;
|
392 |
-
self.dirty = false;
|
393 |
-
|
394 |
-
// init object
|
395 |
-
self._init = function () {
|
396 |
-
self._regiterStatus();
|
397 |
-
self._initFilterButton();
|
398 |
-
self._initResponsive();
|
399 |
-
self._initFilters();
|
400 |
-
self._initActions();
|
401 |
-
|
402 |
-
self.$preset.data( 'preset', self ).addClass( 'enhanced' );
|
403 |
-
};
|
404 |
-
|
405 |
-
// init filters
|
406 |
-
self._initFilters = function () {
|
407 |
-
self.getFilters().each( function () {
|
408 |
-
const $filter = $( this );
|
409 |
-
|
410 |
-
self._initFilter( $filter );
|
411 |
-
} );
|
412 |
-
|
413 |
-
self.maybeShowClearAllFilters();
|
414 |
-
};
|
415 |
-
|
416 |
-
// init filter button
|
417 |
-
self._initFilterButton = function () {
|
418 |
-
self.$filterButtons = self.$preset.find( '.apply-filters' );
|
419 |
-
|
420 |
-
if ( ! self.$filterButtons.length ) {
|
421 |
-
return;
|
422 |
-
}
|
423 |
-
|
424 |
-
// manage filter button
|
425 |
-
self.$filterButtons
|
426 |
-
.on( 'click', ( ev ) => {
|
427 |
-
ev.preventDefault();
|
428 |
-
self.filter();
|
429 |
-
} )
|
430 |
-
.hide();
|
431 |
-
};
|
432 |
-
|
433 |
-
// init generic actions
|
434 |
-
self._initActions = function () {
|
435 |
-
self.$preset.find( 'form' ).on( 'submit', ( ev ) => {
|
436 |
-
ev.preventDefault();
|
437 |
-
} );
|
438 |
-
};
|
439 |
-
|
440 |
-
// init responsive
|
441 |
-
self._initResponsive = function () {
|
442 |
-
if ( ! yith_wcan_shortcodes.modal_on_mobile ) {
|
443 |
-
return;
|
444 |
-
}
|
445 |
-
|
446 |
-
const media = window.matchMedia(
|
447 |
-
`(max-width: ${ yith_wcan_shortcodes.mobile_media_query }px)`
|
448 |
-
);
|
449 |
-
|
450 |
-
$( window )
|
451 |
-
.on( 'resize', function () {
|
452 |
-
const isMobile = !! media.matches;
|
453 |
-
|
454 |
-
if ( isMobile !== self.isMobile ) {
|
455 |
-
self.isMobile = isMobile;
|
456 |
-
self._afterLayoutChange();
|
457 |
-
}
|
458 |
-
} )
|
459 |
-
.resize();
|
460 |
-
};
|
461 |
-
|
462 |
-
// init filter
|
463 |
-
self._initFilter = function ( $filter ) {
|
464 |
-
const handleChange = function ( ev ) {
|
465 |
-
const t = $( this ),
|
466 |
-
$currentFilter = t.closest( '.yith-wcan-filter' ),
|
467 |
-
multiple = $currentFilter.length
|
468 |
-
? 'yes' === $currentFilter.data( 'multiple' )
|
469 |
-
: false,
|
470 |
-
$item = t.closest( '.filter-item' ),
|
471 |
-
$items = $item.length
|
472 |
-
? $currentFilter.find( '.filter-item' ).not( $item )
|
473 |
-
: [];
|
474 |
-
|
475 |
-
if ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {
|
476 |
-
ev.preventDefault();
|
477 |
-
return false;
|
478 |
-
}
|
479 |
-
|
480 |
-
ev.preventDefault();
|
481 |
-
|
482 |
-
$items.length && ! multiple && $items.removeClass( 'active' );
|
483 |
-
$item.length && $item.toggleClass( 'active' );
|
484 |
-
|
485 |
-
// reset active filters.
|
486 |
-
self.activeFilters = false;
|
487 |
-
|
488 |
-
self.maybeFilter();
|
489 |
-
self.maybeToggleClearAllFilters();
|
490 |
-
self.maybeToggleClearFilter( $currentFilter );
|
491 |
-
};
|
492 |
-
|
493 |
-
// handle filter activation/deactivation by click on label (no input involved)
|
494 |
-
$filter
|
495 |
-
.find( '.filter-item' )
|
496 |
-
.not( '.checkbox' )
|
497 |
-
.not( '.radio' )
|
498 |
-
.on( 'click', 'a', function ( ev ) {
|
499 |
-
const t = $( this ),
|
500 |
-
$item = t.closest( '.filter-item' );
|
501 |
-
|
502 |
-
if ( ! $( ev?.delegateTarget ).is( $item ) ) {
|
503 |
-
return false;
|
504 |
-
}
|
505 |
-
|
506 |
-
handleChange.call( this, ev );
|
507 |
-
} );
|
508 |
-
|
509 |
-
// handle filter activation/deactivation from input change
|
510 |
-
$filter.find( ':input' ).on( 'change', function ( ev ) {
|
511 |
-
const t = $( this ),
|
512 |
-
$item = t.closest( '.filter-item' );
|
513 |
-
|
514 |
-
if ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {
|
515 |
-
t.prop( 'checked', false );
|
516 |
-
return false;
|
517 |
-
}
|
518 |
-
|
519 |
-
handleChange.call( this, ev );
|
520 |
-
} );
|
521 |
-
|
522 |
-
// handle filter activation/deactivation by click on label (there is an input whose state can be switched)
|
523 |
-
$filter.find( 'label > a' ).on( 'click', function ( ev ) {
|
524 |
-
const t = $( this ),
|
525 |
-
$item = t.closest( '.filter-item' );
|
526 |
-
|
527 |
-
ev.preventDefault();
|
528 |
-
|
529 |
-
if ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {
|
530 |
-
return false;
|
531 |
-
}
|
532 |
-
|
533 |
-
const $input = t.parent().find( ':input' );
|
534 |
-
|
535 |
-
if (
|
536 |
-
$input.is( '[type="radio"]' ) ||
|
537 |
-
$input.is( '[type="checkbox"]' )
|
538 |
-
) {
|
539 |
-
$input.prop( 'checked', ! $input.prop( 'checked' ) );
|
540 |
-
}
|
541 |
-
|
542 |
-
$input.change();
|
543 |
-
} );
|
544 |
-
|
545 |
-
// init tooltip
|
546 |
-
self._initTooltip( $filter );
|
547 |
-
|
548 |
-
// init price slider
|
549 |
-
self._initPriceSlider( $filter );
|
550 |
-
|
551 |
-
// init dropdown
|
552 |
-
self._initDropdown( $filter );
|
553 |
-
|
554 |
-
// init collapsable
|
555 |
-
self._initCollapsable( $filter );
|
556 |
-
|
557 |
-
// init clear anchors
|
558 |
-
self.maybeShowClearFilter( $filter );
|
559 |
-
|
560 |
-
// init custom inputs
|
561 |
-
if ( self.$preset?.hasClass( 'custom-style' ) ) {
|
562 |
-
self._initCustomInput( $filter );
|
563 |
-
}
|
564 |
-
};
|
565 |
-
|
566 |
-
// init tooltip
|
567 |
-
self._initTooltip = function ( $filter, position ) {
|
568 |
-
$filter.find( '[data-title]' ).each( function () {
|
569 |
-
const t = $( this );
|
570 |
-
|
571 |
-
if ( t.hasClass( 'tooltip-added' ) || ! t.data( 'title' ) ) {
|
572 |
-
return;
|
573 |
-
}
|
574 |
-
|
575 |
-
t.on( 'mouseenter', function () {
|
576 |
-
let th = $( this ),
|
577 |
-
tooltip = null,
|
578 |
-
wrapperWidth = th.outerWidth(),
|
579 |
-
left = 0,
|
580 |
-
width = 0;
|
581 |
-
|
582 |
-
if (
|
583 |
-
! position ||
|
584 |
-
( 'top' !== position && 'right' !== position )
|
585 |
-
) {
|
586 |
-
const container = th.closest( '.filter-item' );
|
587 |
-
|
588 |
-
position =
|
589 |
-
container.hasClass( 'color' ) ||
|
590 |
-
container.hasClass( 'label' )
|
591 |
-
? 'top'
|
592 |
-
: 'right';
|
593 |
-
}
|
594 |
-
|
595 |
-
tooltip = $( '<span>', {
|
596 |
-
class: 'yith-wcan-tooltip',
|
597 |
-
html: th.data( 'title' ),
|
598 |
-
} );
|
599 |
-
|
600 |
-
th.append( tooltip );
|
601 |
-
|
602 |
-
width = tooltip.outerWidth() + 6;
|
603 |
-
tooltip.outerWidth( width );
|
604 |
-
|
605 |
-
if ( 'top' === position ) {
|
606 |
-
left = ( wrapperWidth - width ) / 2;
|
607 |
-
} else {
|
608 |
-
left = wrapperWidth + 15;
|
609 |
-
}
|
610 |
-
|
611 |
-
tooltip.css( { left: left.toFixed( 0 ) + 'px' } ).fadeIn( 200 );
|
612 |
-
|
613 |
-
th.addClass( 'with-tooltip' );
|
614 |
-
} ).on( 'mouseleave', function () {
|
615 |
-
const th = $( this );
|
616 |
-
|
617 |
-
th.find( '.yith-wcan-tooltip' ).fadeOut( 200, function () {
|
618 |
-
th.removeClass( 'with-tooltip' )
|
619 |
-
.find( '.yith-wcan-tooltip' )
|
620 |
-
.remove();
|
621 |
-
} );
|
622 |
-
} );
|
623 |
-
|
624 |
-
t.addClass( 'tooltip-added' );
|
625 |
-
} );
|
626 |
-
};
|
627 |
-
|
628 |
-
// init dropdown
|
629 |
-
self._initDropdown = function ( $filter ) {
|
630 |
-
const $dropdown = $filter.find( 'select.filter-dropdown' );
|
631 |
-
|
632 |
-
if ( ! $dropdown.length ) {
|
633 |
-
return;
|
634 |
-
}
|
635 |
-
|
636 |
-
if (
|
637 |
-
$dropdown.hasClass( 'select2-hidden-accessible' ) &&
|
638 |
-
'undefined' !== typeof $.fn.selectWoo
|
639 |
-
) {
|
640 |
-
$dropdown.selectWoo( 'destroy' );
|
641 |
-
}
|
642 |
-
|
643 |
-
new YITH_WCAN_Dropdown( $dropdown, $, {
|
644 |
-
paginate: true,
|
645 |
-
perPage: yith_wcan_shortcodes.terms_per_page,
|
646 |
-
} );
|
647 |
-
};
|
648 |
-
|
649 |
-
// init price slider
|
650 |
-
self._initPriceSlider = function ( $filter ) {
|
651 |
-
if ( ! $filter.hasClass( 'filter-price-slider' ) ) {
|
652 |
-
return;
|
653 |
-
}
|
654 |
-
|
655 |
-
const $container = $filter.find( '.price-slider' ),
|
656 |
-
$minInput = $container.find( '.price-slider-min' ),
|
657 |
-
$maxInput = $container.find( '.price-slider-max' ),
|
658 |
-
min = parseFloat( $container.data( 'min' ) ),
|
659 |
-
max = parseFloat( $container.data( 'max' ) ),
|
660 |
-
currentMin = parseFloat( $minInput.val() ),
|
661 |
-
currentMax = parseFloat( $maxInput.val() ),
|
662 |
-
step = parseFloat( $container.data( 'step' ) );
|
663 |
-
|
664 |
-
$filter.find( '.price-slider-ui' ).ionRangeSlider( {
|
665 |
-
skin: 'round',
|
666 |
-
type: 'double',
|
667 |
-
min,
|
668 |
-
max,
|
669 |
-
step,
|
670 |
-
from: currentMin,
|
671 |
-
to: currentMax,
|
672 |
-
min_interval: step,
|
673 |
-
values_separator: ' - ',
|
674 |
-
prettify: ( v ) => self.formatPrice( v ),
|
675 |
-
onChange: ( data ) => {
|
676 |
-
$minInput.val( data.from );
|
677 |
-
$maxInput.val( data.to );
|
678 |
-
},
|
679 |
-
onFinish: ( data ) => {
|
680 |
-
if ( self.sliderTimeout ) {
|
681 |
-
clearTimeout( self.sliderTimeout );
|
682 |
-
}
|
683 |
-
|
684 |
-
self.sliderTimeout = setTimeout( function () {
|
685 |
-
self.maybeFilter();
|
686 |
-
}, 200 );
|
687 |
-
},
|
688 |
-
} );
|
689 |
-
};
|
690 |
-
|
691 |
-
// init collapsable
|
692 |
-
self._initCollapsable = function ( $filter ) {
|
693 |
-
self._initTitleCollapsable( $filter );
|
694 |
-
self._initHierarchyCollapsable( $filter );
|
695 |
-
};
|
696 |
-
|
697 |
-
// init toggle on click of the title
|
698 |
-
self._initTitleCollapsable = function ( $filter ) {
|
699 |
-
const $title = $filter.find( '.collapsable' );
|
700 |
-
|
701 |
-
if ( ! $title.length ) {
|
702 |
-
return;
|
703 |
-
}
|
704 |
-
|
705 |
-
self._initToggle( $title, $title, $filter.find( '.filter-content' ) );
|
706 |
-
};
|
707 |
-
|
708 |
-
// init toggle on click of the parent li
|
709 |
-
self._initHierarchyCollapsable = function ( $filter ) {
|
710 |
-
const $items = $filter.find( '.hierarchy-collapsable' );
|
711 |
-
|
712 |
-
if ( ! $items.length ) {
|
713 |
-
return;
|
714 |
-
}
|
715 |
-
|
716 |
-
// set parents of currently active term as open
|
717 |
-
const active = $filter.find( '.active' );
|
718 |
-
|
719 |
-
if ( active.length ) {
|
720 |
-
active
|
721 |
-
.parents( '.hierarchy-collapsable' )
|
722 |
-
.removeClass( 'closed' )
|
723 |
-
.addClass( 'opened' );
|
724 |
-
|
725 |
-
if (
|
726 |
-
active.hasClass( 'hierarchy-collapsable' ) &&
|
727 |
-
yith_wcan_shortcodes.show_current_children
|
728 |
-
) {
|
729 |
-
active.removeClass( 'closed' ).addClass( 'opened' );
|
730 |
-
}
|
731 |
-
}
|
732 |
-
|
733 |
-
$items.each( function () {
|
734 |
-
const $t = $( this ),
|
735 |
-
$toggle = $( '<span/>', {
|
736 |
-
class: 'toggle-handle',
|
737 |
-
} );
|
738 |
-
|
739 |
-
$toggle.appendTo( $t );
|
740 |
-
|
741 |
-
self._initToggle( $toggle, $t, $t.children( 'ul.filter-items' ) );
|
742 |
-
} );
|
743 |
-
};
|
744 |
-
|
745 |
-
// init toggle to generic toggle/target pair
|
746 |
-
self._initToggle = function ( $toggle, $container, $target ) {
|
747 |
-
if ( $container.hasClass( 'closed' ) ) {
|
748 |
-
$target.hide();
|
749 |
-
}
|
750 |
-
|
751 |
-
$toggle.off( 'click' ).on( 'click', function ( ev ) {
|
752 |
-
ev.stopPropagation();
|
753 |
-
|
754 |
-
$container.toggleClass( 'opened' ).toggleClass( 'closed' );
|
755 |
-
$target.slideToggle();
|
756 |
-
} );
|
757 |
-
};
|
758 |
-
|
759 |
-
// init custom input
|
760 |
-
self._initCustomInput = function ( $filter ) {
|
761 |
-
$filter.find( ':input' ).each( function () {
|
762 |
-
let input = $( this ),
|
763 |
-
type = input.attr( 'type' ),
|
764 |
-
containerClass = `${ type }button`,
|
765 |
-
container;
|
766 |
-
|
767 |
-
if ( 'checkbox' !== type && 'radio' !== type ) {
|
768 |
-
return;
|
769 |
-
}
|
770 |
-
|
771 |
-
if ( input.closest( `.${ containerClass }` ).length ) {
|
772 |
-
return;
|
773 |
-
}
|
774 |
-
|
775 |
-
if ( input.is( ':checked' ) ) {
|
776 |
-
containerClass += ' checked';
|
777 |
-
}
|
778 |
-
|
779 |
-
container = $( '<span/>', {
|
780 |
-
class: containerClass,
|
781 |
-
} );
|
782 |
-
|
783 |
-
input.wrap( container ).on( 'change', function () {
|
784 |
-
const t = $( this );
|
785 |
-
|
786 |
-
t.prop( 'checked' )
|
787 |
-
? t.parent().addClass( 'checked' )
|
788 |
-
: t.parent().removeClass( 'checked' );
|
789 |
-
} );
|
790 |
-
} );
|
791 |
-
};
|
792 |
-
|
793 |
-
// register initial status
|
794 |
-
self._regiterStatus = function () {
|
795 |
-
self.originalFilters = self.getFiltersProperties();
|
796 |
-
};
|
797 |
-
|
798 |
-
// trigger handling after layout change
|
799 |
-
self._afterLayoutChange = function () {
|
800 |
-
if ( self.isMobile ) {
|
801 |
-
self.$preset
|
802 |
-
.addClass( 'filters-modal' )
|
803 |
-
.attr( 'role', 'dialog' )
|
804 |
-
.attr( 'tabindex', '-1' )
|
805 |
-
.hide();
|
806 |
-
|
807 |
-
self._addCloseModalButton();
|
808 |
-
self._addApplyFiltersModalButton();
|
809 |
-
self._switchToCollapsables();
|
810 |
-
|
811 |
-
self.$filterButtons?.hide();
|
812 |
-
} else {
|
813 |
-
self.$preset
|
814 |
-
.removeClass( 'filters-modal' )
|
815 |
-
.removeClass( 'open' )
|
816 |
-
.removeAttr( 'role' )
|
817 |
-
.removeAttr( 'tabindex' )
|
818 |
-
.show();
|
819 |
-
|
820 |
-
$( 'body' )
|
821 |
-
.css( 'overflow', 'auto' )
|
822 |
-
.removeClass( 'yith-wcan-preset-modal-open' );
|
823 |
-
|
824 |
-
self._removeCloseModalButton();
|
825 |
-
self._removeApplyFiltersModalButton();
|
826 |
-
self._switchBackCollapsables();
|
827 |
-
|
828 |
-
self.$filterButtons?.show();
|
829 |
-
}
|
830 |
-
};
|
831 |
-
|
832 |
-
// add modal close button
|
833 |
-
self._addCloseModalButton = function () {
|
834 |
-
const $closeButton = $( '<a/>', {
|
835 |
-
class: 'close-button',
|
836 |
-
html: '×',
|
837 |
-
'data-dismiss': 'modal',
|
838 |
-
'aria-label': yith_wcan_shortcodes.labels.close,
|
839 |
-
} );
|
840 |
-
|
841 |
-
$closeButton.prependTo( self.$preset ).on( 'click', self.closeModal );
|
842 |
-
self.modalElements.closeButton = $closeButton;
|
843 |
-
};
|
844 |
-
|
845 |
-
// remove modal close button
|
846 |
-
self._removeCloseModalButton = function () {
|
847 |
-
self.modalElements?.closeButton?.remove();
|
848 |
-
};
|
849 |
-
|
850 |
-
// show main filter button for the modal
|
851 |
-
self._addApplyFiltersModalButton = function () {
|
852 |
-
const $filterButton = $( '<button/>', {
|
853 |
-
class: 'apply-filters main-modal-button',
|
854 |
-
html: yith_wcan_shortcodes.labels.show_results,
|
855 |
-
'data-dismiss': 'modal',
|
856 |
-
} );
|
857 |
-
|
858 |
-
$filterButton.appendTo( self.$preset ).on( 'click', () => {
|
859 |
-
self.filter();
|
860 |
-
self.closeModal();
|
861 |
-
} );
|
862 |
-
self.modalElements.applyFiltersButton = $filterButton;
|
863 |
-
};
|
864 |
-
|
865 |
-
// hide main filter button for the modal
|
866 |
-
self._removeApplyFiltersModalButton = function () {
|
867 |
-
self.modalElements?.applyFiltersButton?.remove();
|
868 |
-
};
|
869 |
-
|
870 |
-
// convert all filters to collapsable
|
871 |
-
self._switchToCollapsables = function () {
|
872 |
-
self.getFilters().each( function () {
|
873 |
-
const $filter = $( this ),
|
874 |
-
$title = $filter.find( '.filter-title' );
|
875 |
-
|
876 |
-
if ( ! $title.length || $title.hasClass( 'collapsable' ) ) {
|
877 |
-
return;
|
878 |
-
}
|
879 |
-
|
880 |
-
$title.addClass( 'collapsable' ).data( 'disable-collapse', true );
|
881 |
-
|
882 |
-
self._initTitleCollapsable( $filter );
|
883 |
-
} );
|
884 |
-
};
|
885 |
-
|
886 |
-
// switch back filters to their previous collapsable state
|
887 |
-
self._switchBackCollapsables = function () {
|
888 |
-
self.getFilters().each( function () {
|
889 |
-
const $filter = $( this ),
|
890 |
-
$title = $filter.find( '.filter-title' );
|
891 |
-
|
892 |
-
if (
|
893 |
-
! $title.length ||
|
894 |
-
! $title.hasClass( 'collapsable' ) ||
|
895 |
-
! $title.data( 'disable-collapse' )
|
896 |
-
) {
|
897 |
-
return;
|
898 |
-
}
|
899 |
-
|
900 |
-
$title
|
901 |
-
.removeClass( 'collapsable' )
|
902 |
-
.removeData( 'disable-collapse', true )
|
903 |
-
.off( 'click' );
|
904 |
-
|
905 |
-
$filter.find( '.filter-content' ).show();
|
906 |
-
} );
|
907 |
-
};
|
908 |
-
|
909 |
-
// close all collpasable before showing modal
|
910 |
-
self._closeAllCollapsables = function () {
|
911 |
-
self.$filters
|
912 |
-
.not( '.no-title' )
|
913 |
-
.not( ( i, v ) => {
|
914 |
-
return self.isFilterActive( $( v ) );
|
915 |
-
} )
|
916 |
-
.find( '.filter-content' )
|
917 |
-
.hide()
|
918 |
-
.end()
|
919 |
-
.find( '.filter-title' )
|
920 |
-
.addClass( 'closed' )
|
921 |
-
.removeClass( 'opened' );
|
922 |
-
};
|
923 |
-
|
924 |
-
// update status change flag, if filters have changed
|
925 |
-
self.maybeRegisterStatusChange = function () {
|
926 |
-
const currentFilters = self.getFiltersProperties(),
|
927 |
-
currentStr = JSON.stringify( currentFilters ),
|
928 |
-
originalStr = JSON.stringify( self.originalFilters );
|
929 |
-
|
930 |
-
self.dirty = currentStr !== originalStr;
|
931 |
-
};
|
932 |
-
|
933 |
-
// apply filters when possible
|
934 |
-
self.maybeFilter = function () {
|
935 |
-
// register status change
|
936 |
-
self.maybeRegisterStatusChange();
|
937 |
-
|
938 |
-
// filter, or show filter button.
|
939 |
-
if ( yith_wcan_shortcodes.instant_filters && ! self.isMobile ) {
|
940 |
-
self.filter();
|
941 |
-
} else if (
|
942 |
-
! yith_wcan_shortcodes.instant_filters &&
|
943 |
-
! self.isMobile
|
944 |
-
) {
|
945 |
-
self.dirty
|
946 |
-
? self.$filterButtons?.show()
|
947 |
-
: self.$filterButtons?.hide();
|
948 |
-
} else if ( self.isMobile && self.dirty ) {
|
949 |
-
self.$preset.addClass( 'with-filter-button' );
|
950 |
-
self.modalElements.applyFiltersButton?.show();
|
951 |
-
}
|
952 |
-
};
|
953 |
-
|
954 |
-
// main filtering method
|
955 |
-
self.filter = function () {
|
956 |
-
const filter = window?.product_filter;
|
957 |
-
|
958 |
-
filter
|
959 |
-
?.doFilter( self.getFiltersProperties(), self.target, self.preset )
|
960 |
-
?.done( () => {
|
961 |
-
let newPreset = $( self.preset );
|
962 |
-
|
963 |
-
if (
|
964 |
-
! self.isMobile &&
|
965 |
-
newPreset.length &&
|
966 |
-
yith_wcan_shortcodes.scroll_top
|
967 |
-
) {
|
968 |
-
let targetOffset = newPreset.offset().top;
|
969 |
-
|
970 |
-
if ( !! yith_wcan_shortcodes.scroll_target ) {
|
971 |
-
const scrollTarget = $(
|
972 |
-
yith_wcan_shortcodes.scroll_target
|
973 |
-
);
|
974 |
-
|
975 |
-
targetOffset = scrollTarget.length
|
976 |
-
? scrollTarget.offset().top
|
977 |
-
: targetOffset;
|
978 |
-
}
|
979 |
-
$( 'body, html' ).animate( {
|
980 |
-
scrollTop: targetOffset - 100,
|
981 |
-
} );
|
982 |
-
}
|
983 |
-
|
984 |
-
// register new filters, clear status flag
|
985 |
-
self.originalFilters = self.getFiltersProperties();
|
986 |
-
self.dirty = false;
|
987 |
-
} );
|
988 |
-
|
989 |
-
if ( self.isMobile ) {
|
990 |
-
self.$preset.removeClass( 'with-filter-button' );
|
991 |
-
self.modalElements.applyFiltersButton?.hide();
|
992 |
-
}
|
993 |
-
};
|
994 |
-
|
995 |
-
// get all filter nodes
|
996 |
-
self.getFilters = function () {
|
997 |
-
if ( false === self.$filters ) {
|
998 |
-
self.$filters = self.$preset.find( '.yith-wcan-filter' );
|
999 |
-
}
|
1000 |
-
|
1001 |
-
return self.$filters;
|
1002 |
-
};
|
1003 |
-
|
1004 |
-
// retrieves all filters that we want to apply
|
1005 |
-
self.getActiveFilters = function () {
|
1006 |
-
if ( false === self.activeFilters ) {
|
1007 |
-
self.activeFilters = self.getFiltersProperties();
|
1008 |
-
}
|
1009 |
-
|
1010 |
-
return self.activeFilters;
|
1011 |
-
};
|
1012 |
-
|
1013 |
-
// check whether there is any filter active
|
1014 |
-
self.isAnyFilterActive = function () {
|
1015 |
-
return !! Object.keys( self.getActiveFilters() ).length;
|
1016 |
-
};
|
1017 |
-
|
1018 |
-
// checks whether current filter is active
|
1019 |
-
self.isFilterActive = function ( $filter ) {
|
1020 |
-
let filterType = $filter.data( 'filter-type' ),
|
1021 |
-
active,
|
1022 |
-
filteredActive;
|
1023 |
-
|
1024 |
-
switch ( filterType ) {
|
1025 |
-
case 'tax':
|
1026 |
-
const $dropdown = $filter.find( '.filter-dropdown' );
|
1027 |
-
|
1028 |
-
if ( $dropdown.length ) {
|
1029 |
-
const val = $dropdown.val();
|
1030 |
-
|
1031 |
-
active = 'object' === typeof val ? !! val?.length : !! val;
|
1032 |
-
break;
|
1033 |
-
}
|
1034 |
-
|
1035 |
-
// if we use type other than dropdown, fallthrough
|
1036 |
-
case 'price_range':
|
1037 |
-
case 'stock_sale':
|
1038 |
-
active = $filter.find( '.filter-item' ).filter( '.active' )
|
1039 |
-
.length;
|
1040 |
-
break;
|
1041 |
-
case 'review':
|
1042 |
-
active = !! $filter.find( 'select' ).val();
|
1043 |
-
break;
|
1044 |
-
case 'price_slider':
|
1045 |
-
const min = parseFloat(
|
1046 |
-
$filter.find( '.price-slider' ).data( 'min' )
|
1047 |
-
),
|
1048 |
-
max = parseFloat(
|
1049 |
-
$filter.find( '.price-slider' ).data( 'max' )
|
1050 |
-
),
|
1051 |
-
currentMin = parseFloat(
|
1052 |
-
$filter.find( '.price-slider-min' ).val()
|
1053 |
-
),
|
1054 |
-
currentMax = parseFloat(
|
1055 |
-
$filter.find( '.price-slider-max' ).val()
|
1056 |
-
);
|
1057 |
-
|
1058 |
-
active = currentMin > min || currentMax < max;
|
1059 |
-
break;
|
1060 |
-
case 'orderby':
|
1061 |
-
active =
|
1062 |
-
'menu_order' !== $filter.find( '.filter-order-by' ).val();
|
1063 |
-
break;
|
1064 |
-
default:
|
1065 |
-
active = false;
|
1066 |
-
break;
|
1067 |
-
}
|
1068 |
-
|
1069 |
-
filteredActive = $filter.triggerHandler(
|
1070 |
-
'yith_wcan_is_filter_active',
|
1071 |
-
active,
|
1072 |
-
self
|
1073 |
-
);
|
1074 |
-
active =
|
1075 |
-
typeof filteredActive !== 'undefined' ? filteredActive : active;
|
1076 |
-
|
1077 |
-
return active;
|
1078 |
-
};
|
1079 |
-
|
1080 |
-
// retrieves filter properties for the filter
|
1081 |
-
self.getFilterProperties = function ( $filter ) {
|
1082 |
-
let filterType = $filter.data( 'filter-type' ),
|
1083 |
-
properties = {},
|
1084 |
-
filteredProperties,
|
1085 |
-
$active;
|
1086 |
-
|
1087 |
-
switch ( filterType ) {
|
1088 |
-
case 'tax':
|
1089 |
-
let $dropdown = $filter.find( '.filter-dropdown' ),
|
1090 |
-
activeTerms = [],
|
1091 |
-
taxonomy = $filter.data( 'taxonomy' ),
|
1092 |
-
isAttr = 0 === taxonomy.indexOf( 'filter' ),
|
1093 |
-
multiple = 'yes' === $filter.data( 'multiple' ),
|
1094 |
-
relation = $filter.data( 'relation' );
|
1095 |
-
|
1096 |
-
if ( $dropdown.length ) {
|
1097 |
-
if ( multiple ) {
|
1098 |
-
activeTerms = $dropdown.val();
|
1099 |
-
} else {
|
1100 |
-
activeTerms.push( $dropdown.val() );
|
1101 |
-
}
|
1102 |
-
} else {
|
1103 |
-
$active = $filter
|
1104 |
-
.find( '.filter-item' )
|
1105 |
-
.filter( '.active' )
|
1106 |
-
.children( 'a, label' );
|
1107 |
-
activeTerms = $active.get().reduce( function ( a, v ) {
|
1108 |
-
let val;
|
1109 |
-
|
1110 |
-
v = $( v );
|
1111 |
-
val = v.is( 'label' )
|
1112 |
-
? v.find( ':input' ).val()
|
1113 |
-
: v.data( 'term-slug' );
|
1114 |
-
|
1115 |
-
if ( ! val ) {
|
1116 |
-
return a;
|
1117 |
-
}
|
1118 |
-
|
1119 |
-
a.push( val );
|
1120 |
-
|
1121 |
-
return a;
|
1122 |
-
}, activeTerms );
|
1123 |
-
}
|
1124 |
-
|
1125 |
-
if ( ! multiple ) {
|
1126 |
-
properties[ taxonomy ] = activeTerms.pop();
|
1127 |
-
} else {
|
1128 |
-
const glue = ! isAttr && 'and' === relation ? '+' : ',';
|
1129 |
-
properties[ taxonomy ] = activeTerms.join( glue );
|
1130 |
-
}
|
1131 |
-
|
1132 |
-
if ( isAttr ) {
|
1133 |
-
properties[
|
1134 |
-
taxonomy.replace( 'filter_', 'query_type_' )
|
1135 |
-
] = relation;
|
1136 |
-
}
|
1137 |
-
|
1138 |
-
break;
|
1139 |
-
case 'review':
|
1140 |
-
properties.rating_filter = $filter.find( 'select' ).val();
|
1141 |
-
break;
|
1142 |
-
case 'price_range':
|
1143 |
-
$active = $filter
|
1144 |
-
.find( '.filter-item' )
|
1145 |
-
.filter( '.active' )
|
1146 |
-
.first()
|
1147 |
-
.children( 'a' );
|
1148 |
-
|
1149 |
-
properties.min_price = parseFloat(
|
1150 |
-
$active.data( 'range-min' )
|
1151 |
-
);
|
1152 |
-
properties.max_price = parseFloat(
|
1153 |
-
$active.data( 'range-max' )
|
1154 |
-
);
|
1155 |
-
break;
|
1156 |
-
case 'price_slider':
|
1157 |
-
properties.min_price = parseFloat(
|
1158 |
-
$filter.find( '.price-slider-min' ).val()
|
1159 |
-
);
|
1160 |
-
properties.max_price = parseFloat(
|
1161 |
-
$filter.find( '.price-slider-max' ).val()
|
1162 |
-
);
|
1163 |
-
break;
|
1164 |
-
case 'stock_sale':
|
1165 |
-
if ( $filter.find( '.filter-on-sale' ).is( '.active' ) ) {
|
1166 |
-
properties.onsale_filter = 1;
|
1167 |
-
}
|
1168 |
-
if ( $filter.find( '.filter-in-stock' ).is( '.active' ) ) {
|
1169 |
-
properties.instock_filter = 1;
|
1170 |
-
}
|
1171 |
-
break;
|
1172 |
-
case 'orderby':
|
1173 |
-
properties.orderby = $filter.find( '.filter-order-by' ).val();
|
1174 |
-
break;
|
1175 |
-
default:
|
1176 |
-
break;
|
1177 |
-
}
|
1178 |
-
|
1179 |
-
filteredProperties = $filter.triggerHandler(
|
1180 |
-
'yith_wcan_filter_properties',
|
1181 |
-
properties,
|
1182 |
-
self
|
1183 |
-
);
|
1184 |
-
properties =
|
1185 |
-
typeof filteredProperties !== 'undefined'
|
1186 |
-
? filteredProperties
|
1187 |
-
: properties;
|
1188 |
-
|
1189 |
-
return properties;
|
1190 |
-
};
|
1191 |
-
|
1192 |
-
// retrieves properties for all filters of the preset
|
1193 |
-
self.getFiltersProperties = function () {
|
1194 |
-
let properties = {};
|
1195 |
-
|
1196 |
-
self.getFilters().each( function () {
|
1197 |
-
const $filter = $( this );
|
1198 |
-
|
1199 |
-
if ( self.isFilterActive( $filter ) ) {
|
1200 |
-
const filterProperties = self.getFilterProperties( $filter );
|
1201 |
-
|
1202 |
-
properties = self.mergeProperties(
|
1203 |
-
properties,
|
1204 |
-
filterProperties,
|
1205 |
-
$filter
|
1206 |
-
);
|
1207 |
-
// $.extend( properties, filterProperties );
|
1208 |
-
}
|
1209 |
-
} );
|
1210 |
-
|
1211 |
-
return properties;
|
1212 |
-
};
|
1213 |
-
|
1214 |
-
// retrieve filters matching any of the properties passed
|
1215 |
-
self.getFiltersByProperties = function ( properties ) {
|
1216 |
-
return self.getFilters().filter( function () {
|
1217 |
-
const $filter = $( this );
|
1218 |
-
|
1219 |
-
if ( self.isFilterActive( $filter ) ) {
|
1220 |
-
let filterProperties = self.getFilterProperties( $filter ),
|
1221 |
-
hasProp = false;
|
1222 |
-
|
1223 |
-
for ( const prop in properties ) {
|
1224 |
-
if ( typeof filterProperties[ prop ] !== 'undefined' ) {
|
1225 |
-
hasProp = true;
|
1226 |
-
break;
|
1227 |
-
}
|
1228 |
-
}
|
1229 |
-
|
1230 |
-
return hasProp;
|
1231 |
-
}
|
1232 |
-
|
1233 |
-
return false;
|
1234 |
-
} );
|
1235 |
-
};
|
1236 |
-
|
1237 |
-
// show clear selection anchor
|
1238 |
-
self.maybeToggleClearFilter = function ( $filter ) {
|
1239 |
-
if ( ! self.isFilterActive( $filter ) ) {
|
1240 |
-
self.maybeHideClearFilter( $filter );
|
1241 |
-
} else {
|
1242 |
-
self.maybeShowClearFilter( $filter );
|
1243 |
-
}
|
1244 |
-
};
|
1245 |
-
|
1246 |
-
// show clear all selections anchor
|
1247 |
-
self.maybeToggleClearAllFilters = function () {
|
1248 |
-
if ( ! self.isAnyFilterActive() ) {
|
1249 |
-
self.maybeHideClearAllFilters();
|
1250 |
-
} else {
|
1251 |
-
self.maybeShowClearAllFilters();
|
1252 |
-
}
|
1253 |
-
};
|
1254 |
-
|
1255 |
-
// show clear selection anchor
|
1256 |
-
self.maybeShowClearFilter = function ( $filter ) {
|
1257 |
-
if (
|
1258 |
-
! self.isFilterActive( $filter ) ||
|
1259 |
-
! yith_wcan_shortcodes.show_clear_filter
|
1260 |
-
) {
|
1261 |
-
return;
|
1262 |
-
}
|
1263 |
-
|
1264 |
-
// remove clear selection link if already added.
|
1265 |
-
$filter.find( '.clear-selection' ).remove();
|
1266 |
-
|
1267 |
-
// add new clear selection link.
|
1268 |
-
$( '<a/>', {
|
1269 |
-
class: 'clear-selection',
|
1270 |
-
text: yith_wcan_shortcodes.labels.clear_selection,
|
1271 |
-
role: 'button',
|
1272 |
-
} )
|
1273 |
-
.prependTo( $filter.find( '.filter-content' ) )
|
1274 |
-
.on( 'click', function ( ev ) {
|
1275 |
-
ev.preventDefault();
|
1276 |
-
|
1277 |
-
self.deactivateFilter(
|
1278 |
-
$filter,
|
1279 |
-
false,
|
1280 |
-
yith_wcan_shortcodes.instant_filters
|
1281 |
-
);
|
1282 |
-
self.maybeHideClearFilter( $filter );
|
1283 |
-
|
1284 |
-
if ( yith_wcan_shortcodes.instant_filters ) {
|
1285 |
-
self.closeModal();
|
1286 |
-
}
|
1287 |
-
} );
|
1288 |
-
};
|
1289 |
-
|
1290 |
-
// show clearAll anchor, when on mobile layout
|
1291 |
-
self.maybeShowClearAllFilters = function () {
|
1292 |
-
if ( ! self.isAnyFilterActive() || ! self.isMobile ) {
|
1293 |
-
return;
|
1294 |
-
}
|
1295 |
-
|
1296 |
-
// remove clear selection link if already added.
|
1297 |
-
self.$preset.find( '.clear-selection' ).remove();
|
1298 |
-
|
1299 |
-
// add new clear selection link.
|
1300 |
-
$( '<a/>', {
|
1301 |
-
class: 'clear-selection',
|
1302 |
-
text: yith_wcan_shortcodes.labels.clear_all_selections,
|
1303 |
-
role: 'button',
|
1304 |
-
} )
|
1305 |
-
.prependTo( self.$preset.find( '.filters-container' ) )
|
1306 |
-
.on( 'click', function ( ev ) {
|
1307 |
-
ev.preventDefault();
|
1308 |
-
|
1309 |
-
self.deactivateAllFilters(
|
1310 |
-
yith_wcan_shortcodes.instant_filters
|
1311 |
-
);
|
1312 |
-
self.maybeHideClearAllFilters();
|
1313 |
-
|
1314 |
-
if ( yith_wcan_shortcodes.instant_filters ) {
|
1315 |
-
self.closeModal();
|
1316 |
-
}
|
1317 |
-
} );
|
1318 |
-
};
|
1319 |
-
|
1320 |
-
// hide clear selection anchor
|
1321 |
-
self.maybeHideClearFilter = function ( $filter ) {
|
1322 |
-
if (
|
1323 |
-
self.isFilterActive( $filter ) ||
|
1324 |
-
! yith_wcan_shortcodes.show_clear_filter
|
1325 |
-
) {
|
1326 |
-
return;
|
1327 |
-
}
|
1328 |
-
|
1329 |
-
// remove clear selection link.
|
1330 |
-
$filter.find( '.clear-selection' ).remove();
|
1331 |
-
};
|
1332 |
-
|
1333 |
-
// show clearAll anchor, when on mobile layout
|
1334 |
-
self.maybeHideClearAllFilters = function () {
|
1335 |
-
if ( self.isAnyFilterActive() ) {
|
1336 |
-
return;
|
1337 |
-
}
|
1338 |
-
|
1339 |
-
// remove clear selection link.
|
1340 |
-
self.$preset
|
1341 |
-
.find( '.filters-container' )
|
1342 |
-
.children( '.clear-selection' )
|
1343 |
-
.remove();
|
1344 |
-
};
|
1345 |
-
|
1346 |
-
// deactivate filter
|
1347 |
-
self.deactivateFilter = function ( $filter, properties, doFilter ) {
|
1348 |
-
const filterType = $filter.data( 'filter-type' ),
|
1349 |
-
$items = $filter.find( '.filter-item' ),
|
1350 |
-
$activeItems = $items.filter( '.active' );
|
1351 |
-
|
1352 |
-
switch ( filterType ) {
|
1353 |
-
case 'tax':
|
1354 |
-
const $dropdown = $filter.find( '.filter-dropdown' ),
|
1355 |
-
taxonomy = $filter.data( 'taxonomy' );
|
1356 |
-
|
1357 |
-
if ( $dropdown.length ) {
|
1358 |
-
if ( ! properties ) {
|
1359 |
-
$dropdown.find( 'option' ).prop( 'selected', false );
|
1360 |
-
} else {
|
1361 |
-
$dropdown.find( 'option' ).each( function () {
|
1362 |
-
const $option = $( this );
|
1363 |
-
|
1364 |
-
if ( $option.val() === properties[ taxonomy ] ) {
|
1365 |
-
$option.prop( 'selected', false );
|
1366 |
-
}
|
1367 |
-
} );
|
1368 |
-
}
|
1369 |
-
|
1370 |
-
$dropdown.change();
|
1371 |
-
} else if ( ! properties ) {
|
1372 |
-
$activeItems.children( 'label' ).children( 'a' ).click();
|
1373 |
-
$activeItems.removeClass( 'active' );
|
1374 |
-
} else {
|
1375 |
-
$activeItems.each( function () {
|
1376 |
-
let $item = $( this ),
|
1377 |
-
$label = $item.children( 'label' ),
|
1378 |
-
$anchor = $item.children( 'a' ),
|
1379 |
-
value;
|
1380 |
-
|
1381 |
-
value = $label.length
|
1382 |
-
? $label.find( ':input' ).val()
|
1383 |
-
: $anchor.data( 'term-slug' );
|
1384 |
-
|
1385 |
-
if ( value?.toString() === properties[ taxonomy ]?.toString() ) {
|
1386 |
-
$item.children( 'label' ).children( 'a' ).click();
|
1387 |
-
$item.removeClass( 'active' );
|
1388 |
-
}
|
1389 |
-
} );
|
1390 |
-
}
|
1391 |
-
break;
|
1392 |
-
case 'price_slider':
|
1393 |
-
const $priceSlider = $filter.find( '.price-slider' );
|
1394 |
-
|
1395 |
-
$filter
|
1396 |
-
.find( '.price-slider-min' )
|
1397 |
-
.val( $priceSlider.data( 'min' ) );
|
1398 |
-
$filter
|
1399 |
-
.find( '.price-slider-max' )
|
1400 |
-
.val( $priceSlider.data( 'max' ) )
|
1401 |
-
.change();
|
1402 |
-
break;
|
1403 |
-
case 'orderby':
|
1404 |
-
$filter.find( 'select' ).val( 'menu_order' );
|
1405 |
-
break;
|
1406 |
-
case 'stock_sale':
|
1407 |
-
if ( ! properties ) {
|
1408 |
-
$filter
|
1409 |
-
.find( '.filter-in-stock' )
|
1410 |
-
.find( ':input' )
|
1411 |
-
.prop( 'checked', false )
|
1412 |
-
.change();
|
1413 |
-
$filter
|
1414 |
-
.find( '.filter-on-sale' )
|
1415 |
-
.find( ':input' )
|
1416 |
-
.prop( 'checked', false )
|
1417 |
-
.change();
|
1418 |
-
|
1419 |
-
$items.removeClass( 'active' );
|
1420 |
-
} else {
|
1421 |
-
if ( properties?.instock_filter ) {
|
1422 |
-
$filter
|
1423 |
-
.find( '.filter-in-stock' )
|
1424 |
-
.find( ':input' )
|
1425 |
-
.prop( 'checked', false )
|
1426 |
-
.change()
|
1427 |
-
.closest( '.filter-item' )
|
1428 |
-
.removeClass( 'active' );
|
1429 |
-
}
|
1430 |
-
|
1431 |
-
if ( properties?.onsale_filter ) {
|
1432 |
-
$filter
|
1433 |
-
.find( '.filter-on-sale' )
|
1434 |
-
.find( ':input' )
|
1435 |
-
.prop( 'checked', false )
|
1436 |
-
.change()
|
1437 |
-
.closest( '.filter-item' )
|
1438 |
-
.removeClass( 'active' );
|
1439 |
-
}
|
1440 |
-
}
|
1441 |
-
break;
|
1442 |
-
case 'review':
|
1443 |
-
$filter.find( '.filter-dropdown' ).val( '' ).change();
|
1444 |
-
break;
|
1445 |
-
default:
|
1446 |
-
$items.removeClass( 'active' );
|
1447 |
-
break;
|
1448 |
-
}
|
1449 |
-
|
1450 |
-
self.activeFilters = false;
|
1451 |
-
|
1452 |
-
if ( doFilter ) {
|
1453 |
-
self.filter();
|
1454 |
-
}
|
1455 |
-
};
|
1456 |
-
|
1457 |
-
// deactivate all filters
|
1458 |
-
self.deactivateAllFilters = function ( doFilter ) {
|
1459 |
-
const $filters = self.getFilters();
|
1460 |
-
|
1461 |
-
$filters.each( function () {
|
1462 |
-
const $filter = $( this );
|
1463 |
-
|
1464 |
-
self.deactivateFilter( $filter );
|
1465 |
-
} );
|
1466 |
-
|
1467 |
-
self.activeFilters = false;
|
1468 |
-
|
1469 |
-
if ( doFilter ) {
|
1470 |
-
self.filter();
|
1471 |
-
}
|
1472 |
-
};
|
1473 |
-
|
1474 |
-
// deactivate filters that matches a specific set of properties
|
1475 |
-
self.deactivateFilterByProperties = function ( properties, doFilter ) {
|
1476 |
-
const $filters = self.getFiltersByProperties( properties );
|
1477 |
-
|
1478 |
-
if ( ! $filters.length ) {
|
1479 |
-
return;
|
1480 |
-
}
|
1481 |
-
|
1482 |
-
$filters.each( function () {
|
1483 |
-
const $filter = $( this );
|
1484 |
-
|
1485 |
-
self.deactivateFilter( $filter, properties, doFilter );
|
1486 |
-
} );
|
1487 |
-
};
|
1488 |
-
|
1489 |
-
// open filters as a modal, when in mobile layout
|
1490 |
-
self.openModal = function () {
|
1491 |
-
if ( ! self.isMobile ) {
|
1492 |
-
return;
|
1493 |
-
}
|
1494 |
-
|
1495 |
-
self._closeAllCollapsables();
|
1496 |
-
|
1497 |
-
$( 'body' )
|
1498 |
-
.css( 'overflow', 'hidden' )
|
1499 |
-
.addClass( 'yith-wcan-preset-modal-open' );
|
1500 |
-
|
1501 |
-
self.$preset.show();
|
1502 |
-
|
1503 |
-
setTimeout( () => {
|
1504 |
-
self.$preset.addClass( 'open' );
|
1505 |
-
}, 100 );
|
1506 |
-
};
|
1507 |
-
|
1508 |
-
// close filters modal, when in mobile layout
|
1509 |
-
self.closeModal = function () {
|
1510 |
-
if ( ! self.isMobile ) {
|
1511 |
-
return;
|
1512 |
-
}
|
1513 |
-
|
1514 |
-
self.$preset.removeClass( 'open' );
|
1515 |
-
|
1516 |
-
setTimeout( () => {
|
1517 |
-
self.$preset.hide();
|
1518 |
-
$( 'body' )
|
1519 |
-
.css( 'overflow', 'auto' )
|
1520 |
-
.removeClass( 'yith-wcan-preset-modal-open' );
|
1521 |
-
}, 300 );
|
1522 |
-
};
|
1523 |
-
|
1524 |
-
// utility that formats the price according to store configuration.
|
1525 |
-
self.formatPrice = function ( price ) {
|
1526 |
-
if ( 'undefined' !== typeof accounting ) {
|
1527 |
-
price = accounting.formatMoney( price, {
|
1528 |
-
symbol: yith_wcan_shortcodes.currency_format.symbol,
|
1529 |
-
decimal: yith_wcan_shortcodes.currency_format.decimal,
|
1530 |
-
thousand: yith_wcan_shortcodes.currency_format.thousand,
|
1531 |
-
precision: 0,
|
1532 |
-
format: yith_wcan_shortcodes.currency_format.format,
|
1533 |
-
} );
|
1534 |
-
}
|
1535 |
-
|
1536 |
-
return price;
|
1537 |
-
};
|
1538 |
-
|
1539 |
-
// utility that merges together sets of filter properties
|
1540 |
-
self.mergeProperties = function ( set1, set2, $filter ) {
|
1541 |
-
// search for common properties
|
1542 |
-
for ( const prop in set2 ) {
|
1543 |
-
if ( ! set2.hasOwnProperty( prop ) ) {
|
1544 |
-
continue;
|
1545 |
-
}
|
1546 |
-
|
1547 |
-
if ( !! set1[ prop ] ) {
|
1548 |
-
switch ( prop ) {
|
1549 |
-
case 'rating_filter':
|
1550 |
-
case 'min_price':
|
1551 |
-
case 'max_price':
|
1552 |
-
case 'onsale_filter':
|
1553 |
-
case 'instock_filter':
|
1554 |
-
case 'orderby':
|
1555 |
-
// just override default value
|
1556 |
-
set1[ prop ] = set2[ prop ];
|
1557 |
-
break;
|
1558 |
-
default:
|
1559 |
-
if ( 0 === prop.indexOf( 'query_type_' ) ) {
|
1560 |
-
// query_type param
|
1561 |
-
set1[ prop ] = set2[ prop ];
|
1562 |
-
} else {
|
1563 |
-
// we're dealing with taxonomy
|
1564 |
-
const isAttr = 0 === prop.indexOf( 'filter_' ),
|
1565 |
-
glue = isAttr ? ',' : '+';
|
1566 |
-
|
1567 |
-
let newValue =
|
1568 |
-
set1[ prop ].replace( ',', glue ) +
|
1569 |
-
glue +
|
1570 |
-
set2[ prop ].replace( ',', glue );
|
1571 |
-
|
1572 |
-
newValue = newValue
|
1573 |
-
.split( glue )
|
1574 |
-
.filter(
|
1575 |
-
( value, index, arr ) =>
|
1576 |
-
arr.indexOf( value ) === index
|
1577 |
-
)
|
1578 |
-
.join( glue );
|
1579 |
-
|
1580 |
-
set1[ prop ] = newValue;
|
1581 |
-
|
1582 |
-
if ( isAttr ) {
|
1583 |
-
const queryTypeParam = prop.replace(
|
1584 |
-
'filter_',
|
1585 |
-
'query_type_'
|
1586 |
-
);
|
1587 |
-
|
1588 |
-
set1[ queryTypeParam ] = 'and';
|
1589 |
-
set2[ queryTypeParam ] = 'and';
|
1590 |
-
}
|
1591 |
-
}
|
1592 |
-
}
|
1593 |
-
|
1594 |
-
delete set2[ prop ];
|
1595 |
-
}
|
1596 |
-
}
|
1597 |
-
|
1598 |
-
$.extend( set1, set2 );
|
1599 |
-
|
1600 |
-
return set1;
|
1601 |
-
};
|
1602 |
-
|
1603 |
-
// let's start the game
|
1604 |
-
self._init();
|
1605 |
-
|
1606 |
-
return self;
|
1607 |
-
}
|
1608 |
-
|
1609 |
-
function YITH_WCAN_Filter_Labels( el, $ ) {
|
1610 |
-
const self = this;
|
1611 |
-
|
1612 |
-
// current label set
|
1613 |
-
self.$label_set = el;
|
1614 |
-
|
1615 |
-
// labels of current set
|
1616 |
-
self.$labels = false;
|
1617 |
-
|
1618 |
-
// init object
|
1619 |
-
self._init = function () {
|
1620 |
-
self._initLabels();
|
1621 |
-
|
1622 |
-
self.$label_set.data( 'filter_labels', self ).addClass( 'enhanced' );
|
1623 |
-
};
|
1624 |
-
|
1625 |
-
// init labels
|
1626 |
-
self._initLabels = function () {
|
1627 |
-
self.getLabels().each( function () {
|
1628 |
-
const $label = $( this );
|
1629 |
-
|
1630 |
-
self._initLabel( $label );
|
1631 |
-
} );
|
1632 |
-
};
|
1633 |
-
|
1634 |
-
// init label
|
1635 |
-
self._initLabel = function ( $label ) {
|
1636 |
-
$label.on( 'click', () => self.disableLabel( $label ) );
|
1637 |
-
};
|
1638 |
-
|
1639 |
-
// get labels
|
1640 |
-
self.getLabels = function () {
|
1641 |
-
if ( false === self.$labels ) {
|
1642 |
-
self.$labels = self.$label_set.find( '.active-filter-label' );
|
1643 |
-
}
|
1644 |
-
|
1645 |
-
return self.$labels;
|
1646 |
-
};
|
1647 |
-
|
1648 |
-
// disable filter
|
1649 |
-
self.disableLabel = function ( $label ) {
|
1650 |
-
const properties = $label.data( 'filters' );
|
1651 |
-
// search for preset
|
1652 |
-
$( '.yith-wcan-filters' ).each( function () {
|
1653 |
-
const preset = $( this ).data( 'preset' );
|
1654 |
-
|
1655 |
-
preset.deactivateFilterByProperties( properties, true );
|
1656 |
-
} );
|
1657 |
-
};
|
1658 |
-
|
1659 |
-
// let's start the game
|
1660 |
-
self._init();
|
1661 |
-
|
1662 |
-
return self;
|
1663 |
-
}
|
1664 |
-
|
1665 |
-
function YITH_WCAN_Reset_Button( el, $ ) {
|
1666 |
-
const self = this;
|
1667 |
-
|
1668 |
-
// current button
|
1669 |
-
self.$reset = el;
|
1670 |
|
1671 |
-
|
1672 |
-
self._init = function () {
|
1673 |
-
self.$reset.on( 'click', function ( ev ) {
|
1674 |
-
ev.preventDefault();
|
1675 |
|
1676 |
-
|
1677 |
-
const preset = $( this ).data( 'preset' );
|
1678 |
|
1679 |
-
|
1680 |
-
} );
|
1681 |
-
} );
|
1682 |
|
1683 |
-
|
1684 |
-
};
|
1685 |
|
1686 |
-
|
1687 |
-
self._init();
|
1688 |
|
1689 |
-
|
1690 |
-
}
|
1691 |
|
1692 |
-
function YITH_WCAN_Modal_Opener( el, $ ) {
|
1693 |
-
const self = this;
|
1694 |
|
1695 |
-
// current button
|
1696 |
-
self.$button = el;
|
1697 |
|
1698 |
-
|
1699 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1700 |
|
1701 |
-
|
1702 |
-
self.$preset = null;
|
1703 |
|
1704 |
-
|
1705 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1706 |
|
1707 |
-
// init object
|
1708 |
-
self._init = function () {
|
1709 |
-
self._initPreset();
|
1710 |
-
self._initResponsive();
|
1711 |
-
self._initActions();
|
1712 |
|
1713 |
-
self.$button.data( 'modalOpener', self ).addClass( 'enhanced' );
|
1714 |
-
};
|
1715 |
|
1716 |
-
// search for related preset
|
1717 |
-
self._initPreset = function () {
|
1718 |
-
let target = self.$button.data( 'target' ),
|
1719 |
-
$target;
|
1720 |
|
1721 |
-
|
1722 |
-
|
1723 |
-
|
1724 |
-
|
1725 |
-
|
1726 |
-
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
1730 |
-
|
1731 |
-
|
1732 |
-
|
1733 |
-
|
1734 |
-
|
1735 |
-
// init responsive
|
1736 |
-
self._initResponsive = function () {
|
1737 |
-
if ( ! yith_wcan_shortcodes.modal_on_mobile ) {
|
1738 |
-
self.$button.hide();
|
1739 |
-
return;
|
1740 |
-
}
|
1741 |
-
|
1742 |
-
const media = window.matchMedia(
|
1743 |
-
`(max-width: ${ yith_wcan_shortcodes.mobile_media_query }px)`
|
1744 |
-
);
|
1745 |
-
|
1746 |
-
$( window )
|
1747 |
-
.on( 'resize', function () {
|
1748 |
-
const isMobile = !! media.matches;
|
1749 |
-
|
1750 |
-
if ( isMobile !== self.isMobile ) {
|
1751 |
-
self.isMobile = isMobile;
|
1752 |
-
self._afterLayoutChange();
|
1753 |
-
}
|
1754 |
-
} )
|
1755 |
-
.resize();
|
1756 |
-
};
|
1757 |
-
|
1758 |
-
// init actions
|
1759 |
-
self._initActions = function () {
|
1760 |
-
if ( ! self.$preset?.length ) {
|
1761 |
-
return;
|
1762 |
-
}
|
1763 |
-
|
1764 |
-
self.$button.on( 'click', function ( ev ) {
|
1765 |
-
ev.preventDefault();
|
1766 |
-
|
1767 |
-
self.preset.openModal();
|
1768 |
-
} );
|
1769 |
-
};
|
1770 |
-
|
1771 |
-
// hide/show button when needed
|
1772 |
-
self._afterLayoutChange = function () {
|
1773 |
-
self.isMobile ? self.$button.show() : self.$button.hide();
|
1774 |
-
};
|
1775 |
-
|
1776 |
-
// let's start the game
|
1777 |
-
self._init();
|
1778 |
-
|
1779 |
-
return self;
|
1780 |
-
}
|
1781 |
-
|
1782 |
-
function YITH_WCAN_Dropdown( el, $, opts ) {
|
1783 |
-
const self = this;
|
1784 |
-
|
1785 |
-
// current button
|
1786 |
-
self.$origialSelect = el;
|
1787 |
-
|
1788 |
-
// main element
|
1789 |
-
self.$_main = null;
|
1790 |
-
|
1791 |
-
// label element
|
1792 |
-
self.$_label = null;
|
1793 |
-
|
1794 |
-
// dropdown
|
1795 |
-
self.$_dropdown = null;
|
1796 |
-
|
1797 |
-
// search input
|
1798 |
-
self.$_search = null;
|
1799 |
-
|
1800 |
-
// show more link
|
1801 |
-
self.$_showMore = null;
|
1802 |
-
|
1803 |
-
// items list
|
1804 |
-
self.$_items = null;
|
1805 |
-
|
1806 |
-
// current page
|
1807 |
-
self.currentPage = 1;
|
1808 |
-
|
1809 |
-
// options
|
1810 |
-
self.options = {};
|
1811 |
-
|
1812 |
-
// init object
|
1813 |
-
self._init = function () {
|
1814 |
-
if ( ! self.$origialSelect.is( 'select' ) ) {
|
1815 |
-
return;
|
1816 |
-
}
|
1817 |
-
|
1818 |
-
const defaultPerPage = self.$origialSelect.data( 'per_page' ),
|
1819 |
-
defaultOrder = self.$origialSelect.data( 'order' ),
|
1820 |
-
defaultAll = self.$origialSelect.data( 'all-label' ),
|
1821 |
-
defaults = {
|
1822 |
-
showSearch: self.$origialSelect.data( 'show_search' ),
|
1823 |
-
paginate: self.$origialSelect.data( 'paginate' ),
|
1824 |
-
perPage: defaultPerPage ? defaultPerPage : 10,
|
1825 |
-
order: defaultOrder ? defaultOrder : 'ASC',
|
1826 |
-
getElements: null,
|
1827 |
-
labels: {
|
1828 |
-
emptyLabel: defaultAll
|
1829 |
-
? defaultAll
|
1830 |
-
: yith_wcan_shortcodes.labels.empty_option,
|
1831 |
-
searchPlaceholder:
|
1832 |
-
yith_wcan_shortcodes.labels.search_placeholder,
|
1833 |
-
noItemsFound: yith_wcan_shortcodes.labels.no_items,
|
1834 |
-
showMore: yith_wcan_shortcodes.labels.show_more,
|
1835 |
-
},
|
1836 |
-
};
|
1837 |
-
|
1838 |
-
self.options = $.extend( defaults, opts );
|
1839 |
-
|
1840 |
-
self._hideSelect();
|
1841 |
-
self._initTemplate();
|
1842 |
-
self._initActions();
|
1843 |
-
|
1844 |
-
self.$origialSelect.data( 'dropdown', self ).addClass( 'enhanced' );
|
1845 |
-
};
|
1846 |
-
|
1847 |
-
// hide select
|
1848 |
-
self._hideSelect = function () {
|
1849 |
-
self.$origialSelect.hide();
|
1850 |
-
};
|
1851 |
-
|
1852 |
-
// create dropdown
|
1853 |
-
self._initTemplate = function () {
|
1854 |
-
const $mainSpan = $( '<div/>', {
|
1855 |
-
class: 'yith-wcan-dropdown closed',
|
1856 |
-
} ),
|
1857 |
-
$labelSpan = $( '<div/>', {
|
1858 |
-
class: 'dropdown-label',
|
1859 |
-
html: self.getLabel(),
|
1860 |
-
} ),
|
1861 |
-
$dropdownSpan = $( '<div>', {
|
1862 |
-
class: 'dropdown-wrapper',
|
1863 |
-
} ),
|
1864 |
-
$matchingItemsList = $( '<ul/>', {
|
1865 |
-
class: 'matching-items filter-items',
|
1866 |
-
} );
|
1867 |
-
|
1868 |
-
$dropdownSpan.append( $matchingItemsList );
|
1869 |
-
$mainSpan.append( $labelSpan ).append( $dropdownSpan );
|
1870 |
-
|
1871 |
-
if ( self.options.showSearch ) {
|
1872 |
-
self._initSearchTemplate( $dropdownSpan );
|
1873 |
-
}
|
1874 |
-
|
1875 |
-
if ( self.options.paginate ) {
|
1876 |
-
self._initShowMoreTemplate( $dropdownSpan );
|
1877 |
-
}
|
1878 |
-
|
1879 |
-
self.$origialSelect.after( $mainSpan );
|
1880 |
-
self.$_main = $mainSpan;
|
1881 |
-
self.$_label = $labelSpan;
|
1882 |
-
self.$_dropdown = $dropdownSpan;
|
1883 |
-
self.$_items = $matchingItemsList;
|
1884 |
-
};
|
1885 |
-
|
1886 |
-
// create search field
|
1887 |
-
self._initSearchTemplate = function ( $dropdwonSpan ) {
|
1888 |
-
const $container = $( '<div/>', {
|
1889 |
-
class: 'search-field-container',
|
1890 |
-
} ),
|
1891 |
-
$search = $( '<input/>', {
|
1892 |
-
name: 's',
|
1893 |
-
class: 'search-field',
|
1894 |
-
type: 'search',
|
1895 |
-
placeholder: self.options.labels.searchPlaceholder,
|
1896 |
-
} );
|
1897 |
-
|
1898 |
-
$container.append( $search ).prependTo( $dropdwonSpan );
|
1899 |
-
self.$_search = $search;
|
1900 |
-
};
|
1901 |
-
|
1902 |
-
// create showMore field
|
1903 |
-
self._initShowMoreTemplate = function ( $dropdwonSpan ) {
|
1904 |
-
const $showMore = $( '<a/>', {
|
1905 |
-
class: 'show-more',
|
1906 |
-
text: self.options.labels.showMore.replace(
|
1907 |
-
'%d',
|
1908 |
-
self.options.perPage
|
1909 |
-
),
|
1910 |
-
} );
|
1911 |
-
|
1912 |
-
$showMore.on( 'click', self.loadNextPage ).hide();
|
1913 |
-
|
1914 |
-
$dropdwonSpan.append( $showMore );
|
1915 |
-
self.$_showMore = $showMore;
|
1916 |
-
};
|
1917 |
-
|
1918 |
-
// init actions performed over dropdown elements
|
1919 |
-
self._initActions = function () {
|
1920 |
-
// main open event
|
1921 |
-
self.$_main.on( 'click', ( ev ) => {
|
1922 |
-
ev.stopPropagation();
|
1923 |
-
self.toggleDropdown();
|
1924 |
-
} );
|
1925 |
-
self.$_dropdown.on( 'click', ( ev ) => {
|
1926 |
-
ev.stopPropagation();
|
1927 |
-
} );
|
1928 |
-
|
1929 |
-
// search event
|
1930 |
-
self.$_search?.on( 'keyup search', () => {
|
1931 |
-
self._populateItems();
|
1932 |
-
} );
|
1933 |
-
|
1934 |
-
// select event
|
1935 |
-
self.$_items.on( 'change', ':input', function () {
|
1936 |
-
let $li = $( this ).closest( 'li' ),
|
1937 |
-
value = $li.data( 'value' ),
|
1938 |
-
isActive = false;
|
1939 |
-
|
1940 |
-
if (
|
1941 |
-
$li.hasClass( 'disabled' ) &&
|
1942 |
-
! self.isValueSelected( value )
|
1943 |
-
) {
|
1944 |
-
return false;
|
1945 |
-
}
|
1946 |
-
|
1947 |
-
$li.toggleClass( 'active' );
|
1948 |
-
isActive = $li.hasClass( 'active' );
|
1949 |
-
|
1950 |
-
self._changeItemStatus( value, isActive );
|
1951 |
-
} );
|
1952 |
-
self.$_items.on( 'click', 'li:not(.checkbox) a', function ( ev ) {
|
1953 |
-
let $li = $( this ).closest( 'li' ),
|
1954 |
-
value = $li.data( 'value' ),
|
1955 |
-
isActive = false;
|
1956 |
-
|
1957 |
-
ev.preventDefault();
|
1958 |
-
|
1959 |
-
if (
|
1960 |
-
$li.hasClass( 'disabled' ) &&
|
1961 |
-
! self.isValueSelected( value )
|
1962 |
-
) {
|
1963 |
-
return false;
|
1964 |
-
}
|
1965 |
-
|
1966 |
-
$li.toggleClass( 'active' );
|
1967 |
-
isActive = $li.hasClass( 'active' );
|
1968 |
-
|
1969 |
-
if ( isActive ) {
|
1970 |
-
$li.siblings().removeClass( 'active' );
|
1971 |
-
}
|
1972 |
-
|
1973 |
-
self._changeItemStatus( value, isActive );
|
1974 |
-
} );
|
1975 |
-
self.$_items.on( 'click', 'label > a', function ( ev ) {
|
1976 |
-
const input = $( this ).parent().find( ':input' );
|
1977 |
-
|
1978 |
-
ev.preventDefault();
|
1979 |
-
|
1980 |
-
if (
|
1981 |
-
input.is( '[type="radio"]' ) ||
|
1982 |
-
input.is( '[type="checkbox"]' )
|
1983 |
-
) {
|
1984 |
-
input.prop( 'checked', ! input.prop( 'checked' ) );
|
1985 |
-
}
|
1986 |
-
|
1987 |
-
input.change();
|
1988 |
-
} );
|
1989 |
-
|
1990 |
-
// select change
|
1991 |
-
self.$origialSelect.on( 'change', ( ev, selfOriginated ) => {
|
1992 |
-
if ( selfOriginated ) {
|
1993 |
-
return;
|
1994 |
-
}
|
1995 |
-
|
1996 |
-
self.$_items.find( 'li' ).each( function () {
|
1997 |
-
const value = $( this ).data( 'value' );
|
1998 |
-
|
1999 |
-
if ( self.isValueSelected( value ) ) {
|
2000 |
-
self._selectItem( value );
|
2001 |
-
} else {
|
2002 |
-
self._deselectItem( value );
|
2003 |
-
}
|
2004 |
-
} );
|
2005 |
-
|
2006 |
-
self.updateLabel();
|
2007 |
-
} );
|
2008 |
-
|
2009 |
-
// close dropdown on external click
|
2010 |
-
$( document ).on( 'click', self.closeDropdown );
|
2011 |
-
};
|
2012 |
-
|
2013 |
-
// open dropdown
|
2014 |
-
self.openDropdown = function () {
|
2015 |
-
self.$_main.addClass( 'open' ).removeClass( 'closed' );
|
2016 |
-
self._afterDropdownOpen();
|
2017 |
-
};
|
2018 |
-
|
2019 |
-
// close dropdown
|
2020 |
-
self.closeDropdown = function () {
|
2021 |
-
self.$_main.removeClass( 'open' ).addClass( 'closed' );
|
2022 |
-
};
|
2023 |
-
|
2024 |
-
// close other dropdowns
|
2025 |
-
self._closeOtherDropdowns = function () {
|
2026 |
-
const dropdowns = $( document )
|
2027 |
-
.find( 'select.enhanced' )
|
2028 |
-
.filter( function ( i, select ) {
|
2029 |
-
const $el = $( select );
|
2030 |
-
|
2031 |
-
return (
|
2032 |
-
!! $el.data( 'dropdown' ) && ! $el.is( self.$origialSelect )
|
2033 |
-
);
|
2034 |
-
} );
|
2035 |
-
|
2036 |
-
dropdowns.each( function () {
|
2037 |
-
$( this ).data( 'dropdown' ).closeDropdown();
|
2038 |
-
} );
|
2039 |
-
};
|
2040 |
-
|
2041 |
-
// toggle dropdown
|
2042 |
-
self.toggleDropdown = function () {
|
2043 |
-
self.$_main.toggleClass( 'open' ).toggleClass( 'closed' );
|
2044 |
-
|
2045 |
-
if ( self.$_main.hasClass( 'open' ) ) {
|
2046 |
-
self._afterDropdownOpen();
|
2047 |
-
}
|
2048 |
-
};
|
2049 |
-
|
2050 |
-
// perform operations after dropdown is open
|
2051 |
-
self._afterDropdownOpen = function () {
|
2052 |
-
self._closeOtherDropdowns();
|
2053 |
-
|
2054 |
-
if ( self.$_search?.length ) {
|
2055 |
-
self.$_search.val( '' );
|
2056 |
-
}
|
2057 |
-
|
2058 |
-
self._populateItems();
|
2059 |
-
};
|
2060 |
-
|
2061 |
-
// get elements
|
2062 |
-
self.getMatchingElements = function ( search, limit ) {
|
2063 |
-
let matchingElements = [],
|
2064 |
-
$options = self.getOptions(),
|
2065 |
-
promise;
|
2066 |
-
|
2067 |
-
promise = new Promise( ( resolve ) => {
|
2068 |
-
// first of all, search across select option
|
2069 |
-
$options.each( function () {
|
2070 |
-
const t = $( this ),
|
2071 |
-
value = t.val(),
|
2072 |
-
label = t.html(),
|
2073 |
-
regex = new RegExp( '.*' + search + '.*', 'i' ),
|
2074 |
-
show =
|
2075 |
-
! search || regex.test( value ) || regex.test( label );
|
2076 |
-
|
2077 |
-
if ( show ) {
|
2078 |
-
matchingElements.push( {
|
2079 |
-
value,
|
2080 |
-
label,
|
2081 |
-
} );
|
2082 |
-
}
|
2083 |
-
} );
|
2084 |
-
|
2085 |
-
// then retrieve additional items
|
2086 |
-
if ( self.options.getElements ) {
|
2087 |
-
// we're expecting key => value pairs
|
2088 |
-
self.options
|
2089 |
-
.getElements( search )
|
2090 |
-
.then( ( retrievedElements ) => {
|
2091 |
-
if ( retrievedElements ) {
|
2092 |
-
// reformat retrieved array
|
2093 |
-
retrievedElements = retrievedElements.reduce(
|
2094 |
-
( a, v, i ) => {
|
2095 |
-
a.push( { label: i, value: v } );
|
2096 |
-
return a;
|
2097 |
-
},
|
2098 |
-
[]
|
2099 |
-
);
|
2100 |
-
|
2101 |
-
// merge found results with options
|
2102 |
-
matchingElements = $.extend(
|
2103 |
-
matchingElements,
|
2104 |
-
retrievedElements
|
2105 |
-
);
|
2106 |
-
}
|
2107 |
-
|
2108 |
-
resolve( self._formatItems( matchingElements, limit ) );
|
2109 |
-
} );
|
2110 |
-
} else {
|
2111 |
-
resolve( self._formatItems( matchingElements, limit ) );
|
2112 |
-
}
|
2113 |
-
} );
|
2114 |
-
|
2115 |
-
return promise;
|
2116 |
-
};
|
2117 |
-
|
2118 |
-
// format items as key/value pairs for further processing
|
2119 |
-
self._formatItems = function ( items, limit ) {
|
2120 |
-
let indexes = [],
|
2121 |
-
hasMore = false;
|
2122 |
-
|
2123 |
-
// remove duplicates and sort array of results
|
2124 |
-
items
|
2125 |
-
.filter( ( v ) => {
|
2126 |
-
if ( -1 === indexes.indexOf( v.value ) ) {
|
2127 |
-
indexes.push( v.value );
|
2128 |
-
return true;
|
2129 |
-
}
|
2130 |
-
|
2131 |
-
return false;
|
2132 |
-
} )
|
2133 |
-
.sort( ( a, b ) => {
|
2134 |
-
const order = self.options.order,
|
2135 |
-
mod = order === 'ASC' ? 1 : -1;
|
2136 |
-
|
2137 |
-
if ( a.value < b.value ) {
|
2138 |
-
return -1 * mod;
|
2139 |
-
} else if ( a.value > b.value ) {
|
2140 |
-
return mod;
|
2141 |
-
}
|
2142 |
-
|
2143 |
-
return 0;
|
2144 |
-
} );
|
2145 |
-
|
2146 |
-
// paginate when needed
|
2147 |
-
if ( limit ) {
|
2148 |
-
hasMore = limit < Object.keys( items ).length;
|
2149 |
-
items = items.slice( 0, limit );
|
2150 |
-
}
|
2151 |
-
|
2152 |
-
return {
|
2153 |
-
items,
|
2154 |
-
hasMore,
|
2155 |
-
};
|
2156 |
-
};
|
2157 |
-
|
2158 |
-
// generate item to append to items list
|
2159 |
-
self._generateItem = function ( value, label ) {
|
2160 |
-
let active = self.isValueSelected( value ),
|
2161 |
-
option = self.getOptionByValue( value ),
|
2162 |
-
$item = $( '<li/>', {
|
2163 |
-
'data-value': value,
|
2164 |
-
class: option.length ? option.attr( 'class' ) : '',
|
2165 |
-
} ),
|
2166 |
-
$anchor;
|
2167 |
-
|
2168 |
-
if ( option.length ) {
|
2169 |
-
const template = option.data( 'template' ),
|
2170 |
-
count = option.data( 'count' );
|
2171 |
-
|
2172 |
-
label = template ? template : label;
|
2173 |
-
|
2174 |
-
if ( !! count ) {
|
2175 |
-
label += count;
|
2176 |
-
}
|
2177 |
-
}
|
2178 |
-
|
2179 |
-
$anchor = $( '<a/>', {
|
2180 |
-
href: option.length ? option.data( 'filter_url' ) : '#',
|
2181 |
-
html: label,
|
2182 |
-
'data-title': option.length ? option.data( 'title' ) : '',
|
2183 |
-
} );
|
2184 |
-
|
2185 |
-
if ( self.$origialSelect.prop( 'multiple' ) ) {
|
2186 |
-
const $checkbox = $( '<input/>', {
|
2187 |
-
type: 'checkbox',
|
2188 |
-
value,
|
2189 |
-
} ),
|
2190 |
-
$label = $( '<label>' );
|
2191 |
-
|
2192 |
-
$checkbox.prop( 'checked', active );
|
2193 |
-
$label.prepend( $checkbox ).append( $anchor );
|
2194 |
-
$item.append( $label ).addClass( 'checkbox' );
|
2195 |
-
} else {
|
2196 |
-
$item.append( $anchor );
|
2197 |
-
}
|
2198 |
-
|
2199 |
-
active ? $item.addClass( 'active' ) : $item.removeClass( 'active' );
|
2200 |
-
|
2201 |
-
return $item;
|
2202 |
-
};
|
2203 |
-
|
2204 |
-
// populate items list
|
2205 |
-
self._populateItems = function ( page ) {
|
2206 |
-
let search = self.$_search?.length ? self.$_search.val() : '',
|
2207 |
-
perPage = self.options.paginate ? self.options.perPage : 0,
|
2208 |
-
limit;
|
2209 |
-
|
2210 |
-
page = page ? parseInt( page ) : 1;
|
2211 |
-
limit = page * perPage;
|
2212 |
-
|
2213 |
-
self.getMatchingElements( search, limit ).then( function ( resultSet ) {
|
2214 |
-
let matchingItems = resultSet.items,
|
2215 |
-
items = [],
|
2216 |
-
hasMore = false;
|
2217 |
-
|
2218 |
-
// remove all previous items
|
2219 |
-
self._emptyItems();
|
2220 |
-
self._hideLoadMore();
|
2221 |
-
|
2222 |
-
if ( ! matchingItems.length ) {
|
2223 |
-
items.push(
|
2224 |
-
$( '<li/>', { text: self.options.labels.noItemsFound } )
|
2225 |
-
);
|
2226 |
-
|
2227 |
-
self.currentPage = 1;
|
2228 |
-
} else {
|
2229 |
-
for ( const v of matchingItems ) {
|
2230 |
-
if ( v.value === '' ) {
|
2231 |
-
items.unshift( self._generateItem( v.value, v.label ) );
|
2232 |
-
} else {
|
2233 |
-
items.push( self._generateItem( v.value, v.label ) );
|
2234 |
-
}
|
2235 |
-
}
|
2236 |
-
|
2237 |
-
self.currentPage = page;
|
2238 |
-
hasMore = resultSet.hasMore;
|
2239 |
-
}
|
2240 |
-
|
2241 |
-
self.$_items.append( items );
|
2242 |
-
|
2243 |
-
$( document ).trigger( 'yith_wcan_dropdown_updated' );
|
2244 |
-
|
2245 |
-
if ( hasMore ) {
|
2246 |
-
self._showLoadMore();
|
2247 |
-
}
|
2248 |
-
} );
|
2249 |
-
};
|
2250 |
-
|
2251 |
-
// load next page of items
|
2252 |
-
self.loadNextPage = function () {
|
2253 |
-
const page = self.currentPage + 1;
|
2254 |
-
|
2255 |
-
self._populateItems( page );
|
2256 |
-
};
|
2257 |
-
|
2258 |
-
// set an item as active
|
2259 |
-
self._selectItem = function ( value ) {
|
2260 |
-
return self._changeItemStatus( value, true );
|
2261 |
-
};
|
2262 |
-
|
2263 |
-
// disable an item
|
2264 |
-
self._deselectItem = function ( value ) {
|
2265 |
-
return self._changeItemStatus( value, false );
|
2266 |
-
};
|
2267 |
-
|
2268 |
-
// change item status
|
2269 |
-
self._changeItemStatus = function ( value, status ) {
|
2270 |
-
const $option = self.$origialSelect.find(
|
2271 |
-
`option[value="${ value }"]`
|
2272 |
-
);
|
2273 |
-
|
2274 |
-
if ( $option.length ) {
|
2275 |
-
$option.prop( 'selected', status );
|
2276 |
-
|
2277 |
-
self.closeDropdown();
|
2278 |
-
self.updateLabel();
|
2279 |
-
|
2280 |
-
self.$origialSelect.trigger( 'change', [ true ] );
|
2281 |
-
|
2282 |
-
return true;
|
2283 |
-
}
|
2284 |
-
return false;
|
2285 |
-
};
|
2286 |
-
|
2287 |
-
// empty items list
|
2288 |
-
self._emptyItems = function () {
|
2289 |
-
self.$_items.html( '' );
|
2290 |
-
};
|
2291 |
-
|
2292 |
-
// show "Load more" link
|
2293 |
-
self._showLoadMore = function () {
|
2294 |
-
self.$_showMore.show();
|
2295 |
-
};
|
2296 |
-
|
2297 |
-
// hide "Load more" link
|
2298 |
-
self._hideLoadMore = function () {
|
2299 |
-
self.$_showMore.hide();
|
2300 |
-
};
|
2301 |
-
|
2302 |
-
// returns select label
|
2303 |
-
self.getLabel = function () {
|
2304 |
-
return self.hasSelectedValues()
|
2305 |
-
? self.getSelectedLabels().join( ', ' )
|
2306 |
-
: self.options.labels.emptyLabel;
|
2307 |
-
};
|
2308 |
-
|
2309 |
-
// update label to match new selection
|
2310 |
-
self.updateLabel = function () {
|
2311 |
-
const label = self.getLabel();
|
2312 |
-
|
2313 |
-
self.$_label.html( label );
|
2314 |
-
};
|
2315 |
-
|
2316 |
-
// returns select options
|
2317 |
-
self.getOptions = function () {
|
2318 |
-
return self.$origialSelect.find( 'option' );
|
2319 |
-
};
|
2320 |
-
|
2321 |
-
// checks whether select has selected values
|
2322 |
-
self.hasSelectedValues = function () {
|
2323 |
-
return self.getSelectedOptions().length;
|
2324 |
-
};
|
2325 |
-
|
2326 |
-
// checks whether a value is selected
|
2327 |
-
self.isValueSelected = function ( value ) {
|
2328 |
-
const found = self.getSelectedValues().indexOf( value );
|
2329 |
-
|
2330 |
-
return -1 !== found;
|
2331 |
-
};
|
2332 |
-
|
2333 |
-
// retrieve selected options
|
2334 |
-
self.getSelectedOptions = function () {
|
2335 |
-
return self.$origialSelect.find( 'option' ).filter( ':selected' );
|
2336 |
-
};
|
2337 |
-
|
2338 |
-
// retrieves an option node by value
|
2339 |
-
self.getOptionByValue = function ( value ) {
|
2340 |
-
return self.$origialSelect.find( `option[value="${ value }"]` );
|
2341 |
-
};
|
2342 |
-
|
2343 |
-
// retrieve labels for selected options
|
2344 |
-
self.getSelectedLabels = function () {
|
2345 |
-
const labels = [];
|
2346 |
-
|
2347 |
-
self.getSelectedOptions().each( function () {
|
2348 |
-
let $option = $( this ),
|
2349 |
-
template = $option.data( 'template' );
|
2350 |
-
|
2351 |
-
template = template
|
2352 |
-
? template
|
2353 |
-
: $option.html().replace( /\([0-9]*\)/, '' );
|
2354 |
-
|
2355 |
-
labels.push( template );
|
2356 |
-
} );
|
2357 |
-
|
2358 |
-
return labels;
|
2359 |
-
};
|
2360 |
-
|
2361 |
-
// retrieve values for selected options
|
2362 |
-
self.getSelectedValues = function () {
|
2363 |
-
const values = [];
|
2364 |
-
|
2365 |
-
self.getSelectedOptions().each( function () {
|
2366 |
-
values.push( $( this ).val() );
|
2367 |
-
} );
|
2368 |
-
|
2369 |
-
return values;
|
2370 |
-
};
|
2371 |
-
|
2372 |
-
self.destroy = function () {};
|
2373 |
-
|
2374 |
-
// let's start the game
|
2375 |
-
self._init();
|
2376 |
-
|
2377 |
-
return self;
|
2378 |
-
}
|
2379 |
-
|
2380 |
-
jQuery( function ( $ ) {
|
2381 |
-
$( document )
|
2382 |
-
.on(
|
2383 |
-
'yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode',
|
2384 |
-
function () {
|
2385 |
-
$( '.yith-wcan-filters' )
|
2386 |
-
.not( '.enhanced' )
|
2387 |
-
.each( function () {
|
2388 |
-
new YITH_WCAN_Preset( $( this ), $ );
|
2389 |
-
} );
|
2390 |
-
|
2391 |
-
$( '.yith-wcan-active-filters' )
|
2392 |
-
.not( '.enhanced' )
|
2393 |
-
.each( function () {
|
2394 |
-
new YITH_WCAN_Filter_Labels( $( this ), $ );
|
2395 |
-
} );
|
2396 |
-
|
2397 |
-
$( '.yith-wcan-reset-filters' )
|
2398 |
-
.not( '.enhanced' )
|
2399 |
-
.each( function () {
|
2400 |
-
new YITH_WCAN_Reset_Button( $( this ), $ );
|
2401 |
-
} );
|
2402 |
-
|
2403 |
-
$( '.yith-wcan-filters-opener' )
|
2404 |
-
.not( '.enhanced' )
|
2405 |
-
.each( function () {
|
2406 |
-
new YITH_WCAN_Modal_Opener( $( this ), $ );
|
2407 |
-
} );
|
2408 |
-
}
|
2409 |
-
)
|
2410 |
-
.trigger( 'yith_wcan_init_shortcodes' );
|
2411 |
-
|
2412 |
-
globalThis.product_filter = new YITH_WCAN_Filter( $ );
|
2413 |
-
} );
|
1 |
+
/******/ (() => { // webpackBootstrap
|
2 |
+
/******/ "use strict";
|
3 |
+
var __webpack_exports__ = {};
|
4 |
+
|
5 |
+
;// CONCATENATED MODULE: ./assets/js/shortcodes/config.js
|
6 |
+
|
7 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
8 |
+
|
9 |
+
var $ = jQuery; // we can do this as WebPack will compact all together inside a closure.
|
10 |
+
|
11 |
+
|
12 |
+
;// CONCATENATED MODULE: ./assets/js/shortcodes/modules/yith-wcan-filter.js
|
13 |
+
|
14 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
15 |
+
|
16 |
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
17 |
+
|
18 |
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
19 |
+
|
20 |
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
21 |
+
|
22 |
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
23 |
+
|
24 |
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
25 |
+
|
26 |
+
|
27 |
+
|
28 |
+
var YITH_WCAN_Filter = /*#__PURE__*/function () {
|
29 |
+
// currently executing xhr
|
30 |
+
// flag set during ajax call handling
|
31 |
+
// register original url search param
|
32 |
+
// flag set once init has executed
|
33 |
+
// init object
|
34 |
+
function YITH_WCAN_Filter() {
|
35 |
+
_classCallCheck(this, YITH_WCAN_Filter);
|
36 |
+
|
37 |
+
_defineProperty(this, "xhr", null);
|
38 |
+
|
39 |
+
_defineProperty(this, "doingAjax", false);
|
40 |
+
|
41 |
+
_defineProperty(this, "originalSearch", location.search);
|
42 |
+
|
43 |
+
_defineProperty(this, "initialized", false);
|
44 |
+
|
45 |
+
var head = $('head').html(),
|
46 |
+
pageTitle = document.title,
|
47 |
+
alternativeUrl = this.searchAlternativeUrl(head);
|
48 |
+
alternativeUrl && !this.doingAjax && !this.initialized && !yith_wcan_shortcodes.ajax_filters && this.pushUrlToHistory(alternativeUrl, pageTitle);
|
49 |
+
this.initialized = true;
|
50 |
+
} // execute call to filter products in current view
|
51 |
+
|
52 |
+
|
53 |
+
_createClass(YITH_WCAN_Filter, [{
|
54 |
+
key: "doFilter",
|
55 |
+
value: function doFilter(filters, target, preset) {
|
56 |
+
var _this = this;
|
57 |
+
|
58 |
+
var targetUrl,
|
59 |
+
$target = target ? $(target) : $('body'),
|
60 |
+
customFilters; // filter properties
|
61 |
+
|
62 |
+
customFilters = $(document).triggerHandler('yith_wcan_filters_parameters', [filters]);
|
63 |
+
|
64 |
+
if (!!customFilters) {
|
65 |
+
filters = customFilters;
|
66 |
+
} // block elements before filtering
|
67 |
+
|
68 |
+
|
69 |
+
$target && this.block($target); // calculate target url
|
70 |
+
|
71 |
+
targetUrl = this.buildUrl(filters); // if no ajax, simply change page url
|
72 |
+
|
73 |
+
if (!yith_wcan_shortcodes.ajax_filters) {
|
74 |
+
window.location = targetUrl;
|
75 |
+
return;
|
76 |
+
} // start doing ajax
|
77 |
+
|
78 |
+
|
79 |
+
this.doingAjax = true;
|
80 |
+
return this._doAjax(targetUrl).done(function (response) {
|
81 |
+
targetUrl = _this.searchAlternativeUrl(response, targetUrl);
|
82 |
+
|
83 |
+
_this._beforeFilter(response, filters);
|
84 |
+
|
85 |
+
_this.refreshFragments(target, preset, response);
|
86 |
+
|
87 |
+
_this.pushUrlToHistory(targetUrl, response.pageTitle);
|
88 |
+
|
89 |
+
$target && _this.unblock($target);
|
90 |
+
|
91 |
+
_this._afterFilter(response, filters);
|
92 |
+
|
93 |
+
_this.doingAjax = false;
|
94 |
+
});
|
95 |
+
} // actions performed before filter
|
96 |
+
|
97 |
+
}, {
|
98 |
+
key: "_beforeFilter",
|
99 |
+
value: function _beforeFilter(response, filters) {
|
100 |
+
$(document).trigger('yith-wcan-ajax-loading', [response, filters]);
|
101 |
+
} // actions performed after filter
|
102 |
+
|
103 |
+
}, {
|
104 |
+
key: "_afterFilter",
|
105 |
+
value: function _afterFilter(response, filters) {
|
106 |
+
$('.woocommerce-ordering').on('change', 'select.orderby', function () {
|
107 |
+
$(this).closest('form').submit();
|
108 |
+
});
|
109 |
+
$(window).trigger('scroll');
|
110 |
+
$(document).trigger('yith-wcan-ajax-filtered', [response, filters]).trigger('yith_wcwl_reload_fragments');
|
111 |
+
} // build url to show
|
112 |
+
|
113 |
+
}, {
|
114 |
+
key: "buildUrl",
|
115 |
+
value: function buildUrl(filters) {
|
116 |
+
var _this2 = this;
|
117 |
+
|
118 |
+
var queryParam = yith_wcan_shortcodes.query_param,
|
119 |
+
params = {},
|
120 |
+
location = window.location,
|
121 |
+
url = !!yith_wcan_shortcodes.base_url ? yith_wcan_shortcodes.base_url : (location === null || location === void 0 ? void 0 : location.origin) + (location === null || location === void 0 ? void 0 : location.pathname),
|
122 |
+
search = '',
|
123 |
+
self = this;
|
124 |
+
var haveFilters = _typeof(filters) === 'object' && Object.keys(filters).length; // remove filter session from current url, if any
|
125 |
+
|
126 |
+
if (!!yith_wcan_shortcodes.session_param) {
|
127 |
+
url = url.replace(new RegExp('/' + yith_wcan_shortcodes.session_param + '/[^/]*/'), '');
|
128 |
+
}
|
129 |
+
|
130 |
+
if (haveFilters) {
|
131 |
+
params[queryParam] = 1;
|
132 |
+
}
|
133 |
+
|
134 |
+
if (!!this.originalSearch) {
|
135 |
+
var searchParams = this.originalSearch.replace('?', '').split('&').reduce(function (a, v) {
|
136 |
+
var items = v.split('=');
|
137 |
+
|
138 |
+
if (items.length === 2) {
|
139 |
+
if (_this2.isFilterParam(items[0])) {
|
140 |
+
return a;
|
141 |
+
}
|
142 |
+
|
143 |
+
a[items[0]] = items[1];
|
144 |
+
}
|
145 |
+
|
146 |
+
return a;
|
147 |
+
}, {});
|
148 |
+
params = $.extend(params, searchParams);
|
149 |
+
}
|
150 |
+
|
151 |
+
if (haveFilters) {
|
152 |
+
params = $.extend(params, filters);
|
153 |
+
}
|
154 |
+
|
155 |
+
search = Object.keys(params).reduce(function (a, i) {
|
156 |
+
var v = params[i];
|
157 |
+
|
158 |
+
if (!v || !i) {
|
159 |
+
return a;
|
160 |
+
}
|
161 |
+
|
162 |
+
a += self._cleanParam(i) + '=' + self._cleanParam(v) + '&';
|
163 |
+
return a;
|
164 |
+
}, '?').replace(/&$/g, '').replace(/%2B/g, '+').replace(/%2C/g, ',');
|
165 |
+
|
166 |
+
if (search.length > 1) {
|
167 |
+
url += search;
|
168 |
+
}
|
169 |
+
|
170 |
+
return url;
|
171 |
+
} // retrieves alternative sharing url in response body
|
172 |
+
|
173 |
+
}, {
|
174 |
+
key: "searchAlternativeUrl",
|
175 |
+
value: function searchAlternativeUrl(response) {
|
176 |
+
var defaultUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
177 |
+
var url = defaultUrl,
|
178 |
+
matches;
|
179 |
+
|
180 |
+
if (-1 === response.indexOf('yith_wcan:sharing_url')) {
|
181 |
+
return url;
|
182 |
+
}
|
183 |
+
|
184 |
+
matches = response.match(/<meta name="yith_wcan:sharing_url" content="([^"]*)">/);
|
185 |
+
url = matches && 1 in matches ? matches[1] : url;
|
186 |
+
return url;
|
187 |
+
} // push url to browser history
|
188 |
+
|
189 |
+
}, {
|
190 |
+
key: "pushUrlToHistory",
|
191 |
+
value: function pushUrlToHistory(url, title) {
|
192 |
+
if (!yith_wcan_shortcodes.change_browser_url || navigator.userAgent.match(/msie/i)) {
|
193 |
+
return;
|
194 |
+
}
|
195 |
+
|
196 |
+
window.history.pushState({
|
197 |
+
pageTitle: title
|
198 |
+
}, '', url);
|
199 |
+
} // replaces elements in the page with refreshed ones
|
200 |
+
|
201 |
+
}, {
|
202 |
+
key: "refreshFragments",
|
203 |
+
value: function refreshFragments(target, preset, response) {
|
204 |
+
var responseDom = document.createElement('html'),
|
205 |
+
$response = $(responseDom);
|
206 |
+
responseDom.innerHTML = response;
|
207 |
+
|
208 |
+
if (target) {
|
209 |
+
var $preset = $(preset),
|
210 |
+
$target = $(target),
|
211 |
+
$destination;
|
212 |
+
|
213 |
+
if ($preset.length) {
|
214 |
+
$destination = $response.find(preset);
|
215 |
+
|
216 |
+
if ($destination.length) {
|
217 |
+
$preset.replaceWith($destination.first());
|
218 |
+
}
|
219 |
+
}
|
220 |
+
|
221 |
+
if ($target.length) {
|
222 |
+
$destination = $response.find(target);
|
223 |
+
|
224 |
+
if ($destination.length) {
|
225 |
+
$target.replaceWith($destination.first());
|
226 |
+
}
|
227 |
+
}
|
228 |
+
} else {
|
229 |
+
var content = $(yith_wcan_shortcodes.content);
|
230 |
+
|
231 |
+
if (content.length) {
|
232 |
+
content.replaceWith($response.find(yith_wcan_shortcodes.content));
|
233 |
+
} else {
|
234 |
+
$('body').replaceWith($response.find('body'));
|
235 |
+
}
|
236 |
+
}
|
237 |
+
|
238 |
+
$(document).trigger('yith_wcan_init_shortcodes');
|
239 |
+
} // clean url parameters
|
240 |
+
|
241 |
+
}, {
|
242 |
+
key: "_cleanParam",
|
243 |
+
value: function _cleanParam(param) {
|
244 |
+
var _yith_wcan_shortcodes, _yith_wcan_shortcodes2;
|
245 |
+
|
246 |
+
if (!((_yith_wcan_shortcodes = yith_wcan_shortcodes) !== null && _yith_wcan_shortcodes !== void 0 && _yith_wcan_shortcodes.process_sanitize) || (_yith_wcan_shortcodes2 = yith_wcan_shortcodes) !== null && _yith_wcan_shortcodes2 !== void 0 && _yith_wcan_shortcodes2.skip_sanitize) {
|
247 |
+
return param;
|
248 |
+
}
|
249 |
+
|
250 |
+
return encodeURIComponent(param);
|
251 |
+
} // executes Ajax calls
|
252 |
+
|
253 |
+
}, {
|
254 |
+
key: "_doAjax",
|
255 |
+
value: function _doAjax(url, params) {
|
256 |
+
if (this.xhr) {
|
257 |
+
this.xhr.abort();
|
258 |
+
}
|
259 |
+
|
260 |
+
params = $.extend({
|
261 |
+
url: url
|
262 |
+
}, params);
|
263 |
+
this.xhr = $.ajax(params);
|
264 |
+
return this.xhr;
|
265 |
+
} // block dom elements
|
266 |
+
|
267 |
+
}, {
|
268 |
+
key: "block",
|
269 |
+
value: function block($el) {
|
270 |
+
var _yith_wcan_shortcodes3;
|
271 |
+
|
272 |
+
if (typeof $.fn.block === 'undefined') {
|
273 |
+
return;
|
274 |
+
}
|
275 |
+
|
276 |
+
var background = '#fff center center no-repeat';
|
277 |
+
|
278 |
+
if ((_yith_wcan_shortcodes3 = yith_wcan_shortcodes) !== null && _yith_wcan_shortcodes3 !== void 0 && _yith_wcan_shortcodes3.loader) {
|
279 |
+
background = "url('".concat(yith_wcan_shortcodes.loader, "') ").concat(background);
|
280 |
+
}
|
281 |
+
|
282 |
+
$el.block({
|
283 |
+
message: null,
|
284 |
+
overlayCSS: {
|
285 |
+
background: background,
|
286 |
+
opacity: 0.7
|
287 |
+
}
|
288 |
+
});
|
289 |
+
} // unblock dom elements
|
290 |
+
|
291 |
+
}, {
|
292 |
+
key: "unblock",
|
293 |
+
value: function unblock($el) {
|
294 |
+
if (typeof $.fn.unblock === 'undefined') {
|
295 |
+
return;
|
296 |
+
}
|
297 |
+
|
298 |
+
$el.unblock();
|
299 |
+
} // checks if param is one used by layared nav to filter products.
|
300 |
+
|
301 |
+
}, {
|
302 |
+
key: "isFilterParam",
|
303 |
+
value: function isFilterParam(param) {
|
304 |
+
var supportedParams = ['rating_filter', 'min_price', 'max_price', 'price_ranges', 'onsale_filter', 'instock_filter', 'featured_filter', 'orderby', 'product-page', yith_wcan_shortcodes.query_param].concat(yith_wcan_shortcodes.supported_taxonomies.map(function (i) {
|
305 |
+
return i.replace('pa_', 'filter_');
|
306 |
+
}));
|
307 |
+
|
308 |
+
if (-1 !== supportedParams.indexOf(param)) {
|
309 |
+
return true;
|
310 |
+
}
|
311 |
+
|
312 |
+
if (-1 !== param.indexOf('filter_')) {
|
313 |
+
return true;
|
314 |
+
}
|
315 |
+
|
316 |
+
if (-1 !== param.indexOf('query_type_')) {
|
317 |
+
return true;
|
318 |
+
}
|
319 |
+
|
320 |
+
return false;
|
321 |
+
}
|
322 |
+
}]);
|
323 |
+
|
324 |
+
return YITH_WCAN_Filter;
|
325 |
+
}();
|
326 |
+
|
327 |
+
|
328 |
+
;// CONCATENATED MODULE: ./assets/js/shortcodes/modules/yith-wcan-reset-button.js
|
329 |
|
330 |
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
331 |
|
332 |
+
function yith_wcan_reset_button_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
333 |
|
334 |
+
function yith_wcan_reset_button_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
|
335 |
|
|
|
|
|
336 |
|
|
|
|
|
337 |
|
338 |
+
var YITH_WCAN_Reset_Button = // current button
|
339 |
+
// init object
|
340 |
+
function YITH_WCAN_Reset_Button(el) {
|
341 |
+
yith_wcan_reset_button_classCallCheck(this, YITH_WCAN_Reset_Button);
|
342 |
|
343 |
+
yith_wcan_reset_button_defineProperty(this, "$reset", null);
|
|
|
|
|
|
|
|
|
344 |
|
345 |
+
// current button
|
346 |
+
this.$reset = el;
|
347 |
+
this.$reset.on('click', function (ev) {
|
348 |
+
ev.preventDefault();
|
349 |
+
$('.yith-wcan-filters').each(function () {
|
350 |
+
var preset = $(this).data('preset');
|
351 |
+
preset.deactivateAllFilters(true);
|
352 |
+
preset.closeModal();
|
353 |
+
});
|
354 |
+
});
|
355 |
+
this.$reset.data('reset', this).addClass('enhanced');
|
356 |
+
};
|
357 |
|
|
|
358 |
|
359 |
+
;// CONCATENATED MODULE: ./assets/js/shortcodes/modules/yith-wcan-dropdown.js
|
360 |
+
|
361 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
362 |
+
|
363 |
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
|
365 |
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
|
|
|
|
|
366 |
|
367 |
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
|
368 |
|
369 |
+
function yith_wcan_dropdown_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
|
370 |
|
371 |
+
function yith_wcan_dropdown_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
|
372 |
|
373 |
+
function yith_wcan_dropdown_createClass(Constructor, protoProps, staticProps) { if (protoProps) yith_wcan_dropdown_defineProperties(Constructor.prototype, protoProps); if (staticProps) yith_wcan_dropdown_defineProperties(Constructor, staticProps); return Constructor; }
|
|
|
374 |
|
375 |
+
function yith_wcan_dropdown_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
|
376 |
|
|
|
|
|
377 |
|
|
|
|
|
378 |
|
379 |
+
var YITH_WCAN_Dropdown = /*#__PURE__*/function () {
|
380 |
+
// current button
|
381 |
+
// main element
|
382 |
+
// label element
|
383 |
+
// dropdown
|
384 |
+
// search input
|
385 |
+
// show more link
|
386 |
+
// items list
|
387 |
+
// current page
|
388 |
+
// options
|
389 |
+
// init object
|
390 |
+
function YITH_WCAN_Dropdown(el, opts) {
|
391 |
+
yith_wcan_dropdown_classCallCheck(this, YITH_WCAN_Dropdown);
|
392 |
+
|
393 |
+
yith_wcan_dropdown_defineProperty(this, "$originalSelect", null);
|
394 |
+
|
395 |
+
yith_wcan_dropdown_defineProperty(this, "$_main", null);
|
396 |
+
|
397 |
+
yith_wcan_dropdown_defineProperty(this, "$_label", null);
|
398 |
+
|
399 |
+
yith_wcan_dropdown_defineProperty(this, "$_dropdown", null);
|
400 |
+
|
401 |
+
yith_wcan_dropdown_defineProperty(this, "$_search", null);
|
402 |
+
|
403 |
+
yith_wcan_dropdown_defineProperty(this, "$_showMore", null);
|
404 |
+
|
405 |
+
yith_wcan_dropdown_defineProperty(this, "$_items", null);
|
406 |
+
|
407 |
+
yith_wcan_dropdown_defineProperty(this, "currentPage", 1);
|
408 |
+
|
409 |
+
yith_wcan_dropdown_defineProperty(this, "options", {});
|
410 |
+
|
411 |
+
this.$originalSelect = el;
|
412 |
+
|
413 |
+
if (!this.$originalSelect.is('select')) {
|
414 |
+
return;
|
415 |
+
}
|
416 |
+
|
417 |
+
var defaultPerPage = this.$originalSelect.data('per_page'),
|
418 |
+
defaultOrder = this.$originalSelect.data('order'),
|
419 |
+
defaultAll = this.$originalSelect.data('all-label'),
|
420 |
+
defaults = {
|
421 |
+
showSearch: this.$originalSelect.data('show_search'),
|
422 |
+
paginate: this.$originalSelect.data('paginate'),
|
423 |
+
perPage: defaultPerPage ? defaultPerPage : 10,
|
424 |
+
order: defaultOrder ? defaultOrder : 'ASC',
|
425 |
+
getElements: null,
|
426 |
+
labels: {
|
427 |
+
emptyLabel: defaultAll ? defaultAll : yith_wcan_shortcodes.labels.empty_option,
|
428 |
+
searchPlaceholder: yith_wcan_shortcodes.labels.search_placeholder,
|
429 |
+
noItemsFound: yith_wcan_shortcodes.labels.no_items,
|
430 |
+
showMore: yith_wcan_shortcodes.labels.show_more
|
431 |
+
}
|
432 |
+
};
|
433 |
+
this.options = $.extend(defaults, opts);
|
434 |
+
|
435 |
+
this._hideSelect();
|
436 |
+
|
437 |
+
this._initTemplate();
|
438 |
+
|
439 |
+
this._initActions();
|
440 |
+
|
441 |
+
this.$originalSelect.data('dropdown', this).addClass('enhanced');
|
442 |
+
} // hide select
|
443 |
+
|
444 |
+
|
445 |
+
yith_wcan_dropdown_createClass(YITH_WCAN_Dropdown, [{
|
446 |
+
key: "_hideSelect",
|
447 |
+
value: function _hideSelect() {
|
448 |
+
this.$originalSelect.hide();
|
449 |
+
} // create dropdown
|
450 |
+
|
451 |
+
}, {
|
452 |
+
key: "_initTemplate",
|
453 |
+
value: function _initTemplate() {
|
454 |
+
var $mainSpan = $('<div/>', {
|
455 |
+
"class": 'yith-wcan-dropdown closed'
|
456 |
+
}),
|
457 |
+
$labelSpan = $('<div/>', {
|
458 |
+
"class": 'dropdown-label',
|
459 |
+
html: this.getLabel()
|
460 |
+
}),
|
461 |
+
$dropdownSpan = $('<div>', {
|
462 |
+
"class": 'dropdown-wrapper'
|
463 |
+
}),
|
464 |
+
$matchingItemsList = $('<ul/>', {
|
465 |
+
"class": 'matching-items filter-items'
|
466 |
+
});
|
467 |
+
$dropdownSpan.append($matchingItemsList);
|
468 |
+
$mainSpan.append($labelSpan).append($dropdownSpan);
|
469 |
+
|
470 |
+
if (this.options.showSearch) {
|
471 |
+
this._initSearchTemplate($dropdownSpan);
|
472 |
+
}
|
473 |
+
|
474 |
+
if (this.options.paginate) {
|
475 |
+
this._initShowMoreTemplate($dropdownSpan);
|
476 |
+
}
|
477 |
+
|
478 |
+
this.$originalSelect.after($mainSpan);
|
479 |
+
this.$_main = $mainSpan;
|
480 |
+
this.$_label = $labelSpan;
|
481 |
+
this.$_dropdown = $dropdownSpan;
|
482 |
+
this.$_items = $matchingItemsList;
|
483 |
+
} // create search field
|
484 |
+
|
485 |
+
}, {
|
486 |
+
key: "_initSearchTemplate",
|
487 |
+
value: function _initSearchTemplate($dropdwonSpan) {
|
488 |
+
var $container = $('<div/>', {
|
489 |
+
"class": 'search-field-container'
|
490 |
+
}),
|
491 |
+
$search = $('<input/>', {
|
492 |
+
name: 's',
|
493 |
+
"class": 'search-field',
|
494 |
+
type: 'search',
|
495 |
+
placeholder: this.options.labels.searchPlaceholder
|
496 |
+
});
|
497 |
+
$container.append($search).prependTo($dropdwonSpan);
|
498 |
+
this.$_search = $search;
|
499 |
+
} // create showMore field
|
500 |
+
|
501 |
+
}, {
|
502 |
+
key: "_initShowMoreTemplate",
|
503 |
+
value: function _initShowMoreTemplate($dropdwonSpan) {
|
504 |
+
var $showMore = $('<a/>', {
|
505 |
+
"class": 'show-more',
|
506 |
+
text: this.options.labels.showMore.replace('%d', this.options.perPage)
|
507 |
+
});
|
508 |
+
$showMore.on('click', this.loadNextPage.bind(this)).hide();
|
509 |
+
$dropdwonSpan.append($showMore);
|
510 |
+
this.$_showMore = $showMore;
|
511 |
+
} // init actions performed over dropdown elements
|
512 |
+
|
513 |
+
}, {
|
514 |
+
key: "_initActions",
|
515 |
+
value: function _initActions() {
|
516 |
+
var _this$$_main, _this$$_search;
|
517 |
+
|
518 |
+
var self = this; // main open event
|
519 |
+
|
520 |
+
(_this$$_main = this.$_main) === null || _this$$_main === void 0 ? void 0 : _this$$_main.on('click', function (ev) {
|
521 |
+
ev.stopPropagation();
|
522 |
+
self.toggleDropdown();
|
523 |
+
});
|
524 |
+
this.$_dropdown.on('click', function (ev) {
|
525 |
+
ev.stopPropagation();
|
526 |
+
}); // search event
|
527 |
+
|
528 |
+
(_this$$_search = this.$_search) === null || _this$$_search === void 0 ? void 0 : _this$$_search.on('keyup search', function () {
|
529 |
+
self._populateItems();
|
530 |
+
}); // select event
|
531 |
+
|
532 |
+
this.$_items.on('change', ':input', function () {
|
533 |
+
var $li = $(this).closest('li'),
|
534 |
+
value = $li.data('value'),
|
535 |
+
isActive = false;
|
536 |
+
|
537 |
+
if ($li.hasClass('disabled') && !self.isValueSelected(value)) {
|
538 |
+
return false;
|
539 |
+
}
|
540 |
+
|
541 |
+
$li.toggleClass('active');
|
542 |
+
isActive = $li.hasClass('active');
|
543 |
+
|
544 |
+
self._changeItemStatus(value, isActive);
|
545 |
+
});
|
546 |
+
this.$_items.on('click', 'li:not(.checkbox) a', function (ev) {
|
547 |
+
var $li = $(this).closest('li'),
|
548 |
+
value = $li.data('value'),
|
549 |
+
isActive = false;
|
550 |
+
ev.preventDefault();
|
551 |
+
|
552 |
+
if ($li.hasClass('disabled') && !self.isValueSelected(value)) {
|
553 |
+
return false;
|
554 |
+
}
|
555 |
+
|
556 |
+
$li.toggleClass('active');
|
557 |
+
isActive = $li.hasClass('active');
|
558 |
+
|
559 |
+
if (isActive) {
|
560 |
+
$li.siblings().removeClass('active');
|
561 |
+
}
|
562 |
+
|
563 |
+
self._changeItemStatus(value, isActive);
|
564 |
+
});
|
565 |
+
this.$_items.on('click', 'label > a', function (ev) {
|
566 |
+
var input = $(this).parent().find(':input');
|
567 |
+
ev.preventDefault();
|
568 |
+
|
569 |
+
if (input.is('[type="radio"]') || input.is('[type="checkbox"]')) {
|
570 |
+
input.prop('checked', !input.prop('checked'));
|
571 |
+
}
|
572 |
+
|
573 |
+
input.change();
|
574 |
+
}); // select change
|
575 |
+
|
576 |
+
this.$originalSelect.on('change', function (ev, selfOriginated) {
|
577 |
+
if (selfOriginated) {
|
578 |
+
return;
|
579 |
+
}
|
580 |
+
|
581 |
+
self.$_items.find('li').each(function () {
|
582 |
+
var value = $(this).data('value');
|
583 |
+
|
584 |
+
if (self.isValueSelected(value)) {
|
585 |
+
self._selectItem(value);
|
586 |
+
} else {
|
587 |
+
self._deselectItem(value);
|
588 |
+
}
|
589 |
+
});
|
590 |
+
self.updateLabel();
|
591 |
+
}); // close dropdown on external click
|
592 |
+
|
593 |
+
$(document).on('click', this.closeDropdown.bind(this));
|
594 |
+
} // open dropdown
|
595 |
+
|
596 |
+
}, {
|
597 |
+
key: "openDropdown",
|
598 |
+
value: function openDropdown() {
|
599 |
+
var _this$$_main2;
|
600 |
+
|
601 |
+
(_this$$_main2 = this.$_main) === null || _this$$_main2 === void 0 ? void 0 : _this$$_main2.addClass('open').removeClass('closed');
|
602 |
+
|
603 |
+
this._afterDropdownOpen();
|
604 |
+
} // close dropdown
|
605 |
+
|
606 |
+
}, {
|
607 |
+
key: "closeDropdown",
|
608 |
+
value: function closeDropdown() {
|
609 |
+
var _this$$_main3;
|
610 |
+
|
611 |
+
(_this$$_main3 = this.$_main) === null || _this$$_main3 === void 0 ? void 0 : _this$$_main3.removeClass('open').addClass('closed');
|
612 |
+
} // close other dropdowns
|
613 |
+
|
614 |
+
}, {
|
615 |
+
key: "_closeOtherDropdowns",
|
616 |
+
value: function _closeOtherDropdowns() {
|
617 |
+
var self = this,
|
618 |
+
dropdowns = $(document).find('select.enhanced').filter(function (i, select) {
|
619 |
+
var $el = $(select);
|
620 |
+
return !!$el.data('dropdown') && !$el.is(self.$originalSelect);
|
621 |
+
});
|
622 |
+
dropdowns.each(function () {
|
623 |
+
$(this).data('dropdown').closeDropdown();
|
624 |
+
});
|
625 |
+
} // toggle dropdown
|
626 |
+
|
627 |
+
}, {
|
628 |
+
key: "toggleDropdown",
|
629 |
+
value: function toggleDropdown() {
|
630 |
+
var _this$$_main4, _this$$_main5;
|
631 |
+
|
632 |
+
(_this$$_main4 = this.$_main) === null || _this$$_main4 === void 0 ? void 0 : _this$$_main4.toggleClass('open').toggleClass('closed');
|
633 |
+
|
634 |
+
if ((_this$$_main5 = this.$_main) !== null && _this$$_main5 !== void 0 && _this$$_main5.hasClass('open')) {
|
635 |
+
this._afterDropdownOpen();
|
636 |
+
}
|
637 |
+
} // perform operations after dropdown is open
|
638 |
+
|
639 |
+
}, {
|
640 |
+
key: "_afterDropdownOpen",
|
641 |
+
value: function _afterDropdownOpen() {
|
642 |
+
var _this$$_search2;
|
643 |
+
|
644 |
+
this._closeOtherDropdowns();
|
645 |
+
|
646 |
+
if ((_this$$_search2 = this.$_search) !== null && _this$$_search2 !== void 0 && _this$$_search2.length) {
|
647 |
+
this.$_search.val('');
|
648 |
+
}
|
649 |
+
|
650 |
+
this._populateItems();
|
651 |
+
} // get elements
|
652 |
+
|
653 |
+
}, {
|
654 |
+
key: "getMatchingElements",
|
655 |
+
value: function getMatchingElements(search, limit) {
|
656 |
+
var _this = this;
|
657 |
+
|
658 |
+
var matchingElements = [],
|
659 |
+
$options = this.getOptions(),
|
660 |
+
promise;
|
661 |
+
promise = new Promise(function (resolve) {
|
662 |
+
// first of all, search across select option
|
663 |
+
$options.each(function () {
|
664 |
+
var t = $(this),
|
665 |
+
value = t.val(),
|
666 |
+
label = t.html(),
|
667 |
+
regex = new RegExp('.*' + search + '.*', 'i'),
|
668 |
+
show = !search || regex.test(value) || regex.test(label);
|
669 |
+
|
670 |
+
if (show) {
|
671 |
+
matchingElements.push({
|
672 |
+
value: value,
|
673 |
+
label: label
|
674 |
+
});
|
675 |
+
}
|
676 |
+
}); // then retrieve additional items
|
677 |
+
|
678 |
+
if (_this.options.getElements) {
|
679 |
+
// we're expecting key => value pairs
|
680 |
+
_this.options.getElements(search).then(function (retrievedElements) {
|
681 |
+
if (retrievedElements) {
|
682 |
+
// reformat retrieved array
|
683 |
+
retrievedElements = retrievedElements.reduce(function (a, v, i) {
|
684 |
+
a.push({
|
685 |
+
label: i,
|
686 |
+
value: v
|
687 |
+
});
|
688 |
+
return a;
|
689 |
+
}, []); // merge found results with options
|
690 |
+
|
691 |
+
matchingElements = $.extend(matchingElements, retrievedElements);
|
692 |
+
}
|
693 |
+
|
694 |
+
resolve(_this._formatItems(matchingElements, limit));
|
695 |
+
});
|
696 |
+
} else {
|
697 |
+
resolve(_this._formatItems(matchingElements, limit));
|
698 |
+
}
|
699 |
+
});
|
700 |
+
return promise;
|
701 |
+
} // format items as key/value pairs for further processing
|
702 |
+
|
703 |
+
}, {
|
704 |
+
key: "_formatItems",
|
705 |
+
value: function _formatItems(items, limit) {
|
706 |
+
var _this2 = this;
|
707 |
+
|
708 |
+
var indexes = [],
|
709 |
+
hasMore = false; // remove duplicates and sort array of results
|
710 |
+
|
711 |
+
items.filter(function (v) {
|
712 |
+
if (-1 === indexes.indexOf(v.value)) {
|
713 |
+
indexes.push(v.value);
|
714 |
+
return true;
|
715 |
+
}
|
716 |
+
|
717 |
+
return false;
|
718 |
+
}).sort(function (a, b) {
|
719 |
+
var order = _this2.options.order,
|
720 |
+
mod = order === 'ASC' ? 1 : -1;
|
721 |
+
|
722 |
+
if (a.value < b.value) {
|
723 |
+
return -1 * mod;
|
724 |
+
} else if (a.value > b.value) {
|
725 |
+
return mod;
|
726 |
+
}
|
727 |
+
|
728 |
+
return 0;
|
729 |
+
}); // paginate when needed
|
730 |
+
|
731 |
+
if (limit) {
|
732 |
+
hasMore = limit < Object.keys(items).length;
|
733 |
+
items = items.slice(0, limit);
|
734 |
+
}
|
735 |
+
|
736 |
+
return {
|
737 |
+
items: items,
|
738 |
+
hasMore: hasMore
|
739 |
+
};
|
740 |
+
} // generate item to append to items list
|
741 |
+
|
742 |
+
}, {
|
743 |
+
key: "_generateItem",
|
744 |
+
value: function _generateItem(value, label) {
|
745 |
+
var active = this.isValueSelected(value),
|
746 |
+
option = this.getOptionByValue(value),
|
747 |
+
$item = $('<li/>', {
|
748 |
+
'data-value': value,
|
749 |
+
"class": option.length ? option.attr('class') : ''
|
750 |
+
}),
|
751 |
+
$anchor;
|
752 |
+
|
753 |
+
if (option.length) {
|
754 |
+
var template = option.data('template'),
|
755 |
+
count = option.data('count');
|
756 |
+
label = template ? template : label;
|
757 |
+
|
758 |
+
if (!!count) {
|
759 |
+
label += count;
|
760 |
+
}
|
761 |
+
}
|
762 |
+
|
763 |
+
$anchor = $('<a/>', {
|
764 |
+
href: option.length ? option.data('filter_url') : '#',
|
765 |
+
html: label,
|
766 |
+
'data-title': option.length ? option.data('title') : ''
|
767 |
+
});
|
768 |
+
|
769 |
+
if (this.$originalSelect.prop('multiple')) {
|
770 |
+
var $checkbox = $('<input/>', {
|
771 |
+
type: 'checkbox',
|
772 |
+
value: value
|
773 |
+
}),
|
774 |
+
$label = $('<label>');
|
775 |
+
$checkbox.prop('checked', active);
|
776 |
+
$label.prepend($checkbox).append($anchor);
|
777 |
+
$item.append($label).addClass('checkbox');
|
778 |
+
} else {
|
779 |
+
$item.append($anchor);
|
780 |
+
}
|
781 |
+
|
782 |
+
active ? $item.addClass('active') : $item.removeClass('active');
|
783 |
+
return $item;
|
784 |
+
} // populate items list
|
785 |
+
|
786 |
+
}, {
|
787 |
+
key: "_populateItems",
|
788 |
+
value: function _populateItems(page) {
|
789 |
+
var _this$$_search3,
|
790 |
+
_this3 = this;
|
791 |
+
|
792 |
+
var search = (_this$$_search3 = this.$_search) !== null && _this$$_search3 !== void 0 && _this$$_search3.length ? this.$_search.val() : '',
|
793 |
+
perPage = this.options.paginate ? this.options.perPage : 0,
|
794 |
+
limit;
|
795 |
+
page = page ? parseInt(page) : 1;
|
796 |
+
limit = page * perPage;
|
797 |
+
this.getMatchingElements(search, limit).then(function (resultSet) {
|
798 |
+
var matchingItems = resultSet.items,
|
799 |
+
items = [],
|
800 |
+
hasMore = false; // remove all previous items
|
801 |
+
|
802 |
+
_this3._emptyItems();
|
803 |
+
|
804 |
+
_this3._hideLoadMore();
|
805 |
+
|
806 |
+
if (!matchingItems.length) {
|
807 |
+
items.push($('<li/>', {
|
808 |
+
text: _this3.options.labels.noItemsFound
|
809 |
+
}));
|
810 |
+
_this3.currentPage = 1;
|
811 |
+
} else {
|
812 |
+
var _iterator = _createForOfIteratorHelper(matchingItems),
|
813 |
+
_step;
|
814 |
+
|
815 |
+
try {
|
816 |
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
817 |
+
var v = _step.value;
|
818 |
+
|
819 |
+
if (v.value === '') {
|
820 |
+
items.unshift(_this3._generateItem(v.value, v.label));
|
821 |
+
} else {
|
822 |
+
items.push(_this3._generateItem(v.value, v.label));
|
823 |
+
}
|
824 |
+
}
|
825 |
+
} catch (err) {
|
826 |
+
_iterator.e(err);
|
827 |
+
} finally {
|
828 |
+
_iterator.f();
|
829 |
+
}
|
830 |
+
|
831 |
+
_this3.currentPage = page;
|
832 |
+
hasMore = resultSet.hasMore;
|
833 |
+
}
|
834 |
+
|
835 |
+
_this3.$_items.append(items);
|
836 |
+
|
837 |
+
$(document).trigger('yith_wcan_dropdown_updated');
|
838 |
+
|
839 |
+
if (hasMore) {
|
840 |
+
_this3._showLoadMore();
|
841 |
+
}
|
842 |
+
});
|
843 |
+
} // load next page of items
|
844 |
+
|
845 |
+
}, {
|
846 |
+
key: "loadNextPage",
|
847 |
+
value: function loadNextPage() {
|
848 |
+
var page = this.currentPage + 1;
|
849 |
+
|
850 |
+
this._populateItems(page);
|
851 |
+
} // set an item as active
|
852 |
+
|
853 |
+
}, {
|
854 |
+
key: "_selectItem",
|
855 |
+
value: function _selectItem(value) {
|
856 |
+
return this._changeItemStatus(value, true);
|
857 |
+
} // disable an item
|
858 |
+
|
859 |
+
}, {
|
860 |
+
key: "_deselectItem",
|
861 |
+
value: function _deselectItem(value) {
|
862 |
+
return this._changeItemStatus(value, false);
|
863 |
+
} // change item status
|
864 |
+
|
865 |
+
}, {
|
866 |
+
key: "_changeItemStatus",
|
867 |
+
value: function _changeItemStatus(value, status) {
|
868 |
+
var $option = this.$originalSelect.find("option[value=\"".concat(value, "\"]"));
|
869 |
+
|
870 |
+
if ($option.length) {
|
871 |
+
$option.prop('selected', status);
|
872 |
+
this.closeDropdown();
|
873 |
+
this.updateLabel();
|
874 |
+
this.$originalSelect.trigger('change', [true]);
|
875 |
+
return true;
|
876 |
+
}
|
877 |
+
|
878 |
+
return false;
|
879 |
+
} // empty items list
|
880 |
+
|
881 |
+
}, {
|
882 |
+
key: "_emptyItems",
|
883 |
+
value: function _emptyItems() {
|
884 |
+
this.$_items.html('');
|
885 |
+
} // show "Load more" link
|
886 |
+
|
887 |
+
}, {
|
888 |
+
key: "_showLoadMore",
|
889 |
+
value: function _showLoadMore() {
|
890 |
+
this.$_showMore.show();
|
891 |
+
} // hide "Load more" link
|
892 |
+
|
893 |
+
}, {
|
894 |
+
key: "_hideLoadMore",
|
895 |
+
value: function _hideLoadMore() {
|
896 |
+
this.$_showMore.hide();
|
897 |
+
} // returns select label
|
898 |
+
|
899 |
+
}, {
|
900 |
+
key: "getLabel",
|
901 |
+
value: function getLabel() {
|
902 |
+
return this.hasSelectedValues() ? this.getSelectedLabels().join(', ') : this.options.labels.emptyLabel;
|
903 |
+
} // update label to match new selection
|
904 |
+
|
905 |
+
}, {
|
906 |
+
key: "updateLabel",
|
907 |
+
value: function updateLabel() {
|
908 |
+
var _this$$_label;
|
909 |
+
|
910 |
+
var label = this.getLabel();
|
911 |
+
(_this$$_label = this.$_label) === null || _this$$_label === void 0 ? void 0 : _this$$_label.html(label);
|
912 |
+
} // returns select options
|
913 |
+
|
914 |
+
}, {
|
915 |
+
key: "getOptions",
|
916 |
+
value: function getOptions() {
|
917 |
+
return this.$originalSelect.find('option');
|
918 |
+
} // checks whether select has selected values
|
919 |
+
|
920 |
+
}, {
|
921 |
+
key: "hasSelectedValues",
|
922 |
+
value: function hasSelectedValues() {
|
923 |
+
return this.getSelectedOptions().length;
|
924 |
+
} // checks whether a value is selected
|
925 |
+
|
926 |
+
}, {
|
927 |
+
key: "isValueSelected",
|
928 |
+
value: function isValueSelected(value) {
|
929 |
+
var found = this.getSelectedValues().indexOf(value.toString());
|
930 |
+
return -1 !== found;
|
931 |
+
} // retrieve selected options
|
932 |
+
|
933 |
+
}, {
|
934 |
+
key: "getSelectedOptions",
|
935 |
+
value: function getSelectedOptions() {
|
936 |
+
return this.$originalSelect.find('option').filter(':selected');
|
937 |
+
} // retrieves an option node by value
|
938 |
+
|
939 |
+
}, {
|
940 |
+
key: "getOptionByValue",
|
941 |
+
value: function getOptionByValue(value) {
|
942 |
+
return this.$originalSelect.find("option[value=\"".concat(value, "\"]"));
|
943 |
+
} // retrieve labels for selected options
|
944 |
+
|
945 |
+
}, {
|
946 |
+
key: "getSelectedLabels",
|
947 |
+
value: function getSelectedLabels() {
|
948 |
+
var labels = [];
|
949 |
+
this.getSelectedOptions().each(function () {
|
950 |
+
var $option = $(this),
|
951 |
+
template = $option.data('template');
|
952 |
+
template = template ? template : $option.html().replace(/\([0-9]*\)/, '');
|
953 |
+
labels.push(template);
|
954 |
+
});
|
955 |
+
return labels;
|
956 |
+
} // retrieve values for selected options
|
957 |
+
|
958 |
+
}, {
|
959 |
+
key: "getSelectedValues",
|
960 |
+
value: function getSelectedValues() {
|
961 |
+
var values = [];
|
962 |
+
this.getSelectedOptions().each(function () {
|
963 |
+
values.push($(this).val());
|
964 |
+
});
|
965 |
+
return values;
|
966 |
+
}
|
967 |
+
}, {
|
968 |
+
key: "destroy",
|
969 |
+
value: function destroy() {// TBD
|
970 |
+
}
|
971 |
+
}]);
|
972 |
+
|
973 |
+
return YITH_WCAN_Dropdown;
|
974 |
+
}();
|
975 |
+
|
976 |
+
|
977 |
+
;// CONCATENATED MODULE: ./assets/js/shortcodes/modules/yith-wcan-preset.js
|
978 |
+
|
979 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
980 |
|
981 |
+
function yith_wcan_preset_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { yith_wcan_preset_typeof = function _typeof(obj) { return typeof obj; }; } else { yith_wcan_preset_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return yith_wcan_preset_typeof(obj); }
|
|
|
982 |
|
983 |
+
function yith_wcan_preset_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
984 |
+
|
985 |
+
function yith_wcan_preset_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
986 |
+
|
987 |
+
function yith_wcan_preset_createClass(Constructor, protoProps, staticProps) { if (protoProps) yith_wcan_preset_defineProperties(Constructor.prototype, protoProps); if (staticProps) yith_wcan_preset_defineProperties(Constructor, staticProps); return Constructor; }
|
988 |
+
|
989 |
+
function yith_wcan_preset_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
990 |
+
|
991 |
+
|
992 |
+
|
993 |
+
|
994 |
+
var YITH_WCAN_Preset = /*#__PURE__*/function () {
|
995 |
+
// main preset node
|
996 |
+
// target of the filter, if any
|
997 |
+
// filters node
|
998 |
+
// filter button
|
999 |
+
// nodes created just for modal layout
|
1000 |
+
// retains current status of filters
|
1001 |
+
// mobile flag
|
1002 |
+
// slider timeout
|
1003 |
+
// registers when status has changed
|
1004 |
+
// init object
|
1005 |
+
function YITH_WCAN_Preset(el) {
|
1006 |
+
yith_wcan_preset_classCallCheck(this, YITH_WCAN_Preset);
|
1007 |
+
|
1008 |
+
yith_wcan_preset_defineProperty(this, "preset", false);
|
1009 |
+
|
1010 |
+
yith_wcan_preset_defineProperty(this, "$preset", false);
|
1011 |
+
|
1012 |
+
yith_wcan_preset_defineProperty(this, "target", false);
|
1013 |
+
|
1014 |
+
yith_wcan_preset_defineProperty(this, "$target", false);
|
1015 |
+
|
1016 |
+
yith_wcan_preset_defineProperty(this, "$filters", false);
|
1017 |
+
|
1018 |
+
yith_wcan_preset_defineProperty(this, "$filterButtons", false);
|
1019 |
+
|
1020 |
+
yith_wcan_preset_defineProperty(this, "modalElements", {});
|
1021 |
+
|
1022 |
+
yith_wcan_preset_defineProperty(this, "activeFilters", false);
|
1023 |
+
|
1024 |
+
yith_wcan_preset_defineProperty(this, "isMobile", false);
|
1025 |
+
|
1026 |
+
yith_wcan_preset_defineProperty(this, "sliderTimeout", false);
|
1027 |
+
|
1028 |
+
yith_wcan_preset_defineProperty(this, "originalFilters", null);
|
1029 |
+
|
1030 |
+
yith_wcan_preset_defineProperty(this, "dirty", false);
|
1031 |
+
|
1032 |
+
// main preset node
|
1033 |
+
this.preset = '#' + el.attr('id');
|
1034 |
+
this.$preset = el; // target of the filter, if any
|
1035 |
+
|
1036 |
+
this.target = this.$preset.data('target');
|
1037 |
+
this.$target = this.target ? $(this.target) : false;
|
1038 |
+
|
1039 |
+
this._regiterStatus();
|
1040 |
+
|
1041 |
+
this._initFilterButton();
|
1042 |
+
|
1043 |
+
this._initResponsive();
|
1044 |
+
|
1045 |
+
this._initFilters();
|
1046 |
+
|
1047 |
+
this._initActions();
|
1048 |
+
|
1049 |
+
this.$preset.data('preset', this).addClass('enhanced').trigger('yith_wcan_preset_initialized', [this]);
|
1050 |
+
} // init filters
|
1051 |
+
|
1052 |
+
|
1053 |
+
yith_wcan_preset_createClass(YITH_WCAN_Preset, [{
|
1054 |
+
key: "_initFilters",
|
1055 |
+
value: function _initFilters() {
|
1056 |
+
var self = this;
|
1057 |
+
this.getFilters().each(function () {
|
1058 |
+
var $filter = $(this);
|
1059 |
+
|
1060 |
+
self._initFilter($filter);
|
1061 |
+
});
|
1062 |
+
this.maybeShowClearAllFilters();
|
1063 |
+
} // init filter button
|
1064 |
+
|
1065 |
+
}, {
|
1066 |
+
key: "_initFilterButton",
|
1067 |
+
value: function _initFilterButton() {
|
1068 |
+
var _this = this;
|
1069 |
+
|
1070 |
+
this.$filterButtons = this.$preset.find('.apply-filters');
|
1071 |
+
|
1072 |
+
if (!this.$filterButtons.length) {
|
1073 |
+
return;
|
1074 |
+
} // manage filter button
|
1075 |
+
|
1076 |
+
|
1077 |
+
this.$filterButtons.on('click', function (ev) {
|
1078 |
+
ev.preventDefault();
|
1079 |
+
|
1080 |
+
_this.filter();
|
1081 |
+
}).hide();
|
1082 |
+
} // init generic actions
|
1083 |
+
|
1084 |
+
}, {
|
1085 |
+
key: "_initActions",
|
1086 |
+
value: function _initActions() {
|
1087 |
+
this.$preset.find('form').on('submit', function (ev) {
|
1088 |
+
ev.preventDefault();
|
1089 |
+
});
|
1090 |
+
} // init responsive
|
1091 |
+
|
1092 |
+
}, {
|
1093 |
+
key: "_initResponsive",
|
1094 |
+
value: function _initResponsive() {
|
1095 |
+
var _this2 = this;
|
1096 |
+
|
1097 |
+
if (!yith_wcan_shortcodes.modal_on_mobile) {
|
1098 |
+
return;
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
var media = window.matchMedia("(max-width: ".concat(yith_wcan_shortcodes.mobile_media_query, "px)"));
|
1102 |
+
$(window).on('resize', function () {
|
1103 |
+
var isMobile = !!media.matches;
|
1104 |
+
|
1105 |
+
if (isMobile !== _this2.isMobile) {
|
1106 |
+
_this2.isMobile = isMobile;
|
1107 |
+
|
1108 |
+
_this2._afterLayoutChange();
|
1109 |
+
}
|
1110 |
+
}).resize();
|
1111 |
+
} // init filter
|
1112 |
+
|
1113 |
+
}, {
|
1114 |
+
key: "_initFilter",
|
1115 |
+
value: function _initFilter($filter) {
|
1116 |
+
var _this$$preset;
|
1117 |
+
|
1118 |
+
var self = this,
|
1119 |
+
handleChange = function handleChange(ev) {
|
1120 |
+
var t = $(this),
|
1121 |
+
$currentFilter = t.closest('.yith-wcan-filter'),
|
1122 |
+
multiple = $currentFilter.length ? 'yes' === $currentFilter.data('multiple') : false,
|
1123 |
+
$item = t.closest('.filter-item'),
|
1124 |
+
$items = $item.length ? $currentFilter.find('.filter-item').not($item) : [];
|
1125 |
+
|
1126 |
+
if ($item.is('.disabled') && !$item.is('.active')) {
|
1127 |
+
ev.preventDefault();
|
1128 |
+
return false;
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
ev.preventDefault();
|
1132 |
+
$items.length && !multiple && $items.removeClass('active').children('label').find(':input').prop('checked', false).parent('.checked').removeClass('checked');
|
1133 |
+
$item.length && $item.toggleClass('active'); // reset active filters.
|
1134 |
+
|
1135 |
+
self.activeFilters = false;
|
1136 |
+
self.maybeFilter($filter);
|
1137 |
+
self.maybeToggleClearAllFilters();
|
1138 |
+
self.maybeToggleClearFilter($currentFilter);
|
1139 |
+
}; // handle filter activation/deactivation by click on label (no input involved)
|
1140 |
+
|
1141 |
+
|
1142 |
+
$filter.find('.filter-item').not('.checkbox').not('.radio').on('click', 'a', function (ev) {
|
1143 |
+
var t = $(this),
|
1144 |
+
$item = t.closest('.filter-item');
|
1145 |
+
|
1146 |
+
if (!$(ev === null || ev === void 0 ? void 0 : ev.delegateTarget).is($item)) {
|
1147 |
+
return false;
|
1148 |
+
}
|
1149 |
+
|
1150 |
+
handleChange.call(this, ev);
|
1151 |
+
}); // handle filter activation/deactivation from input change
|
1152 |
+
|
1153 |
+
$filter.find(':input').on('change', function (ev) {
|
1154 |
+
var t = $(this),
|
1155 |
+
$item = t.closest('.filter-item');
|
1156 |
+
|
1157 |
+
if ($item.is('.disabled') && !$item.is('.active')) {
|
1158 |
+
t.prop('checked', false);
|
1159 |
+
return false;
|
1160 |
+
}
|
1161 |
+
|
1162 |
+
handleChange.call(this, ev);
|
1163 |
+
}); // handle filter activation/deactivation by click on label (there is an input whose state can be switched)
|
1164 |
+
|
1165 |
+
$filter.find('label > a').on('click', function (ev) {
|
1166 |
+
var t = $(this),
|
1167 |
+
$item = t.closest('.filter-item');
|
1168 |
+
ev.preventDefault();
|
1169 |
+
|
1170 |
+
if ($item.is('.disabled') && !$item.is('.active')) {
|
1171 |
+
return false;
|
1172 |
+
}
|
1173 |
+
|
1174 |
+
var $input = t.parent().find(':input');
|
1175 |
+
|
1176 |
+
if ($input.is('[type="radio"]') || $input.is('[type="checkbox"]')) {
|
1177 |
+
$input.prop('checked', !$input.prop('checked'));
|
1178 |
+
}
|
1179 |
+
|
1180 |
+
$input.change();
|
1181 |
+
}); // init tooltip
|
1182 |
+
|
1183 |
+
this._initTooltip($filter); // init price slider
|
1184 |
+
|
1185 |
+
|
1186 |
+
this._initPriceSlider($filter); // init dropdown
|
1187 |
+
|
1188 |
+
|
1189 |
+
this._initDropdown($filter); // init collapsable
|
1190 |
+
|
1191 |
+
|
1192 |
+
this._initCollapsable($filter); // init clear anchors
|
1193 |
+
|
1194 |
+
|
1195 |
+
this.maybeShowClearFilter($filter); // init custom inputs
|
1196 |
+
|
1197 |
+
if ((_this$$preset = this.$preset) !== null && _this$$preset !== void 0 && _this$$preset.hasClass('custom-style')) {
|
1198 |
+
this._initCustomInput($filter);
|
1199 |
+
}
|
1200 |
+
} // init tooltip
|
1201 |
+
|
1202 |
+
}, {
|
1203 |
+
key: "_initTooltip",
|
1204 |
+
value: function _initTooltip($filter, position) {
|
1205 |
+
$filter.find('[data-title]').each(function () {
|
1206 |
+
var t = $(this);
|
1207 |
+
|
1208 |
+
if (t.hasClass('tooltip-added') || !t.data('title')) {
|
1209 |
+
return;
|
1210 |
+
}
|
1211 |
+
|
1212 |
+
t.on('mouseenter', function () {
|
1213 |
+
var th = $(this),
|
1214 |
+
tooltip = null,
|
1215 |
+
wrapperWidth = th.outerWidth(),
|
1216 |
+
left = 0,
|
1217 |
+
width = 0;
|
1218 |
+
|
1219 |
+
if (!position || 'top' !== position && 'right' !== position) {
|
1220 |
+
var container = th.closest('.filter-item');
|
1221 |
+
position = container.hasClass('color') || container.hasClass('label') ? 'top' : 'right';
|
1222 |
+
}
|
1223 |
+
|
1224 |
+
tooltip = $('<span>', {
|
1225 |
+
"class": 'yith-wcan-tooltip',
|
1226 |
+
html: th.data('title')
|
1227 |
+
});
|
1228 |
+
th.append(tooltip);
|
1229 |
+
width = tooltip.outerWidth() + 6;
|
1230 |
+
tooltip.outerWidth(width);
|
1231 |
+
|
1232 |
+
if ('top' === position) {
|
1233 |
+
left = (wrapperWidth - width) / 2;
|
1234 |
+
} else {
|
1235 |
+
left = wrapperWidth + 15;
|
1236 |
+
}
|
1237 |
+
|
1238 |
+
tooltip.css({
|
1239 |
+
left: left.toFixed(0) + 'px'
|
1240 |
+
}).fadeIn(200);
|
1241 |
+
th.addClass('with-tooltip');
|
1242 |
+
}).on('mouseleave', function () {
|
1243 |
+
var th = $(this);
|
1244 |
+
th.find('.yith-wcan-tooltip').fadeOut(200, function () {
|
1245 |
+
th.removeClass('with-tooltip').find('.yith-wcan-tooltip').remove();
|
1246 |
+
});
|
1247 |
+
});
|
1248 |
+
t.addClass('tooltip-added');
|
1249 |
+
});
|
1250 |
+
} // init dropdown
|
1251 |
+
|
1252 |
+
}, {
|
1253 |
+
key: "_initDropdown",
|
1254 |
+
value: function _initDropdown($filter) {
|
1255 |
+
var $dropdown = $filter.find('select.filter-dropdown');
|
1256 |
+
|
1257 |
+
if (!$dropdown.length) {
|
1258 |
+
return;
|
1259 |
+
}
|
1260 |
+
|
1261 |
+
if ($dropdown.hasClass('select2-hidden-accessible') && 'undefined' !== typeof $.fn.selectWoo) {
|
1262 |
+
$dropdown.selectWoo('destroy');
|
1263 |
+
}
|
1264 |
+
|
1265 |
+
this._initDropdownObject($dropdown, {
|
1266 |
+
paginate: true,
|
1267 |
+
perPage: yith_wcan_shortcodes.terms_per_page
|
1268 |
+
});
|
1269 |
+
} // init dropdown object
|
1270 |
+
|
1271 |
+
}, {
|
1272 |
+
key: "_initDropdownObject",
|
1273 |
+
value: function _initDropdownObject($dropdown, opts) {
|
1274 |
+
return new YITH_WCAN_Dropdown($dropdown, opts);
|
1275 |
+
} // init price slider
|
1276 |
+
|
1277 |
+
}, {
|
1278 |
+
key: "_initPriceSlider",
|
1279 |
+
value: function _initPriceSlider($filter) {
|
1280 |
+
var _this3 = this;
|
1281 |
+
|
1282 |
+
if (!$filter.hasClass('filter-price-slider')) {
|
1283 |
+
return;
|
1284 |
+
}
|
1285 |
+
|
1286 |
+
var self = this,
|
1287 |
+
$container = $filter.find('.price-slider'),
|
1288 |
+
$minInput = $container.find('.price-slider-min'),
|
1289 |
+
$maxInput = $container.find('.price-slider-max'),
|
1290 |
+
min = parseFloat($container.data('min')),
|
1291 |
+
max = parseFloat($container.data('max')),
|
1292 |
+
currentMin = parseFloat($minInput.val()),
|
1293 |
+
currentMax = parseFloat($maxInput.val()),
|
1294 |
+
step = parseFloat($container.data('step')),
|
1295 |
+
handleSliderChange = function handleSliderChange() {
|
1296 |
+
if (self.sliderTimeout) {
|
1297 |
+
clearTimeout(self.sliderTimeout);
|
1298 |
+
}
|
1299 |
+
|
1300 |
+
self.sliderTimeout = setTimeout(function () {
|
1301 |
+
self.maybeFilter($filter);
|
1302 |
+
}, 200);
|
1303 |
+
};
|
1304 |
+
|
1305 |
+
$filter.find('.price-slider-ui').ionRangeSlider({
|
1306 |
+
skin: 'round',
|
1307 |
+
type: 'double',
|
1308 |
+
min: min,
|
1309 |
+
max: max,
|
1310 |
+
step: step,
|
1311 |
+
from: currentMin,
|
1312 |
+
to: currentMax,
|
1313 |
+
min_interval: step,
|
1314 |
+
values_separator: ' - ',
|
1315 |
+
prettify: function prettify(v) {
|
1316 |
+
return _this3.formatPrice(v);
|
1317 |
+
},
|
1318 |
+
onChange: function onChange(data) {
|
1319 |
+
$minInput.val(data.from);
|
1320 |
+
$maxInput.val(data.to);
|
1321 |
+
},
|
1322 |
+
onFinish: handleSliderChange
|
1323 |
+
});
|
1324 |
+
$minInput.add($maxInput).off('change').on('keyup', function () {
|
1325 |
+
if (!$minInput.val() || !$maxInput.val()) {
|
1326 |
+
return;
|
1327 |
+
}
|
1328 |
+
|
1329 |
+
handleSliderChange();
|
1330 |
+
});
|
1331 |
+
} // init collapsable
|
1332 |
+
|
1333 |
+
}, {
|
1334 |
+
key: "_initCollapsable",
|
1335 |
+
value: function _initCollapsable($filter) {
|
1336 |
+
this._initTitleCollapsable($filter);
|
1337 |
+
|
1338 |
+
this._initHierarchyCollapsable($filter);
|
1339 |
+
} // init toggle on click of the title
|
1340 |
+
|
1341 |
+
}, {
|
1342 |
+
key: "_initTitleCollapsable",
|
1343 |
+
value: function _initTitleCollapsable($filter) {
|
1344 |
+
var $title = $filter.find('.collapsable');
|
1345 |
+
|
1346 |
+
if (!$title.length) {
|
1347 |
+
return;
|
1348 |
+
}
|
1349 |
+
|
1350 |
+
this._initToggle($title, $title, $filter.find('.filter-content'));
|
1351 |
+
} // init toggle on click of the parent li
|
1352 |
+
|
1353 |
+
}, {
|
1354 |
+
key: "_initHierarchyCollapsable",
|
1355 |
+
value: function _initHierarchyCollapsable($filter) {
|
1356 |
+
var $items = $filter.find('.hierarchy-collapsable');
|
1357 |
+
|
1358 |
+
if (!$items.length) {
|
1359 |
+
return;
|
1360 |
+
} // set parents of currently active term as open
|
1361 |
+
|
1362 |
+
|
1363 |
+
var self = this,
|
1364 |
+
active = $filter.find('.active');
|
1365 |
+
|
1366 |
+
if (active.length) {
|
1367 |
+
active.parents('.hierarchy-collapsable').removeClass('closed').addClass('opened');
|
1368 |
+
|
1369 |
+
if (active.hasClass('hierarchy-collapsable') && yith_wcan_shortcodes.show_current_children) {
|
1370 |
+
active.removeClass('closed').addClass('opened');
|
1371 |
+
}
|
1372 |
+
}
|
1373 |
+
|
1374 |
+
$items.each(function () {
|
1375 |
+
var $t = $(this),
|
1376 |
+
$toggle = $('<span/>', {
|
1377 |
+
"class": 'toggle-handle'
|
1378 |
+
});
|
1379 |
+
$toggle.appendTo($t);
|
1380 |
+
|
1381 |
+
self._initToggle($toggle, $t, $t.children('ul.filter-items'));
|
1382 |
+
});
|
1383 |
+
} // init toggle to generic toggle/target pair
|
1384 |
+
|
1385 |
+
}, {
|
1386 |
+
key: "_initToggle",
|
1387 |
+
value: function _initToggle($toggle, $container, $target) {
|
1388 |
+
if ($container.hasClass('closed')) {
|
1389 |
+
$target.hide();
|
1390 |
+
}
|
1391 |
+
|
1392 |
+
$toggle.off('click').on('click', function (ev) {
|
1393 |
+
ev.stopPropagation();
|
1394 |
+
$target.slideToggle(400, function () {
|
1395 |
+
$container.toggleClass('opened').toggleClass('closed');
|
1396 |
+
});
|
1397 |
+
});
|
1398 |
+
} // init custom input
|
1399 |
+
|
1400 |
+
}, {
|
1401 |
+
key: "_initCustomInput",
|
1402 |
+
value: function _initCustomInput($filter) {
|
1403 |
+
$filter.find(':input').each(function () {
|
1404 |
+
var input = $(this),
|
1405 |
+
type = input.attr('type'),
|
1406 |
+
containerClass = "".concat(type, "button"),
|
1407 |
+
container;
|
1408 |
+
|
1409 |
+
if ('checkbox' !== type && 'radio' !== type) {
|
1410 |
+
return;
|
1411 |
+
}
|
1412 |
+
|
1413 |
+
if (input.closest(".".concat(containerClass)).length) {
|
1414 |
+
return;
|
1415 |
+
}
|
1416 |
+
|
1417 |
+
if (input.is(':checked')) {
|
1418 |
+
containerClass += ' checked';
|
1419 |
+
}
|
1420 |
+
|
1421 |
+
container = $('<span/>', {
|
1422 |
+
"class": containerClass
|
1423 |
+
});
|
1424 |
+
input.wrap(container).on('change', function () {
|
1425 |
+
var t = $(this);
|
1426 |
+
t.prop('checked') ? t.parent().addClass('checked') : t.parent().removeClass('checked');
|
1427 |
+
});
|
1428 |
+
});
|
1429 |
+
} // register initial status
|
1430 |
+
|
1431 |
+
}, {
|
1432 |
+
key: "_regiterStatus",
|
1433 |
+
value: function _regiterStatus() {
|
1434 |
+
this.originalFilters = this.getFiltersProperties();
|
1435 |
+
} // trigger handling after layout change
|
1436 |
+
|
1437 |
+
}, {
|
1438 |
+
key: "_afterLayoutChange",
|
1439 |
+
value: function _afterLayoutChange() {
|
1440 |
+
if (this.isMobile) {
|
1441 |
+
var _this$$filterButtons;
|
1442 |
+
|
1443 |
+
this.$preset.addClass('filters-modal').attr('role', 'dialog').attr('tabindex', '-1').hide();
|
1444 |
+
|
1445 |
+
this._addCloseModalButton();
|
1446 |
+
|
1447 |
+
this._addApplyFiltersModalButton();
|
1448 |
+
|
1449 |
+
this._switchToCollapsables();
|
1450 |
+
|
1451 |
+
(_this$$filterButtons = this.$filterButtons) === null || _this$$filterButtons === void 0 ? void 0 : _this$$filterButtons.hide();
|
1452 |
+
} else {
|
1453 |
+
var _this$$filterButtons2;
|
1454 |
+
|
1455 |
+
this.$preset.removeClass('filters-modal').removeClass('open').removeAttr('role').removeAttr('tabindex').show();
|
1456 |
+
$('body').css('overflow', 'auto').removeClass('yith-wcan-preset-modal-open');
|
1457 |
+
|
1458 |
+
this._removeCloseModalButton();
|
1459 |
+
|
1460 |
+
this._removeApplyFiltersModalButton();
|
1461 |
+
|
1462 |
+
this._switchBackCollapsables();
|
1463 |
+
|
1464 |
+
(_this$$filterButtons2 = this.$filterButtons) === null || _this$$filterButtons2 === void 0 ? void 0 : _this$$filterButtons2.show();
|
1465 |
+
}
|
1466 |
+
} // add modal close button
|
1467 |
+
|
1468 |
+
}, {
|
1469 |
+
key: "_addCloseModalButton",
|
1470 |
+
value: function _addCloseModalButton() {
|
1471 |
+
var $closeButton = $('<a/>', {
|
1472 |
+
"class": 'close-button',
|
1473 |
+
html: '×',
|
1474 |
+
'data-dismiss': 'modal',
|
1475 |
+
'aria-label': yith_wcan_shortcodes.labels.close
|
1476 |
+
});
|
1477 |
+
$closeButton.prependTo(this.$preset).on('click', this.closeModal.bind(this));
|
1478 |
+
this.modalElements.closeButton = $closeButton;
|
1479 |
+
} // remove modal close button
|
1480 |
+
|
1481 |
+
}, {
|
1482 |
+
key: "_removeCloseModalButton",
|
1483 |
+
value: function _removeCloseModalButton() {
|
1484 |
+
var _this$modalElements, _this$modalElements$c;
|
1485 |
+
|
1486 |
+
(_this$modalElements = this.modalElements) === null || _this$modalElements === void 0 ? void 0 : (_this$modalElements$c = _this$modalElements.closeButton) === null || _this$modalElements$c === void 0 ? void 0 : _this$modalElements$c.remove();
|
1487 |
+
} // show main filter button for the modal
|
1488 |
+
|
1489 |
+
}, {
|
1490 |
+
key: "_addApplyFiltersModalButton",
|
1491 |
+
value: function _addApplyFiltersModalButton() {
|
1492 |
+
var _this4 = this;
|
1493 |
+
|
1494 |
+
var $filterButton = $('<button/>', {
|
1495 |
+
"class": 'apply-filters main-modal-button',
|
1496 |
+
html: yith_wcan_shortcodes.labels.show_results,
|
1497 |
+
'data-dismiss': 'modal'
|
1498 |
+
});
|
1499 |
+
$filterButton.appendTo(this.$preset).on('click', function () {
|
1500 |
+
_this4.filter();
|
1501 |
+
|
1502 |
+
_this4.closeModal();
|
1503 |
+
});
|
1504 |
+
this.modalElements.applyFiltersButton = $filterButton;
|
1505 |
+
} // hide main filter button for the modal
|
1506 |
+
|
1507 |
+
}, {
|
1508 |
+
key: "_removeApplyFiltersModalButton",
|
1509 |
+
value: function _removeApplyFiltersModalButton() {
|
1510 |
+
var _this$modalElements2, _this$modalElements2$;
|
1511 |
+
|
1512 |
+
(_this$modalElements2 = this.modalElements) === null || _this$modalElements2 === void 0 ? void 0 : (_this$modalElements2$ = _this$modalElements2.applyFiltersButton) === null || _this$modalElements2$ === void 0 ? void 0 : _this$modalElements2$.remove();
|
1513 |
+
} // convert all filters to collapsable
|
1514 |
+
|
1515 |
+
}, {
|
1516 |
+
key: "_switchToCollapsables",
|
1517 |
+
value: function _switchToCollapsables() {
|
1518 |
+
var self = this;
|
1519 |
+
this.getFilters().each(function () {
|
1520 |
+
var $filter = $(this),
|
1521 |
+
$title = $filter.find('.filter-title');
|
1522 |
+
|
1523 |
+
if (!$title.length || $title.hasClass('collapsable')) {
|
1524 |
+
return;
|
1525 |
+
}
|
1526 |
+
|
1527 |
+
$title.addClass('collapsable').data('disable-collapse', true);
|
1528 |
+
|
1529 |
+
self._initTitleCollapsable($filter);
|
1530 |
+
});
|
1531 |
+
} // switch back filters to their previous collapsable state
|
1532 |
+
|
1533 |
+
}, {
|
1534 |
+
key: "_switchBackCollapsables",
|
1535 |
+
value: function _switchBackCollapsables() {
|
1536 |
+
this.getFilters().each(function () {
|
1537 |
+
var $filter = $(this),
|
1538 |
+
$title = $filter.find('.filter-title');
|
1539 |
+
|
1540 |
+
if (!$title.length || !$title.hasClass('collapsable') || !$title.data('disable-collapse')) {
|
1541 |
+
return;
|
1542 |
+
}
|
1543 |
+
|
1544 |
+
$title.removeClass('collapsable').removeData('disable-collapse', true).off('click');
|
1545 |
+
$filter.find('.filter-content').show();
|
1546 |
+
});
|
1547 |
+
} // close all collpasable before showing modal
|
1548 |
+
|
1549 |
+
}, {
|
1550 |
+
key: "_closeAllCollapsables",
|
1551 |
+
value: function _closeAllCollapsables() {
|
1552 |
+
var _this5 = this;
|
1553 |
+
|
1554 |
+
this.$filters.not('.no-title').not(function (i, v) {
|
1555 |
+
return _this5.isFilterActive($(v));
|
1556 |
+
}).find('.filter-content').hide().end().find('.filter-title').addClass('closed').removeClass('opened');
|
1557 |
+
} // update status change flag, if filters have changed
|
1558 |
+
|
1559 |
+
}, {
|
1560 |
+
key: "maybeRegisterStatusChange",
|
1561 |
+
value: function maybeRegisterStatusChange() {
|
1562 |
+
var currentFilters = this.getFiltersProperties(),
|
1563 |
+
currentStr = JSON.stringify(currentFilters),
|
1564 |
+
originalStr = JSON.stringify(this.originalFilters);
|
1565 |
+
this.dirty = currentStr !== originalStr;
|
1566 |
+
} // apply filters when possible
|
1567 |
+
|
1568 |
+
}, {
|
1569 |
+
key: "maybeFilter",
|
1570 |
+
value: function maybeFilter($initiator) {
|
1571 |
+
// register status change
|
1572 |
+
this.maybeRegisterStatusChange(); // filter, or show filter button.
|
1573 |
+
|
1574 |
+
if (yith_wcan_shortcodes.instant_filters && !this.isMobile) {
|
1575 |
+
this.filter();
|
1576 |
+
} else if (!yith_wcan_shortcodes.instant_filters && !this.isMobile) {
|
1577 |
+
var _this$$filterButtons3, _this$$filterButtons4;
|
1578 |
+
|
1579 |
+
this.dirty ? (_this$$filterButtons3 = this.$filterButtons) === null || _this$$filterButtons3 === void 0 ? void 0 : _this$$filterButtons3.show() : (_this$$filterButtons4 = this.$filterButtons) === null || _this$$filterButtons4 === void 0 ? void 0 : _this$$filterButtons4.hide();
|
1580 |
+
} else if (this.isMobile && this.dirty) {
|
1581 |
+
var _this$modalElements$a;
|
1582 |
+
|
1583 |
+
this.$preset.addClass('with-filter-button');
|
1584 |
+
(_this$modalElements$a = this.modalElements.applyFiltersButton) === null || _this$modalElements$a === void 0 ? void 0 : _this$modalElements$a.show();
|
1585 |
+
}
|
1586 |
+
} // main filtering method
|
1587 |
+
|
1588 |
+
}, {
|
1589 |
+
key: "filter",
|
1590 |
+
value: function filter() {
|
1591 |
+
var _window,
|
1592 |
+
_filter$doFilter,
|
1593 |
+
_this6 = this;
|
1594 |
+
|
1595 |
+
var filter = (_window = window) === null || _window === void 0 ? void 0 : _window.product_filter;
|
1596 |
+
filter === null || filter === void 0 ? void 0 : (_filter$doFilter = filter.doFilter(this.getFiltersProperties(), this.target, this.preset)) === null || _filter$doFilter === void 0 ? void 0 : _filter$doFilter.done(function () {
|
1597 |
+
var newPreset = $(_this6.preset);
|
1598 |
+
|
1599 |
+
if (!_this6.isMobile && newPreset.length && yith_wcan_shortcodes.scroll_top) {
|
1600 |
+
var targetOffset = newPreset.offset().top;
|
1601 |
+
|
1602 |
+
if (!!yith_wcan_shortcodes.scroll_target) {
|
1603 |
+
var scrollTarget = $(yith_wcan_shortcodes.scroll_target);
|
1604 |
+
targetOffset = scrollTarget.length ? scrollTarget.offset().top : targetOffset;
|
1605 |
+
}
|
1606 |
+
|
1607 |
+
$('body, html').animate({
|
1608 |
+
scrollTop: targetOffset - 100
|
1609 |
+
});
|
1610 |
+
} // register new filters, clear status flag
|
1611 |
+
|
1612 |
+
|
1613 |
+
_this6.originalFilters = _this6.getFiltersProperties();
|
1614 |
+
_this6.dirty = false;
|
1615 |
+
});
|
1616 |
+
|
1617 |
+
if (this.isMobile) {
|
1618 |
+
var _this$modalElements$a2;
|
1619 |
+
|
1620 |
+
this.$preset.removeClass('with-filter-button');
|
1621 |
+
(_this$modalElements$a2 = this.modalElements.applyFiltersButton) === null || _this$modalElements$a2 === void 0 ? void 0 : _this$modalElements$a2.hide();
|
1622 |
+
}
|
1623 |
+
} // get all filter nodes
|
1624 |
+
|
1625 |
+
}, {
|
1626 |
+
key: "getFilters",
|
1627 |
+
value: function getFilters() {
|
1628 |
+
if (false === this.$filters) {
|
1629 |
+
this.$filters = this.$preset.find('.yith-wcan-filter');
|
1630 |
+
}
|
1631 |
+
|
1632 |
+
return this.$filters;
|
1633 |
+
} // retrieves all filters that we want to apply
|
1634 |
+
|
1635 |
+
}, {
|
1636 |
+
key: "getActiveFilters",
|
1637 |
+
value: function getActiveFilters() {
|
1638 |
+
if (false === this.activeFilters) {
|
1639 |
+
this.activeFilters = this.getFiltersProperties();
|
1640 |
+
}
|
1641 |
+
|
1642 |
+
return this.activeFilters;
|
1643 |
+
} // check whether there is any filter active
|
1644 |
+
|
1645 |
+
}, {
|
1646 |
+
key: "isAnyFilterActive",
|
1647 |
+
value: function isAnyFilterActive() {
|
1648 |
+
return !!Object.keys(this.getActiveFilters()).length;
|
1649 |
+
} // checks whether current filter is active
|
1650 |
+
|
1651 |
+
}, {
|
1652 |
+
key: "isFilterActive",
|
1653 |
+
value: function isFilterActive($filter) {
|
1654 |
+
var filterType = $filter.data('filter-type'),
|
1655 |
+
active,
|
1656 |
+
filteredActive;
|
1657 |
+
|
1658 |
+
switch (filterType) {
|
1659 |
+
case 'tax':
|
1660 |
+
case 'review':
|
1661 |
+
case 'price_range':
|
1662 |
+
var $dropdown = $filter.find('.filter-dropdown');
|
1663 |
+
|
1664 |
+
if ($dropdown.length) {
|
1665 |
+
var val = $dropdown.val();
|
1666 |
+
active = 'object' === yith_wcan_preset_typeof(val) ? !!(val !== null && val !== void 0 && val.length) : !!val;
|
1667 |
+
break;
|
1668 |
+
}
|
1669 |
+
|
1670 |
+
// if we use type other than dropdown, fallthrough
|
1671 |
+
|
1672 |
+
case 'stock_sale':
|
1673 |
+
active = $filter.find('.filter-item').filter('.active').length;
|
1674 |
+
break;
|
1675 |
+
|
1676 |
+
case 'price_slider':
|
1677 |
+
var min = parseFloat($filter.find('.price-slider').data('min')),
|
1678 |
+
max = parseFloat($filter.find('.price-slider').data('max')),
|
1679 |
+
currentMin = parseFloat($filter.find('.price-slider-min').val()),
|
1680 |
+
currentMax = parseFloat($filter.find('.price-slider-max').val());
|
1681 |
+
active = currentMin > min || currentMax < max;
|
1682 |
+
break;
|
1683 |
+
|
1684 |
+
case 'orderby':
|
1685 |
+
active = 'menu_order' !== $filter.find('.filter-order-by').val();
|
1686 |
+
break;
|
1687 |
+
|
1688 |
+
default:
|
1689 |
+
active = false;
|
1690 |
+
break;
|
1691 |
+
}
|
1692 |
+
|
1693 |
+
filteredActive = $filter.triggerHandler('yith_wcan_is_filter_active', [active, this]);
|
1694 |
+
active = typeof filteredActive !== 'undefined' ? filteredActive : active;
|
1695 |
+
return active;
|
1696 |
+
} // count the number of active items per filter
|
1697 |
+
|
1698 |
+
}, {
|
1699 |
+
key: "countActiveItems",
|
1700 |
+
value: function countActiveItems($filter) {
|
1701 |
+
var filterType = $filter.data('filter-type'),
|
1702 |
+
count;
|
1703 |
+
|
1704 |
+
switch (filterType) {
|
1705 |
+
case 'tax':
|
1706 |
+
case 'review':
|
1707 |
+
case 'price_range':
|
1708 |
+
var $dropdown = $filter.find('.filter-dropdown');
|
1709 |
+
|
1710 |
+
if ($dropdown.length) {
|
1711 |
+
var val = $dropdown.val();
|
1712 |
+
count = 'object' === yith_wcan_preset_typeof(val) ? val === null || val === void 0 ? void 0 : val.length : +!!val;
|
1713 |
+
break;
|
1714 |
+
}
|
1715 |
+
|
1716 |
+
// if we use type other than dropdown, fallthrough
|
1717 |
+
|
1718 |
+
case 'stock_sale':
|
1719 |
+
count = $filter.find('.filter-items').find('.active').length;
|
1720 |
+
break;
|
1721 |
+
|
1722 |
+
case 'orderby':
|
1723 |
+
if (this.isFilterActive($filter)) {
|
1724 |
+
count = 1;
|
1725 |
+
}
|
1726 |
+
|
1727 |
+
break;
|
1728 |
+
|
1729 |
+
case 'price_slider':
|
1730 |
+
default:
|
1731 |
+
count = 0;
|
1732 |
+
break;
|
1733 |
+
}
|
1734 |
+
|
1735 |
+
return count;
|
1736 |
+
} // retrieves filter properties for the filter
|
1737 |
+
|
1738 |
+
}, {
|
1739 |
+
key: "getFilterProperties",
|
1740 |
+
value: function getFilterProperties($filter) {
|
1741 |
+
var filterType = $filter.data('filter-type'),
|
1742 |
+
multiple = 'yes' === $filter.data('multiple'),
|
1743 |
+
$dropdown = $filter.find('.filter-dropdown'),
|
1744 |
+
properties = {},
|
1745 |
+
filteredProperties,
|
1746 |
+
$active;
|
1747 |
+
|
1748 |
+
switch (filterType) {
|
1749 |
+
case 'tax':
|
1750 |
+
var activeTerms = [],
|
1751 |
+
taxonomy = $filter.data('taxonomy'),
|
1752 |
+
isAttr = 0 === taxonomy.indexOf('filter'),
|
1753 |
+
relation = $filter.data('relation');
|
1754 |
+
|
1755 |
+
if ($dropdown.length) {
|
1756 |
+
if (multiple) {
|
1757 |
+
activeTerms = $dropdown.val();
|
1758 |
+
} else {
|
1759 |
+
activeTerms.push($dropdown.val());
|
1760 |
+
}
|
1761 |
+
} else {
|
1762 |
+
$active = $filter.find('.filter-item').filter('.active').children('a, label');
|
1763 |
+
activeTerms = $active.get().reduce(function (a, v) {
|
1764 |
+
var val;
|
1765 |
+
v = $(v);
|
1766 |
+
val = v.is('label') ? v.find(':input').val() : v.data('term-slug');
|
1767 |
+
|
1768 |
+
if (!val) {
|
1769 |
+
return a;
|
1770 |
+
}
|
1771 |
+
|
1772 |
+
a.push(val);
|
1773 |
+
return a;
|
1774 |
+
}, activeTerms);
|
1775 |
+
}
|
1776 |
+
|
1777 |
+
if (!multiple) {
|
1778 |
+
properties[taxonomy] = activeTerms.pop();
|
1779 |
+
} else {
|
1780 |
+
var glue = !isAttr && 'and' === relation ? '+' : ',';
|
1781 |
+
properties[taxonomy] = activeTerms.join(glue);
|
1782 |
+
}
|
1783 |
+
|
1784 |
+
if (isAttr) {
|
1785 |
+
properties[taxonomy.replace('filter_', 'query_type_')] = relation;
|
1786 |
+
}
|
1787 |
+
|
1788 |
+
break;
|
1789 |
+
|
1790 |
+
case 'review':
|
1791 |
+
if ($dropdown.length) {
|
1792 |
+
properties.rating_filter = $dropdown.val();
|
1793 |
+
} else {
|
1794 |
+
$active = $filter.find('.filter-item').filter('.active').children('a, label');
|
1795 |
+
|
1796 |
+
if (!multiple) {
|
1797 |
+
$active = $active.first();
|
1798 |
+
properties.rating_filter = $active.is('label') ? $active.find(':input').val() : $active.data('rating');
|
1799 |
+
} else {
|
1800 |
+
properties.rating_filter = $active.get().reduce(function (a, v) {
|
1801 |
+
var val;
|
1802 |
+
v = $(v);
|
1803 |
+
val = v.is('label') ? v.find(':input').val() : v.data('rating');
|
1804 |
+
|
1805 |
+
if (!val) {
|
1806 |
+
return a;
|
1807 |
+
}
|
1808 |
+
|
1809 |
+
a.push(val);
|
1810 |
+
return a;
|
1811 |
+
}, []).join(',');
|
1812 |
+
}
|
1813 |
+
}
|
1814 |
+
|
1815 |
+
break;
|
1816 |
+
|
1817 |
+
case 'price_range':
|
1818 |
+
if ($dropdown.length) {
|
1819 |
+
if (multiple) {
|
1820 |
+
properties.price_ranges = $dropdown.val().join(',');
|
1821 |
+
} else {
|
1822 |
+
properties.min_price = $dropdown.val().split('-')[0];
|
1823 |
+
properties.max_price = $dropdown.val().split('-')[1];
|
1824 |
+
}
|
1825 |
+
} else {
|
1826 |
+
$active = $filter.find('.filter-item').filter('.active').children('a, label');
|
1827 |
+
|
1828 |
+
if (multiple) {
|
1829 |
+
properties.price_ranges = $active.get().reduce(function (a, v) {
|
1830 |
+
var min = $(v).data('range-min'),
|
1831 |
+
max = $(v).data('range-max');
|
1832 |
+
a += (max ? "".concat(min, "-").concat(max) : min) + ',';
|
1833 |
+
return a;
|
1834 |
+
}, '').replace(/^(.*),$/, '$1');
|
1835 |
+
} else {
|
1836 |
+
properties.min_price = parseFloat($active.first().data('range-min'));
|
1837 |
+
properties.max_price = parseFloat($active.first().data('range-max'));
|
1838 |
+
}
|
1839 |
+
}
|
1840 |
+
|
1841 |
+
break;
|
1842 |
+
|
1843 |
+
case 'price_slider':
|
1844 |
+
properties.min_price = parseFloat($filter.find('.price-slider-min').val());
|
1845 |
+
properties.max_price = parseFloat($filter.find('.price-slider-max').val());
|
1846 |
+
break;
|
1847 |
+
|
1848 |
+
case 'stock_sale':
|
1849 |
+
if ($filter.find('.filter-on-sale').is('.active')) {
|
1850 |
+
properties.onsale_filter = 1;
|
1851 |
+
}
|
1852 |
+
|
1853 |
+
if ($filter.find('.filter-in-stock').is('.active')) {
|
1854 |
+
properties.instock_filter = 1;
|
1855 |
+
}
|
1856 |
+
|
1857 |
+
if ($filter.find('.filter-featured').is('.active')) {
|
1858 |
+
properties.featured_filter = 1;
|
1859 |
+
}
|
1860 |
+
|
1861 |
+
break;
|
1862 |
+
|
1863 |
+
case 'orderby':
|
1864 |
+
properties.orderby = $filter.find('.filter-order-by').val();
|
1865 |
+
break;
|
1866 |
+
|
1867 |
+
default:
|
1868 |
+
break;
|
1869 |
+
}
|
1870 |
+
|
1871 |
+
filteredProperties = $filter.triggerHandler('yith_wcan_filter_properties', [properties, self]);
|
1872 |
+
properties = typeof filteredProperties !== 'undefined' ? filteredProperties : properties;
|
1873 |
+
return properties;
|
1874 |
+
} // retrieves properties for all filters of the preset
|
1875 |
+
|
1876 |
+
}, {
|
1877 |
+
key: "getFiltersProperties",
|
1878 |
+
value: function getFiltersProperties() {
|
1879 |
+
var properties = {};
|
1880 |
+
var self = this;
|
1881 |
+
this.getFilters().each(function () {
|
1882 |
+
var $filter = $(this);
|
1883 |
+
|
1884 |
+
if (self.isFilterActive($filter)) {
|
1885 |
+
var filterProperties = self.getFilterProperties($filter);
|
1886 |
+
properties = self.mergeProperties(properties, filterProperties, $filter);
|
1887 |
+
}
|
1888 |
+
});
|
1889 |
+
return properties;
|
1890 |
+
} // retrieve filters matching any of the properties passed
|
1891 |
+
|
1892 |
+
}, {
|
1893 |
+
key: "getFiltersByProperties",
|
1894 |
+
value: function getFiltersByProperties(properties) {
|
1895 |
+
var self = this;
|
1896 |
+
return this.getFilters().filter(function () {
|
1897 |
+
var $filter = $(this);
|
1898 |
+
|
1899 |
+
if (self.isFilterActive($filter)) {
|
1900 |
+
var filterProperties = self.getFilterProperties($filter),
|
1901 |
+
hasProp = false;
|
1902 |
+
|
1903 |
+
for (var prop in properties) {
|
1904 |
+
if (['min_price', 'max_price', 'price_ranges'].includes(prop) && (filterProperties.min_price || filterProperties.price_ranges)) {
|
1905 |
+
hasProp = true;
|
1906 |
+
break;
|
1907 |
+
} else if (filterProperties[prop]) {
|
1908 |
+
hasProp = true;
|
1909 |
+
break;
|
1910 |
+
}
|
1911 |
+
}
|
1912 |
+
|
1913 |
+
return hasProp;
|
1914 |
+
}
|
1915 |
+
|
1916 |
+
return false;
|
1917 |
+
});
|
1918 |
+
} // show clear selection anchor
|
1919 |
+
|
1920 |
+
}, {
|
1921 |
+
key: "maybeToggleClearFilter",
|
1922 |
+
value: function maybeToggleClearFilter($filter) {
|
1923 |
+
if (!this.isFilterActive($filter)) {
|
1924 |
+
this.maybeHideClearFilter($filter);
|
1925 |
+
} else {
|
1926 |
+
this.maybeShowClearFilter($filter);
|
1927 |
+
}
|
1928 |
+
} // show clear all selections anchor
|
1929 |
+
|
1930 |
+
}, {
|
1931 |
+
key: "maybeToggleClearAllFilters",
|
1932 |
+
value: function maybeToggleClearAllFilters() {
|
1933 |
+
if (!this.isAnyFilterActive()) {
|
1934 |
+
this.maybeHideClearAllFilters();
|
1935 |
+
} else {
|
1936 |
+
this.maybeShowClearAllFilters();
|
1937 |
+
}
|
1938 |
+
} // show clear selection anchor
|
1939 |
+
|
1940 |
+
}, {
|
1941 |
+
key: "maybeShowClearFilter",
|
1942 |
+
value: function maybeShowClearFilter($filter) {
|
1943 |
+
var _this7 = this;
|
1944 |
+
|
1945 |
+
if (!this.isFilterActive($filter) || !yith_wcan_shortcodes.show_clear_filter) {
|
1946 |
+
return;
|
1947 |
+
} // remove clear selection link if already added.
|
1948 |
+
|
1949 |
+
|
1950 |
+
$filter.find('.clear-selection').remove(); // add new clear selection link.
|
1951 |
+
|
1952 |
+
$('<a/>', {
|
1953 |
+
"class": 'clear-selection',
|
1954 |
+
text: yith_wcan_shortcodes.labels.clear_selection,
|
1955 |
+
role: 'button'
|
1956 |
+
}).prependTo($filter.find('.filter-content')).on('click', function (ev) {
|
1957 |
+
ev.preventDefault();
|
1958 |
+
|
1959 |
+
_this7.deactivateFilter($filter, false, yith_wcan_shortcodes.instant_filters);
|
1960 |
+
|
1961 |
+
_this7.maybeHideClearFilter($filter);
|
1962 |
+
|
1963 |
+
if (yith_wcan_shortcodes.instant_filters) {
|
1964 |
+
_this7.closeModal();
|
1965 |
+
}
|
1966 |
+
});
|
1967 |
+
} // show clearAll anchor, when on mobile layout
|
1968 |
+
|
1969 |
+
}, {
|
1970 |
+
key: "maybeShowClearAllFilters",
|
1971 |
+
value: function maybeShowClearAllFilters() {
|
1972 |
+
var _this8 = this;
|
1973 |
+
|
1974 |
+
if (!this.isAnyFilterActive() || !this.isMobile) {
|
1975 |
+
return;
|
1976 |
+
} // remove clear selection link if already added.
|
1977 |
+
|
1978 |
+
|
1979 |
+
this.$preset.find('.clear-selection').remove(); // add new clear selection link.
|
1980 |
+
|
1981 |
+
$('<a/>', {
|
1982 |
+
"class": 'clear-selection',
|
1983 |
+
text: yith_wcan_shortcodes.labels.clear_all_selections,
|
1984 |
+
role: 'button'
|
1985 |
+
}).prependTo(this.$preset.find('.filters-container')).on('click', function (ev) {
|
1986 |
+
ev.preventDefault();
|
1987 |
+
|
1988 |
+
_this8.deactivateAllFilters(yith_wcan_shortcodes.instant_filters);
|
1989 |
+
|
1990 |
+
_this8.maybeHideClearAllFilters();
|
1991 |
+
|
1992 |
+
if (yith_wcan_shortcodes.instant_filters) {
|
1993 |
+
_this8.closeModal();
|
1994 |
+
}
|
1995 |
+
});
|
1996 |
+
} // hide clear selection anchor
|
1997 |
+
|
1998 |
+
}, {
|
1999 |
+
key: "maybeHideClearFilter",
|
2000 |
+
value: function maybeHideClearFilter($filter) {
|
2001 |
+
if (this.isFilterActive($filter) || !yith_wcan_shortcodes.show_clear_filter) {
|
2002 |
+
return;
|
2003 |
+
} // remove clear selection link.
|
2004 |
+
|
2005 |
+
|
2006 |
+
$filter.find('.clear-selection').remove();
|
2007 |
+
} // show clearAll anchor, when on mobile layout
|
2008 |
+
|
2009 |
+
}, {
|
2010 |
+
key: "maybeHideClearAllFilters",
|
2011 |
+
value: function maybeHideClearAllFilters() {
|
2012 |
+
if (this.isAnyFilterActive()) {
|
2013 |
+
return;
|
2014 |
+
} // remove clear selection link.
|
2015 |
+
|
2016 |
+
|
2017 |
+
this.$preset.find('.filters-container').children('.clear-selection').remove();
|
2018 |
+
} // deactivate filter
|
2019 |
+
|
2020 |
+
}, {
|
2021 |
+
key: "deactivateFilter",
|
2022 |
+
value: function deactivateFilter($filter, properties, doFilter) {
|
2023 |
+
var filterType = $filter.data('filter-type'),
|
2024 |
+
$items = $filter.find('.filter-item'),
|
2025 |
+
$activeItems = $items.filter('.active'),
|
2026 |
+
$dropdown = $filter.find('.filter-dropdown');
|
2027 |
+
|
2028 |
+
switch (filterType) {
|
2029 |
+
case 'tax':
|
2030 |
+
var taxonomy = $filter.data('taxonomy');
|
2031 |
+
|
2032 |
+
if ($dropdown.length) {
|
2033 |
+
if (!properties) {
|
2034 |
+
$dropdown.find('option').prop('selected', false);
|
2035 |
+
} else {
|
2036 |
+
$dropdown.find('option').each(function () {
|
2037 |
+
var $option = $(this);
|
2038 |
+
|
2039 |
+
if ($option.val() === properties[taxonomy]) {
|
2040 |
+
$option.prop('selected', false);
|
2041 |
+
}
|
2042 |
+
});
|
2043 |
+
}
|
2044 |
+
|
2045 |
+
$dropdown.change();
|
2046 |
+
} else if (!properties) {
|
2047 |
+
$activeItems.children('label').children('a').click();
|
2048 |
+
$activeItems.removeClass('active');
|
2049 |
+
} else {
|
2050 |
+
$activeItems.each(function () {
|
2051 |
+
var $item = $(this),
|
2052 |
+
$label = $item.children('label'),
|
2053 |
+
$anchor = $item.children('a'),
|
2054 |
+
value;
|
2055 |
+
value = $label.length ? $label.find(':input').val() : $anchor.data('term-slug');
|
2056 |
+
|
2057 |
+
if (value === properties[taxonomy]) {
|
2058 |
+
$item.children('label').children('a').click();
|
2059 |
+
$item.removeClass('active');
|
2060 |
+
}
|
2061 |
+
});
|
2062 |
+
}
|
2063 |
+
|
2064 |
+
break;
|
2065 |
+
|
2066 |
+
case 'review':
|
2067 |
+
if ($dropdown.length) {
|
2068 |
+
if (!properties) {
|
2069 |
+
$dropdown.find('option').prop('selected', false);
|
2070 |
+
} else {
|
2071 |
+
$dropdown.find('option').each(function () {
|
2072 |
+
var $option = $(this);
|
2073 |
+
|
2074 |
+
if ($option.val() === properties.rating_filter) {
|
2075 |
+
$option.prop('selected', false);
|
2076 |
+
}
|
2077 |
+
});
|
2078 |
+
}
|
2079 |
+
|
2080 |
+
$dropdown.change();
|
2081 |
+
} else if (!properties) {
|
2082 |
+
$activeItems.children('label').children('a').click();
|
2083 |
+
$activeItems.removeClass('active');
|
2084 |
+
} else {
|
2085 |
+
$activeItems.each(function () {
|
2086 |
+
var $item = $(this),
|
2087 |
+
$label = $item.children('label'),
|
2088 |
+
$anchor = $item.children('a'),
|
2089 |
+
value;
|
2090 |
+
value = $label.length ? $label.find(':input').val() : $anchor.data('rating');
|
2091 |
+
|
2092 |
+
if (value === properties.rating_filter) {
|
2093 |
+
$item.children('label').children('a').click();
|
2094 |
+
$item.removeClass('active');
|
2095 |
+
}
|
2096 |
+
});
|
2097 |
+
}
|
2098 |
+
|
2099 |
+
break;
|
2100 |
+
|
2101 |
+
case 'price_range':
|
2102 |
+
if ($dropdown.length) {
|
2103 |
+
if (!properties) {
|
2104 |
+
$dropdown.find('option').prop('selected', false);
|
2105 |
+
} else {
|
2106 |
+
$dropdown.find('option').each(function () {
|
2107 |
+
var $option = $(this),
|
2108 |
+
formattedRange = properties.min_price + (properties.max_price ? "-".concat(properties.max_price) : '');
|
2109 |
+
|
2110 |
+
if ($option.val() === formattedRange) {
|
2111 |
+
$option.prop('selected', false);
|
2112 |
+
}
|
2113 |
+
});
|
2114 |
+
}
|
2115 |
+
|
2116 |
+
$dropdown.change();
|
2117 |
+
} else if (!properties) {
|
2118 |
+
$activeItems.children('label').children('a').click();
|
2119 |
+
$activeItems.removeClass('active');
|
2120 |
+
} else {
|
2121 |
+
$activeItems.each(function () {
|
2122 |
+
var $item = $(this),
|
2123 |
+
$label = $item.children('label'),
|
2124 |
+
$anchor = $item.children('a'),
|
2125 |
+
formattedRange,
|
2126 |
+
value;
|
2127 |
+
value = $label.length ? $label.find(':input').val() : $anchor.data('min_price') + ($anchor.data('max_price') ? '-' + $anchor.data('max_price') : '');
|
2128 |
+
|
2129 |
+
if (properties.min_price) {
|
2130 |
+
formattedRange = properties.min_price + (properties.max_price ? '-' + properties.max_price : '');
|
2131 |
+
} else if (properties.price_ranges) {
|
2132 |
+
formattedRange = properties.price_ranges;
|
2133 |
+
}
|
2134 |
+
|
2135 |
+
if (value === formattedRange) {
|
2136 |
+
$item.children('label').children('a').click();
|
2137 |
+
$item.removeClass('active');
|
2138 |
+
}
|
2139 |
+
});
|
2140 |
+
}
|
2141 |
+
|
2142 |
+
break;
|
2143 |
+
|
2144 |
+
case 'price_slider':
|
2145 |
+
var $priceSlider = $filter.find('.price-slider');
|
2146 |
+
$filter.find('.price-slider-min').val($priceSlider.data('min'));
|
2147 |
+
$filter.find('.price-slider-max').val($priceSlider.data('max')).change();
|
2148 |
+
break;
|
2149 |
+
|
2150 |
+
case 'orderby':
|
2151 |
+
$filter.find('select').val('menu_order');
|
2152 |
+
break;
|
2153 |
+
|
2154 |
+
case 'stock_sale':
|
2155 |
+
if (!properties) {
|
2156 |
+
$filter.find('.filter-in-stock').find(':input').prop('checked', false).change();
|
2157 |
+
$filter.find('.filter-on-sale').find(':input').prop('checked', false).change();
|
2158 |
+
$filter.find('.filter-featured').find(':input').prop('checked', false).change();
|
2159 |
+
$items.removeClass('active');
|
2160 |
+
} else {
|
2161 |
+
if (properties !== null && properties !== void 0 && properties.instock_filter) {
|
2162 |
+
$filter.find('.filter-in-stock').find(':input').prop('checked', false).change().closest('.filter-item').removeClass('active');
|
2163 |
+
}
|
2164 |
+
|
2165 |
+
if (properties !== null && properties !== void 0 && properties.onsale_filter) {
|
2166 |
+
$filter.find('.filter-on-sale').find(':input').prop('checked', false).change().closest('.filter-item').removeClass('active');
|
2167 |
+
}
|
2168 |
+
|
2169 |
+
if (properties !== null && properties !== void 0 && properties.featured_filter) {
|
2170 |
+
$filter.find('.filter-featured').find(':input').prop('checked', false).change().closest('.filter-item').removeClass('active');
|
2171 |
+
}
|
2172 |
+
}
|
2173 |
+
|
2174 |
+
break;
|
2175 |
+
|
2176 |
+
default:
|
2177 |
+
$items.removeClass('active');
|
2178 |
+
break;
|
2179 |
+
}
|
2180 |
+
|
2181 |
+
this.activeFilters = false;
|
2182 |
+
|
2183 |
+
if (doFilter) {
|
2184 |
+
this.filter();
|
2185 |
+
}
|
2186 |
+
} // deactivate all filters
|
2187 |
+
|
2188 |
+
}, {
|
2189 |
+
key: "deactivateAllFilters",
|
2190 |
+
value: function deactivateAllFilters(doFilter) {
|
2191 |
+
var self = this,
|
2192 |
+
$filters = this.getFilters();
|
2193 |
+
$filters.each(function () {
|
2194 |
+
var $filter = $(this);
|
2195 |
+
self.deactivateFilter($filter);
|
2196 |
+
});
|
2197 |
+
this.activeFilters = false;
|
2198 |
+
|
2199 |
+
if (doFilter) {
|
2200 |
+
this.filter();
|
2201 |
+
}
|
2202 |
+
} // deactivate filters that matches a specific set of properties
|
2203 |
+
|
2204 |
+
}, {
|
2205 |
+
key: "deactivateFilterByProperties",
|
2206 |
+
value: function deactivateFilterByProperties(properties, doFilter) {
|
2207 |
+
var self = this,
|
2208 |
+
$filters = this.getFiltersByProperties(properties);
|
2209 |
+
|
2210 |
+
if (!$filters.length) {
|
2211 |
+
return;
|
2212 |
+
}
|
2213 |
+
|
2214 |
+
$filters.each(function () {
|
2215 |
+
var $filter = $(this);
|
2216 |
+
self.deactivateFilter($filter, properties, doFilter);
|
2217 |
+
});
|
2218 |
+
} // open filters as a modal, when in mobile layout
|
2219 |
+
|
2220 |
+
}, {
|
2221 |
+
key: "openModal",
|
2222 |
+
value: function openModal() {
|
2223 |
+
var _this9 = this;
|
2224 |
+
|
2225 |
+
if (!this.isMobile) {
|
2226 |
+
return;
|
2227 |
+
}
|
2228 |
+
|
2229 |
+
this._closeAllCollapsables();
|
2230 |
+
|
2231 |
+
$('body').css('overflow', 'hidden').addClass('yith-wcan-preset-modal-open');
|
2232 |
+
this.$preset.show();
|
2233 |
+
setTimeout(function () {
|
2234 |
+
_this9.$preset.addClass('open');
|
2235 |
+
}, 100);
|
2236 |
+
} // close filters modal, when in mobile layout
|
2237 |
+
|
2238 |
+
}, {
|
2239 |
+
key: "closeModal",
|
2240 |
+
value: function closeModal() {
|
2241 |
+
var _this10 = this;
|
2242 |
+
|
2243 |
+
if (!this.isMobile) {
|
2244 |
+
return;
|
2245 |
+
}
|
2246 |
+
|
2247 |
+
this.$preset.removeClass('open');
|
2248 |
+
setTimeout(function () {
|
2249 |
+
_this10.$preset.hide();
|
2250 |
+
|
2251 |
+
$('body').css('overflow', 'auto').removeClass('yith-wcan-preset-modal-open');
|
2252 |
+
}, 300);
|
2253 |
+
} // utility that formats the price according to store configuration.
|
2254 |
+
|
2255 |
+
}, {
|
2256 |
+
key: "formatPrice",
|
2257 |
+
value: function formatPrice(price) {
|
2258 |
+
if ('undefined' !== typeof accounting) {
|
2259 |
+
price = accounting.formatMoney(price, {
|
2260 |
+
symbol: yith_wcan_shortcodes.currency_format.symbol,
|
2261 |
+
decimal: yith_wcan_shortcodes.currency_format.decimal,
|
2262 |
+
thousand: yith_wcan_shortcodes.currency_format.thousand,
|
2263 |
+
precision: 0,
|
2264 |
+
format: yith_wcan_shortcodes.currency_format.format
|
2265 |
+
});
|
2266 |
+
}
|
2267 |
+
|
2268 |
+
return price;
|
2269 |
+
} // utility that merges together sets of filter properties
|
2270 |
+
|
2271 |
+
}, {
|
2272 |
+
key: "mergeProperties",
|
2273 |
+
value: function mergeProperties(set1, set2, $filter) {
|
2274 |
+
// search for common properties
|
2275 |
+
for (var prop in set2) {
|
2276 |
+
if (!set2.hasOwnProperty(prop)) {
|
2277 |
+
continue;
|
2278 |
+
}
|
2279 |
+
|
2280 |
+
if (!!set1[prop]) {
|
2281 |
+
switch (prop) {
|
2282 |
+
case 'rating_filter':
|
2283 |
+
case 'min_price':
|
2284 |
+
case 'max_price':
|
2285 |
+
case 'onsale_filter':
|
2286 |
+
case 'instock_filter':
|
2287 |
+
case 'orderby':
|
2288 |
+
// just override default value
|
2289 |
+
set1[prop] = set2[prop];
|
2290 |
+
break;
|
2291 |
+
|
2292 |
+
default:
|
2293 |
+
if (0 === prop.indexOf('query_type_')) {
|
2294 |
+
// query_type param
|
2295 |
+
set1[prop] = set2[prop];
|
2296 |
+
} else {
|
2297 |
+
// we're dealing with taxonomy
|
2298 |
+
var isAttr = 0 === prop.indexOf('filter_'),
|
2299 |
+
glue = isAttr ? ',' : '+';
|
2300 |
+
var newValue = set1[prop].replace(',', glue) + glue + set2[prop].replace(',', glue);
|
2301 |
+
newValue = newValue.split(glue).filter(function (value, index, arr) {
|
2302 |
+
return arr.indexOf(value) === index;
|
2303 |
+
}).join(glue);
|
2304 |
+
set1[prop] = newValue;
|
2305 |
+
|
2306 |
+
if (isAttr) {
|
2307 |
+
var queryTypeParam = prop.replace('filter_', 'query_type_');
|
2308 |
+
set1[queryTypeParam] = 'and';
|
2309 |
+
set2[queryTypeParam] = 'and';
|
2310 |
+
}
|
2311 |
+
}
|
2312 |
+
|
2313 |
+
}
|
2314 |
+
|
2315 |
+
delete set2[prop];
|
2316 |
+
}
|
2317 |
+
}
|
2318 |
+
|
2319 |
+
$.extend(set1, set2);
|
2320 |
+
return set1;
|
2321 |
+
}
|
2322 |
+
}]);
|
2323 |
+
|
2324 |
+
return YITH_WCAN_Preset;
|
2325 |
+
}();
|
2326 |
+
|
2327 |
+
|
2328 |
+
;// CONCATENATED MODULE: ./assets/js/shortcodes/index.js
|
2329 |
+
|
2330 |
+
/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */
|
2331 |
|
|
|
|
|
|
|
|
|
|
|
2332 |
|
|
|
|
|
2333 |
|
|
|
|
|
|
|
|
|
2334 |
|
2335 |
+
jQuery(function ($) {
|
2336 |
+
$(document).on('yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode', function () {
|
2337 |
+
$('.yith-wcan-filters').not('.enhanced').each(function () {
|
2338 |
+
new YITH_WCAN_Preset($(this));
|
2339 |
+
});
|
2340 |
+
$('.yith-wcan-reset-filters').not('.enhanced').each(function () {
|
2341 |
+
new YITH_WCAN_Reset_Button($(this));
|
2342 |
+
});
|
2343 |
+
}).trigger('yith_wcan_init_shortcodes');
|
2344 |
+
globalThis.product_filter = new YITH_WCAN_Filter();
|
2345 |
+
});
|
2346 |
+
/******/ })()
|
2347 |
+
;
|
2348 |
+
//# sourceMappingURL=yith-wcan-shortcodes.js.map
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/config.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-filter.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-reset-button.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-dropdown.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/modules/yith-wcan-preset.js","webpack://yith-woocommerce-ajax-navigation/./assets/js/shortcodes/index.js"],"names":["$","jQuery","YITH_WCAN_Filter","location","search","head","html","pageTitle","document","title","alternativeUrl","searchAlternativeUrl","doingAjax","initialized","yith_wcan_shortcodes","ajax_filters","pushUrlToHistory","filters","target","preset","targetUrl","$target","customFilters","triggerHandler","block","buildUrl","window","_doAjax","done","response","_beforeFilter","refreshFragments","unblock","_afterFilter","trigger","on","closest","submit","queryParam","query_param","params","url","base_url","origin","pathname","self","haveFilters","Object","keys","length","session_param","replace","RegExp","originalSearch","searchParams","split","reduce","a","v","items","isFilterParam","i","_cleanParam","defaultUrl","matches","indexOf","match","change_browser_url","navigator","userAgent","history","pushState","responseDom","createElement","$response","innerHTML","$preset","$destination","find","replaceWith","first","content","param","process_sanitize","skip_sanitize","encodeURIComponent","xhr","abort","$el","background","loader","message","overlayCSS","opacity","supportedParams","concat","supported_taxonomies","map","YITH_WCAN_Reset_Button","el","$reset","ev","preventDefault","each","data","deactivateAllFilters","closeModal","addClass","YITH_WCAN_Dropdown","opts","$originalSelect","is","defaultPerPage","defaultOrder","defaultAll","defaults","showSearch","paginate","perPage","order","getElements","labels","emptyLabel","empty_option","searchPlaceholder","search_placeholder","noItemsFound","no_items","showMore","show_more","options","_hideSelect","_initTemplate","_initActions","hide","$mainSpan","$labelSpan","getLabel","$dropdownSpan","$matchingItemsList","append","_initSearchTemplate","_initShowMoreTemplate","after","$_main","$_label","$_dropdown","$_items","$dropdwonSpan","$container","$search","name","type","placeholder","prependTo","$_search","$showMore","text","loadNextPage","bind","$_showMore","stopPropagation","toggleDropdown","_populateItems","$li","value","isActive","hasClass","isValueSelected","toggleClass","_changeItemStatus","siblings","removeClass","input","parent","prop","change","selfOriginated","_selectItem","_deselectItem","updateLabel","closeDropdown","_afterDropdownOpen","dropdowns","filter","select","_closeOtherDropdowns","val","limit","matchingElements","$options","getOptions","promise","Promise","resolve","t","label","regex","show","test","push","then","retrievedElements","_formatItems","indexes","hasMore","sort","b","mod","slice","active","option","getOptionByValue","$item","attr","$anchor","template","count","href","$checkbox","$label","prepend","page","parseInt","getMatchingElements","resultSet","matchingItems","_emptyItems","_hideLoadMore","currentPage","unshift","_generateItem","_showLoadMore","status","$option","hasSelectedValues","getSelectedLabels","join","getSelectedOptions","found","getSelectedValues","toString","values","YITH_WCAN_Preset","_regiterStatus","_initFilterButton","_initResponsive","_initFilters","getFilters","$filter","_initFilter","maybeShowClearAllFilters","$filterButtons","modal_on_mobile","media","matchMedia","mobile_media_query","isMobile","_afterLayoutChange","resize","handleChange","$currentFilter","multiple","$items","not","children","activeFilters","maybeFilter","maybeToggleClearAllFilters","maybeToggleClearFilter","delegateTarget","call","$input","_initTooltip","_initPriceSlider","_initDropdown","_initCollapsable","maybeShowClearFilter","_initCustomInput","position","th","tooltip","wrapperWidth","outerWidth","left","width","container","css","toFixed","fadeIn","fadeOut","remove","$dropdown","selectWoo","_initDropdownObject","terms_per_page","$minInput","$maxInput","min","parseFloat","max","currentMin","currentMax","step","handleSliderChange","sliderTimeout","clearTimeout","setTimeout","ionRangeSlider","skin","from","to","min_interval","values_separator","prettify","formatPrice","onChange","onFinish","add","off","_initTitleCollapsable","_initHierarchyCollapsable","$title","_initToggle","parents","show_current_children","$t","$toggle","appendTo","slideToggle","containerClass","wrap","originalFilters","getFiltersProperties","_addCloseModalButton","_addApplyFiltersModalButton","_switchToCollapsables","removeAttr","_removeCloseModalButton","_removeApplyFiltersModalButton","_switchBackCollapsables","$closeButton","close","modalElements","closeButton","$filterButton","show_results","applyFiltersButton","removeData","$filters","isFilterActive","end","currentFilters","currentStr","JSON","stringify","originalStr","dirty","$initiator","maybeRegisterStatusChange","instant_filters","product_filter","doFilter","newPreset","scroll_top","targetOffset","offset","top","scroll_target","scrollTarget","animate","scrollTop","getActiveFilters","filterType","filteredActive","properties","filteredProperties","$active","activeTerms","taxonomy","isAttr","relation","get","pop","glue","rating_filter","price_ranges","min_price","max_price","onsale_filter","instock_filter","featured_filter","orderby","filterProperties","getFilterProperties","mergeProperties","hasProp","includes","maybeHideClearFilter","isAnyFilterActive","maybeHideClearAllFilters","show_clear_filter","clear_selection","role","deactivateFilter","clear_all_selections","$activeItems","click","formattedRange","$priceSlider","getFiltersByProperties","_closeAllCollapsables","price","accounting","formatMoney","symbol","currency_format","decimal","thousand","precision","format","set1","set2","hasOwnProperty","newValue","index","arr","queryTypeParam","globalThis"],"mappings":"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","file":"yith-wcan-shortcodes.js","sourcesContent":["'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nconst $ = jQuery; // we can do this as WebPack will compact all together inside a closure.\n\nexport { $ };\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\n\nexport default class YITH_WCAN_Filter {\n\t// currently executing xhr\n\txhr = null;\n\n\t// flag set during ajax call handling\n\tdoingAjax = false;\n\n\t// register original url search param\n\toriginalSearch = location.search;\n\n\t// flag set once init has executed\n\tinitialized = false;\n\n\t// init object\n\tconstructor() {\n\t\tconst head = $( 'head' ).html(),\n\t\t\tpageTitle = document.title,\n\t\t\talternativeUrl = this.searchAlternativeUrl( head );\n\n\t\talternativeUrl &&\n\t\t\t! this.doingAjax &&\n\t\t\t! this.initialized &&\n\t\t\t! yith_wcan_shortcodes.ajax_filters &&\n\t\t\tthis.pushUrlToHistory( alternativeUrl, pageTitle );\n\n\t\tthis.initialized = true;\n\t}\n\n\t// execute call to filter products in current view\n\tdoFilter( filters, target, preset ) {\n\t\tlet targetUrl,\n\t\t\t$target = target ? $( target ) : $( 'body' ),\n\t\t\tcustomFilters;\n\n\t\t// filter properties\n\t\tcustomFilters = $(\n\t\t\tdocument\n\t\t).triggerHandler( 'yith_wcan_filters_parameters', [ filters ] );\n\n\t\tif ( !! customFilters ) {\n\t\t\tfilters = customFilters;\n\t\t}\n\n\t\t// block elements before filtering\n\t\t$target && this.block( $target );\n\n\t\t// calculate target url\n\t\ttargetUrl = this.buildUrl( filters );\n\n\t\t// if no ajax, simply change page url\n\t\tif ( ! yith_wcan_shortcodes.ajax_filters ) {\n\t\t\twindow.location = targetUrl;\n\t\t\treturn;\n\t\t}\n\n\t\t// start doing ajax\n\t\tthis.doingAjax = true;\n\n\t\treturn this._doAjax( targetUrl ).done( ( response ) => {\n\t\t\ttargetUrl = this.searchAlternativeUrl( response, targetUrl );\n\n\t\t\tthis._beforeFilter( response, filters );\n\n\t\t\tthis.refreshFragments( target, preset, response );\n\t\t\tthis.pushUrlToHistory( targetUrl, response.pageTitle );\n\n\t\t\t$target && this.unblock( $target );\n\n\t\t\tthis._afterFilter( response, filters );\n\n\t\t\tthis.doingAjax = false;\n\t\t} );\n\t}\n\n\t// actions performed before filter\n\t_beforeFilter( response, filters ) {\n\t\t$( document ).trigger( 'yith-wcan-ajax-loading', [\n\t\t\tresponse,\n\t\t\tfilters,\n\t\t] );\n\t}\n\n\t// actions performed after filter\n\t_afterFilter( response, filters ) {\n\t\t$( '.woocommerce-ordering' ).on(\n\t\t\t'change',\n\t\t\t'select.orderby',\n\t\t\tfunction () {\n\t\t\t\t$( this ).closest( 'form' ).submit();\n\t\t\t}\n\t\t);\n\n\t\t$( window ).trigger( 'scroll' );\n\n\t\t$( document )\n\t\t\t.trigger( 'yith-wcan-ajax-filtered', [ response, filters ] )\n\t\t\t.trigger( 'yith_wcwl_reload_fragments' );\n\t}\n\n\t// build url to show\n\tbuildUrl( filters ) {\n\t\tlet queryParam = yith_wcan_shortcodes.query_param,\n\t\t\tparams = {},\n\t\t\tlocation = window.location,\n\t\t\turl = !! yith_wcan_shortcodes.base_url\n\t\t\t\t? yith_wcan_shortcodes.base_url\n\t\t\t\t: location?.origin + location?.pathname,\n\t\t\tsearch = '',\n\t\t\tself = this;\n\n\t\tconst haveFilters =\n\t\t\ttypeof filters === 'object' && Object.keys( filters ).length;\n\n\t\t// remove filter session from current url, if any\n\t\tif ( !! yith_wcan_shortcodes.session_param ) {\n\t\t\turl = url.replace(\n\t\t\t\tnew RegExp(\n\t\t\t\t\t'/' + yith_wcan_shortcodes.session_param + '/[^/]*/'\n\t\t\t\t),\n\t\t\t\t''\n\t\t\t);\n\t\t}\n\n\t\tif ( haveFilters ) {\n\t\t\tparams[ queryParam ] = 1;\n\t\t}\n\n\t\tif ( !! this.originalSearch ) {\n\t\t\tconst searchParams = this.originalSearch\n\t\t\t\t.replace( '?', '' )\n\t\t\t\t.split( '&' )\n\t\t\t\t.reduce( ( a, v ) => {\n\t\t\t\t\tconst items = v.split( '=' );\n\n\t\t\t\t\tif ( items.length === 2 ) {\n\t\t\t\t\t\tif ( this.isFilterParam( items[ 0 ] ) ) {\n\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ta[ items[ 0 ] ] = items[ 1 ];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn a;\n\t\t\t\t}, {} );\n\n\t\t\tparams = $.extend( params, searchParams );\n\t\t}\n\n\t\tif ( haveFilters ) {\n\t\t\tparams = $.extend( params, filters );\n\t\t}\n\n\t\tsearch = Object.keys( params )\n\t\t\t.reduce( function ( a, i ) {\n\t\t\t\tconst v = params[ i ];\n\n\t\t\t\tif ( ! v || ! i ) {\n\t\t\t\t\treturn a;\n\t\t\t\t}\n\n\t\t\t\ta += self._cleanParam( i ) + '=' + self._cleanParam( v ) + '&';\n\n\t\t\t\treturn a;\n\t\t\t}, '?' )\n\t\t\t.replace( /&$/g, '' )\n\t\t\t.replace( /%2B/g, '+' )\n\t\t\t.replace( /%2C/g, ',' );\n\n\t\tif ( search.length > 1 ) {\n\t\t\turl += search;\n\t\t}\n\n\t\treturn url;\n\t}\n\n\t// retrieves alternative sharing url in response body\n\tsearchAlternativeUrl( response, defaultUrl = '' ) {\n\t\tlet url = defaultUrl,\n\t\t\tmatches;\n\n\t\tif ( -1 === response.indexOf( 'yith_wcan:sharing_url' ) ) {\n\t\t\treturn url;\n\t\t}\n\n\t\tmatches = response.match(\n\t\t\t/<meta name=\"yith_wcan:sharing_url\" content=\"([^\"]*)\">/\n\t\t);\n\t\turl = matches && 1 in matches ? matches[ 1 ] : url;\n\n\t\treturn url;\n\t}\n\n\t// push url to browser history\n\tpushUrlToHistory( url, title ) {\n\t\tif (\n\t\t\t! yith_wcan_shortcodes.change_browser_url ||\n\t\t\tnavigator.userAgent.match( /msie/i )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow.history.pushState(\n\t\t\t{\n\t\t\t\tpageTitle: title,\n\t\t\t},\n\t\t\t'',\n\t\t\turl\n\t\t);\n\t}\n\n\t// replaces elements in the page with refreshed ones\n\trefreshFragments( target, preset, response ) {\n\t\tconst responseDom = document.createElement( 'html' ),\n\t\t\t$response = $( responseDom );\n\n\t\tresponseDom.innerHTML = response;\n\n\t\tif ( target ) {\n\t\t\tlet $preset = $( preset ),\n\t\t\t\t$target = $( target ),\n\t\t\t\t$destination;\n\n\t\t\tif ( $preset.length ) {\n\t\t\t\t$destination = $response.find( preset );\n\n\t\t\t\tif ( $destination.length ) {\n\t\t\t\t\t$preset.replaceWith( $destination.first() );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( $target.length ) {\n\t\t\t\t$destination = $response.find( target );\n\n\t\t\t\tif ( $destination.length ) {\n\t\t\t\t\t$target.replaceWith( $destination.first() );\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst content = $( yith_wcan_shortcodes.content );\n\n\t\t\tif ( content.length ) {\n\t\t\t\tcontent.replaceWith(\n\t\t\t\t\t$response.find( yith_wcan_shortcodes.content )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t$( 'body' ).replaceWith( $response.find( 'body' ) );\n\t\t\t}\n\t\t}\n\n\t\t$( document ).trigger( 'yith_wcan_init_shortcodes' );\n\t}\n\n\t// clean url parameters\n\t_cleanParam( param ) {\n\t\tif (\n\t\t\t! yith_wcan_shortcodes?.process_sanitize ||\n\t\t\tyith_wcan_shortcodes?.skip_sanitize\n\t\t) {\n\t\t\treturn param;\n\t\t}\n\n\t\treturn encodeURIComponent( param );\n\t}\n\n\t// executes Ajax calls\n\t_doAjax( url, params ) {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\n\t\tparams = $.extend(\n\t\t\t{\n\t\t\t\turl,\n\t\t\t},\n\t\t\tparams\n\t\t);\n\n\t\tthis.xhr = $.ajax( params );\n\n\t\treturn this.xhr;\n\t}\n\n\t// block dom elements\n\tblock( $el ) {\n\t\tif ( typeof $.fn.block === 'undefined' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet background = '#fff center center no-repeat';\n\n\t\tif ( yith_wcan_shortcodes?.loader ) {\n\t\t\tbackground = `url('${ yith_wcan_shortcodes.loader }') ${ background }`;\n\t\t}\n\n\t\t$el.block( {\n\t\t\tmessage: null,\n\t\t\toverlayCSS: {\n\t\t\t\tbackground,\n\t\t\t\topacity: 0.7,\n\t\t\t},\n\t\t} );\n\t}\n\n\t// unblock dom elements\n\tunblock( $el ) {\n\t\tif ( typeof $.fn.unblock === 'undefined' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$el.unblock();\n\t}\n\n\t// checks if param is one used by layared nav to filter products.\n\tisFilterParam( param ) {\n\t\tlet supportedParams = [\n\t\t\t'rating_filter',\n\t\t\t'min_price',\n\t\t\t'max_price',\n\t\t\t'price_ranges',\n\t\t\t'onsale_filter',\n\t\t\t'instock_filter',\n\t\t\t'featured_filter',\n\t\t\t'orderby',\n\t\t\t'product-page',\n\t\t\tyith_wcan_shortcodes.query_param,\n\t\t].concat(\n\t\t\tyith_wcan_shortcodes.supported_taxonomies.map( ( i ) =>\n\t\t\t\ti.replace( 'pa_', 'filter_' )\n\t\t\t)\n\t\t);\n\n\t\tif ( -1 !== supportedParams.indexOf( param ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( -1 !== param.indexOf( 'filter_' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( -1 !== param.indexOf( 'query_type_' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\n\nexport default class YITH_WCAN_Reset_Button {\n\t// current button\n\t$reset = null;\n\n\t// init object\n\tconstructor( el ) {\n\t\t// current button\n\t\tthis.$reset = el;\n\n\t\tthis.$reset.on( 'click', function ( ev ) {\n\t\t\tev.preventDefault();\n\n\t\t\t$( '.yith-wcan-filters' ).each( function () {\n\t\t\t\tconst preset = $( this ).data( 'preset' );\n\n\t\t\t\tpreset.deactivateAllFilters( true );\n\t\t\t\tpreset.closeModal();\n\t\t\t} );\n\t\t} );\n\n\t\tthis.$reset.data( 'reset', this ).addClass( 'enhanced' );\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\n\nexport default class YITH_WCAN_Dropdown {\n\t// current button\n\t$originalSelect = null;\n\n\t// main element\n\t$_main = null;\n\n\t// label element\n\t$_label = null;\n\n\t// dropdown\n\t$_dropdown = null;\n\n\t// search input\n\t$_search = null;\n\n\t// show more link\n\t$_showMore = null;\n\n\t// items list\n\t$_items = null;\n\n\t// current page\n\tcurrentPage = 1;\n\n\t// options\n\toptions = {};\n\n\t// init object\n\tconstructor( el, opts ) {\n\t\tthis.$originalSelect = el;\n\n\t\tif ( ! this.$originalSelect.is( 'select' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst defaultPerPage = this.$originalSelect.data( 'per_page' ),\n\t\t\tdefaultOrder = this.$originalSelect.data( 'order' ),\n\t\t\tdefaultAll = this.$originalSelect.data( 'all-label' ),\n\t\t\tdefaults = {\n\t\t\t\tshowSearch: this.$originalSelect.data( 'show_search' ),\n\t\t\t\tpaginate: this.$originalSelect.data( 'paginate' ),\n\t\t\t\tperPage: defaultPerPage ? defaultPerPage : 10,\n\t\t\t\torder: defaultOrder ? defaultOrder : 'ASC',\n\t\t\t\tgetElements: null,\n\t\t\t\tlabels: {\n\t\t\t\t\temptyLabel: defaultAll\n\t\t\t\t\t\t? defaultAll\n\t\t\t\t\t\t: yith_wcan_shortcodes.labels.empty_option,\n\t\t\t\t\tsearchPlaceholder:\n\t\t\t\t\t\tyith_wcan_shortcodes.labels.search_placeholder,\n\t\t\t\t\tnoItemsFound: yith_wcan_shortcodes.labels.no_items,\n\t\t\t\t\tshowMore: yith_wcan_shortcodes.labels.show_more,\n\t\t\t\t},\n\t\t\t};\n\n\t\tthis.options = $.extend( defaults, opts );\n\n\t\tthis._hideSelect();\n\t\tthis._initTemplate();\n\t\tthis._initActions();\n\n\t\tthis.$originalSelect.data( 'dropdown', this ).addClass( 'enhanced' );\n\t}\n\n\t// hide select\n\t_hideSelect() {\n\t\tthis.$originalSelect.hide();\n\t}\n\n\t// create dropdown\n\t_initTemplate() {\n\t\tconst $mainSpan = $( '<div/>', {\n\t\t\t\tclass: 'yith-wcan-dropdown closed',\n\t\t\t} ),\n\t\t\t$labelSpan = $( '<div/>', {\n\t\t\t\tclass: 'dropdown-label',\n\t\t\t\thtml: this.getLabel(),\n\t\t\t} ),\n\t\t\t$dropdownSpan = $( '<div>', {\n\t\t\t\tclass: 'dropdown-wrapper',\n\t\t\t} ),\n\t\t\t$matchingItemsList = $( '<ul/>', {\n\t\t\t\tclass: 'matching-items filter-items',\n\t\t\t} );\n\n\t\t$dropdownSpan.append( $matchingItemsList );\n\t\t$mainSpan.append( $labelSpan ).append( $dropdownSpan );\n\n\t\tif ( this.options.showSearch ) {\n\t\t\tthis._initSearchTemplate( $dropdownSpan );\n\t\t}\n\n\t\tif ( this.options.paginate ) {\n\t\t\tthis._initShowMoreTemplate( $dropdownSpan );\n\t\t}\n\n\t\tthis.$originalSelect.after( $mainSpan );\n\t\tthis.$_main = $mainSpan;\n\t\tthis.$_label = $labelSpan;\n\t\tthis.$_dropdown = $dropdownSpan;\n\t\tthis.$_items = $matchingItemsList;\n\t}\n\n\t// create search field\n\t_initSearchTemplate( $dropdwonSpan ) {\n\t\tconst $container = $( '<div/>', {\n\t\t\t\tclass: 'search-field-container',\n\t\t\t} ),\n\t\t\t$search = $( '<input/>', {\n\t\t\t\tname: 's',\n\t\t\t\tclass: 'search-field',\n\t\t\t\ttype: 'search',\n\t\t\t\tplaceholder: this.options.labels.searchPlaceholder,\n\t\t\t} );\n\n\t\t$container.append( $search ).prependTo( $dropdwonSpan );\n\t\tthis.$_search = $search;\n\t}\n\n\t// create showMore field\n\t_initShowMoreTemplate( $dropdwonSpan ) {\n\t\tconst $showMore = $( '<a/>', {\n\t\t\tclass: 'show-more',\n\t\t\ttext: this.options.labels.showMore.replace(\n\t\t\t\t'%d',\n\t\t\t\tthis.options.perPage\n\t\t\t),\n\t\t} );\n\n\t\t$showMore.on( 'click', this.loadNextPage.bind( this ) ).hide();\n\n\t\t$dropdwonSpan.append( $showMore );\n\t\tthis.$_showMore = $showMore;\n\t}\n\n\t// init actions performed over dropdown elements\n\t_initActions() {\n\t\tconst self = this;\n\n\t\t// main open event\n\t\tthis.$_main?.on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\t\t\tself.toggleDropdown();\n\t\t} );\n\t\tthis.$_dropdown.on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\t\t} );\n\n\t\t// search event\n\t\tthis.$_search?.on( 'keyup search', () => {\n\t\t\tself._populateItems();\n\t\t} );\n\n\t\t// select event\n\t\tthis.$_items.on( 'change', ':input', function () {\n\t\t\tlet $li = $( this ).closest( 'li' ),\n\t\t\t\tvalue = $li.data( 'value' ),\n\t\t\t\tisActive = false;\n\n\t\t\tif (\n\t\t\t\t$li.hasClass( 'disabled' ) &&\n\t\t\t\t! self.isValueSelected( value )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$li.toggleClass( 'active' );\n\t\t\tisActive = $li.hasClass( 'active' );\n\n\t\t\tself._changeItemStatus( value, isActive );\n\t\t} );\n\t\tthis.$_items.on( 'click', 'li:not(.checkbox) a', function ( ev ) {\n\t\t\tlet $li = $( this ).closest( 'li' ),\n\t\t\t\tvalue = $li.data( 'value' ),\n\t\t\t\tisActive = false;\n\n\t\t\tev.preventDefault();\n\n\t\t\tif (\n\t\t\t\t$li.hasClass( 'disabled' ) &&\n\t\t\t\t! self.isValueSelected( value )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$li.toggleClass( 'active' );\n\t\t\tisActive = $li.hasClass( 'active' );\n\n\t\t\tif ( isActive ) {\n\t\t\t\t$li.siblings().removeClass( 'active' );\n\t\t\t}\n\n\t\t\tself._changeItemStatus( value, isActive );\n\t\t} );\n\t\tthis.$_items.on( 'click', 'label > a', function ( ev ) {\n\t\t\tconst input = $( this ).parent().find( ':input' );\n\n\t\t\tev.preventDefault();\n\n\t\t\tif (\n\t\t\t\tinput.is( '[type=\"radio\"]' ) ||\n\t\t\t\tinput.is( '[type=\"checkbox\"]' )\n\t\t\t) {\n\t\t\t\tinput.prop( 'checked', ! input.prop( 'checked' ) );\n\t\t\t}\n\n\t\t\tinput.change();\n\t\t} );\n\n\t\t// select change\n\t\tthis.$originalSelect.on( 'change', ( ev, selfOriginated ) => {\n\t\t\tif ( selfOriginated ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tself.$_items.find( 'li' ).each( function () {\n\t\t\t\tconst value = $( this ).data( 'value' );\n\n\t\t\t\tif ( self.isValueSelected( value ) ) {\n\t\t\t\t\tself._selectItem( value );\n\t\t\t\t} else {\n\t\t\t\t\tself._deselectItem( value );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tself.updateLabel();\n\t\t} );\n\n\t\t// close dropdown on external click\n\t\t$( document ).on( 'click', this.closeDropdown.bind( this ) );\n\t}\n\n\t// open dropdown\n\topenDropdown() {\n\t\tthis.$_main?.addClass( 'open' ).removeClass( 'closed' );\n\t\tthis._afterDropdownOpen();\n\t}\n\n\t// close dropdown\n\tcloseDropdown() {\n\t\tthis.$_main?.removeClass( 'open' ).addClass( 'closed' );\n\t}\n\n\t// close other dropdowns\n\t_closeOtherDropdowns() {\n\t\tconst self = this,\n\t\t\tdropdowns = $( document )\n\t\t\t\t.find( 'select.enhanced' )\n\t\t\t\t.filter( function ( i, select ) {\n\t\t\t\t\tconst $el = $( select );\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! $el.data( 'dropdown' ) &&\n\t\t\t\t\t\t! $el.is( self.$originalSelect )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\tdropdowns.each( function () {\n\t\t\t$( this ).data( 'dropdown' ).closeDropdown();\n\t\t} );\n\t}\n\n\t// toggle dropdown\n\ttoggleDropdown() {\n\t\tthis.$_main?.toggleClass( 'open' ).toggleClass( 'closed' );\n\n\t\tif ( this.$_main?.hasClass( 'open' ) ) {\n\t\t\tthis._afterDropdownOpen();\n\t\t}\n\t}\n\n\t// perform operations after dropdown is open\n\t_afterDropdownOpen() {\n\t\tthis._closeOtherDropdowns();\n\n\t\tif ( this.$_search?.length ) {\n\t\t\tthis.$_search.val( '' );\n\t\t}\n\n\t\tthis._populateItems();\n\t}\n\n\t// get elements\n\tgetMatchingElements( search, limit ) {\n\t\tlet matchingElements = [],\n\t\t\t$options = this.getOptions(),\n\t\t\tpromise;\n\n\t\tpromise = new Promise( ( resolve ) => {\n\t\t\t// first of all, search across select option\n\t\t\t$options.each( function () {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\tvalue = t.val(),\n\t\t\t\t\tlabel = t.html(),\n\t\t\t\t\tregex = new RegExp( '.*' + search + '.*', 'i' ),\n\t\t\t\t\tshow =\n\t\t\t\t\t\t! search || regex.test( value ) || regex.test( label );\n\n\t\t\t\tif ( show ) {\n\t\t\t\t\tmatchingElements.push( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// then retrieve additional items\n\t\t\tif ( this.options.getElements ) {\n\t\t\t\t// we're expecting key => value pairs\n\t\t\t\tthis.options\n\t\t\t\t\t.getElements( search )\n\t\t\t\t\t.then( ( retrievedElements ) => {\n\t\t\t\t\t\tif ( retrievedElements ) {\n\t\t\t\t\t\t\t// reformat retrieved array\n\t\t\t\t\t\t\tretrievedElements = retrievedElements.reduce(\n\t\t\t\t\t\t\t\t( a, v, i ) => {\n\t\t\t\t\t\t\t\t\ta.push( { label: i, value: v } );\n\t\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t[]\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t// merge found results with options\n\t\t\t\t\t\t\tmatchingElements = $.extend(\n\t\t\t\t\t\t\t\tmatchingElements,\n\t\t\t\t\t\t\t\tretrievedElements\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve( this._formatItems( matchingElements, limit ) );\n\t\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tresolve( this._formatItems( matchingElements, limit ) );\n\t\t\t}\n\t\t} );\n\n\t\treturn promise;\n\t}\n\n\t// format items as key/value pairs for further processing\n\t_formatItems( items, limit ) {\n\t\tlet indexes = [],\n\t\t\thasMore = false;\n\n\t\t// remove duplicates and sort array of results\n\t\titems\n\t\t\t.filter( ( v ) => {\n\t\t\t\tif ( -1 === indexes.indexOf( v.value ) ) {\n\t\t\t\t\tindexes.push( v.value );\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} )\n\t\t\t.sort( ( a, b ) => {\n\t\t\t\tconst order = this.options.order,\n\t\t\t\t\tmod = order === 'ASC' ? 1 : -1;\n\n\t\t\t\tif ( a.value < b.value ) {\n\t\t\t\t\treturn -1 * mod;\n\t\t\t\t} else if ( a.value > b.value ) {\n\t\t\t\t\treturn mod;\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t} );\n\n\t\t// paginate when needed\n\t\tif ( limit ) {\n\t\t\thasMore = limit < Object.keys( items ).length;\n\t\t\titems = items.slice( 0, limit );\n\t\t}\n\n\t\treturn {\n\t\t\titems,\n\t\t\thasMore,\n\t\t};\n\t}\n\n\t// generate item to append to items list\n\t_generateItem( value, label ) {\n\t\tlet active = this.isValueSelected( value ),\n\t\t\toption = this.getOptionByValue( value ),\n\t\t\t$item = $( '<li/>', {\n\t\t\t\t'data-value': value,\n\t\t\t\tclass: option.length ? option.attr( 'class' ) : '',\n\t\t\t} ),\n\t\t\t$anchor;\n\n\t\tif ( option.length ) {\n\t\t\tconst template = option.data( 'template' ),\n\t\t\t\tcount = option.data( 'count' );\n\n\t\t\tlabel = template ? template : label;\n\n\t\t\tif ( !! count ) {\n\t\t\t\tlabel += count;\n\t\t\t}\n\t\t}\n\n\t\t$anchor = $( '<a/>', {\n\t\t\thref: option.length ? option.data( 'filter_url' ) : '#',\n\t\t\thtml: label,\n\t\t\t'data-title': option.length ? option.data( 'title' ) : '',\n\t\t} );\n\n\t\tif ( this.$originalSelect.prop( 'multiple' ) ) {\n\t\t\tconst $checkbox = $( '<input/>', {\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tvalue,\n\t\t\t\t} ),\n\t\t\t\t$label = $( '<label>' );\n\n\t\t\t$checkbox.prop( 'checked', active );\n\t\t\t$label.prepend( $checkbox ).append( $anchor );\n\t\t\t$item.append( $label ).addClass( 'checkbox' );\n\t\t} else {\n\t\t\t$item.append( $anchor );\n\t\t}\n\n\t\tactive ? $item.addClass( 'active' ) : $item.removeClass( 'active' );\n\n\t\treturn $item;\n\t}\n\n\t// populate items list\n\t_populateItems( page ) {\n\t\tlet search = this.$_search?.length ? this.$_search.val() : '',\n\t\t\tperPage = this.options.paginate ? this.options.perPage : 0,\n\t\t\tlimit;\n\n\t\tpage = page ? parseInt( page ) : 1;\n\t\tlimit = page * perPage;\n\n\t\tthis.getMatchingElements( search, limit ).then( ( resultSet ) => {\n\t\t\tlet matchingItems = resultSet.items,\n\t\t\t\titems = [],\n\t\t\t\thasMore = false;\n\n\t\t\t// remove all previous items\n\t\t\tthis._emptyItems();\n\t\t\tthis._hideLoadMore();\n\n\t\t\tif ( ! matchingItems.length ) {\n\t\t\t\titems.push(\n\t\t\t\t\t$( '<li/>', { text: this.options.labels.noItemsFound } )\n\t\t\t\t);\n\n\t\t\t\tthis.currentPage = 1;\n\t\t\t} else {\n\t\t\t\tfor ( const v of matchingItems ) {\n\t\t\t\t\tif ( v.value === '' ) {\n\t\t\t\t\t\titems.unshift( this._generateItem( v.value, v.label ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\titems.push( this._generateItem( v.value, v.label ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.currentPage = page;\n\t\t\t\thasMore = resultSet.hasMore;\n\t\t\t}\n\n\t\t\tthis.$_items.append( items );\n\n\t\t\t$( document ).trigger( 'yith_wcan_dropdown_updated' );\n\n\t\t\tif ( hasMore ) {\n\t\t\t\tthis._showLoadMore();\n\t\t\t}\n\t\t} );\n\t}\n\n\t// load next page of items\n\tloadNextPage() {\n\t\tconst page = this.currentPage + 1;\n\n\t\tthis._populateItems( page );\n\t}\n\n\t// set an item as active\n\t_selectItem( value ) {\n\t\treturn this._changeItemStatus( value, true );\n\t}\n\n\t// disable an item\n\t_deselectItem( value ) {\n\t\treturn this._changeItemStatus( value, false );\n\t}\n\n\t// change item status\n\t_changeItemStatus( value, status ) {\n\t\tconst $option = this.$originalSelect.find(\n\t\t\t`option[value=\"${ value }\"]`\n\t\t);\n\n\t\tif ( $option.length ) {\n\t\t\t$option.prop( 'selected', status );\n\n\t\t\tthis.closeDropdown();\n\t\t\tthis.updateLabel();\n\n\t\t\tthis.$originalSelect.trigger( 'change', [ true ] );\n\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t// empty items list\n\t_emptyItems() {\n\t\tthis.$_items.html( '' );\n\t}\n\n\t// show \"Load more\" link\n\t_showLoadMore() {\n\t\tthis.$_showMore.show();\n\t}\n\n\t// hide \"Load more\" link\n\t_hideLoadMore() {\n\t\tthis.$_showMore.hide();\n\t}\n\n\t// returns select label\n\tgetLabel() {\n\t\treturn this.hasSelectedValues()\n\t\t\t? this.getSelectedLabels().join( ', ' )\n\t\t\t: this.options.labels.emptyLabel;\n\t}\n\n\t// update label to match new selection\n\tupdateLabel() {\n\t\tconst label = this.getLabel();\n\n\t\tthis.$_label?.html( label );\n\t}\n\n\t// returns select options\n\tgetOptions() {\n\t\treturn this.$originalSelect.find( 'option' );\n\t}\n\n\t// checks whether select has selected values\n\thasSelectedValues() {\n\t\treturn this.getSelectedOptions().length;\n\t}\n\n\t// checks whether a value is selected\n\tisValueSelected( value ) {\n\t\tconst found = this.getSelectedValues().indexOf( value.toString() );\n\n\t\treturn -1 !== found;\n\t}\n\n\t// retrieve selected options\n\tgetSelectedOptions() {\n\t\treturn this.$originalSelect.find( 'option' ).filter( ':selected' );\n\t}\n\n\t// retrieves an option node by value\n\tgetOptionByValue( value ) {\n\t\treturn this.$originalSelect.find( `option[value=\"${ value }\"]` );\n\t}\n\n\t// retrieve labels for selected options\n\tgetSelectedLabels() {\n\t\tconst labels = [];\n\n\t\tthis.getSelectedOptions().each( function () {\n\t\t\tlet $option = $( this ),\n\t\t\t\ttemplate = $option.data( 'template' );\n\n\t\t\ttemplate = template\n\t\t\t\t? template\n\t\t\t\t: $option.html().replace( /\\([0-9]*\\)/, '' );\n\n\t\t\tlabels.push( template );\n\t\t} );\n\n\t\treturn labels;\n\t}\n\n\t// retrieve values for selected options\n\tgetSelectedValues() {\n\t\tconst values = [];\n\n\t\tthis.getSelectedOptions().each( function () {\n\t\t\tvalues.push( $( this ).val() );\n\t\t} );\n\n\t\treturn values;\n\t}\n\n\tdestroy() {\n\t\t// TBD\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport { $ } from '../config.js';\nimport YITH_WCAN_Dropdown from './yith-wcan-dropdown';\n\nexport default class YITH_WCAN_Preset {\n\t// main preset node\n\tpreset = false;\n\t$preset = false;\n\n\t// target of the filter, if any\n\ttarget = false;\n\t$target = false;\n\n\t// filters node\n\t$filters = false;\n\n\t// filter button\n\t$filterButtons = false;\n\n\t// nodes created just for modal layout\n\tmodalElements = {};\n\n\t// retains current status of filters\n\tactiveFilters = false;\n\n\t// mobile flag\n\tisMobile = false;\n\n\t// slider timeout\n\tsliderTimeout = false;\n\n\t// registers when status has changed\n\toriginalFilters = null;\n\tdirty = false;\n\n\t// init object\n\tconstructor( el ) {\n\t\t// main preset node\n\t\tthis.preset = '#' + el.attr( 'id' );\n\t\tthis.$preset = el;\n\n\t\t// target of the filter, if any\n\t\tthis.target = this.$preset.data( 'target' );\n\t\tthis.$target = this.target ? $( this.target ) : false;\n\n\t\tthis._regiterStatus();\n\t\tthis._initFilterButton();\n\t\tthis._initResponsive();\n\t\tthis._initFilters();\n\t\tthis._initActions();\n\n\t\tthis.$preset\n\t\t\t.data( 'preset', this )\n\t\t\t.addClass( 'enhanced' )\n\t\t\t.trigger( 'yith_wcan_preset_initialized', [ this ] );\n\t}\n\n\t// init filters\n\t_initFilters() {\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself._initFilter( $filter );\n\t\t} );\n\n\t\tthis.maybeShowClearAllFilters();\n\t}\n\n\t// init filter button\n\t_initFilterButton() {\n\t\tthis.$filterButtons = this.$preset.find( '.apply-filters' );\n\n\t\tif ( ! this.$filterButtons.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// manage filter button\n\t\tthis.$filterButtons\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\t\t\t\tthis.filter();\n\t\t\t} )\n\t\t\t.hide();\n\t}\n\n\t// init generic actions\n\t_initActions() {\n\t\tthis.$preset.find( 'form' ).on( 'submit', ( ev ) => {\n\t\t\tev.preventDefault();\n\t\t} );\n\t}\n\n\t// init responsive\n\t_initResponsive() {\n\t\tif ( ! yith_wcan_shortcodes.modal_on_mobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst media = window.matchMedia(\n\t\t\t`(max-width: ${ yith_wcan_shortcodes.mobile_media_query }px)`\n\t\t);\n\n\t\t$( window )\n\t\t\t.on( 'resize', () => {\n\t\t\t\tconst isMobile = !! media.matches;\n\n\t\t\t\tif ( isMobile !== this.isMobile ) {\n\t\t\t\t\tthis.isMobile = isMobile;\n\t\t\t\t\tthis._afterLayoutChange();\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.resize();\n\t}\n\n\t// init filter\n\t_initFilter( $filter ) {\n\t\tconst self = this,\n\t\t\thandleChange = function ( ev ) {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\t$currentFilter = t.closest( '.yith-wcan-filter' ),\n\t\t\t\t\tmultiple = $currentFilter.length\n\t\t\t\t\t\t? 'yes' === $currentFilter.data( 'multiple' )\n\t\t\t\t\t\t: false,\n\t\t\t\t\t$item = t.closest( '.filter-item' ),\n\t\t\t\t\t$items = $item.length\n\t\t\t\t\t\t? $currentFilter.find( '.filter-item' ).not( $item )\n\t\t\t\t\t\t: [];\n\n\t\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tev.preventDefault();\n\n\t\t\t\t$items.length &&\n\t\t\t\t\t! multiple &&\n\t\t\t\t\t$items\n\t\t\t\t\t\t.removeClass( 'active' )\n\t\t\t\t\t\t.children( 'label' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.parent( '.checked' )\n\t\t\t\t\t\t.removeClass( 'checked' );\n\t\t\t\t$item.length && $item.toggleClass( 'active' );\n\n\t\t\t\t// reset active filters.\n\t\t\t\tself.activeFilters = false;\n\n\t\t\t\tself.maybeFilter( $filter );\n\t\t\t\tself.maybeToggleClearAllFilters();\n\t\t\t\tself.maybeToggleClearFilter( $currentFilter );\n\t\t\t};\n\n\t\t// handle filter activation/deactivation by click on label (no input involved)\n\t\t$filter\n\t\t\t.find( '.filter-item' )\n\t\t\t.not( '.checkbox' )\n\t\t\t.not( '.radio' )\n\t\t\t.on( 'click', 'a', function ( ev ) {\n\t\t\t\tconst t = $( this ),\n\t\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\t\tif ( ! $( ev?.delegateTarget ).is( $item ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\thandleChange.call( this, ev );\n\t\t\t} );\n\n\t\t// handle filter activation/deactivation from input change\n\t\t$filter.find( ':input' ).on( 'change', function ( ev ) {\n\t\t\tconst t = $( this ),\n\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\tt.prop( 'checked', false );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\thandleChange.call( this, ev );\n\t\t} );\n\n\t\t// handle filter activation/deactivation by click on label (there is an input whose state can be switched)\n\t\t$filter.find( 'label > a' ).on( 'click', function ( ev ) {\n\t\t\tconst t = $( this ),\n\t\t\t\t$item = t.closest( '.filter-item' );\n\n\t\t\tev.preventDefault();\n\n\t\t\tif ( $item.is( '.disabled' ) && ! $item.is( '.active' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst $input = t.parent().find( ':input' );\n\n\t\t\tif (\n\t\t\t\t$input.is( '[type=\"radio\"]' ) ||\n\t\t\t\t$input.is( '[type=\"checkbox\"]' )\n\t\t\t) {\n\t\t\t\t$input.prop( 'checked', ! $input.prop( 'checked' ) );\n\t\t\t}\n\n\t\t\t$input.change();\n\t\t} );\n\n\t\t// init tooltip\n\t\tthis._initTooltip( $filter );\n\n\t\t// init price slider\n\t\tthis._initPriceSlider( $filter );\n\n\t\t// init dropdown\n\t\tthis._initDropdown( $filter );\n\n\t\t// init collapsable\n\t\tthis._initCollapsable( $filter );\n\n\t\t// init clear anchors\n\t\tthis.maybeShowClearFilter( $filter );\n\n\t\t// init custom inputs\n\t\tif ( this.$preset?.hasClass( 'custom-style' ) ) {\n\t\t\tthis._initCustomInput( $filter );\n\t\t}\n\t}\n\n\t// init tooltip\n\t_initTooltip( $filter, position ) {\n\t\t$filter.find( '[data-title]' ).each( function () {\n\t\t\tconst t = $( this );\n\n\t\t\tif ( t.hasClass( 'tooltip-added' ) || ! t.data( 'title' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tt.on( 'mouseenter', function () {\n\t\t\t\tlet th = $( this ),\n\t\t\t\t\ttooltip = null,\n\t\t\t\t\twrapperWidth = th.outerWidth(),\n\t\t\t\t\tleft = 0,\n\t\t\t\t\twidth = 0;\n\n\t\t\t\tif (\n\t\t\t\t\t! position ||\n\t\t\t\t\t( 'top' !== position && 'right' !== position )\n\t\t\t\t) {\n\t\t\t\t\tconst container = th.closest( '.filter-item' );\n\n\t\t\t\t\tposition =\n\t\t\t\t\t\tcontainer.hasClass( 'color' ) ||\n\t\t\t\t\t\tcontainer.hasClass( 'label' )\n\t\t\t\t\t\t\t? 'top'\n\t\t\t\t\t\t\t: 'right';\n\t\t\t\t}\n\n\t\t\t\ttooltip = $( '<span>', {\n\t\t\t\t\tclass: 'yith-wcan-tooltip',\n\t\t\t\t\thtml: th.data( 'title' ),\n\t\t\t\t} );\n\n\t\t\t\tth.append( tooltip );\n\n\t\t\t\twidth = tooltip.outerWidth() + 6;\n\t\t\t\ttooltip.outerWidth( width );\n\n\t\t\t\tif ( 'top' === position ) {\n\t\t\t\t\tleft = ( wrapperWidth - width ) / 2;\n\t\t\t\t} else {\n\t\t\t\t\tleft = wrapperWidth + 15;\n\t\t\t\t}\n\n\t\t\t\ttooltip.css( { left: left.toFixed( 0 ) + 'px' } ).fadeIn( 200 );\n\n\t\t\t\tth.addClass( 'with-tooltip' );\n\t\t\t} ).on( 'mouseleave', function () {\n\t\t\t\tconst th = $( this );\n\n\t\t\t\tth.find( '.yith-wcan-tooltip' ).fadeOut( 200, function () {\n\t\t\t\t\tth.removeClass( 'with-tooltip' )\n\t\t\t\t\t\t.find( '.yith-wcan-tooltip' )\n\t\t\t\t\t\t.remove();\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tt.addClass( 'tooltip-added' );\n\t\t} );\n\t}\n\n\t// init dropdown\n\t_initDropdown( $filter ) {\n\t\tconst $dropdown = $filter.find( 'select.filter-dropdown' );\n\n\t\tif ( ! $dropdown.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t$dropdown.hasClass( 'select2-hidden-accessible' ) &&\n\t\t\t'undefined' !== typeof $.fn.selectWoo\n\t\t) {\n\t\t\t$dropdown.selectWoo( 'destroy' );\n\t\t}\n\n\t\tthis._initDropdownObject( $dropdown, {\n\t\t\tpaginate: true,\n\t\t\tperPage: yith_wcan_shortcodes.terms_per_page,\n\t\t} );\n\t}\n\n\t// init dropdown object\n\t_initDropdownObject( $dropdown, opts ) {\n\t\treturn new YITH_WCAN_Dropdown( $dropdown, opts );\n\t}\n\n\t// init price slider\n\t_initPriceSlider( $filter ) {\n\t\tif ( ! $filter.hasClass( 'filter-price-slider' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst self = this,\n\t\t\t$container = $filter.find( '.price-slider' ),\n\t\t\t$minInput = $container.find( '.price-slider-min' ),\n\t\t\t$maxInput = $container.find( '.price-slider-max' ),\n\t\t\tmin = parseFloat( $container.data( 'min' ) ),\n\t\t\tmax = parseFloat( $container.data( 'max' ) ),\n\t\t\tcurrentMin = parseFloat( $minInput.val() ),\n\t\t\tcurrentMax = parseFloat( $maxInput.val() ),\n\t\t\tstep = parseFloat( $container.data( 'step' ) ),\n\t\t\thandleSliderChange = function () {\n\t\t\t\tif ( self.sliderTimeout ) {\n\t\t\t\t\tclearTimeout( self.sliderTimeout );\n\t\t\t\t}\n\n\t\t\t\tself.sliderTimeout = setTimeout( () => {\n\t\t\t\t\tself.maybeFilter( $filter );\n\t\t\t\t}, 200 );\n\t\t\t};\n\n\t\t$filter.find( '.price-slider-ui' ).ionRangeSlider( {\n\t\t\tskin: 'round',\n\t\t\ttype: 'double',\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep,\n\t\t\tfrom: currentMin,\n\t\t\tto: currentMax,\n\t\t\tmin_interval: step,\n\t\t\tvalues_separator: ' - ',\n\t\t\tprettify: ( v ) => this.formatPrice( v ),\n\t\t\tonChange: ( data ) => {\n\t\t\t\t$minInput.val( data.from );\n\t\t\t\t$maxInput.val( data.to );\n\t\t\t},\n\t\t\tonFinish: handleSliderChange,\n\t\t} );\n\n\t\t$minInput\n\t\t\t.add( $maxInput )\n\t\t\t.off( 'change' )\n\t\t\t.on( 'keyup', () => {\n\t\t\t\tif ( ! $minInput.val() || ! $maxInput.val() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\thandleSliderChange();\n\t\t\t} );\n\t}\n\n\t// init collapsable\n\t_initCollapsable( $filter ) {\n\t\tthis._initTitleCollapsable( $filter );\n\t\tthis._initHierarchyCollapsable( $filter );\n\t}\n\n\t// init toggle on click of the title\n\t_initTitleCollapsable( $filter ) {\n\t\tconst $title = $filter.find( '.collapsable' );\n\n\t\tif ( ! $title.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._initToggle( $title, $title, $filter.find( '.filter-content' ) );\n\t}\n\n\t// init toggle on click of the parent li\n\t_initHierarchyCollapsable( $filter ) {\n\t\tconst $items = $filter.find( '.hierarchy-collapsable' );\n\n\t\tif ( ! $items.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// set parents of currently active term as open\n\t\tconst self = this,\n\t\t\tactive = $filter.find( '.active' );\n\n\t\tif ( active.length ) {\n\t\t\tactive\n\t\t\t\t.parents( '.hierarchy-collapsable' )\n\t\t\t\t.removeClass( 'closed' )\n\t\t\t\t.addClass( 'opened' );\n\n\t\t\tif (\n\t\t\t\tactive.hasClass( 'hierarchy-collapsable' ) &&\n\t\t\t\tyith_wcan_shortcodes.show_current_children\n\t\t\t) {\n\t\t\t\tactive.removeClass( 'closed' ).addClass( 'opened' );\n\t\t\t}\n\t\t}\n\n\t\t$items.each( function () {\n\t\t\tconst $t = $( this ),\n\t\t\t\t$toggle = $( '<span/>', {\n\t\t\t\t\tclass: 'toggle-handle',\n\t\t\t\t} );\n\n\t\t\t$toggle.appendTo( $t );\n\n\t\t\tself._initToggle( $toggle, $t, $t.children( 'ul.filter-items' ) );\n\t\t} );\n\t}\n\n\t// init toggle to generic toggle/target pair\n\t_initToggle( $toggle, $container, $target ) {\n\t\tif ( $container.hasClass( 'closed' ) ) {\n\t\t\t$target.hide();\n\t\t}\n\n\t\t$toggle.off( 'click' ).on( 'click', ( ev ) => {\n\t\t\tev.stopPropagation();\n\n\t\t\t$target.slideToggle( 400, () => {\n\t\t\t\t$container.toggleClass( 'opened' ).toggleClass( 'closed' );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// init custom input\n\t_initCustomInput( $filter ) {\n\t\t$filter.find( ':input' ).each( function () {\n\t\t\tlet input = $( this ),\n\t\t\t\ttype = input.attr( 'type' ),\n\t\t\t\tcontainerClass = `${ type }button`,\n\t\t\t\tcontainer;\n\n\t\t\tif ( 'checkbox' !== type && 'radio' !== type ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( input.closest( `.${ containerClass }` ).length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( input.is( ':checked' ) ) {\n\t\t\t\tcontainerClass += ' checked';\n\t\t\t}\n\n\t\t\tcontainer = $( '<span/>', {\n\t\t\t\tclass: containerClass,\n\t\t\t} );\n\n\t\t\tinput.wrap( container ).on( 'change', function () {\n\t\t\t\tconst t = $( this );\n\n\t\t\t\tt.prop( 'checked' )\n\t\t\t\t\t? t.parent().addClass( 'checked' )\n\t\t\t\t\t: t.parent().removeClass( 'checked' );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// register initial status\n\t_regiterStatus() {\n\t\tthis.originalFilters = this.getFiltersProperties();\n\t}\n\n\t// trigger handling after layout change\n\t_afterLayoutChange() {\n\t\tif ( this.isMobile ) {\n\t\t\tthis.$preset\n\t\t\t\t.addClass( 'filters-modal' )\n\t\t\t\t.attr( 'role', 'dialog' )\n\t\t\t\t.attr( 'tabindex', '-1' )\n\t\t\t\t.hide();\n\n\t\t\tthis._addCloseModalButton();\n\t\t\tthis._addApplyFiltersModalButton();\n\t\t\tthis._switchToCollapsables();\n\n\t\t\tthis.$filterButtons?.hide();\n\t\t} else {\n\t\t\tthis.$preset\n\t\t\t\t.removeClass( 'filters-modal' )\n\t\t\t\t.removeClass( 'open' )\n\t\t\t\t.removeAttr( 'role' )\n\t\t\t\t.removeAttr( 'tabindex' )\n\t\t\t\t.show();\n\n\t\t\t$( 'body' )\n\t\t\t\t.css( 'overflow', 'auto' )\n\t\t\t\t.removeClass( 'yith-wcan-preset-modal-open' );\n\n\t\t\tthis._removeCloseModalButton();\n\t\t\tthis._removeApplyFiltersModalButton();\n\t\t\tthis._switchBackCollapsables();\n\n\t\t\tthis.$filterButtons?.show();\n\t\t}\n\t}\n\n\t// add modal close button\n\t_addCloseModalButton() {\n\t\tconst $closeButton = $( '<a/>', {\n\t\t\tclass: 'close-button',\n\t\t\thtml: '×',\n\t\t\t'data-dismiss': 'modal',\n\t\t\t'aria-label': yith_wcan_shortcodes.labels.close,\n\t\t} );\n\n\t\t$closeButton\n\t\t\t.prependTo( this.$preset )\n\t\t\t.on( 'click', this.closeModal.bind( this ) );\n\t\tthis.modalElements.closeButton = $closeButton;\n\t}\n\n\t// remove modal close button\n\t_removeCloseModalButton() {\n\t\tthis.modalElements?.closeButton?.remove();\n\t}\n\n\t// show main filter button for the modal\n\t_addApplyFiltersModalButton() {\n\t\tconst $filterButton = $( '<button/>', {\n\t\t\tclass: 'apply-filters main-modal-button',\n\t\t\thtml: yith_wcan_shortcodes.labels.show_results,\n\t\t\t'data-dismiss': 'modal',\n\t\t} );\n\n\t\t$filterButton.appendTo( this.$preset ).on( 'click', () => {\n\t\t\tthis.filter();\n\t\t\tthis.closeModal();\n\t\t} );\n\t\tthis.modalElements.applyFiltersButton = $filterButton;\n\t}\n\n\t// hide main filter button for the modal\n\t_removeApplyFiltersModalButton() {\n\t\tthis.modalElements?.applyFiltersButton?.remove();\n\t}\n\n\t// convert all filters to collapsable\n\t_switchToCollapsables() {\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this ),\n\t\t\t\t$title = $filter.find( '.filter-title' );\n\n\t\t\tif ( ! $title.length || $title.hasClass( 'collapsable' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$title.addClass( 'collapsable' ).data( 'disable-collapse', true );\n\n\t\t\tself._initTitleCollapsable( $filter );\n\t\t} );\n\t}\n\n\t// switch back filters to their previous collapsable state\n\t_switchBackCollapsables() {\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this ),\n\t\t\t\t$title = $filter.find( '.filter-title' );\n\n\t\t\tif (\n\t\t\t\t! $title.length ||\n\t\t\t\t! $title.hasClass( 'collapsable' ) ||\n\t\t\t\t! $title.data( 'disable-collapse' )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$title\n\t\t\t\t.removeClass( 'collapsable' )\n\t\t\t\t.removeData( 'disable-collapse', true )\n\t\t\t\t.off( 'click' );\n\n\t\t\t$filter.find( '.filter-content' ).show();\n\t\t} );\n\t}\n\n\t// close all collpasable before showing modal\n\t_closeAllCollapsables() {\n\t\tthis.$filters\n\t\t\t.not( '.no-title' )\n\t\t\t.not( ( i, v ) => {\n\t\t\t\treturn this.isFilterActive( $( v ) );\n\t\t\t} )\n\t\t\t.find( '.filter-content' )\n\t\t\t.hide()\n\t\t\t.end()\n\t\t\t.find( '.filter-title' )\n\t\t\t.addClass( 'closed' )\n\t\t\t.removeClass( 'opened' );\n\t}\n\n\t// update status change flag, if filters have changed\n\tmaybeRegisterStatusChange() {\n\t\tconst currentFilters = this.getFiltersProperties(),\n\t\t\tcurrentStr = JSON.stringify( currentFilters ),\n\t\t\toriginalStr = JSON.stringify( this.originalFilters );\n\n\t\tthis.dirty = currentStr !== originalStr;\n\t}\n\n\t// apply filters when possible\n\tmaybeFilter( $initiator ) {\n\t\t// register status change\n\t\tthis.maybeRegisterStatusChange();\n\n\t\t// filter, or show filter button.\n\t\tif ( yith_wcan_shortcodes.instant_filters && ! this.isMobile ) {\n\t\t\tthis.filter();\n\t\t} else if (\n\t\t\t! yith_wcan_shortcodes.instant_filters &&\n\t\t\t! this.isMobile\n\t\t) {\n\t\t\tthis.dirty\n\t\t\t\t? this.$filterButtons?.show()\n\t\t\t\t: this.$filterButtons?.hide();\n\t\t} else if ( this.isMobile && this.dirty ) {\n\t\t\tthis.$preset.addClass( 'with-filter-button' );\n\t\t\tthis.modalElements.applyFiltersButton?.show();\n\t\t}\n\t}\n\n\t// main filtering method\n\tfilter() {\n\t\tconst filter = window?.product_filter;\n\n\t\tfilter\n\t\t\t?.doFilter( this.getFiltersProperties(), this.target, this.preset )\n\t\t\t?.done( () => {\n\t\t\t\tlet newPreset = $( this.preset );\n\n\t\t\t\tif (\n\t\t\t\t\t! this.isMobile &&\n\t\t\t\t\tnewPreset.length &&\n\t\t\t\t\tyith_wcan_shortcodes.scroll_top\n\t\t\t\t) {\n\t\t\t\t\tlet targetOffset = newPreset.offset().top;\n\n\t\t\t\t\tif ( !! yith_wcan_shortcodes.scroll_target ) {\n\t\t\t\t\t\tconst scrollTarget = $(\n\t\t\t\t\t\t\tyith_wcan_shortcodes.scroll_target\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\ttargetOffset = scrollTarget.length\n\t\t\t\t\t\t\t? scrollTarget.offset().top\n\t\t\t\t\t\t\t: targetOffset;\n\t\t\t\t\t}\n\t\t\t\t\t$( 'body, html' ).animate( {\n\t\t\t\t\t\tscrollTop: targetOffset - 100,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// register new filters, clear status flag\n\t\t\t\tthis.originalFilters = this.getFiltersProperties();\n\t\t\t\tthis.dirty = false;\n\t\t\t} );\n\n\t\tif ( this.isMobile ) {\n\t\t\tthis.$preset.removeClass( 'with-filter-button' );\n\t\t\tthis.modalElements.applyFiltersButton?.hide();\n\t\t}\n\t}\n\n\t// get all filter nodes\n\tgetFilters() {\n\t\tif ( false === this.$filters ) {\n\t\t\tthis.$filters = this.$preset.find( '.yith-wcan-filter' );\n\t\t}\n\n\t\treturn this.$filters;\n\t}\n\n\t// retrieves all filters that we want to apply\n\tgetActiveFilters() {\n\t\tif ( false === this.activeFilters ) {\n\t\t\tthis.activeFilters = this.getFiltersProperties();\n\t\t}\n\n\t\treturn this.activeFilters;\n\t}\n\n\t// check whether there is any filter active\n\tisAnyFilterActive() {\n\t\treturn !! Object.keys( this.getActiveFilters() ).length;\n\t}\n\n\t// checks whether current filter is active\n\tisFilterActive( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tactive,\n\t\t\tfilteredActive;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\tcase 'review':\n\t\t\tcase 'price_range':\n\t\t\t\tconst $dropdown = $filter.find( '.filter-dropdown' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tconst val = $dropdown.val();\n\n\t\t\t\t\tactive = 'object' === typeof val ? !! val?.length : !! val;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t// if we use type other than dropdown, fallthrough\n\t\t\tcase 'stock_sale':\n\t\t\t\tactive = $filter.find( '.filter-item' ).filter( '.active' )\n\t\t\t\t\t.length;\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tconst min = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider' ).data( 'min' )\n\t\t\t\t\t),\n\t\t\t\t\tmax = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider' ).data( 'max' )\n\t\t\t\t\t),\n\t\t\t\t\tcurrentMin = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider-min' ).val()\n\t\t\t\t\t),\n\t\t\t\t\tcurrentMax = parseFloat(\n\t\t\t\t\t\t$filter.find( '.price-slider-max' ).val()\n\t\t\t\t\t);\n\n\t\t\t\tactive = currentMin > min || currentMax < max;\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tactive =\n\t\t\t\t\t'menu_order' !== $filter.find( '.filter-order-by' ).val();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tactive = false;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tfilteredActive = $filter.triggerHandler( 'yith_wcan_is_filter_active', [\n\t\t\tactive,\n\t\t\tthis,\n\t\t] );\n\t\tactive =\n\t\t\ttypeof filteredActive !== 'undefined' ? filteredActive : active;\n\n\t\treturn active;\n\t}\n\n\t// count the number of active items per filter\n\tcountActiveItems( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tcount;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\tcase 'review':\n\t\t\tcase 'price_range':\n\t\t\t\tconst $dropdown = $filter.find( '.filter-dropdown' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tconst val = $dropdown.val();\n\n\t\t\t\t\tcount = 'object' === typeof val ? val?.length : +!! val;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t// if we use type other than dropdown, fallthrough\n\t\t\tcase 'stock_sale':\n\t\t\t\tcount = $filter.find( '.filter-items' ).find( '.active' )\n\t\t\t\t\t.length;\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tif ( this.isFilterActive( $filter ) ) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\tdefault:\n\t\t\t\tcount = 0;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn count;\n\t}\n\n\t// retrieves filter properties for the filter\n\tgetFilterProperties( $filter ) {\n\t\tlet filterType = $filter.data( 'filter-type' ),\n\t\t\tmultiple = 'yes' === $filter.data( 'multiple' ),\n\t\t\t$dropdown = $filter.find( '.filter-dropdown' ),\n\t\t\tproperties = {},\n\t\t\tfilteredProperties,\n\t\t\t$active;\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\t\tlet activeTerms = [],\n\t\t\t\t\ttaxonomy = $filter.data( 'taxonomy' ),\n\t\t\t\t\tisAttr = 0 === taxonomy.indexOf( 'filter' ),\n\t\t\t\t\trelation = $filter.data( 'relation' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tactiveTerms = $dropdown.val();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tactiveTerms.push( $dropdown.val() );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tactiveTerms = $active.get().reduce( function ( a, v ) {\n\t\t\t\t\t\tlet val;\n\n\t\t\t\t\t\tv = $( v );\n\t\t\t\t\t\tval = v.is( 'label' )\n\t\t\t\t\t\t\t? v.find( ':input' ).val()\n\t\t\t\t\t\t\t: v.data( 'term-slug' );\n\n\t\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ta.push( val );\n\n\t\t\t\t\t\treturn a;\n\t\t\t\t\t}, activeTerms );\n\t\t\t\t}\n\n\t\t\t\tif ( ! multiple ) {\n\t\t\t\t\tproperties[ taxonomy ] = activeTerms.pop();\n\t\t\t\t} else {\n\t\t\t\t\tconst glue = ! isAttr && 'and' === relation ? '+' : ',';\n\t\t\t\t\tproperties[ taxonomy ] = activeTerms.join( glue );\n\t\t\t\t}\n\n\t\t\t\tif ( isAttr ) {\n\t\t\t\t\tproperties[\n\t\t\t\t\t\ttaxonomy.replace( 'filter_', 'query_type_' )\n\t\t\t\t\t] = relation;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'review':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tproperties.rating_filter = $dropdown.val();\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tif ( ! multiple ) {\n\t\t\t\t\t\t$active = $active.first();\n\t\t\t\t\t\tproperties.rating_filter = $active.is( 'label' )\n\t\t\t\t\t\t\t? $active.find( ':input' ).val()\n\t\t\t\t\t\t\t: $active.data( 'rating' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.rating_filter = $active\n\t\t\t\t\t\t\t.get()\n\t\t\t\t\t\t\t.reduce( function ( a, v ) {\n\t\t\t\t\t\t\t\tlet val;\n\n\t\t\t\t\t\t\t\tv = $( v );\n\t\t\t\t\t\t\t\tval = v.is( 'label' )\n\t\t\t\t\t\t\t\t\t? v.find( ':input' ).val()\n\t\t\t\t\t\t\t\t\t: v.data( 'rating' );\n\n\t\t\t\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ta.push( val );\n\n\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t}, [] )\n\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_range':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tproperties.price_ranges = $dropdown.val().join( ',' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.min_price = $dropdown\n\t\t\t\t\t\t\t.val()\n\t\t\t\t\t\t\t.split( '-' )[ 0 ];\n\t\t\t\t\t\tproperties.max_price = $dropdown\n\t\t\t\t\t\t\t.val()\n\t\t\t\t\t\t\t.split( '-' )[ 1 ];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$active = $filter\n\t\t\t\t\t\t.find( '.filter-item' )\n\t\t\t\t\t\t.filter( '.active' )\n\t\t\t\t\t\t.children( 'a, label' );\n\n\t\t\t\t\tif ( multiple ) {\n\t\t\t\t\t\tproperties.price_ranges = $active\n\t\t\t\t\t\t\t.get()\n\t\t\t\t\t\t\t.reduce( ( a, v ) => {\n\t\t\t\t\t\t\t\tlet min = $( v ).data( 'range-min' ),\n\t\t\t\t\t\t\t\t\tmax = $( v ).data( 'range-max' );\n\n\t\t\t\t\t\t\t\ta += ( max ? `${ min }-${ max }` : min ) + ',';\n\n\t\t\t\t\t\t\t\treturn a;\n\t\t\t\t\t\t\t}, '' )\n\t\t\t\t\t\t\t.replace( /^(.*),$/, '$1' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties.min_price = parseFloat(\n\t\t\t\t\t\t\t$active.first().data( 'range-min' )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tproperties.max_price = parseFloat(\n\t\t\t\t\t\t\t$active.first().data( 'range-max' )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tproperties.min_price = parseFloat(\n\t\t\t\t\t$filter.find( '.price-slider-min' ).val()\n\t\t\t\t);\n\t\t\t\tproperties.max_price = parseFloat(\n\t\t\t\t\t$filter.find( '.price-slider-max' ).val()\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'stock_sale':\n\t\t\t\tif ( $filter.find( '.filter-on-sale' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.onsale_filter = 1;\n\t\t\t\t}\n\t\t\t\tif ( $filter.find( '.filter-in-stock' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.instock_filter = 1;\n\t\t\t\t}\n\t\t\t\tif ( $filter.find( '.filter-featured' ).is( '.active' ) ) {\n\t\t\t\t\tproperties.featured_filter = 1;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\tproperties.orderby = $filter.find( '.filter-order-by' ).val();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tfilteredProperties = $filter.triggerHandler(\n\t\t\t'yith_wcan_filter_properties',\n\t\t\t[ properties, self ]\n\t\t);\n\t\tproperties =\n\t\t\ttypeof filteredProperties !== 'undefined'\n\t\t\t\t? filteredProperties\n\t\t\t\t: properties;\n\n\t\treturn properties;\n\t}\n\n\t// retrieves properties for all filters of the preset\n\tgetFiltersProperties() {\n\t\tlet properties = {};\n\t\tconst self = this;\n\n\t\tthis.getFilters().each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tif ( self.isFilterActive( $filter ) ) {\n\t\t\t\tconst filterProperties = self.getFilterProperties( $filter );\n\n\t\t\t\tproperties = self.mergeProperties(\n\t\t\t\t\tproperties,\n\t\t\t\t\tfilterProperties,\n\t\t\t\t\t$filter\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn properties;\n\t}\n\n\t// retrieve filters matching any of the properties passed\n\tgetFiltersByProperties( properties ) {\n\t\tconst self = this;\n\n\t\treturn this.getFilters().filter( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tif ( self.isFilterActive( $filter ) ) {\n\t\t\t\tlet filterProperties = self.getFilterProperties( $filter ),\n\t\t\t\t\thasProp = false;\n\n\t\t\t\tfor ( const prop in properties ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t[ 'min_price', 'max_price', 'price_ranges' ].includes(\n\t\t\t\t\t\t\tprop\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\t( filterProperties.min_price ||\n\t\t\t\t\t\t\tfilterProperties.price_ranges )\n\t\t\t\t\t) {\n\t\t\t\t\t\thasProp = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if ( filterProperties[ prop ] ) {\n\t\t\t\t\t\thasProp = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn hasProp;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} );\n\t}\n\n\t// show clear selection anchor\n\tmaybeToggleClearFilter( $filter ) {\n\t\tif ( ! this.isFilterActive( $filter ) ) {\n\t\t\tthis.maybeHideClearFilter( $filter );\n\t\t} else {\n\t\t\tthis.maybeShowClearFilter( $filter );\n\t\t}\n\t}\n\n\t// show clear all selections anchor\n\tmaybeToggleClearAllFilters() {\n\t\tif ( ! this.isAnyFilterActive() ) {\n\t\t\tthis.maybeHideClearAllFilters();\n\t\t} else {\n\t\t\tthis.maybeShowClearAllFilters();\n\t\t}\n\t}\n\n\t// show clear selection anchor\n\tmaybeShowClearFilter( $filter ) {\n\t\tif (\n\t\t\t! this.isFilterActive( $filter ) ||\n\t\t\t! yith_wcan_shortcodes.show_clear_filter\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link if already added.\n\t\t$filter.find( '.clear-selection' ).remove();\n\n\t\t// add new clear selection link.\n\t\t$( '<a/>', {\n\t\t\tclass: 'clear-selection',\n\t\t\ttext: yith_wcan_shortcodes.labels.clear_selection,\n\t\t\trole: 'button',\n\t\t} )\n\t\t\t.prependTo( $filter.find( '.filter-content' ) )\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\n\t\t\t\tthis.deactivateFilter(\n\t\t\t\t\t$filter,\n\t\t\t\t\tfalse,\n\t\t\t\t\tyith_wcan_shortcodes.instant_filters\n\t\t\t\t);\n\t\t\t\tthis.maybeHideClearFilter( $filter );\n\n\t\t\t\tif ( yith_wcan_shortcodes.instant_filters ) {\n\t\t\t\t\tthis.closeModal();\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\t// show clearAll anchor, when on mobile layout\n\tmaybeShowClearAllFilters() {\n\t\tif ( ! this.isAnyFilterActive() || ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link if already added.\n\t\tthis.$preset.find( '.clear-selection' ).remove();\n\n\t\t// add new clear selection link.\n\t\t$( '<a/>', {\n\t\t\tclass: 'clear-selection',\n\t\t\ttext: yith_wcan_shortcodes.labels.clear_all_selections,\n\t\t\trole: 'button',\n\t\t} )\n\t\t\t.prependTo( this.$preset.find( '.filters-container' ) )\n\t\t\t.on( 'click', ( ev ) => {\n\t\t\t\tev.preventDefault();\n\n\t\t\t\tthis.deactivateAllFilters(\n\t\t\t\t\tyith_wcan_shortcodes.instant_filters\n\t\t\t\t);\n\t\t\t\tthis.maybeHideClearAllFilters();\n\n\t\t\t\tif ( yith_wcan_shortcodes.instant_filters ) {\n\t\t\t\t\tthis.closeModal();\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\t// hide clear selection anchor\n\tmaybeHideClearFilter( $filter ) {\n\t\tif (\n\t\t\tthis.isFilterActive( $filter ) ||\n\t\t\t! yith_wcan_shortcodes.show_clear_filter\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link.\n\t\t$filter.find( '.clear-selection' ).remove();\n\t}\n\n\t// show clearAll anchor, when on mobile layout\n\tmaybeHideClearAllFilters() {\n\t\tif ( this.isAnyFilterActive() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// remove clear selection link.\n\t\tthis.$preset\n\t\t\t.find( '.filters-container' )\n\t\t\t.children( '.clear-selection' )\n\t\t\t.remove();\n\t}\n\n\t// deactivate filter\n\tdeactivateFilter( $filter, properties, doFilter ) {\n\t\tconst filterType = $filter.data( 'filter-type' ),\n\t\t\t$items = $filter.find( '.filter-item' ),\n\t\t\t$activeItems = $items.filter( '.active' ),\n\t\t\t$dropdown = $filter.find( '.filter-dropdown' );\n\n\t\tswitch ( filterType ) {\n\t\t\tcase 'tax':\n\t\t\t\tconst taxonomy = $filter.data( 'taxonomy' );\n\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this );\n\n\t\t\t\t\t\t\tif ( $option.val() === properties[ taxonomy ] ) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'term-slug' );\n\n\t\t\t\t\t\tif ( value === properties[ taxonomy ] ) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'review':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this );\n\n\t\t\t\t\t\t\tif ( $option.val() === properties.rating_filter ) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'rating' );\n\n\t\t\t\t\t\tif ( value === properties.rating_filter ) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_range':\n\t\t\t\tif ( $dropdown.length ) {\n\t\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t\t$dropdown.find( 'option' ).prop( 'selected', false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dropdown.find( 'option' ).each( function () {\n\t\t\t\t\t\t\tconst $option = $( this ),\n\t\t\t\t\t\t\t\tformattedRange =\n\t\t\t\t\t\t\t\t\tproperties.min_price +\n\t\t\t\t\t\t\t\t\t( properties.max_price\n\t\t\t\t\t\t\t\t\t\t? `-${ properties.max_price }`\n\t\t\t\t\t\t\t\t\t\t: '' );\n\n\t\t\t\t\t\t\tif ( $option.val() === formattedRange ) {\n\t\t\t\t\t\t\t\t$option.prop( 'selected', false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\t$dropdown.change();\n\t\t\t\t} else if ( ! properties ) {\n\t\t\t\t\t$activeItems.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t$activeItems.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$activeItems.each( function () {\n\t\t\t\t\t\tlet $item = $( this ),\n\t\t\t\t\t\t\t$label = $item.children( 'label' ),\n\t\t\t\t\t\t\t$anchor = $item.children( 'a' ),\n\t\t\t\t\t\t\tformattedRange,\n\t\t\t\t\t\t\tvalue;\n\n\t\t\t\t\t\tvalue = $label.length\n\t\t\t\t\t\t\t? $label.find( ':input' ).val()\n\t\t\t\t\t\t\t: $anchor.data( 'min_price' ) +\n\t\t\t\t\t\t\t ( $anchor.data( 'max_price' )\n\t\t\t\t\t\t\t\t\t? '-' + $anchor.data( 'max_price' )\n\t\t\t\t\t\t\t\t\t: '' );\n\n\t\t\t\t\t\tif ( properties.min_price ) {\n\t\t\t\t\t\t\tformattedRange =\n\t\t\t\t\t\t\t\tproperties.min_price +\n\t\t\t\t\t\t\t\t( properties.max_price\n\t\t\t\t\t\t\t\t\t? '-' + properties.max_price\n\t\t\t\t\t\t\t\t\t: '' );\n\t\t\t\t\t\t} else if ( properties.price_ranges ) {\n\t\t\t\t\t\t\tformattedRange = properties.price_ranges;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( value === formattedRange ) {\n\t\t\t\t\t\t\t$item.children( 'label' ).children( 'a' ).click();\n\t\t\t\t\t\t\t$item.removeClass( 'active' );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'price_slider':\n\t\t\t\tconst $priceSlider = $filter.find( '.price-slider' );\n\n\t\t\t\t$filter\n\t\t\t\t\t.find( '.price-slider-min' )\n\t\t\t\t\t.val( $priceSlider.data( 'min' ) );\n\t\t\t\t$filter\n\t\t\t\t\t.find( '.price-slider-max' )\n\t\t\t\t\t.val( $priceSlider.data( 'max' ) )\n\t\t\t\t\t.change();\n\t\t\t\tbreak;\n\t\t\tcase 'orderby':\n\t\t\t\t$filter.find( 'select' ).val( 'menu_order' );\n\t\t\t\tbreak;\n\t\t\tcase 'stock_sale':\n\t\t\t\tif ( ! properties ) {\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-in-stock' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-on-sale' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\t\t\t\t\t$filter\n\t\t\t\t\t\t.find( '.filter-featured' )\n\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t.change();\n\n\t\t\t\t\t$items.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\tif ( properties?.instock_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-in-stock' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( properties?.onsale_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-on-sale' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( properties?.featured_filter ) {\n\t\t\t\t\t\t$filter\n\t\t\t\t\t\t\t.find( '.filter-featured' )\n\t\t\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t\t\t.prop( 'checked', false )\n\t\t\t\t\t\t\t.change()\n\t\t\t\t\t\t\t.closest( '.filter-item' )\n\t\t\t\t\t\t\t.removeClass( 'active' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t$items.removeClass( 'active' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.activeFilters = false;\n\n\t\tif ( doFilter ) {\n\t\t\tthis.filter();\n\t\t}\n\t}\n\n\t// deactivate all filters\n\tdeactivateAllFilters( doFilter ) {\n\t\tconst self = this,\n\t\t\t$filters = this.getFilters();\n\n\t\t$filters.each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself.deactivateFilter( $filter );\n\t\t} );\n\n\t\tthis.activeFilters = false;\n\n\t\tif ( doFilter ) {\n\t\t\tthis.filter();\n\t\t}\n\t}\n\n\t// deactivate filters that matches a specific set of properties\n\tdeactivateFilterByProperties( properties, doFilter ) {\n\t\tconst self = this,\n\t\t\t$filters = this.getFiltersByProperties( properties );\n\n\t\tif ( ! $filters.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$filters.each( function () {\n\t\t\tconst $filter = $( this );\n\n\t\t\tself.deactivateFilter( $filter, properties, doFilter );\n\t\t} );\n\t}\n\n\t// open filters as a modal, when in mobile layout\n\topenModal() {\n\t\tif ( ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._closeAllCollapsables();\n\n\t\t$( 'body' )\n\t\t\t.css( 'overflow', 'hidden' )\n\t\t\t.addClass( 'yith-wcan-preset-modal-open' );\n\n\t\tthis.$preset.show();\n\n\t\tsetTimeout( () => {\n\t\t\tthis.$preset.addClass( 'open' );\n\t\t}, 100 );\n\t}\n\n\t// close filters modal, when in mobile layout\n\tcloseModal() {\n\t\tif ( ! this.isMobile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$preset.removeClass( 'open' );\n\n\t\tsetTimeout( () => {\n\t\t\tthis.$preset.hide();\n\t\t\t$( 'body' )\n\t\t\t\t.css( 'overflow', 'auto' )\n\t\t\t\t.removeClass( 'yith-wcan-preset-modal-open' );\n\t\t}, 300 );\n\t}\n\n\t// utility that formats the price according to store configuration.\n\tformatPrice( price ) {\n\t\tif ( 'undefined' !== typeof accounting ) {\n\t\t\tprice = accounting.formatMoney( price, {\n\t\t\t\tsymbol: yith_wcan_shortcodes.currency_format.symbol,\n\t\t\t\tdecimal: yith_wcan_shortcodes.currency_format.decimal,\n\t\t\t\tthousand: yith_wcan_shortcodes.currency_format.thousand,\n\t\t\t\tprecision: 0,\n\t\t\t\tformat: yith_wcan_shortcodes.currency_format.format,\n\t\t\t} );\n\t\t}\n\n\t\treturn price;\n\t}\n\n\t// utility that merges together sets of filter properties\n\tmergeProperties( set1, set2, $filter ) {\n\t\t// search for common properties\n\t\tfor ( const prop in set2 ) {\n\t\t\tif ( ! set2.hasOwnProperty( prop ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( !! set1[ prop ] ) {\n\t\t\t\tswitch ( prop ) {\n\t\t\t\t\tcase 'rating_filter':\n\t\t\t\t\tcase 'min_price':\n\t\t\t\t\tcase 'max_price':\n\t\t\t\t\tcase 'onsale_filter':\n\t\t\t\t\tcase 'instock_filter':\n\t\t\t\t\tcase 'orderby':\n\t\t\t\t\t\t// just override default value\n\t\t\t\t\t\tset1[ prop ] = set2[ prop ];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif ( 0 === prop.indexOf( 'query_type_' ) ) {\n\t\t\t\t\t\t\t// query_type param\n\t\t\t\t\t\t\tset1[ prop ] = set2[ prop ];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// we're dealing with taxonomy\n\t\t\t\t\t\t\tconst isAttr = 0 === prop.indexOf( 'filter_' ),\n\t\t\t\t\t\t\t\tglue = isAttr ? ',' : '+';\n\n\t\t\t\t\t\t\tlet newValue =\n\t\t\t\t\t\t\t\tset1[ prop ].replace( ',', glue ) +\n\t\t\t\t\t\t\t\tglue +\n\t\t\t\t\t\t\t\tset2[ prop ].replace( ',', glue );\n\n\t\t\t\t\t\t\tnewValue = newValue\n\t\t\t\t\t\t\t\t.split( glue )\n\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t( value, index, arr ) =>\n\t\t\t\t\t\t\t\t\t\tarr.indexOf( value ) === index\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( glue );\n\n\t\t\t\t\t\t\tset1[ prop ] = newValue;\n\n\t\t\t\t\t\t\tif ( isAttr ) {\n\t\t\t\t\t\t\t\tconst queryTypeParam = prop.replace(\n\t\t\t\t\t\t\t\t\t'filter_',\n\t\t\t\t\t\t\t\t\t'query_type_'\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tset1[ queryTypeParam ] = 'and';\n\t\t\t\t\t\t\t\tset2[ queryTypeParam ] = 'and';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdelete set2[ prop ];\n\t\t\t}\n\t\t}\n\n\t\t$.extend( set1, set2 );\n\n\t\treturn set1;\n\t}\n}\n","'use strict';\n\n/* global globalThis, jQuery, yith_wcan_shortcodes, accounting */\n\nimport YITH_WCAN_Filter from './modules/yith-wcan-filter';\nimport YITH_WCAN_Reset_Button from './modules/yith-wcan-reset-button';\nimport YITH_WCAN_Preset from './modules/yith-wcan-preset';\n\njQuery( function ( $ ) {\n\t$( document )\n\t\t.on(\n\t\t\t'yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode',\n\t\t\tfunction () {\n\t\t\t\t$( '.yith-wcan-filters' )\n\t\t\t\t\t.not( '.enhanced' )\n\t\t\t\t\t.each( function () {\n\t\t\t\t\t\tnew YITH_WCAN_Preset( $( this ) );\n\t\t\t\t\t} );\n\n\t\t\t\t$( '.yith-wcan-reset-filters' )\n\t\t\t\t\t.not( '.enhanced' )\n\t\t\t\t\t.each( function () {\n\t\t\t\t\t\tnew YITH_WCAN_Reset_Button( $( this ) );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t)\n\t\t.trigger( 'yith_wcan_init_shortcodes' );\n\n\tglobalThis.product_filter = new YITH_WCAN_Filter();\n} );\n"],"sourceRoot":""}
|
@@ -1 +1 @@
|
|
1 |
-
"use strict";function YITH_WCAN_Filter(e){const t=this;return t.xhr=null,t.doingAjax=!1,t.initialized=!1,t.originalSearch=!1,t._init=function(){const i=e("head").html(),n=document.title,l=t.searchAlternativeUrl(i);l&&!t.doingAjax&&!t.initialized&&!yith_wcan_shortcodes.ajax_filters&&t.pushUrlToHistory(l,n),t.originalSearch=location.search,t.initialized=!0},t.doFilter=function(i,n,l){let a,o,s=e(n||"body");if(o=e(document).triggerHandler("yith_wcan_filters_parameters",[i]),o&&(i=o),s&&t.block(s),a=t.buildUrl(i),yith_wcan_shortcodes.ajax_filters)return t.doingAjax=!0,t._doAjax(a).done((function(e){a=t.searchAlternativeUrl(e,a),t._beforeFilter(e,i),t.refreshFragments(n,l,e),t.pushUrlToHistory(a,e.pageTitle),s&&t.unblock(s),t._afterFilter(e,i),t.doingAjax=!1}));window.location=a},t._beforeFilter=function(t,i){e(document).trigger("yith-wcan-ajax-loading",[t,i])},t._cleanParam=function(e){let t=encodeURIComponent(e);return yith_wcan_shortcodes?.skip_sanitize&&(t=e),t},t._afterFilter=function(t,i){e(".woocommerce-ordering").on("change","select.orderby",(function(){e(this).closest("form").submit()})),e(window).trigger("scroll"),e(document).trigger("yith-wcan-ajax-filtered",[t,i]).trigger("yith_wcwl_reload_fragments")},t.buildUrl=function(i){let n=yith_wcan_shortcodes.query_param,l={},a=window.location,o=yith_wcan_shortcodes.base_url?yith_wcan_shortcodes.base_url:a?.origin+a?.pathname,s="";const r="object"==typeof i&&Object.keys(i).length;if(yith_wcan_shortcodes.session_param&&(o=o.replace(new RegExp("/"+yith_wcan_shortcodes.session_param+"/[^/]*/"),"")),r&&(l[n]=1),t.originalSearch){const i=t.originalSearch.replace("?","").split("&").reduce(((e,i)=>{const n=i.split("=");if(2===n.length){if(t.isFilterParam(n[0]))return e;e[n[0]]=n[1]}return e}),{});l=e.extend(l,i)}return r&&(l=e.extend(l,i)),s=Object.keys(l).reduce((function(e,i){const n=l[i];return n&&i?e+=t._cleanParam(i)+"="+t._cleanParam(n)+"&":e}),"?").replace(/&$/g,"").replace(/%2B/g,"+").replace(/%2C/g,","),s.length>1&&(o+=s),o},t.searchAlternativeUrl=function(e,t=""){let i,n=t;return-1===e.indexOf("yith_wcan:sharing_url")||(i=e.match(/<meta name="yith_wcan:sharing_url" content="([^"]*)">/),n=1 in i?i[1]:n),n},t.pushUrlToHistory=function(e,t){yith_wcan_shortcodes.change_browser_url&&!navigator.userAgent.match(/msie/i)&&window.history.pushState({pageTitle:t},"",e)},t.refreshFragments=function(t,i,n){const l=document.createElement("html"),a=e(l);if(l.innerHTML=n,t){let n,l=e(i),o=e(t);l.length&&(n=a.find(i),n.length&&l.replaceWith(n.first())),o.length&&(n=a.find(t),n.length&&o.replaceWith(n.first()))}else{const t=e(yith_wcan_shortcodes.content);t.length?t.replaceWith(a.find(yith_wcan_shortcodes.content)):e("body").replaceWith(a.find("body"))}e(document).trigger("yith_wcan_init_shortcodes")},t._doAjax=function(i,n){return t.xhr&&t.xhr.abort(),n=e.extend({url:i},n),t.xhr=e.ajax(n),t.xhr},t.block=function(t){if(void 0===e.fn.block)return;let i="#fff center center no-repeat";yith_wcan_shortcodes?.loader&&(i=`url('${yith_wcan_shortcodes.loader}') ${i}`),t.block({message:null,overlayCSS:{background:i,opacity:.7}})},t.unblock=function(t){void 0!==e.fn.unblock&&t.unblock()},t.isFilterParam=function(e){return-1!==["rating_filter","min_price","max_price","onsale_filter","instock_filter","orderby","product-page",yith_wcan_shortcodes.query_param].concat(yith_wcan_shortcodes.supported_taxonomies.map((e=>e.replace("pa_","filter_")))).indexOf(e)||(-1!==e.indexOf("filter_")||-1!==e.indexOf("query_type_"))},t._init(),t}function YITH_WCAN_Preset(e,t){const i=this;return i.preset="#"+e.attr("id"),i.$preset=e,i.target=i.$preset.data("target"),i.$target=!!i.target&&t(i.target),i.$filters=!1,i.$filterButtons=!1,i.modalElements={},i.activeFilters=!1,i.isMobile=!1,i.sliderTimeout=!1,i.originalFilters=null,i.dirty=!1,i._init=function(){i._regiterStatus(),i._initFilterButton(),i._initResponsive(),i._initFilters(),i._initActions(),i.$preset.data("preset",i).addClass("enhanced")},i._initFilters=function(){i.getFilters().each((function(){const e=t(this);i._initFilter(e)})),i.maybeShowClearAllFilters()},i._initFilterButton=function(){i.$filterButtons=i.$preset.find(".apply-filters"),i.$filterButtons.length&&i.$filterButtons.on("click",(e=>{e.preventDefault(),i.filter()})).hide()},i._initActions=function(){i.$preset.find("form").on("submit",(e=>{e.preventDefault()}))},i._initResponsive=function(){if(!yith_wcan_shortcodes.modal_on_mobile)return;const e=window.matchMedia(`(max-width: ${yith_wcan_shortcodes.mobile_media_query}px)`);t(window).on("resize",(function(){const t=!!e.matches;t!==i.isMobile&&(i.isMobile=t,i._afterLayoutChange())})).resize()},i._initFilter=function(e){const n=function(e){const n=t(this),l=n.closest(".yith-wcan-filter"),a=!!l.length&&"yes"===l.data("multiple"),o=n.closest(".filter-item"),s=o.length?l.find(".filter-item").not(o):[];if(o.is(".disabled")&&!o.is(".active"))return e.preventDefault(),!1;e.preventDefault(),s.length&&!a&&s.removeClass("active"),o.length&&o.toggleClass("active"),i.activeFilters=!1,i.maybeFilter(),i.maybeToggleClearAllFilters(),i.maybeToggleClearFilter(l)};e.find(".filter-item").not(".checkbox").not(".radio").on("click","a",(function(e){const i=t(this).closest(".filter-item");if(!t(e?.delegateTarget).is(i))return!1;n.call(this,e)})),e.find(":input").on("change",(function(e){const i=t(this),l=i.closest(".filter-item");if(l.is(".disabled")&&!l.is(".active"))return i.prop("checked",!1),!1;n.call(this,e)})),e.find("label > a").on("click",(function(e){const i=t(this),n=i.closest(".filter-item");if(e.preventDefault(),n.is(".disabled")&&!n.is(".active"))return!1;const l=i.parent().find(":input");(l.is('[type="radio"]')||l.is('[type="checkbox"]'))&&l.prop("checked",!l.prop("checked")),l.change()})),i._initTooltip(e),i._initPriceSlider(e),i._initDropdown(e),i._initCollapsable(e),i.maybeShowClearFilter(e),i.$preset?.hasClass("custom-style")&&i._initCustomInput(e)},i._initTooltip=function(e,i){e.find("[data-title]").each((function(){const e=t(this);!e.hasClass("tooltip-added")&&e.data("title")&&(e.on("mouseenter",(function(){let e=t(this),n=null,l=e.outerWidth(),a=0,o=0;if(!i||"top"!==i&&"right"!==i){const t=e.closest(".filter-item");i=t.hasClass("color")||t.hasClass("label")?"top":"right"}n=t("<span>",{class:"yith-wcan-tooltip",html:e.data("title")}),e.append(n),o=n.outerWidth()+6,n.outerWidth(o),a="top"===i?(l-o)/2:l+15,n.css({left:a.toFixed(0)+"px"}).fadeIn(200),e.addClass("with-tooltip")})).on("mouseleave",(function(){const e=t(this);e.find(".yith-wcan-tooltip").fadeOut(200,(function(){e.removeClass("with-tooltip").find(".yith-wcan-tooltip").remove()}))})),e.addClass("tooltip-added"))}))},i._initDropdown=function(e){const i=e.find("select.filter-dropdown");i.length&&(i.hasClass("select2-hidden-accessible")&&void 0!==t.fn.selectWoo&&i.selectWoo("destroy"),new YITH_WCAN_Dropdown(i,t,{paginate:!0,perPage:yith_wcan_shortcodes.terms_per_page}))},i._initPriceSlider=function(e){if(!e.hasClass("filter-price-slider"))return;const t=e.find(".price-slider"),n=t.find(".price-slider-min"),l=t.find(".price-slider-max"),a=parseFloat(t.data("min")),o=parseFloat(t.data("max")),s=parseFloat(n.val()),r=parseFloat(l.val()),c=parseFloat(t.data("step"));e.find(".price-slider-ui").ionRangeSlider({skin:"round",type:"double",min:a,max:o,step:c,from:s,to:r,min_interval:c,values_separator:" - ",prettify:e=>i.formatPrice(e),onChange:e=>{n.val(e.from),l.val(e.to)},onFinish:e=>{i.sliderTimeout&&clearTimeout(i.sliderTimeout),i.sliderTimeout=setTimeout((function(){i.maybeFilter()}),200)}})},i._initCollapsable=function(e){i._initTitleCollapsable(e),i._initHierarchyCollapsable(e)},i._initTitleCollapsable=function(e){const t=e.find(".collapsable");t.length&&i._initToggle(t,t,e.find(".filter-content"))},i._initHierarchyCollapsable=function(e){const n=e.find(".hierarchy-collapsable");if(!n.length)return;const l=e.find(".active");l.length&&(l.parents(".hierarchy-collapsable").removeClass("closed").addClass("opened"),l.hasClass("hierarchy-collapsable")&&yith_wcan_shortcodes.show_current_children&&l.removeClass("closed").addClass("opened")),n.each((function(){const e=t(this),n=t("<span/>",{class:"toggle-handle"});n.appendTo(e),i._initToggle(n,e,e.children("ul.filter-items"))}))},i._initToggle=function(e,t,i){t.hasClass("closed")&&i.hide(),e.off("click").on("click",(function(e){e.stopPropagation(),t.toggleClass("opened").toggleClass("closed"),i.slideToggle()}))},i._initCustomInput=function(e){e.find(":input").each((function(){let e,i=t(this),n=i.attr("type"),l=`${n}button`;"checkbox"!==n&&"radio"!==n||i.closest(`.${l}`).length||(i.is(":checked")&&(l+=" checked"),e=t("<span/>",{class:l}),i.wrap(e).on("change",(function(){const e=t(this);e.prop("checked")?e.parent().addClass("checked"):e.parent().removeClass("checked")})))}))},i._regiterStatus=function(){i.originalFilters=i.getFiltersProperties()},i._afterLayoutChange=function(){i.isMobile?(i.$preset.addClass("filters-modal").attr("role","dialog").attr("tabindex","-1").hide(),i._addCloseModalButton(),i._addApplyFiltersModalButton(),i._switchToCollapsables(),i.$filterButtons?.hide()):(i.$preset.removeClass("filters-modal").removeClass("open").removeAttr("role").removeAttr("tabindex").show(),t("body").css("overflow","auto").removeClass("yith-wcan-preset-modal-open"),i._removeCloseModalButton(),i._removeApplyFiltersModalButton(),i._switchBackCollapsables(),i.$filterButtons?.show())},i._addCloseModalButton=function(){const e=t("<a/>",{class:"close-button",html:"×","data-dismiss":"modal","aria-label":yith_wcan_shortcodes.labels.close});e.prependTo(i.$preset).on("click",i.closeModal),i.modalElements.closeButton=e},i._removeCloseModalButton=function(){i.modalElements?.closeButton?.remove()},i._addApplyFiltersModalButton=function(){const e=t("<button/>",{class:"apply-filters main-modal-button",html:yith_wcan_shortcodes.labels.show_results,"data-dismiss":"modal"});e.appendTo(i.$preset).on("click",(()=>{i.filter(),i.closeModal()})),i.modalElements.applyFiltersButton=e},i._removeApplyFiltersModalButton=function(){i.modalElements?.applyFiltersButton?.remove()},i._switchToCollapsables=function(){i.getFilters().each((function(){const e=t(this),n=e.find(".filter-title");n.length&&!n.hasClass("collapsable")&&(n.addClass("collapsable").data("disable-collapse",!0),i._initTitleCollapsable(e))}))},i._switchBackCollapsables=function(){i.getFilters().each((function(){const e=t(this),i=e.find(".filter-title");i.length&&i.hasClass("collapsable")&&i.data("disable-collapse")&&(i.removeClass("collapsable").removeData("disable-collapse",!0).off("click"),e.find(".filter-content").show())}))},i._closeAllCollapsables=function(){i.$filters.not(".no-title").not(((e,n)=>i.isFilterActive(t(n)))).find(".filter-content").hide().end().find(".filter-title").addClass("closed").removeClass("opened")},i.maybeRegisterStatusChange=function(){const e=i.getFiltersProperties(),t=JSON.stringify(e),n=JSON.stringify(i.originalFilters);i.dirty=t!==n},i.maybeFilter=function(){i.maybeRegisterStatusChange(),yith_wcan_shortcodes.instant_filters&&!i.isMobile?i.filter():yith_wcan_shortcodes.instant_filters||i.isMobile?i.isMobile&&i.dirty&&(i.$preset.addClass("with-filter-button"),i.modalElements.applyFiltersButton?.show()):i.dirty?i.$filterButtons?.show():i.$filterButtons?.hide()},i.filter=function(){window?.product_filter?.doFilter(i.getFiltersProperties(),i.target,i.preset)?.done((()=>{let e=t(i.preset);if(!i.isMobile&&e.length&&yith_wcan_shortcodes.scroll_top){let i=e.offset().top;if(yith_wcan_shortcodes.scroll_target){const e=t(yith_wcan_shortcodes.scroll_target);i=e.length?e.offset().top:i}t("body, html").animate({scrollTop:i-100})}i.originalFilters=i.getFiltersProperties(),i.dirty=!1})),i.isMobile&&(i.$preset.removeClass("with-filter-button"),i.modalElements.applyFiltersButton?.hide())},i.getFilters=function(){return!1===i.$filters&&(i.$filters=i.$preset.find(".yith-wcan-filter")),i.$filters},i.getActiveFilters=function(){return!1===i.activeFilters&&(i.activeFilters=i.getFiltersProperties()),i.activeFilters},i.isAnyFilterActive=function(){return!!Object.keys(i.getActiveFilters()).length},i.isFilterActive=function(e){let t,n;switch(e.data("filter-type")){case"tax":const i=e.find(".filter-dropdown");if(i.length){const e=i.val();t="object"==typeof e?!!e?.length:!!e;break}case"price_range":case"stock_sale":t=e.find(".filter-item").filter(".active").length;break;case"review":t=!!e.find("select").val();break;case"price_slider":const n=parseFloat(e.find(".price-slider").data("min")),l=parseFloat(e.find(".price-slider").data("max")),a=parseFloat(e.find(".price-slider-min").val()),o=parseFloat(e.find(".price-slider-max").val());t=a>n||o<l;break;case"orderby":t="menu_order"!==e.find(".filter-order-by").val();break;default:t=!1}return n=e.triggerHandler("yith_wcan_is_filter_active",t,i),t=void 0!==n?n:t,t},i.getFilterProperties=function(e){let n,l,a={};switch(e.data("filter-type")){case"tax":let i=e.find(".filter-dropdown"),n=[],o=e.data("taxonomy"),s=0===o.indexOf("filter"),r="yes"===e.data("multiple"),c=e.data("relation");if(i.length?r?n=i.val():n.push(i.val()):(l=e.find(".filter-item").filter(".active").children("a, label"),n=l.get().reduce((function(e,i){let n;return n=(i=t(i)).is("label")?i.find(":input").val():i.data("term-slug"),n?(e.push(n),e):e}),n)),r){const e=s||"and"!==c?",":"+";a[o]=n.join(e)}else a[o]=n.pop();s&&(a[o.replace("filter_","query_type_")]=c);break;case"review":a.rating_filter=e.find("select").val();break;case"price_range":l=e.find(".filter-item").filter(".active").first().children("a"),a.min_price=parseFloat(l.data("range-min")),a.max_price=parseFloat(l.data("range-max"));break;case"price_slider":a.min_price=parseFloat(e.find(".price-slider-min").val()),a.max_price=parseFloat(e.find(".price-slider-max").val());break;case"stock_sale":e.find(".filter-on-sale").is(".active")&&(a.onsale_filter=1),e.find(".filter-in-stock").is(".active")&&(a.instock_filter=1);break;case"orderby":a.orderby=e.find(".filter-order-by").val()}return n=e.triggerHandler("yith_wcan_filter_properties",a,i),a=void 0!==n?n:a,a},i.getFiltersProperties=function(){let e={};return i.getFilters().each((function(){const n=t(this);if(i.isFilterActive(n)){const t=i.getFilterProperties(n);e=i.mergeProperties(e,t,n)}})),e},i.getFiltersByProperties=function(e){return i.getFilters().filter((function(){const n=t(this);if(i.isFilterActive(n)){let t=i.getFilterProperties(n),l=!1;for(const i in e)if(void 0!==t[i]){l=!0;break}return l}return!1}))},i.maybeToggleClearFilter=function(e){i.isFilterActive(e)?i.maybeShowClearFilter(e):i.maybeHideClearFilter(e)},i.maybeToggleClearAllFilters=function(){i.isAnyFilterActive()?i.maybeShowClearAllFilters():i.maybeHideClearAllFilters()},i.maybeShowClearFilter=function(e){i.isFilterActive(e)&&yith_wcan_shortcodes.show_clear_filter&&(e.find(".clear-selection").remove(),t("<a/>",{class:"clear-selection",text:yith_wcan_shortcodes.labels.clear_selection,role:"button"}).prependTo(e.find(".filter-content")).on("click",(function(t){t.preventDefault(),i.deactivateFilter(e,!1,yith_wcan_shortcodes.instant_filters),i.maybeHideClearFilter(e),yith_wcan_shortcodes.instant_filters&&i.closeModal()})))},i.maybeShowClearAllFilters=function(){i.isAnyFilterActive()&&i.isMobile&&(i.$preset.find(".clear-selection").remove(),t("<a/>",{class:"clear-selection",text:yith_wcan_shortcodes.labels.clear_all_selections,role:"button"}).prependTo(i.$preset.find(".filters-container")).on("click",(function(e){e.preventDefault(),i.deactivateAllFilters(yith_wcan_shortcodes.instant_filters),i.maybeHideClearAllFilters(),yith_wcan_shortcodes.instant_filters&&i.closeModal()})))},i.maybeHideClearFilter=function(e){!i.isFilterActive(e)&&yith_wcan_shortcodes.show_clear_filter&&e.find(".clear-selection").remove()},i.maybeHideClearAllFilters=function(){i.isAnyFilterActive()||i.$preset.find(".filters-container").children(".clear-selection").remove()},i.deactivateFilter=function(e,n,l){const a=e.data("filter-type"),o=e.find(".filter-item"),s=o.filter(".active");switch(a){case"tax":const i=e.find(".filter-dropdown"),l=e.data("taxonomy");i.length?(n?i.find("option").each((function(){const e=t(this);e.val()===n[l]&&e.prop("selected",!1)})):i.find("option").prop("selected",!1),i.change()):n?s.each((function(){let e,i=t(this),a=i.children("label"),o=i.children("a");e=a.length?a.find(":input").val():o.data("term-slug"),e?.toString()===n[l]?.toString()&&(i.children("label").children("a").click(),i.removeClass("active"))})):(s.children("label").children("a").click(),s.removeClass("active"));break;case"price_slider":const a=e.find(".price-slider");e.find(".price-slider-min").val(a.data("min")),e.find(".price-slider-max").val(a.data("max")).change();break;case"orderby":e.find("select").val("menu_order");break;case"stock_sale":n?(n?.instock_filter&&e.find(".filter-in-stock").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active"),n?.onsale_filter&&e.find(".filter-on-sale").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active")):(e.find(".filter-in-stock").find(":input").prop("checked",!1).change(),e.find(".filter-on-sale").find(":input").prop("checked",!1).change(),o.removeClass("active"));break;case"review":e.find(".filter-dropdown").val("").change();break;default:o.removeClass("active")}i.activeFilters=!1,l&&i.filter()},i.deactivateAllFilters=function(e){i.getFilters().each((function(){const e=t(this);i.deactivateFilter(e)})),i.activeFilters=!1,e&&i.filter()},i.deactivateFilterByProperties=function(e,n){const l=i.getFiltersByProperties(e);l.length&&l.each((function(){const l=t(this);i.deactivateFilter(l,e,n)}))},i.openModal=function(){i.isMobile&&(i._closeAllCollapsables(),t("body").css("overflow","hidden").addClass("yith-wcan-preset-modal-open"),i.$preset.show(),setTimeout((()=>{i.$preset.addClass("open")}),100))},i.closeModal=function(){i.isMobile&&(i.$preset.removeClass("open"),setTimeout((()=>{i.$preset.hide(),t("body").css("overflow","auto").removeClass("yith-wcan-preset-modal-open")}),300))},i.formatPrice=function(e){return"undefined"!=typeof accounting&&(e=accounting.formatMoney(e,{symbol:yith_wcan_shortcodes.currency_format.symbol,decimal:yith_wcan_shortcodes.currency_format.decimal,thousand:yith_wcan_shortcodes.currency_format.thousand,precision:0,format:yith_wcan_shortcodes.currency_format.format})),e},i.mergeProperties=function(e,i,n){for(const t in i)if(i.hasOwnProperty(t)&&e[t]){switch(t){case"rating_filter":case"min_price":case"max_price":case"onsale_filter":case"instock_filter":case"orderby":e[t]=i[t];break;default:if(0===t.indexOf("query_type_"))e[t]=i[t];else{const n=0===t.indexOf("filter_"),l=n?",":"+";let a=e[t].replace(",",l)+l+i[t].replace(",",l);if(a=a.split(l).filter(((e,t,i)=>i.indexOf(e)===t)).join(l),e[t]=a,n){const n=t.replace("filter_","query_type_");e[n]="and",i[n]="and"}}}delete i[t]}return t.extend(e,i),e},i._init(),i}function YITH_WCAN_Filter_Labels(e,t){const i=this;return i.$label_set=e,i.$labels=!1,i._init=function(){i._initLabels(),i.$label_set.data("filter_labels",i).addClass("enhanced")},i._initLabels=function(){i.getLabels().each((function(){const e=t(this);i._initLabel(e)}))},i._initLabel=function(e){e.on("click",(()=>i.disableLabel(e)))},i.getLabels=function(){return!1===i.$labels&&(i.$labels=i.$label_set.find(".active-filter-label")),i.$labels},i.disableLabel=function(e){const i=e.data("filters");t(".yith-wcan-filters").each((function(){t(this).data("preset").deactivateFilterByProperties(i,!0)}))},i._init(),i}function YITH_WCAN_Reset_Button(e,t){const i=this;return i.$reset=e,i._init=function(){i.$reset.on("click",(function(e){e.preventDefault(),t(".yith-wcan-filters").each((function(){t(this).data("preset").deactivateAllFilters(!0)}))})),i.$reset.data("reset",i).addClass("enhanced")},i._init(),i}function YITH_WCAN_Modal_Opener(e,t){const i=this;return i.$button=e,i.preset=null,i.$preset=null,i.isMobile,i._init=function(){i._initPreset(),i._initResponsive(),i._initActions(),i.$button.data("modalOpener",i).addClass("enhanced")},i._initPreset=function(){let e,n=i.$button.data("target");e=t(n?`#${n}`:".yith-wcan-filters"),e.length&&(i.$preset=e.first(),i.preset=i.$preset.data("preset"))},i._initResponsive=function(){if(!yith_wcan_shortcodes.modal_on_mobile)return void i.$button.hide();const e=window.matchMedia(`(max-width: ${yith_wcan_shortcodes.mobile_media_query}px)`);t(window).on("resize",(function(){const t=!!e.matches;t!==i.isMobile&&(i.isMobile=t,i._afterLayoutChange())})).resize()},i._initActions=function(){i.$preset?.length&&i.$button.on("click",(function(e){e.preventDefault(),i.preset.openModal()}))},i._afterLayoutChange=function(){i.isMobile?i.$button.show():i.$button.hide()},i._init(),i}function YITH_WCAN_Dropdown(e,t,i){const n=this;return n.$origialSelect=e,n.$_main=null,n.$_label=null,n.$_dropdown=null,n.$_search=null,n.$_showMore=null,n.$_items=null,n.currentPage=1,n.options={},n._init=function(){if(!n.$origialSelect.is("select"))return;const e=n.$origialSelect.data("per_page"),l=n.$origialSelect.data("order"),a=n.$origialSelect.data("all-label"),o={showSearch:n.$origialSelect.data("show_search"),paginate:n.$origialSelect.data("paginate"),perPage:e||10,order:l||"ASC",getElements:null,labels:{emptyLabel:a||yith_wcan_shortcodes.labels.empty_option,searchPlaceholder:yith_wcan_shortcodes.labels.search_placeholder,noItemsFound:yith_wcan_shortcodes.labels.no_items,showMore:yith_wcan_shortcodes.labels.show_more}};n.options=t.extend(o,i),n._hideSelect(),n._initTemplate(),n._initActions(),n.$origialSelect.data("dropdown",n).addClass("enhanced")},n._hideSelect=function(){n.$origialSelect.hide()},n._initTemplate=function(){const e=t("<div/>",{class:"yith-wcan-dropdown closed"}),i=t("<div/>",{class:"dropdown-label",html:n.getLabel()}),l=t("<div>",{class:"dropdown-wrapper"}),a=t("<ul/>",{class:"matching-items filter-items"});l.append(a),e.append(i).append(l),n.options.showSearch&&n._initSearchTemplate(l),n.options.paginate&&n._initShowMoreTemplate(l),n.$origialSelect.after(e),n.$_main=e,n.$_label=i,n.$_dropdown=l,n.$_items=a},n._initSearchTemplate=function(e){const i=t("<div/>",{class:"search-field-container"}),l=t("<input/>",{name:"s",class:"search-field",type:"search",placeholder:n.options.labels.searchPlaceholder});i.append(l).prependTo(e),n.$_search=l},n._initShowMoreTemplate=function(e){const i=t("<a/>",{class:"show-more",text:n.options.labels.showMore.replace("%d",n.options.perPage)});i.on("click",n.loadNextPage).hide(),e.append(i),n.$_showMore=i},n._initActions=function(){n.$_main.on("click",(e=>{e.stopPropagation(),n.toggleDropdown()})),n.$_dropdown.on("click",(e=>{e.stopPropagation()})),n.$_search?.on("keyup search",(()=>{n._populateItems()})),n.$_items.on("change",":input",(function(){let e=t(this).closest("li"),i=e.data("value"),l=!1;if(e.hasClass("disabled")&&!n.isValueSelected(i))return!1;e.toggleClass("active"),l=e.hasClass("active"),n._changeItemStatus(i,l)})),n.$_items.on("click","li:not(.checkbox) a",(function(e){let i=t(this).closest("li"),l=i.data("value"),a=!1;if(e.preventDefault(),i.hasClass("disabled")&&!n.isValueSelected(l))return!1;i.toggleClass("active"),a=i.hasClass("active"),a&&i.siblings().removeClass("active"),n._changeItemStatus(l,a)})),n.$_items.on("click","label > a",(function(e){const i=t(this).parent().find(":input");e.preventDefault(),(i.is('[type="radio"]')||i.is('[type="checkbox"]'))&&i.prop("checked",!i.prop("checked")),i.change()})),n.$origialSelect.on("change",((e,i)=>{i||(n.$_items.find("li").each((function(){const e=t(this).data("value");n.isValueSelected(e)?n._selectItem(e):n._deselectItem(e)})),n.updateLabel())})),t(document).on("click",n.closeDropdown)},n.openDropdown=function(){n.$_main.addClass("open").removeClass("closed"),n._afterDropdownOpen()},n.closeDropdown=function(){n.$_main.removeClass("open").addClass("closed")},n._closeOtherDropdowns=function(){t(document).find("select.enhanced").filter((function(e,i){const l=t(i);return!!l.data("dropdown")&&!l.is(n.$origialSelect)})).each((function(){t(this).data("dropdown").closeDropdown()}))},n.toggleDropdown=function(){n.$_main.toggleClass("open").toggleClass("closed"),n.$_main.hasClass("open")&&n._afterDropdownOpen()},n._afterDropdownOpen=function(){n._closeOtherDropdowns(),n.$_search?.length&&n.$_search.val(""),n._populateItems()},n.getMatchingElements=function(e,i){let l,a=[],o=n.getOptions();return l=new Promise((l=>{o.each((function(){const i=t(this),n=i.val(),l=i.html(),o=new RegExp(".*"+e+".*","i");(!e||o.test(n)||o.test(l))&&a.push({value:n,label:l})})),n.options.getElements?n.options.getElements(e).then((e=>{e&&(e=e.reduce(((e,t,i)=>(e.push({label:i,value:t}),e)),[]),a=t.extend(a,e)),l(n._formatItems(a,i))})):l(n._formatItems(a,i))})),l},n._formatItems=function(e,t){let i=[],l=!1;return e.filter((e=>-1===i.indexOf(e.value)&&(i.push(e.value),!0))).sort(((e,t)=>{const i="ASC"===n.options.order?1:-1;return e.value<t.value?-1*i:e.value>t.value?i:0})),t&&(l=t<Object.keys(e).length,e=e.slice(0,t)),{items:e,hasMore:l}},n._generateItem=function(e,i){let l,a=n.isValueSelected(e),o=n.getOptionByValue(e),s=t("<li/>",{"data-value":e,class:o.length?o.attr("class"):""});if(o.length){const e=o.data("template"),t=o.data("count");i=e||i,t&&(i+=t)}if(l=t("<a/>",{href:o.length?o.data("filter_url"):"#",html:i,"data-title":o.length?o.data("title"):""}),n.$origialSelect.prop("multiple")){const i=t("<input/>",{type:"checkbox",value:e}),n=t("<label>");i.prop("checked",a),n.prepend(i).append(l),s.append(n).addClass("checkbox")}else s.append(l);return a?s.addClass("active"):s.removeClass("active"),s},n._populateItems=function(e){let i,l=n.$_search?.length?n.$_search.val():"",a=n.options.paginate?n.options.perPage:0;i=(e=e?parseInt(e):1)*a,n.getMatchingElements(l,i).then((function(i){let l=i.items,a=[],o=!1;if(n._emptyItems(),n._hideLoadMore(),l.length){for(const e of l)""===e.value?a.unshift(n._generateItem(e.value,e.label)):a.push(n._generateItem(e.value,e.label));n.currentPage=e,o=i.hasMore}else a.push(t("<li/>",{text:n.options.labels.noItemsFound})),n.currentPage=1;n.$_items.append(a),t(document).trigger("yith_wcan_dropdown_updated"),o&&n._showLoadMore()}))},n.loadNextPage=function(){const e=n.currentPage+1;n._populateItems(e)},n._selectItem=function(e){return n._changeItemStatus(e,!0)},n._deselectItem=function(e){return n._changeItemStatus(e,!1)},n._changeItemStatus=function(e,t){const i=n.$origialSelect.find(`option[value="${e}"]`);return!!i.length&&(i.prop("selected",t),n.closeDropdown(),n.updateLabel(),n.$origialSelect.trigger("change",[!0]),!0)},n._emptyItems=function(){n.$_items.html("")},n._showLoadMore=function(){n.$_showMore.show()},n._hideLoadMore=function(){n.$_showMore.hide()},n.getLabel=function(){return n.hasSelectedValues()?n.getSelectedLabels().join(", "):n.options.labels.emptyLabel},n.updateLabel=function(){const e=n.getLabel();n.$_label.html(e)},n.getOptions=function(){return n.$origialSelect.find("option")},n.hasSelectedValues=function(){return n.getSelectedOptions().length},n.isValueSelected=function(e){return-1!==n.getSelectedValues().indexOf(e)},n.getSelectedOptions=function(){return n.$origialSelect.find("option").filter(":selected")},n.getOptionByValue=function(e){return n.$origialSelect.find(`option[value="${e}"]`)},n.getSelectedLabels=function(){const e=[];return n.getSelectedOptions().each((function(){let i=t(this),n=i.data("template");n=n||i.html().replace(/\([0-9]*\)/,""),e.push(n)})),e},n.getSelectedValues=function(){const e=[];return n.getSelectedOptions().each((function(){e.push(t(this).val())})),e},n.destroy=function(){},n._init(),n}jQuery((function(e){e(document).on("yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode",(function(){e(".yith-wcan-filters").not(".enhanced").each((function(){new YITH_WCAN_Preset(e(this),e)})),e(".yith-wcan-active-filters").not(".enhanced").each((function(){new YITH_WCAN_Filter_Labels(e(this),e)})),e(".yith-wcan-reset-filters").not(".enhanced").each((function(){new YITH_WCAN_Reset_Button(e(this),e)})),e(".yith-wcan-filters-opener").not(".enhanced").each((function(){new YITH_WCAN_Modal_Opener(e(this),e)}))})).trigger("yith_wcan_init_shortcodes"),globalThis.product_filter=new YITH_WCAN_Filter(e)}));
|
1 |
+
(()=>{"use strict";var e=jQuery;function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var n=function(){function n(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),a(this,"xhr",null),a(this,"doingAjax",!1),a(this,"originalSearch",location.search),a(this,"initialized",!1);var t=e("head").html(),i=document.title,r=this.searchAlternativeUrl(t);r&&!this.doingAjax&&!this.initialized&&!yith_wcan_shortcodes.ajax_filters&&this.pushUrlToHistory(r,i),this.initialized=!0}var r,l,s;return r=n,(l=[{key:"doFilter",value:function(t,i,a){var n,r,l=this,s=e(i||"body");if((r=e(document).triggerHandler("yith_wcan_filters_parameters",[t]))&&(t=r),s&&this.block(s),n=this.buildUrl(t),yith_wcan_shortcodes.ajax_filters)return this.doingAjax=!0,this._doAjax(n).done((function(e){n=l.searchAlternativeUrl(e,n),l._beforeFilter(e,t),l.refreshFragments(i,a,e),l.pushUrlToHistory(n,e.pageTitle),s&&l.unblock(s),l._afterFilter(e,t),l.doingAjax=!1}));window.location=n}},{key:"_beforeFilter",value:function(t,i){e(document).trigger("yith-wcan-ajax-loading",[t,i])}},{key:"_afterFilter",value:function(t,i){e(".woocommerce-ordering").on("change","select.orderby",(function(){e(this).closest("form").submit()})),e(window).trigger("scroll"),e(document).trigger("yith-wcan-ajax-filtered",[t,i]).trigger("yith_wcwl_reload_fragments")}},{key:"buildUrl",value:function(i){var a,n=this,r=yith_wcan_shortcodes.query_param,l={},s=window.location,o=yith_wcan_shortcodes.base_url?yith_wcan_shortcodes.base_url:(null==s?void 0:s.origin)+(null==s?void 0:s.pathname),c=this,h="object"===t(i)&&Object.keys(i).length;if(yith_wcan_shortcodes.session_param&&(o=o.replace(new RegExp("/"+yith_wcan_shortcodes.session_param+"/[^/]*/"),"")),h&&(l[r]=1),this.originalSearch){var d=this.originalSearch.replace("?","").split("&").reduce((function(e,t){var i=t.split("=");if(2===i.length){if(n.isFilterParam(i[0]))return e;e[i[0]]=i[1]}return e}),{});l=e.extend(l,d)}return h&&(l=e.extend(l,i)),(a=Object.keys(l).reduce((function(e,t){var i=l[t];return i&&t?e+=c._cleanParam(t)+"="+c._cleanParam(i)+"&":e}),"?").replace(/&$/g,"").replace(/%2B/g,"+").replace(/%2C/g,",")).length>1&&(o+=a),o}},{key:"searchAlternativeUrl",value:function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=i;return-1===e.indexOf("yith_wcan:sharing_url")?a:a=(t=e.match(/<meta name="yith_wcan:sharing_url" content="([^"]*)">/))&&1 in t?t[1]:a}},{key:"pushUrlToHistory",value:function(e,t){yith_wcan_shortcodes.change_browser_url&&!navigator.userAgent.match(/msie/i)&&window.history.pushState({pageTitle:t},"",e)}},{key:"refreshFragments",value:function(t,i,a){var n=document.createElement("html"),r=e(n);if(n.innerHTML=a,t){var l,s=e(i),o=e(t);s.length&&(l=r.find(i)).length&&s.replaceWith(l.first()),o.length&&(l=r.find(t)).length&&o.replaceWith(l.first())}else{var c=e(yith_wcan_shortcodes.content);c.length?c.replaceWith(r.find(yith_wcan_shortcodes.content)):e("body").replaceWith(r.find("body"))}e(document).trigger("yith_wcan_init_shortcodes")}},{key:"_cleanParam",value:function(e){var t,i;return null===(t=yith_wcan_shortcodes)||void 0===t||!t.process_sanitize||null!==(i=yith_wcan_shortcodes)&&void 0!==i&&i.skip_sanitize?e:encodeURIComponent(e)}},{key:"_doAjax",value:function(t,i){return this.xhr&&this.xhr.abort(),i=e.extend({url:t},i),this.xhr=e.ajax(i),this.xhr}},{key:"block",value:function(t){var i;if(void 0!==e.fn.block){var a="#fff center center no-repeat";null!==(i=yith_wcan_shortcodes)&&void 0!==i&&i.loader&&(a="url('".concat(yith_wcan_shortcodes.loader,"') ").concat(a)),t.block({message:null,overlayCSS:{background:a,opacity:.7}})}}},{key:"unblock",value:function(t){void 0!==e.fn.unblock&&t.unblock()}},{key:"isFilterParam",value:function(e){return-1!==["rating_filter","min_price","max_price","price_ranges","onsale_filter","instock_filter","featured_filter","orderby","product-page",yith_wcan_shortcodes.query_param].concat(yith_wcan_shortcodes.supported_taxonomies.map((function(e){return e.replace("pa_","filter_")}))).indexOf(e)||-1!==e.indexOf("filter_")||-1!==e.indexOf("query_type_")}}])&&i(r.prototype,l),s&&i(r,s),n}();var r=function t(i){var a,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=null,(n="$reset")in(a=this)?Object.defineProperty(a,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):a[n]=r,this.$reset=i,this.$reset.on("click",(function(t){t.preventDefault(),e(".yith-wcan-filters").each((function(){var t=e(this).data("preset");t.deactivateAllFilters(!0),t.closeModal()}))})),this.$reset.data("reset",this).addClass("enhanced")};function l(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var a=0,n=function(){};return{s:n,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,l=!0,o=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return l=e.done,e},e:function(e){o=!0,r=e},f:function(){try{l||null==i.return||i.return()}finally{if(o)throw r}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,a=new Array(t);i<t;i++)a[i]=e[i];return a}function o(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function c(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var h=function(){function t(i,a){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,"$originalSelect",null),c(this,"$_main",null),c(this,"$_label",null),c(this,"$_dropdown",null),c(this,"$_search",null),c(this,"$_showMore",null),c(this,"$_items",null),c(this,"currentPage",1),c(this,"options",{}),this.$originalSelect=i,this.$originalSelect.is("select")){var n=this.$originalSelect.data("per_page"),r=this.$originalSelect.data("order"),l=this.$originalSelect.data("all-label"),s={showSearch:this.$originalSelect.data("show_search"),paginate:this.$originalSelect.data("paginate"),perPage:n||10,order:r||"ASC",getElements:null,labels:{emptyLabel:l||yith_wcan_shortcodes.labels.empty_option,searchPlaceholder:yith_wcan_shortcodes.labels.search_placeholder,noItemsFound:yith_wcan_shortcodes.labels.no_items,showMore:yith_wcan_shortcodes.labels.show_more}};this.options=e.extend(s,a),this._hideSelect(),this._initTemplate(),this._initActions(),this.$originalSelect.data("dropdown",this).addClass("enhanced")}}var i,a,n;return i=t,(a=[{key:"_hideSelect",value:function(){this.$originalSelect.hide()}},{key:"_initTemplate",value:function(){var t=e("<div/>",{class:"yith-wcan-dropdown closed"}),i=e("<div/>",{class:"dropdown-label",html:this.getLabel()}),a=e("<div>",{class:"dropdown-wrapper"}),n=e("<ul/>",{class:"matching-items filter-items"});a.append(n),t.append(i).append(a),this.options.showSearch&&this._initSearchTemplate(a),this.options.paginate&&this._initShowMoreTemplate(a),this.$originalSelect.after(t),this.$_main=t,this.$_label=i,this.$_dropdown=a,this.$_items=n}},{key:"_initSearchTemplate",value:function(t){var i=e("<div/>",{class:"search-field-container"}),a=e("<input/>",{name:"s",class:"search-field",type:"search",placeholder:this.options.labels.searchPlaceholder});i.append(a).prependTo(t),this.$_search=a}},{key:"_initShowMoreTemplate",value:function(t){var i=e("<a/>",{class:"show-more",text:this.options.labels.showMore.replace("%d",this.options.perPage)});i.on("click",this.loadNextPage.bind(this)).hide(),t.append(i),this.$_showMore=i}},{key:"_initActions",value:function(){var t,i,a=this;null===(t=this.$_main)||void 0===t||t.on("click",(function(e){e.stopPropagation(),a.toggleDropdown()})),this.$_dropdown.on("click",(function(e){e.stopPropagation()})),null===(i=this.$_search)||void 0===i||i.on("keyup search",(function(){a._populateItems()})),this.$_items.on("change",":input",(function(){var t,i=e(this).closest("li"),n=i.data("value");if(i.hasClass("disabled")&&!a.isValueSelected(n))return!1;i.toggleClass("active"),t=i.hasClass("active"),a._changeItemStatus(n,t)})),this.$_items.on("click","li:not(.checkbox) a",(function(t){var i,n=e(this).closest("li"),r=n.data("value");if(t.preventDefault(),n.hasClass("disabled")&&!a.isValueSelected(r))return!1;n.toggleClass("active"),(i=n.hasClass("active"))&&n.siblings().removeClass("active"),a._changeItemStatus(r,i)})),this.$_items.on("click","label > a",(function(t){var i=e(this).parent().find(":input");t.preventDefault(),(i.is('[type="radio"]')||i.is('[type="checkbox"]'))&&i.prop("checked",!i.prop("checked")),i.change()})),this.$originalSelect.on("change",(function(t,i){i||(a.$_items.find("li").each((function(){var t=e(this).data("value");a.isValueSelected(t)?a._selectItem(t):a._deselectItem(t)})),a.updateLabel())})),e(document).on("click",this.closeDropdown.bind(this))}},{key:"openDropdown",value:function(){var e;null===(e=this.$_main)||void 0===e||e.addClass("open").removeClass("closed"),this._afterDropdownOpen()}},{key:"closeDropdown",value:function(){var e;null===(e=this.$_main)||void 0===e||e.removeClass("open").addClass("closed")}},{key:"_closeOtherDropdowns",value:function(){var t=this;e(document).find("select.enhanced").filter((function(i,a){var n=e(a);return!!n.data("dropdown")&&!n.is(t.$originalSelect)})).each((function(){e(this).data("dropdown").closeDropdown()}))}},{key:"toggleDropdown",value:function(){var e,t;null===(e=this.$_main)||void 0===e||e.toggleClass("open").toggleClass("closed"),null!==(t=this.$_main)&&void 0!==t&&t.hasClass("open")&&this._afterDropdownOpen()}},{key:"_afterDropdownOpen",value:function(){var e;this._closeOtherDropdowns(),null!==(e=this.$_search)&&void 0!==e&&e.length&&this.$_search.val(""),this._populateItems()}},{key:"getMatchingElements",value:function(t,i){var a=this,n=[],r=this.getOptions();return new Promise((function(l){r.each((function(){var i=e(this),a=i.val(),r=i.html(),l=new RegExp(".*"+t+".*","i");(!t||l.test(a)||l.test(r))&&n.push({value:a,label:r})})),a.options.getElements?a.options.getElements(t).then((function(t){t&&(t=t.reduce((function(e,t,i){return e.push({label:i,value:t}),e}),[]),n=e.extend(n,t)),l(a._formatItems(n,i))})):l(a._formatItems(n,i))}))}},{key:"_formatItems",value:function(e,t){var i=this,a=[],n=!1;return e.filter((function(e){return-1===a.indexOf(e.value)&&(a.push(e.value),!0)})).sort((function(e,t){var a="ASC"===i.options.order?1:-1;return e.value<t.value?-1*a:e.value>t.value?a:0})),t&&(n=t<Object.keys(e).length,e=e.slice(0,t)),{items:e,hasMore:n}}},{key:"_generateItem",value:function(t,i){var a,n=this.isValueSelected(t),r=this.getOptionByValue(t),l=e("<li/>",{"data-value":t,class:r.length?r.attr("class"):""});if(r.length){var s=r.data("template"),o=r.data("count");i=s||i,o&&(i+=o)}if(a=e("<a/>",{href:r.length?r.data("filter_url"):"#",html:i,"data-title":r.length?r.data("title"):""}),this.$originalSelect.prop("multiple")){var c=e("<input/>",{type:"checkbox",value:t}),h=e("<label>");c.prop("checked",n),h.prepend(c).append(a),l.append(h).addClass("checkbox")}else l.append(a);return n?l.addClass("active"):l.removeClass("active"),l}},{key:"_populateItems",value:function(t){var i,a,n=this,r=null!==(i=this.$_search)&&void 0!==i&&i.length?this.$_search.val():"",s=this.options.paginate?this.options.perPage:0;a=(t=t?parseInt(t):1)*s,this.getMatchingElements(r,a).then((function(i){var a=i.items,r=[],s=!1;if(n._emptyItems(),n._hideLoadMore(),a.length){var o,c=l(a);try{for(c.s();!(o=c.n()).done;){var h=o.value;""===h.value?r.unshift(n._generateItem(h.value,h.label)):r.push(n._generateItem(h.value,h.label))}}catch(e){c.e(e)}finally{c.f()}n.currentPage=t,s=i.hasMore}else r.push(e("<li/>",{text:n.options.labels.noItemsFound})),n.currentPage=1;n.$_items.append(r),e(document).trigger("yith_wcan_dropdown_updated"),s&&n._showLoadMore()}))}},{key:"loadNextPage",value:function(){var e=this.currentPage+1;this._populateItems(e)}},{key:"_selectItem",value:function(e){return this._changeItemStatus(e,!0)}},{key:"_deselectItem",value:function(e){return this._changeItemStatus(e,!1)}},{key:"_changeItemStatus",value:function(e,t){var i=this.$originalSelect.find('option[value="'.concat(e,'"]'));return!!i.length&&(i.prop("selected",t),this.closeDropdown(),this.updateLabel(),this.$originalSelect.trigger("change",[!0]),!0)}},{key:"_emptyItems",value:function(){this.$_items.html("")}},{key:"_showLoadMore",value:function(){this.$_showMore.show()}},{key:"_hideLoadMore",value:function(){this.$_showMore.hide()}},{key:"getLabel",value:function(){return this.hasSelectedValues()?this.getSelectedLabels().join(", "):this.options.labels.emptyLabel}},{key:"updateLabel",value:function(){var e,t=this.getLabel();null===(e=this.$_label)||void 0===e||e.html(t)}},{key:"getOptions",value:function(){return this.$originalSelect.find("option")}},{key:"hasSelectedValues",value:function(){return this.getSelectedOptions().length}},{key:"isValueSelected",value:function(e){return-1!==this.getSelectedValues().indexOf(e.toString())}},{key:"getSelectedOptions",value:function(){return this.$originalSelect.find("option").filter(":selected")}},{key:"getOptionByValue",value:function(e){return this.$originalSelect.find('option[value="'.concat(e,'"]'))}},{key:"getSelectedLabels",value:function(){var t=[];return this.getSelectedOptions().each((function(){var i=e(this),a=i.data("template");a=a||i.html().replace(/\([0-9]*\)/,""),t.push(a)})),t}},{key:"getSelectedValues",value:function(){var t=[];return this.getSelectedOptions().each((function(){t.push(e(this).val())})),t}},{key:"destroy",value:function(){}}])&&o(i.prototype,a),n&&o(i,n),t}();function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function f(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var p=function(){function t(i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),f(this,"preset",!1),f(this,"$preset",!1),f(this,"target",!1),f(this,"$target",!1),f(this,"$filters",!1),f(this,"$filterButtons",!1),f(this,"modalElements",{}),f(this,"activeFilters",!1),f(this,"isMobile",!1),f(this,"sliderTimeout",!1),f(this,"originalFilters",null),f(this,"dirty",!1),this.preset="#"+i.attr("id"),this.$preset=i,this.target=this.$preset.data("target"),this.$target=!!this.target&&e(this.target),this._regiterStatus(),this._initFilterButton(),this._initResponsive(),this._initFilters(),this._initActions(),this.$preset.data("preset",this).addClass("enhanced").trigger("yith_wcan_preset_initialized",[this])}var i,a,n;return i=t,(a=[{key:"_initFilters",value:function(){var t=this;this.getFilters().each((function(){var i=e(this);t._initFilter(i)})),this.maybeShowClearAllFilters()}},{key:"_initFilterButton",value:function(){var e=this;this.$filterButtons=this.$preset.find(".apply-filters"),this.$filterButtons.length&&this.$filterButtons.on("click",(function(t){t.preventDefault(),e.filter()})).hide()}},{key:"_initActions",value:function(){this.$preset.find("form").on("submit",(function(e){e.preventDefault()}))}},{key:"_initResponsive",value:function(){var t=this;if(yith_wcan_shortcodes.modal_on_mobile){var i=window.matchMedia("(max-width: ".concat(yith_wcan_shortcodes.mobile_media_query,"px)"));e(window).on("resize",(function(){var e=!!i.matches;e!==t.isMobile&&(t.isMobile=e,t._afterLayoutChange())})).resize()}}},{key:"_initFilter",value:function(t){var i,a=this,n=function(i){var n=e(this),r=n.closest(".yith-wcan-filter"),l=!!r.length&&"yes"===r.data("multiple"),s=n.closest(".filter-item"),o=s.length?r.find(".filter-item").not(s):[];if(s.is(".disabled")&&!s.is(".active"))return i.preventDefault(),!1;i.preventDefault(),o.length&&!l&&o.removeClass("active").children("label").find(":input").prop("checked",!1).parent(".checked").removeClass("checked"),s.length&&s.toggleClass("active"),a.activeFilters=!1,a.maybeFilter(t),a.maybeToggleClearAllFilters(),a.maybeToggleClearFilter(r)};t.find(".filter-item").not(".checkbox").not(".radio").on("click","a",(function(t){var i=e(this).closest(".filter-item");if(!e(null==t?void 0:t.delegateTarget).is(i))return!1;n.call(this,t)})),t.find(":input").on("change",(function(t){var i=e(this),a=i.closest(".filter-item");if(a.is(".disabled")&&!a.is(".active"))return i.prop("checked",!1),!1;n.call(this,t)})),t.find("label > a").on("click",(function(t){var i=e(this),a=i.closest(".filter-item");if(t.preventDefault(),a.is(".disabled")&&!a.is(".active"))return!1;var n=i.parent().find(":input");(n.is('[type="radio"]')||n.is('[type="checkbox"]'))&&n.prop("checked",!n.prop("checked")),n.change()})),this._initTooltip(t),this._initPriceSlider(t),this._initDropdown(t),this._initCollapsable(t),this.maybeShowClearFilter(t),null!==(i=this.$preset)&&void 0!==i&&i.hasClass("custom-style")&&this._initCustomInput(t)}},{key:"_initTooltip",value:function(t,i){t.find("[data-title]").each((function(){var t=e(this);!t.hasClass("tooltip-added")&&t.data("title")&&(t.on("mouseenter",(function(){var t,a=e(this),n=null,r=a.outerWidth(),l=0;if(!i||"top"!==i&&"right"!==i){var s=a.closest(".filter-item");i=s.hasClass("color")||s.hasClass("label")?"top":"right"}n=e("<span>",{class:"yith-wcan-tooltip",html:a.data("title")}),a.append(n),t=n.outerWidth()+6,n.outerWidth(t),l="top"===i?(r-t)/2:r+15,n.css({left:l.toFixed(0)+"px"}).fadeIn(200),a.addClass("with-tooltip")})).on("mouseleave",(function(){var t=e(this);t.find(".yith-wcan-tooltip").fadeOut(200,(function(){t.removeClass("with-tooltip").find(".yith-wcan-tooltip").remove()}))})),t.addClass("tooltip-added"))}))}},{key:"_initDropdown",value:function(t){var i=t.find("select.filter-dropdown");i.length&&(i.hasClass("select2-hidden-accessible")&&void 0!==e.fn.selectWoo&&i.selectWoo("destroy"),this._initDropdownObject(i,{paginate:!0,perPage:yith_wcan_shortcodes.terms_per_page}))}},{key:"_initDropdownObject",value:function(e,t){return new h(e,t)}},{key:"_initPriceSlider",value:function(e){var t=this;if(e.hasClass("filter-price-slider")){var i=this,a=e.find(".price-slider"),n=a.find(".price-slider-min"),r=a.find(".price-slider-max"),l=parseFloat(a.data("min")),s=parseFloat(a.data("max")),o=parseFloat(n.val()),c=parseFloat(r.val()),h=parseFloat(a.data("step")),d=function(){i.sliderTimeout&&clearTimeout(i.sliderTimeout),i.sliderTimeout=setTimeout((function(){i.maybeFilter(e)}),200)};e.find(".price-slider-ui").ionRangeSlider({skin:"round",type:"double",min:l,max:s,step:h,from:o,to:c,min_interval:h,values_separator:" - ",prettify:function(e){return t.formatPrice(e)},onChange:function(e){n.val(e.from),r.val(e.to)},onFinish:d}),n.add(r).off("change").on("keyup",(function(){n.val()&&r.val()&&d()}))}}},{key:"_initCollapsable",value:function(e){this._initTitleCollapsable(e),this._initHierarchyCollapsable(e)}},{key:"_initTitleCollapsable",value:function(e){var t=e.find(".collapsable");t.length&&this._initToggle(t,t,e.find(".filter-content"))}},{key:"_initHierarchyCollapsable",value:function(t){var i=t.find(".hierarchy-collapsable");if(i.length){var a=this,n=t.find(".active");n.length&&(n.parents(".hierarchy-collapsable").removeClass("closed").addClass("opened"),n.hasClass("hierarchy-collapsable")&&yith_wcan_shortcodes.show_current_children&&n.removeClass("closed").addClass("opened")),i.each((function(){var t=e(this),i=e("<span/>",{class:"toggle-handle"});i.appendTo(t),a._initToggle(i,t,t.children("ul.filter-items"))}))}}},{key:"_initToggle",value:function(e,t,i){t.hasClass("closed")&&i.hide(),e.off("click").on("click",(function(e){e.stopPropagation(),i.slideToggle(400,(function(){t.toggleClass("opened").toggleClass("closed")}))}))}},{key:"_initCustomInput",value:function(t){t.find(":input").each((function(){var t,i=e(this),a=i.attr("type"),n="".concat(a,"button");"checkbox"!==a&&"radio"!==a||i.closest(".".concat(n)).length||(i.is(":checked")&&(n+=" checked"),t=e("<span/>",{class:n}),i.wrap(t).on("change",(function(){var t=e(this);t.prop("checked")?t.parent().addClass("checked"):t.parent().removeClass("checked")})))}))}},{key:"_regiterStatus",value:function(){this.originalFilters=this.getFiltersProperties()}},{key:"_afterLayoutChange",value:function(){var t,i;this.isMobile?(this.$preset.addClass("filters-modal").attr("role","dialog").attr("tabindex","-1").hide(),this._addCloseModalButton(),this._addApplyFiltersModalButton(),this._switchToCollapsables(),null===(t=this.$filterButtons)||void 0===t||t.hide()):(this.$preset.removeClass("filters-modal").removeClass("open").removeAttr("role").removeAttr("tabindex").show(),e("body").css("overflow","auto").removeClass("yith-wcan-preset-modal-open"),this._removeCloseModalButton(),this._removeApplyFiltersModalButton(),this._switchBackCollapsables(),null===(i=this.$filterButtons)||void 0===i||i.show())}},{key:"_addCloseModalButton",value:function(){var t=e("<a/>",{class:"close-button",html:"×","data-dismiss":"modal","aria-label":yith_wcan_shortcodes.labels.close});t.prependTo(this.$preset).on("click",this.closeModal.bind(this)),this.modalElements.closeButton=t}},{key:"_removeCloseModalButton",value:function(){var e,t;null===(e=this.modalElements)||void 0===e||null===(t=e.closeButton)||void 0===t||t.remove()}},{key:"_addApplyFiltersModalButton",value:function(){var t=this,i=e("<button/>",{class:"apply-filters main-modal-button",html:yith_wcan_shortcodes.labels.show_results,"data-dismiss":"modal"});i.appendTo(this.$preset).on("click",(function(){t.filter(),t.closeModal()})),this.modalElements.applyFiltersButton=i}},{key:"_removeApplyFiltersModalButton",value:function(){var e,t;null===(e=this.modalElements)||void 0===e||null===(t=e.applyFiltersButton)||void 0===t||t.remove()}},{key:"_switchToCollapsables",value:function(){var t=this;this.getFilters().each((function(){var i=e(this),a=i.find(".filter-title");a.length&&!a.hasClass("collapsable")&&(a.addClass("collapsable").data("disable-collapse",!0),t._initTitleCollapsable(i))}))}},{key:"_switchBackCollapsables",value:function(){this.getFilters().each((function(){var t=e(this),i=t.find(".filter-title");i.length&&i.hasClass("collapsable")&&i.data("disable-collapse")&&(i.removeClass("collapsable").removeData("disable-collapse",!0).off("click"),t.find(".filter-content").show())}))}},{key:"_closeAllCollapsables",value:function(){var t=this;this.$filters.not(".no-title").not((function(i,a){return t.isFilterActive(e(a))})).find(".filter-content").hide().end().find(".filter-title").addClass("closed").removeClass("opened")}},{key:"maybeRegisterStatusChange",value:function(){var e=this.getFiltersProperties(),t=JSON.stringify(e),i=JSON.stringify(this.originalFilters);this.dirty=t!==i}},{key:"maybeFilter",value:function(e){if(this.maybeRegisterStatusChange(),yith_wcan_shortcodes.instant_filters&&!this.isMobile)this.filter();else if(yith_wcan_shortcodes.instant_filters||this.isMobile){if(this.isMobile&&this.dirty){var t;this.$preset.addClass("with-filter-button"),null===(t=this.modalElements.applyFiltersButton)||void 0===t||t.show()}}else{var i,a;this.dirty?null===(i=this.$filterButtons)||void 0===i||i.show():null===(a=this.$filterButtons)||void 0===a||a.hide()}}},{key:"filter",value:function(){var t,i,a,n=this,r=null===(t=window)||void 0===t?void 0:t.product_filter;null==r||null===(i=r.doFilter(this.getFiltersProperties(),this.target,this.preset))||void 0===i||i.done((function(){var t=e(n.preset);if(!n.isMobile&&t.length&&yith_wcan_shortcodes.scroll_top){var i=t.offset().top;if(yith_wcan_shortcodes.scroll_target){var a=e(yith_wcan_shortcodes.scroll_target);i=a.length?a.offset().top:i}e("body, html").animate({scrollTop:i-100})}n.originalFilters=n.getFiltersProperties(),n.dirty=!1})),this.isMobile&&(this.$preset.removeClass("with-filter-button"),null===(a=this.modalElements.applyFiltersButton)||void 0===a||a.hide())}},{key:"getFilters",value:function(){return!1===this.$filters&&(this.$filters=this.$preset.find(".yith-wcan-filter")),this.$filters}},{key:"getActiveFilters",value:function(){return!1===this.activeFilters&&(this.activeFilters=this.getFiltersProperties()),this.activeFilters}},{key:"isAnyFilterActive",value:function(){return!!Object.keys(this.getActiveFilters()).length}},{key:"isFilterActive",value:function(e){var t,i;switch(e.data("filter-type")){case"tax":case"review":case"price_range":var a=e.find(".filter-dropdown");if(a.length){var n=a.val();t="object"===d(n)?!(null==n||!n.length):!!n;break}case"stock_sale":t=e.find(".filter-item").filter(".active").length;break;case"price_slider":var r=parseFloat(e.find(".price-slider").data("min")),l=parseFloat(e.find(".price-slider").data("max")),s=parseFloat(e.find(".price-slider-min").val()),o=parseFloat(e.find(".price-slider-max").val());t=s>r||o<l;break;case"orderby":t="menu_order"!==e.find(".filter-order-by").val();break;default:t=!1}return t=void 0!==(i=e.triggerHandler("yith_wcan_is_filter_active",[t,this]))?i:t}},{key:"countActiveItems",value:function(e){var t;switch(e.data("filter-type")){case"tax":case"review":case"price_range":var i=e.find(".filter-dropdown");if(i.length){var a=i.val();t="object"===d(a)?null==a?void 0:a.length:+!!a;break}case"stock_sale":t=e.find(".filter-items").find(".active").length;break;case"orderby":this.isFilterActive(e)&&(t=1);break;case"price_slider":default:t=0}return t}},{key:"getFilterProperties",value:function(t){var i,a,n=t.data("filter-type"),r="yes"===t.data("multiple"),l=t.find(".filter-dropdown"),s={};switch(n){case"tax":var o=[],c=t.data("taxonomy"),h=0===c.indexOf("filter"),d=t.data("relation");if(l.length?r?o=l.val():o.push(l.val()):o=(a=t.find(".filter-item").filter(".active").children("a, label")).get().reduce((function(t,i){var a;return(a=(i=e(i)).is("label")?i.find(":input").val():i.data("term-slug"))?(t.push(a),t):t}),o),r){var u=h||"and"!==d?",":"+";s[c]=o.join(u)}else s[c]=o.pop();h&&(s[c.replace("filter_","query_type_")]=d);break;case"review":l.length?s.rating_filter=l.val():(a=t.find(".filter-item").filter(".active").children("a, label"),r?s.rating_filter=a.get().reduce((function(t,i){var a;return(a=(i=e(i)).is("label")?i.find(":input").val():i.data("rating"))?(t.push(a),t):t}),[]).join(","):(a=a.first(),s.rating_filter=a.is("label")?a.find(":input").val():a.data("rating")));break;case"price_range":l.length?r?s.price_ranges=l.val().join(","):(s.min_price=l.val().split("-")[0],s.max_price=l.val().split("-")[1]):(a=t.find(".filter-item").filter(".active").children("a, label"),r?s.price_ranges=a.get().reduce((function(t,i){var a=e(i).data("range-min"),n=e(i).data("range-max");return t+=(n?"".concat(a,"-").concat(n):a)+","}),"").replace(/^(.*),$/,"$1"):(s.min_price=parseFloat(a.first().data("range-min")),s.max_price=parseFloat(a.first().data("range-max"))));break;case"price_slider":s.min_price=parseFloat(t.find(".price-slider-min").val()),s.max_price=parseFloat(t.find(".price-slider-max").val());break;case"stock_sale":t.find(".filter-on-sale").is(".active")&&(s.onsale_filter=1),t.find(".filter-in-stock").is(".active")&&(s.instock_filter=1),t.find(".filter-featured").is(".active")&&(s.featured_filter=1);break;case"orderby":s.orderby=t.find(".filter-order-by").val()}return s=void 0!==(i=t.triggerHandler("yith_wcan_filter_properties",[s,self]))?i:s}},{key:"getFiltersProperties",value:function(){var t={},i=this;return this.getFilters().each((function(){var a=e(this);if(i.isFilterActive(a)){var n=i.getFilterProperties(a);t=i.mergeProperties(t,n,a)}})),t}},{key:"getFiltersByProperties",value:function(t){var i=this;return this.getFilters().filter((function(){var a=e(this);if(i.isFilterActive(a)){var n=i.getFilterProperties(a),r=!1;for(var l in t){if(["min_price","max_price","price_ranges"].includes(l)&&(n.min_price||n.price_ranges)){r=!0;break}if(n[l]){r=!0;break}}return r}return!1}))}},{key:"maybeToggleClearFilter",value:function(e){this.isFilterActive(e)?this.maybeShowClearFilter(e):this.maybeHideClearFilter(e)}},{key:"maybeToggleClearAllFilters",value:function(){this.isAnyFilterActive()?this.maybeShowClearAllFilters():this.maybeHideClearAllFilters()}},{key:"maybeShowClearFilter",value:function(t){var i=this;this.isFilterActive(t)&&yith_wcan_shortcodes.show_clear_filter&&(t.find(".clear-selection").remove(),e("<a/>",{class:"clear-selection",text:yith_wcan_shortcodes.labels.clear_selection,role:"button"}).prependTo(t.find(".filter-content")).on("click",(function(e){e.preventDefault(),i.deactivateFilter(t,!1,yith_wcan_shortcodes.instant_filters),i.maybeHideClearFilter(t),yith_wcan_shortcodes.instant_filters&&i.closeModal()})))}},{key:"maybeShowClearAllFilters",value:function(){var t=this;this.isAnyFilterActive()&&this.isMobile&&(this.$preset.find(".clear-selection").remove(),e("<a/>",{class:"clear-selection",text:yith_wcan_shortcodes.labels.clear_all_selections,role:"button"}).prependTo(this.$preset.find(".filters-container")).on("click",(function(e){e.preventDefault(),t.deactivateAllFilters(yith_wcan_shortcodes.instant_filters),t.maybeHideClearAllFilters(),yith_wcan_shortcodes.instant_filters&&t.closeModal()})))}},{key:"maybeHideClearFilter",value:function(e){!this.isFilterActive(e)&&yith_wcan_shortcodes.show_clear_filter&&e.find(".clear-selection").remove()}},{key:"maybeHideClearAllFilters",value:function(){this.isAnyFilterActive()||this.$preset.find(".filters-container").children(".clear-selection").remove()}},{key:"deactivateFilter",value:function(t,i,a){var n=t.data("filter-type"),r=t.find(".filter-item"),l=r.filter(".active"),s=t.find(".filter-dropdown");switch(n){case"tax":var o=t.data("taxonomy");s.length?(i?s.find("option").each((function(){var t=e(this);t.val()===i[o]&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?l.each((function(){var t=e(this),a=t.children("label"),n=t.children("a");(a.length?a.find(":input").val():n.data("term-slug"))===i[o]&&(t.children("label").children("a").click(),t.removeClass("active"))})):(l.children("label").children("a").click(),l.removeClass("active"));break;case"review":s.length?(i?s.find("option").each((function(){var t=e(this);t.val()===i.rating_filter&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?l.each((function(){var t=e(this),a=t.children("label"),n=t.children("a");(a.length?a.find(":input").val():n.data("rating"))===i.rating_filter&&(t.children("label").children("a").click(),t.removeClass("active"))})):(l.children("label").children("a").click(),l.removeClass("active"));break;case"price_range":s.length?(i?s.find("option").each((function(){var t=e(this),a=i.min_price+(i.max_price?"-".concat(i.max_price):"");t.val()===a&&t.prop("selected",!1)})):s.find("option").prop("selected",!1),s.change()):i?l.each((function(){var t,a,n=e(this),r=n.children("label"),l=n.children("a");a=r.length?r.find(":input").val():l.data("min_price")+(l.data("max_price")?"-"+l.data("max_price"):""),i.min_price?t=i.min_price+(i.max_price?"-"+i.max_price:""):i.price_ranges&&(t=i.price_ranges),a===t&&(n.children("label").children("a").click(),n.removeClass("active"))})):(l.children("label").children("a").click(),l.removeClass("active"));break;case"price_slider":var c=t.find(".price-slider");t.find(".price-slider-min").val(c.data("min")),t.find(".price-slider-max").val(c.data("max")).change();break;case"orderby":t.find("select").val("menu_order");break;case"stock_sale":i?(null!=i&&i.instock_filter&&t.find(".filter-in-stock").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active"),null!=i&&i.onsale_filter&&t.find(".filter-on-sale").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active"),null!=i&&i.featured_filter&&t.find(".filter-featured").find(":input").prop("checked",!1).change().closest(".filter-item").removeClass("active")):(t.find(".filter-in-stock").find(":input").prop("checked",!1).change(),t.find(".filter-on-sale").find(":input").prop("checked",!1).change(),t.find(".filter-featured").find(":input").prop("checked",!1).change(),r.removeClass("active"));break;default:r.removeClass("active")}this.activeFilters=!1,a&&this.filter()}},{key:"deactivateAllFilters",value:function(t){var i=this;this.getFilters().each((function(){var t=e(this);i.deactivateFilter(t)})),this.activeFilters=!1,t&&this.filter()}},{key:"deactivateFilterByProperties",value:function(t,i){var a=this,n=this.getFiltersByProperties(t);n.length&&n.each((function(){var n=e(this);a.deactivateFilter(n,t,i)}))}},{key:"openModal",value:function(){var t=this;this.isMobile&&(this._closeAllCollapsables(),e("body").css("overflow","hidden").addClass("yith-wcan-preset-modal-open"),this.$preset.show(),setTimeout((function(){t.$preset.addClass("open")}),100))}},{key:"closeModal",value:function(){var t=this;this.isMobile&&(this.$preset.removeClass("open"),setTimeout((function(){t.$preset.hide(),e("body").css("overflow","auto").removeClass("yith-wcan-preset-modal-open")}),300))}},{key:"formatPrice",value:function(e){return"undefined"!=typeof accounting&&(e=accounting.formatMoney(e,{symbol:yith_wcan_shortcodes.currency_format.symbol,decimal:yith_wcan_shortcodes.currency_format.decimal,thousand:yith_wcan_shortcodes.currency_format.thousand,precision:0,format:yith_wcan_shortcodes.currency_format.format})),e}},{key:"mergeProperties",value:function(t,i,a){for(var n in i)if(i.hasOwnProperty(n)&&t[n]){switch(n){case"rating_filter":case"min_price":case"max_price":case"onsale_filter":case"instock_filter":case"orderby":t[n]=i[n];break;default:if(0===n.indexOf("query_type_"))t[n]=i[n];else{var r=0===n.indexOf("filter_"),l=r?",":"+",s=t[n].replace(",",l)+l+i[n].replace(",",l);if(s=s.split(l).filter((function(e,t,i){return i.indexOf(e)===t})).join(l),t[n]=s,r){var o=n.replace("filter_","query_type_");t[o]="and",i[o]="and"}}}delete i[n]}return e.extend(t,i),t}}])&&u(i.prototype,a),n&&u(i,n),t}();jQuery((function(e){e(document).on("yith_wcan_init_shortcodes yith_plugin_fw_gutenberg_success_do_shortcode",(function(){e(".yith-wcan-filters").not(".enhanced").each((function(){new p(e(this))})),e(".yith-wcan-reset-filters").not(".enhanced").each((function(){new r(e(this))}))})).trigger("yith_wcan_init_shortcodes"),globalThis.product_filter=new n}))})();
|
@@ -33,25 +33,28 @@ $item_row_hover_border: #c4cfd3;
|
|
33 |
}
|
34 |
|
35 |
@mixin show_on_hover {
|
|
|
36 |
background: #fff;
|
|
|
37 |
border-radius: 100%;
|
38 |
color: #20659d;
|
39 |
-
display:
|
40 |
float: right;
|
41 |
-
font-size:
|
42 |
height: 35px;
|
43 |
margin-right: 8px;
|
|
|
|
|
|
|
44 |
width: 35px;
|
45 |
justify-content: center;
|
46 |
-
align-items: center;
|
47 |
-
box-shadow: 0 0 10px 0 rgba(167, 217, 236, 0.6);
|
48 |
|
49 |
i {
|
50 |
-
font-size:
|
51 |
}
|
52 |
|
53 |
&:hover {
|
54 |
-
|
55 |
}
|
56 |
|
57 |
&.delete {
|
@@ -186,22 +189,26 @@ $item_row_hover_border: #c4cfd3;
|
|
186 |
position: relative;
|
187 |
|
188 |
input {
|
189 |
-
background: #
|
|
|
|
|
190 |
cursor: pointer;
|
191 |
}
|
192 |
|
193 |
&:after {
|
194 |
color: #9d9d9d;
|
195 |
-
content: '
|
196 |
-
font-family: '
|
197 |
-
font-size:
|
198 |
position: absolute;
|
199 |
-
right:
|
200 |
-
top:
|
201 |
}
|
202 |
}
|
203 |
|
204 |
&.actions {
|
|
|
|
|
205 |
a {
|
206 |
float: right;
|
207 |
|
@@ -219,7 +226,8 @@ $item_row_hover_border: #c4cfd3;
|
|
219 |
|
220 |
&:hover td {
|
221 |
&.actions a.show-on-hover {
|
222 |
-
|
|
|
223 |
}
|
224 |
}
|
225 |
}
|
@@ -352,6 +360,23 @@ $item_row_hover_border: #c4cfd3;
|
|
352 |
font-size: 14px;
|
353 |
}
|
354 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
.yith-toggle-row {
|
356 |
@include item_row;
|
357 |
|
@@ -367,6 +392,7 @@ $item_row_hover_border: #c4cfd3;
|
|
367 |
.yith-toggle-title {
|
368 |
cursor: pointer;
|
369 |
padding: 20px 15px;
|
|
|
370 |
|
371 |
.no-title {
|
372 |
color: #757575;
|
@@ -387,7 +413,8 @@ $item_row_hover_border: #c4cfd3;
|
|
387 |
}
|
388 |
|
389 |
&:hover .show-on-hover {
|
390 |
-
|
|
|
391 |
}
|
392 |
|
393 |
.yith-plugin-fw-field-wrapper {
|
@@ -401,6 +428,10 @@ $item_row_hover_border: #c4cfd3;
|
|
401 |
.yith-toggle-content-row {
|
402 |
width: 100%;
|
403 |
|
|
|
|
|
|
|
|
|
404 |
& > label {
|
405 |
width: 180px;
|
406 |
}
|
@@ -412,6 +443,10 @@ $item_row_hover_border: #c4cfd3;
|
|
412 |
|
413 |
span.description {
|
414 |
max-width: 100%;
|
|
|
|
|
|
|
|
|
415 |
}
|
416 |
|
417 |
.add-price-range {
|
@@ -610,6 +645,7 @@ $item_row_hover_border: #c4cfd3;
|
|
610 |
}
|
611 |
}
|
612 |
|
|
|
613 |
.add-new-filter {
|
614 |
background-color: $item_row_background;
|
615 |
border: 1px solid $item_row_border;
|
@@ -626,6 +662,7 @@ $item_row_hover_border: #c4cfd3;
|
|
626 |
}
|
627 |
}
|
628 |
|
|
|
629 |
.load-more-filters {
|
630 |
display: block;
|
631 |
font-weight: 700;
|
@@ -640,12 +677,50 @@ $item_row_hover_border: #c4cfd3;
|
|
640 |
}
|
641 |
}
|
642 |
|
|
|
643 |
#icl_div {
|
644 |
background-color: #f7f7f7;
|
645 |
padding: 20px 15px;
|
646 |
border-radius: 4px;
|
647 |
margin: 20px 0;
|
648 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
649 |
}
|
650 |
|
651 |
/* === Widget Area === */
|
33 |
}
|
34 |
|
35 |
@mixin show_on_hover {
|
36 |
+
align-items: center;
|
37 |
background: #fff;
|
38 |
+
box-shadow: 0px 2px 7px rgb(170 198 222 / 50%);
|
39 |
border-radius: 100%;
|
40 |
color: #20659d;
|
41 |
+
display: flex;
|
42 |
float: right;
|
43 |
+
font-size: 17px;
|
44 |
height: 35px;
|
45 |
margin-right: 8px;
|
46 |
+
opacity: 0;
|
47 |
+
transform: translate( 0, -70px );
|
48 |
+
transition: all ease .3s;
|
49 |
width: 35px;
|
50 |
justify-content: center;
|
|
|
|
|
51 |
|
52 |
i {
|
53 |
+
font-size: 17px;
|
54 |
}
|
55 |
|
56 |
&:hover {
|
57 |
+
background: #f3f3f3;
|
58 |
}
|
59 |
|
60 |
&.delete {
|
189 |
position: relative;
|
190 |
|
191 |
input {
|
192 |
+
background: #f1f1f1;
|
193 |
+
color: #999;
|
194 |
+
border: 1px dashed #ccc;
|
195 |
cursor: pointer;
|
196 |
}
|
197 |
|
198 |
&:after {
|
199 |
color: #9d9d9d;
|
200 |
+
content: '\f101';
|
201 |
+
font-family: 'yith-icon';
|
202 |
+
font-size: 14px;
|
203 |
position: absolute;
|
204 |
+
right: 15px;
|
205 |
+
top: 10px;
|
206 |
}
|
207 |
}
|
208 |
|
209 |
&.actions {
|
210 |
+
overflow: hidden;
|
211 |
+
|
212 |
a {
|
213 |
float: right;
|
214 |
|
226 |
|
227 |
&:hover td {
|
228 |
&.actions a.show-on-hover {
|
229 |
+
opacity: 1;
|
230 |
+
transform: none;
|
231 |
}
|
232 |
}
|
233 |
}
|
360 |
font-size: 14px;
|
361 |
}
|
362 |
|
363 |
+
// currency label
|
364 |
+
[data-currency] + .currency {
|
365 |
+
margin-left: 10px;
|
366 |
+
}
|
367 |
+
|
368 |
+
// validation
|
369 |
+
input.validation-error {
|
370 |
+
border-color: red!important;
|
371 |
+
}
|
372 |
+
|
373 |
+
input.validation-error + span.validation-message {
|
374 |
+
color: red;
|
375 |
+
display: block;
|
376 |
+
margin-top: 5px;
|
377 |
+
}
|
378 |
+
|
379 |
+
// filters row
|
380 |
.yith-toggle-row {
|
381 |
@include item_row;
|
382 |
|
392 |
.yith-toggle-title {
|
393 |
cursor: pointer;
|
394 |
padding: 20px 15px;
|
395 |
+
overflow: hidden;
|
396 |
|
397 |
.no-title {
|
398 |
color: #757575;
|
413 |
}
|
414 |
|
415 |
&:hover .show-on-hover {
|
416 |
+
opacity: 1;
|
417 |
+
transform: none;
|
418 |
}
|
419 |
|
420 |
.yith-plugin-fw-field-wrapper {
|
428 |
.yith-toggle-content-row {
|
429 |
width: 100%;
|
430 |
|
431 |
+
&.disabled {
|
432 |
+
display: none!important;
|
433 |
+
}
|
434 |
+
|
435 |
& > label {
|
436 |
width: 180px;
|
437 |
}
|
443 |
|
444 |
span.description {
|
445 |
max-width: 100%;
|
446 |
+
|
447 |
+
& > span {
|
448 |
+
display: block;
|
449 |
+
}
|
450 |
}
|
451 |
|
452 |
.add-price-range {
|
645 |
}
|
646 |
}
|
647 |
|
648 |
+
// add new filter button
|
649 |
.add-new-filter {
|
650 |
background-color: $item_row_background;
|
651 |
border: 1px solid $item_row_border;
|
662 |
}
|
663 |
}
|
664 |
|
665 |
+
// load more filters button
|
666 |
.load-more-filters {
|
667 |
display: block;
|
668 |
font-weight: 700;
|
677 |
}
|
678 |
}
|
679 |
|
680 |
+
// wpml div
|
681 |
#icl_div {
|
682 |
background-color: #f7f7f7;
|
683 |
padding: 20px 15px;
|
684 |
border-radius: 4px;
|
685 |
margin: 20px 0;
|
686 |
}
|
687 |
+
|
688 |
+
// success message
|
689 |
+
.preset-saved {
|
690 |
+
background: var(--yith-success-lightest)!important;
|
691 |
+
border-radius: 5px;
|
692 |
+
border: 1px solid var(--yith-success-light);
|
693 |
+
box-shadow: 1px 1px 2px var(--yith-success-lighter);
|
694 |
+
color: var(--yith-content-text);
|
695 |
+
font-size: 14px;
|
696 |
+
margin: 15px 0 20px!important;
|
697 |
+
padding: 15px 40px 15px 45px!important;
|
698 |
+
position: relative;
|
699 |
+
text-align: left;
|
700 |
+
|
701 |
+
p {
|
702 |
+
background: none!important;
|
703 |
+
font-weight: 600!important;
|
704 |
+
margin: 0;
|
705 |
+
padding: 0!important;
|
706 |
+
|
707 |
+
&:before {
|
708 |
+
display: none!important;
|
709 |
+
}
|
710 |
+
}
|
711 |
+
|
712 |
+
&:before {
|
713 |
+
color: var(--yith-success);
|
714 |
+
content: "\e921";
|
715 |
+
font-family: yith-icon;
|
716 |
+
font-weight: 400;
|
717 |
+
font-size: 21px;
|
718 |
+
left: 13px;
|
719 |
+
position: absolute;
|
720 |
+
top: 50%;
|
721 |
+
transform: translateY(-50%);
|
722 |
+
}
|
723 |
+
}
|
724 |
}
|
725 |
|
726 |
/* === Widget Area === */
|
@@ -11,6 +11,7 @@ $border-radius: 4px;
|
|
11 |
$disabled-color: #B4B4B4;
|
12 |
$star-color: #e3a405;
|
13 |
$light-grey: #eee;
|
|
|
14 |
|
15 |
$z-index: 1001; // value is this high since modal must be on top of Proteo's sticky header
|
16 |
|
@@ -58,20 +59,24 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
58 |
@mixin pretty_scrollbar {
|
59 |
&::-webkit-scrollbar {
|
60 |
-webkit-appearance: none;
|
61 |
-
width:
|
62 |
}
|
63 |
|
64 |
&::-webkit-scrollbar-thumb {
|
|
|
65 |
border-radius: $border-radius;
|
66 |
-
background-color: $border-color;
|
67 |
}
|
68 |
}
|
69 |
|
70 |
@mixin close_button {
|
71 |
background-color: $accent-color;
|
|
|
|
|
|
|
|
|
72 |
border-radius: 100%;
|
73 |
color: #fff;
|
74 |
-
content:
|
75 |
font-size: 16px;
|
76 |
height: 15px;
|
77 |
line-height: 15px;
|
@@ -123,6 +128,11 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
123 |
top: calc(50% - 5px);
|
124 |
width: 0;
|
125 |
}
|
|
|
|
|
|
|
|
|
|
|
126 |
}
|
127 |
|
128 |
@mixin single_column( $columns_number ) {
|
@@ -165,6 +175,10 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
165 |
&:after {
|
166 |
right: 5px;
|
167 |
}
|
|
|
|
|
|
|
|
|
168 |
}
|
169 |
}
|
170 |
|
@@ -246,6 +260,34 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
246 |
position: relative;
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
.term-color {
|
250 |
border: 2px solid transparent;
|
251 |
border-radius: var( --yith-wcan-color_swatches_border_radius, $border-radius );
|
@@ -306,6 +348,10 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
306 |
line-height: 1.4;
|
307 |
text-align: center;
|
308 |
}
|
|
|
|
|
|
|
|
|
309 |
}
|
310 |
|
311 |
&.active.color {
|
@@ -313,7 +359,7 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
313 |
border-color: $accent-color;
|
314 |
}
|
315 |
|
316 |
-
|
317 |
@include close_button;
|
318 |
}
|
319 |
}
|
@@ -333,7 +379,7 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
333 |
height: 100%;
|
334 |
}
|
335 |
|
336 |
-
&.active.with-image > a {
|
337 |
position: relative;
|
338 |
|
339 |
&:after {
|
@@ -372,6 +418,44 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
372 |
}
|
373 |
}
|
374 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
.term-image {
|
376 |
display: inline-block;
|
377 |
font-size: 0;
|
@@ -387,6 +471,10 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
387 |
display: block;
|
388 |
font-size: .8rem;
|
389 |
}
|
|
|
|
|
|
|
|
|
390 |
}
|
391 |
|
392 |
// hierarchy toggle
|
@@ -444,6 +532,10 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
444 |
}
|
445 |
}
|
446 |
|
|
|
|
|
|
|
|
|
447 |
// tooltips
|
448 |
.yith-wcan-tooltip {
|
449 |
@include tooltip;
|
@@ -482,10 +574,43 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
482 |
|
483 |
// price slider
|
484 |
.price-slider {
|
485 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
486 |
|
487 |
-
|
488 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
489 |
}
|
490 |
|
491 |
.irs-bar,
|
@@ -843,6 +968,112 @@ $z-index: 1001; // value is this high since modal must be on top of Proteo's sti
|
|
843 |
width: 100%;
|
844 |
}
|
845 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
846 |
}
|
847 |
|
848 |
body.admin-bar .yith-wcan-filters.filters-modal {
|
@@ -866,6 +1097,12 @@ body.yith-wcan-preset-modal-open:after {
|
|
866 |
}
|
867 |
}
|
868 |
|
|
|
|
|
|
|
|
|
|
|
|
|
869 |
@media( max-width: 782px ) {
|
870 |
body.admin-bar .yith-wcan-filters.filters-modal {
|
871 |
top: 46px;
|
11 |
$disabled-color: #B4B4B4;
|
12 |
$star-color: #e3a405;
|
13 |
$light-grey: #eee;
|
14 |
+
$background-gray: #f0f0f0;
|
15 |
|
16 |
$z-index: 1001; // value is this high since modal must be on top of Proteo's sticky header
|
17 |
|
59 |
@mixin pretty_scrollbar {
|
60 |
&::-webkit-scrollbar {
|
61 |
-webkit-appearance: none;
|
62 |
+
width: 6px;
|
63 |
}
|
64 |
|
65 |
&::-webkit-scrollbar-thumb {
|
66 |
+
background-color: $accent-color;
|
67 |
border-radius: $border-radius;
|
|
|
68 |
}
|
69 |
}
|
70 |
|
71 |
@mixin close_button {
|
72 |
background-color: $accent-color;
|
73 |
+
background-image: url('../images/close.svg');
|
74 |
+
background-position: center;
|
75 |
+
background-repeat: no-repeat;
|
76 |
+
background-size: 60%;
|
77 |
border-radius: 100%;
|
78 |
color: #fff;
|
79 |
+
content: '';
|
80 |
font-size: 16px;
|
81 |
height: 15px;
|
82 |
line-height: 15px;
|
128 |
top: calc(50% - 5px);
|
129 |
width: 0;
|
130 |
}
|
131 |
+
|
132 |
+
& > img {
|
133 |
+
min-width: 40px;
|
134 |
+
height: auto;
|
135 |
+
}
|
136 |
}
|
137 |
|
138 |
@mixin single_column( $columns_number ) {
|
175 |
&:after {
|
176 |
right: 5px;
|
177 |
}
|
178 |
+
|
179 |
+
&.collapsable.closed + .filter-content {
|
180 |
+
display: none;
|
181 |
+
}
|
182 |
}
|
183 |
}
|
184 |
|
260 |
position: relative;
|
261 |
}
|
262 |
|
263 |
+
&.no-color,
|
264 |
+
&.no-image {
|
265 |
+
font-size: 1rem;
|
266 |
+
text-align: center;
|
267 |
+
}
|
268 |
+
|
269 |
+
&.label-below,
|
270 |
+
&.label-right {
|
271 |
+
font-size: 1rem;
|
272 |
+
}
|
273 |
+
|
274 |
+
&.label-right {
|
275 |
+
display: block;
|
276 |
+
margin: 0 0 10px;
|
277 |
+
width: 100%;
|
278 |
+
|
279 |
+
.term-color,
|
280 |
+
.term-image {
|
281 |
+
margin-bottom: 0;
|
282 |
+
margin-right: 10px;
|
283 |
+
}
|
284 |
+
|
285 |
+
.term-label {
|
286 |
+
display: inline-block;
|
287 |
+
font-size: 1em;
|
288 |
+
}
|
289 |
+
}
|
290 |
+
|
291 |
.term-color {
|
292 |
border: 2px solid transparent;
|
293 |
border-radius: var( --yith-wcan-color_swatches_border_radius, $border-radius );
|
348 |
line-height: 1.4;
|
349 |
text-align: center;
|
350 |
}
|
351 |
+
|
352 |
+
&.label-hide .term-label {
|
353 |
+
display: none;
|
354 |
+
}
|
355 |
}
|
356 |
|
357 |
&.active.color {
|
359 |
border-color: $accent-color;
|
360 |
}
|
361 |
|
362 |
+
&:not(.no-color):not(.no-image):not(.label-right) > a:after {
|
363 |
@include close_button;
|
364 |
}
|
365 |
}
|
379 |
height: 100%;
|
380 |
}
|
381 |
|
382 |
+
&.active.with-image:not(.label-right) > a {
|
383 |
position: relative;
|
384 |
|
385 |
&:after {
|
418 |
}
|
419 |
}
|
420 |
|
421 |
+
&.label-right.with-image {
|
422 |
+
background: none;
|
423 |
+
box-shadow: none;
|
424 |
+
display: block;
|
425 |
+
margin: 0 0 10px;
|
426 |
+
padding: 0;
|
427 |
+
text-align: left;
|
428 |
+
width: 100%;
|
429 |
+
|
430 |
+
& > a {
|
431 |
+
display: inline-block;
|
432 |
+
color: $anchor-color;
|
433 |
+
|
434 |
+
&:hover {
|
435 |
+
color: var( --yith-wcan-anchors_style_text_hover, $default-accent );
|
436 |
+
}
|
437 |
+
|
438 |
+
&.active {
|
439 |
+
|
440 |
+
}
|
441 |
+
}
|
442 |
+
|
443 |
+
&.active > a {
|
444 |
+
color: var( --yith-wcan-anchors_style_text_active, $default-accent );
|
445 |
+
}
|
446 |
+
|
447 |
+
.term-image {
|
448 |
+
margin-right: 10px;
|
449 |
+
max-width: 70px;
|
450 |
+
vertical-align: middle;
|
451 |
+
}
|
452 |
+
|
453 |
+
.term-label {
|
454 |
+
display: inline-block;
|
455 |
+
vertical-align: middle;
|
456 |
+
}
|
457 |
+
}
|
458 |
+
|
459 |
.term-image {
|
460 |
display: inline-block;
|
461 |
font-size: 0;
|
471 |
display: block;
|
472 |
font-size: .8rem;
|
473 |
}
|
474 |
+
|
475 |
+
&.label-hide.with-image .term-label {
|
476 |
+
display: none;
|
477 |
+
}
|
478 |
}
|
479 |
|
480 |
// hierarchy toggle
|
532 |
}
|
533 |
}
|
534 |
|
535 |
+
&.label-design .filter-items {
|
536 |
+
font-size: 0;
|
537 |
+
}
|
538 |
+
|
539 |
// tooltips
|
540 |
.yith-wcan-tooltip {
|
541 |
@include tooltip;
|
574 |
|
575 |
// price slider
|
576 |
.price-slider {
|
577 |
+
&.both {
|
578 |
+
padding: 20px 10px;
|
579 |
+
|
580 |
+
&:after {
|
581 |
+
content: '';
|
582 |
+
display: block;
|
583 |
+
clear: both;
|
584 |
+
}
|
585 |
+
|
586 |
+
.price-slider-min,
|
587 |
+
.price-slider-max {
|
588 |
+
min-width: 0;
|
589 |
+
width: 50px;
|
590 |
+
}
|
591 |
+
|
592 |
+
.irs {
|
593 |
+
margin-bottom: 20px;
|
594 |
+
}
|
595 |
+
|
596 |
+
.price-slider-min {
|
597 |
+
float: left;
|
598 |
+
}
|
599 |
+
|
600 |
+
.price-slider-max {
|
601 |
+
float: right;
|
602 |
+
}
|
603 |
+
}
|
604 |
|
605 |
+
&.fields {
|
606 |
+
padding: 20px 0;
|
607 |
+
|
608 |
+
.price-slider-min,
|
609 |
+
.price-slider-max {
|
610 |
+
min-width: 0;
|
611 |
+
width: 70px;
|
612 |
+
margin: 0 5px;
|
613 |
+
}
|
614 |
}
|
615 |
|
616 |
.irs-bar,
|
968 |
width: 100%;
|
969 |
}
|
970 |
}
|
971 |
+
|
972 |
+
// custom appearance for horizontal layout
|
973 |
+
&.horizontal:not(.filters-modal) {
|
974 |
+
text-align: left;
|
975 |
+
|
976 |
+
.yith-wcan-filter {
|
977 |
+
display: inline-block;
|
978 |
+
margin-bottom: 8px;
|
979 |
+
min-width: 200px;
|
980 |
+
position: relative;
|
981 |
+
vertical-align: top;
|
982 |
+
|
983 |
+
h4.collapsable {
|
984 |
+
border: 1px solid $border-color;
|
985 |
+
border-radius: $border-radius;
|
986 |
+
font-weight: 400;
|
987 |
+
margin-top: 0;
|
988 |
+
margin-bottom: 10px;
|
989 |
+
margin-right: 15px;
|
990 |
+
padding: 10px 40px 10px 20px;
|
991 |
+
|
992 |
+
&:after {
|
993 |
+
right: 15px;
|
994 |
+
}
|
995 |
+
|
996 |
+
span.filter-count {
|
997 |
+
border: 2px solid $accent-color;
|
998 |
+
padding: 0 5px;
|
999 |
+
font-size: .8em;
|
1000 |
+
margin: 0 10px;
|
1001 |
+
}
|
1002 |
+
}
|
1003 |
+
|
1004 |
+
h4.collapsable.opened,
|
1005 |
+
h4.collapsable.opened + .filter-content {
|
1006 |
+
border: 1px solid rgba( var( --yith-wcan-filters_colors_accent_r, 73 ), var( --yith-wcan-filters_colors_accent_g, 139 ), var( --yith-wcan-filters_colors_accent_b, 162 ), .3 );
|
1007 |
+
box-shadow: 0 0 7px 0 rgba( var( --yith-wcan-filters_colors_accent_r, 73 ), var( --yith-wcan-filters_colors_accent_g, 139 ), var( --yith-wcan-filters_colors_accent_b, 162 ), .3 );
|
1008 |
+
}
|
1009 |
+
|
1010 |
+
h4.collapsable + .filter-content {
|
1011 |
+
background-color: #fff;
|
1012 |
+
border: 1px solid $border-color;
|
1013 |
+
border-radius: $border-radius;
|
1014 |
+
min-width: 300px;
|
1015 |
+
position: absolute;
|
1016 |
+
padding: 20px;
|
1017 |
+
width: 100%;
|
1018 |
+
z-index: $z-index;
|
1019 |
+
|
1020 |
+
.filter-content-footer {
|
1021 |
+
background-color: $background-gray;
|
1022 |
+
margin: 20px -20px -20px;
|
1023 |
+
padding: 15px 20px;
|
1024 |
+
text-align: right;
|
1025 |
+
|
1026 |
+
.apply-filters {
|
1027 |
+
margin: 0;
|
1028 |
+
}
|
1029 |
+
|
1030 |
+
.clear-selection {
|
1031 |
+
background: #CBCBCB; // To be removed
|
1032 |
+
border-color: #CBCBCB; // To be removed
|
1033 |
+
color: #434343; // To be removed
|
1034 |
+
|
1035 |
+
margin-bottom: 0;
|
1036 |
+
margin-right: 15px;
|
1037 |
+
}
|
1038 |
+
}
|
1039 |
+
}
|
1040 |
+
|
1041 |
+
// filter items
|
1042 |
+
.filter-items {
|
1043 |
+
max-height: 200px;
|
1044 |
+
overflow-y: scroll;
|
1045 |
+
overflow-x: hidden;
|
1046 |
+
padding: 5px 2px 0 0;
|
1047 |
+
|
1048 |
+
@include pretty_scrollbar;
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
&.label-design .filter-items {
|
1052 |
+
padding-top: 8px;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
// terms dropdown
|
1056 |
+
.dropdown-wrapper {
|
1057 |
+
.search-field-container {
|
1058 |
+
margin-bottom: 20px;
|
1059 |
+
|
1060 |
+
input {
|
1061 |
+
width: 100%;
|
1062 |
+
}
|
1063 |
+
}
|
1064 |
+
|
1065 |
+
.matching-items {
|
1066 |
+
a {
|
1067 |
+
cursor: pointer;
|
1068 |
+
}
|
1069 |
+
}
|
1070 |
+
}
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
form > .apply-filters {
|
1074 |
+
margin-top: 0;
|
1075 |
+
}
|
1076 |
+
}
|
1077 |
}
|
1078 |
|
1079 |
body.admin-bar .yith-wcan-filters.filters-modal {
|
1097 |
}
|
1098 |
}
|
1099 |
|
1100 |
+
@media( max-width: 991px ) {
|
1101 |
+
body.filters-in-modal .yith-wcan-filters {
|
1102 |
+
display: none;
|
1103 |
+
}
|
1104 |
+
}
|
1105 |
+
|
1106 |
@media( max-width: 782px ) {
|
1107 |
body.admin-bar .yith-wcan-filters.filters-modal {
|
1108 |
top: 46px;
|
@@ -108,12 +108,15 @@ if ( ! class_exists( 'YITH_WCAN_Admin' ) ) {
|
|
108 |
'confirm_delete' => _x( 'Are you sure you want to delete this item?', '[Admin] Confirm filter delete message', 'yith-woocommerce-ajax-navigation' ),
|
109 |
// translators: 1. Number of items that will be added.
|
110 |
'confirm_add_all_terms' => _x( 'Are you sure you want to proceed? This operation will add %s items', '[Admin] Confirm add all terms message', 'yith-woocommerce-ajax-navigation' ),
|
|
|
111 |
),
|
112 |
'labels' => array(
|
113 |
'no_title' => _x( '< no title >', '[Admin] Message shown when filter has empty title', 'yith-woocommerce-ajax-navigation' ),
|
114 |
'upload_media' => _x( 'Select media you want to use', '[Admin] Media library title, when selecting images', 'yith-woocommerce-ajax-navigation' ),
|
115 |
'confirm_media' => _x( 'Use this media', '[Admin] Media library confirm button, when selecting images', 'yith-woocommerce-ajax-navigation' ),
|
116 |
),
|
|
|
|
|
117 |
)
|
118 |
);
|
119 |
}
|
@@ -191,7 +194,7 @@ if ( ! class_exists( 'YITH_WCAN_Admin' ) ) {
|
|
191 |
$args = array(
|
192 |
'create_menu_page' => true,
|
193 |
'parent_slug' => '',
|
194 |
-
'page_title' =>
|
195 |
'menu_title' => _x( 'Ajax Product Filter', '[Admin] Menu title', 'yith-woocommerce-ajax-navigation' ),
|
196 |
'plugin_description' => _x( 'It allows your users to find the product they are looking for as quickly as possible.', '[Admin] Plugin description', 'yith-woocommerce-ajax-navigation' ),
|
197 |
'capability' => apply_filters( 'yith_wcan_panel_capability', 'manage_woocommerce' ),
|
@@ -203,6 +206,23 @@ if ( ! class_exists( 'YITH_WCAN_Admin' ) ) {
|
|
203 |
'plugin_slug' => YITH_WCAN_SLUG,
|
204 |
'plugin-url' => YITH_WCAN_URL,
|
205 |
'page' => $this->_panel_page,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
);
|
207 |
|
208 |
$this->_panel = new YIT_Plugin_Panel_WooCommerce( $args );
|
@@ -359,7 +379,7 @@ if ( ! class_exists( 'YITH_WCAN_Admin' ) ) {
|
|
359 |
*/
|
360 |
public function filter_terms_field( $field ) {
|
361 |
$id = isset( $field['index'] ) ? $field['index'] : 0;
|
362 |
-
$terms = isset( $field['value'] ) ? $field['value'] : array();
|
363 |
$taxonomy = ! empty( $field['filter'] ) ? $field['filter']->get_taxonomy() : '';
|
364 |
|
365 |
include( YITH_WCAN_DIR . 'templates/admin/preset-filter-terms.php' );
|
108 |
'confirm_delete' => _x( 'Are you sure you want to delete this item?', '[Admin] Confirm filter delete message', 'yith-woocommerce-ajax-navigation' ),
|
109 |
// translators: 1. Number of items that will be added.
|
110 |
'confirm_add_all_terms' => _x( 'Are you sure you want to proceed? This operation will add %s items', '[Admin] Confirm add all terms message', 'yith-woocommerce-ajax-navigation' ),
|
111 |
+
'filter_title_required' => _x( '"Filter title" is a required field', '[Admin] Error message', 'yith-woocommerce-ajax-navigation' ),
|
112 |
),
|
113 |
'labels' => array(
|
114 |
'no_title' => _x( '< no title >', '[Admin] Message shown when filter has empty title', 'yith-woocommerce-ajax-navigation' ),
|
115 |
'upload_media' => _x( 'Select media you want to use', '[Admin] Media library title, when selecting images', 'yith-woocommerce-ajax-navigation' ),
|
116 |
'confirm_media' => _x( 'Use this media', '[Admin] Media library confirm button, when selecting images', 'yith-woocommerce-ajax-navigation' ),
|
117 |
),
|
118 |
+
'yith_wccl_enabled' => defined( 'YITH_WCCL' ),
|
119 |
+
'supported_designs' => YITH_WCAN_Filter_Factory::get_supported_designs(),
|
120 |
)
|
121 |
);
|
122 |
}
|
194 |
$args = array(
|
195 |
'create_menu_page' => true,
|
196 |
'parent_slug' => '',
|
197 |
+
'page_title' => 'WooCommerce Ajax Product Filter',
|
198 |
'menu_title' => _x( 'Ajax Product Filter', '[Admin] Menu title', 'yith-woocommerce-ajax-navigation' ),
|
199 |
'plugin_description' => _x( 'It allows your users to find the product they are looking for as quickly as possible.', '[Admin] Plugin description', 'yith-woocommerce-ajax-navigation' ),
|
200 |
'capability' => apply_filters( 'yith_wcan_panel_capability', 'manage_woocommerce' ),
|
206 |
'plugin_slug' => YITH_WCAN_SLUG,
|
207 |
'plugin-url' => YITH_WCAN_URL,
|
208 |
'page' => $this->_panel_page,
|
209 |
+
'help_tab' => array(
|
210 |
+
'main_video' => array(
|
211 |
+
'desc' => _x( 'Check this video to learn how to <b>create a filter preset and show it on the shop page:</b>', '[HELP TAB] Video title', 'yith-woocommerce-ajax-navigation' ),
|
212 |
+
'url' => array(
|
213 |
+
'en' => 'https://www.youtube.com/embed/o-ZhSVR4HvU',
|
214 |
+
'it' => 'https://www.youtube.com/embed/cgQo2Cxux4M',
|
215 |
+
'es' => 'https://www.youtube.com/embed/KGnJW_zUBRY',
|
216 |
+
),
|
217 |
+
),
|
218 |
+
'playlists' => array(
|
219 |
+
'en' => 'https://www.youtube.com/watch?v=icXC7Ei4K7g&list=PLDriKG-6905lqqHc9JR5RJ3vhBn5ktdcj',
|
220 |
+
'it' => 'https://www.youtube.com/watch?v=QwRkPQFeGOM&list=PL9c19edGMs08ouyniO98Q8S_pr4pHZPqb',
|
221 |
+
'es' => 'https://www.youtube.com/watch?v=7kX7nxBD2BA&list=PL9Ka3j92PYJOyeFNJRdW9oLPkhfyrXmL1',
|
222 |
+
),
|
223 |
+
'hc_url' => 'https://support.yithemes.com/hc/en-us/categories/360003474618-YITH-WOOCOMMERCE-AJAX-PRODUCT-FILTER',
|
224 |
+
'doc_url' => 'https://docs.yithemes.com/yith-woocommerce-ajax-product-filter/',
|
225 |
+
),
|
226 |
);
|
227 |
|
228 |
$this->_panel = new YIT_Plugin_Panel_WooCommerce( $args );
|
379 |
*/
|
380 |
public function filter_terms_field( $field ) {
|
381 |
$id = isset( $field['index'] ) ? $field['index'] : 0;
|
382 |
+
$terms = isset( $field['value'] ) && $field['filter']->customize_terms() ? $field['value'] : array();
|
383 |
$taxonomy = ! empty( $field['filter'] ) ? $field['filter']->get_taxonomy() : '';
|
384 |
|
385 |
include( YITH_WCAN_DIR . 'templates/admin/preset-filter-terms.php' );
|
@@ -74,6 +74,24 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Factory' ) ) {
|
|
74 |
);
|
75 |
}
|
76 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
/**
|
78 |
* Get all supported orders for products
|
79 |
*
|
74 |
);
|
75 |
}
|
76 |
|
77 |
+
/**
|
78 |
+
* Get supported designs
|
79 |
+
*
|
80 |
+
* @return array Array of supported designs (id=>name)
|
81 |
+
*/
|
82 |
+
public static function get_supported_designs() {
|
83 |
+
return apply_filters(
|
84 |
+
'yith_wcan_supported_filter_designs',
|
85 |
+
array(
|
86 |
+
'checkbox' => _x( 'Checkbox', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
87 |
+
'select' => _x( 'Select', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
88 |
+
'text' => _x( 'Text', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
89 |
+
'color' => _x( 'Color Swatches', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
90 |
+
'label' => _x( 'Label', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
91 |
+
)
|
92 |
+
);
|
93 |
+
}
|
94 |
+
|
95 |
/**
|
96 |
* Get all supported orders for products
|
97 |
*
|
@@ -69,32 +69,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
69 |
public function __construct( $filter = array() ) {
|
70 |
$filter = wp_parse_args(
|
71 |
$filter,
|
72 |
-
|
73 |
-
'id' => '',
|
74 |
-
'preset_id' => '',
|
75 |
-
'title' => _x( 'New filter', '[Admin] Default filter title', 'yith-woocommerce-ajax-navigation' ),
|
76 |
-
'terms' => array(),
|
77 |
-
'price_ranges' => array(),
|
78 |
-
'filter_design' => 'checkbox',
|
79 |
-
'column_number' => 4,
|
80 |
-
'show_toggle' => 'no',
|
81 |
-
'show_search' => 'yes',
|
82 |
-
'toggle_style' => 'opened',
|
83 |
-
'order_by' => 'name',
|
84 |
-
'order' => 'asc',
|
85 |
-
'show_count' => 'no',
|
86 |
-
'hierarchical' => 'no',
|
87 |
-
'multiple' => 'no',
|
88 |
-
'relation' => 'and',
|
89 |
-
'adoptive' => 'hide',
|
90 |
-
'enabled' => 'yes',
|
91 |
-
'price_slider_min' => 0,
|
92 |
-
'price_slider_max' => 100,
|
93 |
-
'price_slider_step' => 0.01,
|
94 |
-
'order_options' => array( 'menu_order' ),
|
95 |
-
'show_stock_filter' => 'yes',
|
96 |
-
'show_sale_filter' => 'yes',
|
97 |
-
)
|
98 |
);
|
99 |
|
100 |
// use setters to configure filter parameters; this will assure data sanitization.
|
@@ -127,6 +102,48 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
127 |
$this->__construct( $this->data );
|
128 |
}
|
129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
/* === GETTERS === */
|
131 |
|
132 |
/**
|
@@ -234,6 +251,46 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
234 |
return $formatted_taxonomy;
|
235 |
}
|
236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
/**
|
238 |
* Check whether filter has any term
|
239 |
*
|
@@ -241,7 +298,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
241 |
* @return bool Whether filter has any term
|
242 |
*/
|
243 |
public function has_terms( $context = 'view' ) {
|
244 |
-
return ! ! $this->get_terms();
|
245 |
}
|
246 |
|
247 |
/**
|
@@ -269,6 +326,22 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
269 |
return $has_image;
|
270 |
}
|
271 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
/**
|
273 |
* Get terms for the filter
|
274 |
*
|
@@ -277,11 +350,23 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
277 |
* @return array Array of term ids for current filter.
|
278 |
*/
|
279 |
public function get_terms( $fields = 'ids', $context = 'view' ) {
|
280 |
-
$terms
|
281 |
-
|
282 |
$term_ids = array_keys( $terms ? $terms : array() );
|
|
|
|
|
|
|
|
|
|
|
283 |
|
284 |
switch ( $fields ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
case 'all':
|
286 |
case 'all_with_object_id':
|
287 |
case 'tt_ids':
|
@@ -291,18 +376,16 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
291 |
case 'id=>parent':
|
292 |
case 'id=>name':
|
293 |
case 'id=>slug':
|
294 |
-
$taxonomy = $this->get_taxonomy( $context );
|
295 |
-
|
296 |
-
if ( ! $taxonomy ) {
|
297 |
-
return array();
|
298 |
-
}
|
299 |
-
|
300 |
$terms = get_terms(
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
|
|
|
|
|
|
|
|
306 |
)
|
307 |
);
|
308 |
|
@@ -312,12 +395,43 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
312 |
|
313 |
return $terms;
|
314 |
case 'id=>options':
|
315 |
-
|
316 |
-
|
317 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
}
|
319 |
}
|
320 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
321 |
/**
|
322 |
* Get specific options for each term
|
323 |
*
|
@@ -338,6 +452,16 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
338 |
return $this->get_prop( 'filter_design', $context );
|
339 |
}
|
340 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
341 |
/**
|
342 |
* Return number of columns for currend design
|
343 |
*
|
@@ -365,7 +489,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
365 |
* @return string Whether filter is collapsable or not.
|
366 |
*/
|
367 |
public function is_collapsable( $context = 'view' ) {
|
368 |
-
return 'yes' === $this->get_prop( 'show_toggle', $context );
|
369 |
}
|
370 |
|
371 |
/**
|
@@ -395,6 +519,12 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
395 |
* @return string Toggle style.
|
396 |
*/
|
397 |
public function get_toggle_style( $context = 'view' ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
398 |
return $this->get_prop( 'toggle_style', $context );
|
399 |
}
|
400 |
|
@@ -522,6 +652,36 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
522 |
return array_values( $this->get_prop( 'price_ranges', $context ) );
|
523 |
}
|
524 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
525 |
/**
|
526 |
* Retrieves minimum value for price slider filter
|
527 |
*
|
@@ -582,6 +742,16 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
582 |
return $this->get_prop( 'show_sale_filter', $context );
|
583 |
}
|
584 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
585 |
/**
|
586 |
* Checks whether In Stock filter needs to be shown
|
587 |
*
|
@@ -602,6 +772,16 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
602 |
return 'yes' === $this->get_prop( 'show_sale_filter', $context );
|
603 |
}
|
604 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
605 |
/**
|
606 |
* Check if filter is enabled
|
607 |
*
|
@@ -627,6 +807,10 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
627 |
$additional_classes[] = 'hierarchical';
|
628 |
}
|
629 |
|
|
|
|
|
|
|
|
|
630 |
if ( ! $this->get_title() ) {
|
631 |
$additional_classes[] = 'no-title';
|
632 |
}
|
@@ -680,7 +864,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
680 |
*
|
681 |
* @return array Array of fields
|
682 |
*/
|
683 |
-
public function get_fields() {
|
684 |
return include( YITH_WCAN_DIR . 'plugin-options/filter-options.php' );
|
685 |
}
|
686 |
|
@@ -749,28 +933,57 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
749 |
$this->set_prop( 'taxonomy', $taxonomy );
|
750 |
}
|
751 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
752 |
/**
|
753 |
* Set terms for current filter
|
754 |
*
|
755 |
-
* @param array $terms An array of terms options, with the following format: term_id=>options
|
|
|
756 |
*/
|
757 |
public function set_terms( $terms ) {
|
758 |
$new_terms = array();
|
759 |
|
|
|
|
|
760 |
// sanitize array of options.
|
761 |
if ( ! empty( $terms ) ) {
|
762 |
-
foreach ( $terms as $
|
763 |
-
|
764 |
-
$
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
|
|
|
|
|
|
|
|
774 |
}
|
775 |
}
|
776 |
|
@@ -799,6 +1012,25 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
799 |
$this->set_prop( 'filter_design', $filter_design );
|
800 |
}
|
801 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
802 |
/**
|
803 |
* Set number of items per row for the current design
|
804 |
*
|
@@ -859,6 +1091,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
859 |
'slug',
|
860 |
'count',
|
861 |
'term_order',
|
|
|
862 |
);
|
863 |
|
864 |
if ( ! in_array( $order_by, $supported_orders ) ) {
|
@@ -1001,6 +1234,30 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
1001 |
$this->set_prop( 'price_ranges', $new_ranges );
|
1002 |
}
|
1003 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1004 |
/**
|
1005 |
* Set minimum value for price slider filter
|
1006 |
*
|
@@ -1070,6 +1327,17 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
1070 |
$this->set_prop( 'show_sale_filter', $show_on_sale );
|
1071 |
}
|
1072 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1073 |
/**
|
1074 |
* Set filter as enabled
|
1075 |
*
|
@@ -1124,7 +1392,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter' ) ) {
|
|
1124 |
|
1125 |
if ( $this->is_collapsable() ) {
|
1126 |
$additional_classes[] = 'collapsable';
|
1127 |
-
$additional_classes[] = $this->is_active() ? 'opened' : $this->get_toggle_style();
|
1128 |
}
|
1129 |
|
1130 |
$additional_classes = implode( ' ', apply_filters( 'yith_wcan_filter_title_classes', $additional_classes, $this ) );
|
69 |
public function __construct( $filter = array() ) {
|
70 |
$filter = wp_parse_args(
|
71 |
$filter,
|
72 |
+
$this->get_defaults()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
);
|
74 |
|
75 |
// use setters to configure filter parameters; this will assure data sanitization.
|
102 |
$this->__construct( $this->data );
|
103 |
}
|
104 |
|
105 |
+
/**
|
106 |
+
* Get filter defaults
|
107 |
+
*
|
108 |
+
* @return array Array of filter defaults.
|
109 |
+
*/
|
110 |
+
protected function get_defaults() {
|
111 |
+
return apply_filters(
|
112 |
+
'yith_wcan_filter_defaults',
|
113 |
+
array(
|
114 |
+
'id' => '',
|
115 |
+
'preset_id' => '',
|
116 |
+
'title' => _x( 'New filter', '[Admin] Default filter title', 'yith-woocommerce-ajax-navigation' ),
|
117 |
+
'customize_terms' => 'yes',
|
118 |
+
'terms' => array(),
|
119 |
+
'price_ranges' => array(),
|
120 |
+
'filter_design' => 'checkbox',
|
121 |
+
'label_position' => 'below',
|
122 |
+
'column_number' => 4,
|
123 |
+
'show_toggle' => 'no',
|
124 |
+
'show_search' => 'yes',
|
125 |
+
'toggle_style' => 'opened',
|
126 |
+
'order_by' => 'name',
|
127 |
+
'order' => 'asc',
|
128 |
+
'show_count' => 'no',
|
129 |
+
'hierarchical' => 'no',
|
130 |
+
'multiple' => 'no',
|
131 |
+
'relation' => 'and',
|
132 |
+
'adoptive' => 'hide',
|
133 |
+
'enabled' => 'yes',
|
134 |
+
'price_slider_design' => 'slider',
|
135 |
+
'price_slider_adaptive_limits' => 'no',
|
136 |
+
'price_slider_min' => 0,
|
137 |
+
'price_slider_max' => 100,
|
138 |
+
'price_slider_step' => 1,
|
139 |
+
'order_options' => array( 'menu_order' ),
|
140 |
+
'show_stock_filter' => 'yes',
|
141 |
+
'show_sale_filter' => 'yes',
|
142 |
+
'show_featured_filter' => 'no',
|
143 |
+
)
|
144 |
+
);
|
145 |
+
}
|
146 |
+
|
147 |
/* === GETTERS === */
|
148 |
|
149 |
/**
|
251 |
return $formatted_taxonomy;
|
252 |
}
|
253 |
|
254 |
+
/**
|
255 |
+
* Get use_all_terms property for the filter
|
256 |
+
*
|
257 |
+
* @param string $context Context of the operation.
|
258 |
+
* @return string Yes or no.
|
259 |
+
*/
|
260 |
+
public function get_use_all_terms( $context = 'view' ) {
|
261 |
+
return $this->get_prop( 'use_all_terms', $context );
|
262 |
+
}
|
263 |
+
|
264 |
+
/**
|
265 |
+
* Check if we should use all existing terms for this filter
|
266 |
+
*
|
267 |
+
* @param string $context Context of the operation.
|
268 |
+
* @return bool Whether all terms should be retrieved or not.
|
269 |
+
*/
|
270 |
+
public function use_all_terms( $context = 'view' ) {
|
271 |
+
return 'yes' === $this->get_use_all_terms( $context );
|
272 |
+
}
|
273 |
+
|
274 |
+
/**
|
275 |
+
* Get customize_terms property
|
276 |
+
*
|
277 |
+
* @param string $context Context of the operation.
|
278 |
+
* @return string Yes or no.
|
279 |
+
*/
|
280 |
+
public function get_customize_terms( $context = 'view' ) {
|
281 |
+
return $this->get_prop( 'customize_terms', $context );
|
282 |
+
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
* Should use custom terms options?
|
286 |
+
*
|
287 |
+
* @param string $context Context of the operation.
|
288 |
+
* @return bool Whether to use terms options or not.
|
289 |
+
*/
|
290 |
+
public function customize_terms( $context = 'view' ) {
|
291 |
+
return apply_filters( 'yith_wcan_filter_customize_terms_options', 'yes' === $this->get_prop( 'customize_terms', $context ), $this );
|
292 |
+
}
|
293 |
+
|
294 |
/**
|
295 |
* Check whether filter has any term
|
296 |
*
|
298 |
* @return bool Whether filter has any term
|
299 |
*/
|
300 |
public function has_terms( $context = 'view' ) {
|
301 |
+
return ! ! $this->get_terms( 'ids', $context );
|
302 |
}
|
303 |
|
304 |
/**
|
326 |
return $has_image;
|
327 |
}
|
328 |
|
329 |
+
/**
|
330 |
+
* Return default term options
|
331 |
+
*
|
332 |
+
* @return array Default term options:
|
333 |
+
*/
|
334 |
+
public function get_default_term_options() {
|
335 |
+
return array(
|
336 |
+
'label' => '',
|
337 |
+
'tooltip' => '',
|
338 |
+
'color_1' => '',
|
339 |
+
'color_2' => '',
|
340 |
+
'image' => '',
|
341 |
+
'mode' => 'color',
|
342 |
+
);
|
343 |
+
}
|
344 |
+
|
345 |
/**
|
346 |
* Get terms for the filter
|
347 |
*
|
350 |
* @return array Array of term ids for current filter.
|
351 |
*/
|
352 |
public function get_terms( $fields = 'ids', $context = 'view' ) {
|
353 |
+
$terms = $this->get_prop( 'terms', $context );
|
|
|
354 |
$term_ids = array_keys( $terms ? $terms : array() );
|
355 |
+
$taxonomy = $this->get_taxonomy( $context );
|
356 |
+
|
357 |
+
if ( ! $taxonomy ) {
|
358 |
+
return array();
|
359 |
+
}
|
360 |
|
361 |
switch ( $fields ) {
|
362 |
+
default:
|
363 |
+
if ( ! $this->use_all_terms() ) {
|
364 |
+
return $term_ids;
|
365 |
+
}
|
366 |
+
|
367 |
+
$fields = 'ids';
|
368 |
+
|
369 |
+
// explicitly fallback to next cases.
|
370 |
case 'all':
|
371 |
case 'all_with_object_id':
|
372 |
case 'tt_ids':
|
376 |
case 'id=>parent':
|
377 |
case 'id=>name':
|
378 |
case 'id=>slug':
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
$terms = get_terms(
|
380 |
+
array_merge(
|
381 |
+
array(
|
382 |
+
'taxonomy' => $taxonomy,
|
383 |
+
'fields' => $fields,
|
384 |
+
'hide_empty' => false,
|
385 |
+
),
|
386 |
+
$this->use_all_terms() ? array() : array(
|
387 |
+
'include' => $term_ids,
|
388 |
+
)
|
389 |
)
|
390 |
);
|
391 |
|
395 |
|
396 |
return $terms;
|
397 |
case 'id=>options':
|
398 |
+
if ( ! $this->use_all_terms() ) {
|
399 |
+
return $terms;
|
400 |
+
} else {
|
401 |
+
$term_ids = get_terms(
|
402 |
+
array(
|
403 |
+
'taxonomy' => $taxonomy,
|
404 |
+
'fields' => 'ids',
|
405 |
+
'hide_empty' => false,
|
406 |
+
)
|
407 |
+
);
|
408 |
+
|
409 |
+
if ( ! $term_ids || is_wp_error( $term_ids ) ) {
|
410 |
+
return array();
|
411 |
+
}
|
412 |
+
|
413 |
+
$terms = array();
|
414 |
+
$default_term_options = $this->get_default_term_options();
|
415 |
+
|
416 |
+
foreach ( $term_ids as $term_id ) {
|
417 |
+
$terms[ $term_id ] = $default_term_options;
|
418 |
+
}
|
419 |
+
|
420 |
+
return $terms;
|
421 |
+
}
|
422 |
}
|
423 |
}
|
424 |
|
425 |
+
/**
|
426 |
+
* Returns an array of IDs for the selected terms
|
427 |
+
*
|
428 |
+
* @param string $context Context of the operation.
|
429 |
+
* @return array Array of term ids for current filter.
|
430 |
+
*/
|
431 |
+
public function get_term_ids( $context = 'view' ) {
|
432 |
+
return $this->get_terms( 'ids', $context );
|
433 |
+
}
|
434 |
+
|
435 |
/**
|
436 |
* Get specific options for each term
|
437 |
*
|
452 |
return $this->get_prop( 'filter_design', $context );
|
453 |
}
|
454 |
|
455 |
+
/**
|
456 |
+
* Get label position
|
457 |
+
*
|
458 |
+
* @param string $context Context of the operation.
|
459 |
+
* @return string Position of the label (below/right/hide).
|
460 |
+
*/
|
461 |
+
public function get_label_position( $context = 'view' ) {
|
462 |
+
return $this->get_prop( 'label_position', $context );
|
463 |
+
}
|
464 |
+
|
465 |
/**
|
466 |
* Return number of columns for currend design
|
467 |
*
|
489 |
* @return string Whether filter is collapsable or not.
|
490 |
*/
|
491 |
public function is_collapsable( $context = 'view' ) {
|
492 |
+
return 'yes' === $this->get_prop( 'show_toggle', $context ) || 'horizontal' === $this->get_preset()->get_layout();
|
493 |
}
|
494 |
|
495 |
/**
|
519 |
* @return string Toggle style.
|
520 |
*/
|
521 |
public function get_toggle_style( $context = 'view' ) {
|
522 |
+
$preset = $this->get_preset();
|
523 |
+
|
524 |
+
if ( $preset && 'horizontal' === $preset->get_layout() ) {
|
525 |
+
return 'closed';
|
526 |
+
}
|
527 |
+
|
528 |
return $this->get_prop( 'toggle_style', $context );
|
529 |
}
|
530 |
|
652 |
return array_values( $this->get_prop( 'price_ranges', $context ) );
|
653 |
}
|
654 |
|
655 |
+
/**
|
656 |
+
* Returns the slider design
|
657 |
+
*
|
658 |
+
* @param string $context Context of the operation.
|
659 |
+
* @return string Slider/Fields or both.
|
660 |
+
*/
|
661 |
+
public function get_price_slider_design( $context = 'view' ) {
|
662 |
+
return $this->get_prop( 'price_slider_design', $context );
|
663 |
+
}
|
664 |
+
|
665 |
+
/**
|
666 |
+
* Get price_slider_adaptive_limits property
|
667 |
+
*
|
668 |
+
* @param string $context Context of the operation.
|
669 |
+
* @return string Yes or no.
|
670 |
+
*/
|
671 |
+
public function get_price_slider_adaptive_limits( $context = 'view' ) {
|
672 |
+
return $this->get_prop( 'price_slider_adaptive_limits', $context );
|
673 |
+
}
|
674 |
+
|
675 |
+
/**
|
676 |
+
* Should use adaptive limits for price slider?
|
677 |
+
*
|
678 |
+
* @param string $context Context of the operation.
|
679 |
+
* @return string Whether to use adaptive limits for price slider or not.
|
680 |
+
*/
|
681 |
+
public function use_price_slider_adaptive_limits( $context = 'view' ) {
|
682 |
+
return 'yes' === $this->get_price_slider_adaptive_limits( $context );
|
683 |
+
}
|
684 |
+
|
685 |
/**
|
686 |
* Retrieves minimum value for price slider filter
|
687 |
*
|
742 |
return $this->get_prop( 'show_sale_filter', $context );
|
743 |
}
|
744 |
|
745 |
+
/**
|
746 |
+
* Get show_featured_filter property
|
747 |
+
*
|
748 |
+
* @param string $context Context of the operation.
|
749 |
+
* @return string Yes or no.
|
750 |
+
*/
|
751 |
+
public function get_show_featured_filter( $context = 'view' ) {
|
752 |
+
return $this->get_prop( 'show_featured_filter', $context );
|
753 |
+
}
|
754 |
+
|
755 |
/**
|
756 |
* Checks whether In Stock filter needs to be shown
|
757 |
*
|
772 |
return 'yes' === $this->get_prop( 'show_sale_filter', $context );
|
773 |
}
|
774 |
|
775 |
+
/**
|
776 |
+
* Checks whether Featured filter needs to be shown
|
777 |
+
*
|
778 |
+
* @param string $context Context of the operation.
|
779 |
+
* @return bool Whether filter needs to be shown
|
780 |
+
*/
|
781 |
+
public function show_featured_filter( $context = 'view' ) {
|
782 |
+
return 'yes' === $this->get_prop( 'show_featured_filter', $context );
|
783 |
+
}
|
784 |
+
|
785 |
/**
|
786 |
* Check if filter is enabled
|
787 |
*
|
807 |
$additional_classes[] = 'hierarchical';
|
808 |
}
|
809 |
|
810 |
+
if ( 'tax' === $this->get_type() ) {
|
811 |
+
$additional_classes[] = $this->get_filter_design() . '-design';
|
812 |
+
}
|
813 |
+
|
814 |
if ( ! $this->get_title() ) {
|
815 |
$additional_classes[] = 'no-title';
|
816 |
}
|
864 |
*
|
865 |
* @return array Array of fields
|
866 |
*/
|
867 |
+
public static function get_fields() {
|
868 |
return include( YITH_WCAN_DIR . 'plugin-options/filter-options.php' );
|
869 |
}
|
870 |
|
933 |
$this->set_prop( 'taxonomy', $taxonomy );
|
934 |
}
|
935 |
|
936 |
+
/**
|
937 |
+
* Set use_all_terms property for the filter
|
938 |
+
*
|
939 |
+
* @param string $use_all_terms Yes or no.
|
940 |
+
*/
|
941 |
+
public function set_use_all_terms( $use_all_terms ) {
|
942 |
+
$use_all_terms = yith_plugin_fw_is_true( $use_all_terms ) ? 'yes' : 'no';
|
943 |
+
|
944 |
+
$this->set_prop( 'use_all_terms', $use_all_terms );
|
945 |
+
}
|
946 |
+
|
947 |
+
/**
|
948 |
+
* Set customize_terms property
|
949 |
+
*
|
950 |
+
* @param string $customize_terms Yes or no.
|
951 |
+
*/
|
952 |
+
public function set_customize_terms( $customize_terms ) {
|
953 |
+
$customize_terms = yith_plugin_fw_is_true( $customize_terms ) ? 'yes' : 'no';
|
954 |
+
|
955 |
+
$this->set_prop( 'customize_terms', $customize_terms );
|
956 |
+
}
|
957 |
+
|
958 |
/**
|
959 |
* Set terms for current filter
|
960 |
*
|
961 |
+
* @param array $terms An array of terms options, with the following format: term_id=>options; alternatively an array of term ids can be passed
|
962 |
+
* In this case, default options will apply for each term.
|
963 |
*/
|
964 |
public function set_terms( $terms ) {
|
965 |
$new_terms = array();
|
966 |
|
967 |
+
$default_term_options = $this->get_default_term_options();
|
968 |
+
|
969 |
// sanitize array of options.
|
970 |
if ( ! empty( $terms ) ) {
|
971 |
+
foreach ( $terms as $index => $value ) {
|
972 |
+
if ( is_array( $value ) ) {
|
973 |
+
$term_id = $index;
|
974 |
+
$options = $value;
|
975 |
+
|
976 |
+
$new_terms[ (int) $term_id ] = wp_parse_args(
|
977 |
+
$options,
|
978 |
+
$default_term_options
|
979 |
+
);
|
980 |
+
} elseif ( is_numeric( $value ) ) {
|
981 |
+
$term_id = $value;
|
982 |
+
|
983 |
+
$new_terms[ (int) $term_id ] = $default_term_options;
|
984 |
+
} else {
|
985 |
+
continue;
|
986 |
+
}
|
987 |
}
|
988 |
}
|
989 |
|
1012 |
$this->set_prop( 'filter_design', $filter_design );
|
1013 |
}
|
1014 |
|
1015 |
+
/**
|
1016 |
+
* Set label position
|
1017 |
+
*
|
1018 |
+
* @param string $label_position Lbale position.
|
1019 |
+
*/
|
1020 |
+
public function set_label_position( string $label_position ) {
|
1021 |
+
$supported_positions = array(
|
1022 |
+
'below',
|
1023 |
+
'right',
|
1024 |
+
'hide',
|
1025 |
+
);
|
1026 |
+
|
1027 |
+
if ( ! in_array( $label_position, $supported_positions ) ) {
|
1028 |
+
return;
|
1029 |
+
}
|
1030 |
+
|
1031 |
+
$this->set_prop( 'label_position', $label_position );
|
1032 |
+
}
|
1033 |
+
|
1034 |
/**
|
1035 |
* Set number of items per row for the current design
|
1036 |
*
|
1091 |
'slug',
|
1092 |
'count',
|
1093 |
'term_order',
|
1094 |
+
'include',
|
1095 |
);
|
1096 |
|
1097 |
if ( ! in_array( $order_by, $supported_orders ) ) {
|
1234 |
$this->set_prop( 'price_ranges', $new_ranges );
|
1235 |
}
|
1236 |
|
1237 |
+
/**
|
1238 |
+
* Set price slider design property
|
1239 |
+
*
|
1240 |
+
* @param string $design Slider/Fields or both; if none of them, fallbacks to slider.
|
1241 |
+
*/
|
1242 |
+
public function set_price_slider_design( $design ) {
|
1243 |
+
if ( ! in_array( $design, array( 'slider', 'fields', 'both' ) ) ) {
|
1244 |
+
$design = 'slider';
|
1245 |
+
}
|
1246 |
+
|
1247 |
+
$this->set_prop( 'price_slider_design', $design );
|
1248 |
+
}
|
1249 |
+
|
1250 |
+
/**
|
1251 |
+
* Set price_slider_adaptive_limits property
|
1252 |
+
*
|
1253 |
+
* @param string $price_slider_adaptive_limits Yes or no.
|
1254 |
+
*/
|
1255 |
+
public function set_price_slider_adaptive_limits( $price_slider_adaptive_limits ) {
|
1256 |
+
$price_slider_adaptive_limits = yith_plugin_fw_is_true( $price_slider_adaptive_limits ) ? 'yes' : 'no';
|
1257 |
+
|
1258 |
+
$this->set_prop( 'price_slider_adaptive_limits', $price_slider_adaptive_limits );
|
1259 |
+
}
|
1260 |
+
|
1261 |
/**
|
1262 |
* Set minimum value for price slider filter
|
1263 |
*
|
1327 |
$this->set_prop( 'show_sale_filter', $show_on_sale );
|
1328 |
}
|
1329 |
|
1330 |
+
/**
|
1331 |
+
* Set whether we should show Featured filter
|
1332 |
+
*
|
1333 |
+
* @param string $show_featured Yes or no.
|
1334 |
+
*/
|
1335 |
+
public function set_show_featured_filter( $show_featured ) {
|
1336 |
+
$show_on_sale = yith_plugin_fw_is_true( $show_featured ) ? 'yes' : 'no';
|
1337 |
+
|
1338 |
+
$this->set_prop( 'show_featured_filter', $show_featured );
|
1339 |
+
}
|
1340 |
+
|
1341 |
/**
|
1342 |
* Set filter as enabled
|
1343 |
*
|
1392 |
|
1393 |
if ( $this->is_collapsable() ) {
|
1394 |
$additional_classes[] = 'collapsable';
|
1395 |
+
$additional_classes[] = ( $this->is_active() && 'horizontal' !== $this->get_preset()->get_layout() ) ? 'opened' : $this->get_toggle_style();
|
1396 |
}
|
1397 |
|
1398 |
$additional_classes = implode( ' ', apply_filters( 'yith_wcan_filter_title_classes', $additional_classes, $this ) );
|
@@ -547,7 +547,7 @@ if ( ! class_exists( 'YITH_WCAN_Frontend' ) ) {
|
|
547 |
'query_param' => YITH_WCAN_Query()->get_query_param(),
|
548 |
'supported_taxonomies' => array_keys( YITH_WCAN_Query()->get_supported_taxonomies() ),
|
549 |
'content' => apply_filters( 'yith_wcan_content_selector', '#content' ),
|
550 |
-
'change_browser_url' =>
|
551 |
'instant_filters' => true,
|
552 |
'ajax_filters' => true,
|
553 |
'show_clear_filter' => false,
|
@@ -579,6 +579,7 @@ if ( ! class_exists( 'YITH_WCAN_Frontend' ) ) {
|
|
579 |
// translators: 1. Number of items to show.
|
580 |
'show_more' => _x( 'Show %d more', '[FRONTEND] Show more link on terms dropdown', 'yith-woocommerce-ajax-navigation' ),
|
581 |
'close' => _x( 'Close', '[FRONTEND] Alt text for modal close button on mobile', 'yith-woocommerce-ajax-navigation' ),
|
|
|
582 |
'show_results' => _x( 'Show results', '[FRONTEND] Label for filter button, on mobile modal', 'yith-woocommerce-ajax-navigation' ),
|
583 |
'clear_selection' => _x( 'Clear', '[FRONTEND] Label for clear selection link, that appears above filter after selection', 'yith-woocommerce-ajax-navigation' ),
|
584 |
'clear_all_selections' => _x( 'Clear All', '[FRONTEND] Label for clear selection link, that appears above filter after selection', 'yith-woocommerce-ajax-navigation' ),
|
547 |
'query_param' => YITH_WCAN_Query()->get_query_param(),
|
548 |
'supported_taxonomies' => array_keys( YITH_WCAN_Query()->get_supported_taxonomies() ),
|
549 |
'content' => apply_filters( 'yith_wcan_content_selector', '#content' ),
|
550 |
+
'change_browser_url' => in_array( yith_wcan_get_option( 'yith_wcan_change_browser_url', 'yes' ), array( 'yes', 'custom' ) ),
|
551 |
'instant_filters' => true,
|
552 |
'ajax_filters' => true,
|
553 |
'show_clear_filter' => false,
|
579 |
// translators: 1. Number of items to show.
|
580 |
'show_more' => _x( 'Show %d more', '[FRONTEND] Show more link on terms dropdown', 'yith-woocommerce-ajax-navigation' ),
|
581 |
'close' => _x( 'Close', '[FRONTEND] Alt text for modal close button on mobile', 'yith-woocommerce-ajax-navigation' ),
|
582 |
+
'save' => _x( 'Save', '[FRONTEND] Label for filter button, on horizontal layout', 'yith-woocommerce-ajax-navigation' ),
|
583 |
'show_results' => _x( 'Show results', '[FRONTEND] Label for filter button, on mobile modal', 'yith-woocommerce-ajax-navigation' ),
|
584 |
'clear_selection' => _x( 'Clear', '[FRONTEND] Label for clear selection link, that appears above filter after selection', 'yith-woocommerce-ajax-navigation' ),
|
585 |
'clear_all_selections' => _x( 'Clear All', '[FRONTEND] Label for clear selection link, that appears above filter after selection', 'yith-woocommerce-ajax-navigation' ),
|
@@ -123,6 +123,7 @@ if ( ! class_exists( 'YITH_WCAN_Install' ) ) {
|
|
123 |
public static function maybe_update_options() {
|
124 |
// do incremental upgrade.
|
125 |
version_compare( self::$_stored_version, '4.0.0', '<' ) && self::_do_400_upgrade();
|
|
|
126 |
|
127 |
// space for future revisions.
|
128 |
|
@@ -217,6 +218,19 @@ if ( ! class_exists( 'YITH_WCAN_Install' ) ) {
|
|
217 |
foreach ( $options_to_export as $option ) {
|
218 |
update_option( $option, yith_wcan_get_option( $option ) );
|
219 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
}
|
221 |
|
222 |
/**
|
123 |
public static function maybe_update_options() {
|
124 |
// do incremental upgrade.
|
125 |
version_compare( self::$_stored_version, '4.0.0', '<' ) && self::_do_400_upgrade();
|
126 |
+
version_compare( self::$_stored_version, '4.1.0', '<' ) && self::_do_410_upgrade();
|
127 |
|
128 |
// space for future revisions.
|
129 |
|
218 |
foreach ( $options_to_export as $option ) {
|
219 |
update_option( $option, yith_wcan_get_option( $option ) );
|
220 |
}
|
221 |
+
|
222 |
+
do_action( 'yith_wcan_did_400_upgrade' );
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
* Upgrade options to version 4.1.0
|
227 |
+
*
|
228 |
+
* Scratch method; nothing needs to be done on this version of the software.
|
229 |
+
*
|
230 |
+
* @return void.
|
231 |
+
*/
|
232 |
+
protected static function _do_410_upgrade() {
|
233 |
+
do_action( 'yith_wcan_did_410_upgrade' );
|
234 |
}
|
235 |
|
236 |
/**
|
@@ -99,5 +99,19 @@ if ( ! class_exists( 'YITH_WCAN_Preset_Factory' ) ) {
|
|
99 |
return false;
|
100 |
}
|
101 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
}
|
103 |
}
|
99 |
return false;
|
100 |
}
|
101 |
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Returns an array of supported layouts for the preset
|
105 |
+
*
|
106 |
+
* @return array Array of supported layouts.
|
107 |
+
*/
|
108 |
+
public static function get_supported_layouts() {
|
109 |
+
return apply_filters(
|
110 |
+
'yith_wcan_supported_preset_layouts',
|
111 |
+
array(
|
112 |
+
'default' => _x( 'Default', '[Admin] Label in new preset page', 'yith-woocommerce-ajax-navigation' ),
|
113 |
+
)
|
114 |
+
);
|
115 |
+
}
|
116 |
}
|
117 |
}
|
@@ -77,6 +77,7 @@ if ( ! class_exists( 'YITH_WCAN_Preset' ) ) {
|
|
77 |
$this->data = array(
|
78 |
'title' => apply_filters( 'yith_wcan_default_preset_title', '' ),
|
79 |
'slug' => apply_filters( 'yith_wcan_default_preset_slug', '' ),
|
|
|
80 |
'selector' => '',
|
81 |
'filters' => array(),
|
82 |
'enabled' => true,
|
@@ -145,6 +146,18 @@ if ( ! class_exists( 'YITH_WCAN_Preset' ) ) {
|
|
145 |
return $this->slug;
|
146 |
}
|
147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
/**
|
149 |
* Get preset selector
|
150 |
*
|
@@ -181,6 +194,12 @@ if ( ! class_exists( 'YITH_WCAN_Preset' ) ) {
|
|
181 |
$additional_classes[] = 'custom-style';
|
182 |
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
if ( ! yith_wcan_get_option( 'yith_wcan_filters_title', '' ) ) {
|
185 |
$additional_classes[] = 'no-title';
|
186 |
}
|
@@ -203,6 +222,15 @@ if ( ! class_exists( 'YITH_WCAN_Preset' ) ) {
|
|
203 |
return $this->post;
|
204 |
}
|
205 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
/* === SETTERS === */
|
207 |
|
208 |
/**
|
@@ -225,6 +253,18 @@ if ( ! class_exists( 'YITH_WCAN_Preset' ) ) {
|
|
225 |
$this->slug = $slug;
|
226 |
}
|
227 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
/**
|
229 |
* Set preset selector
|
230 |
*
|
77 |
$this->data = array(
|
78 |
'title' => apply_filters( 'yith_wcan_default_preset_title', '' ),
|
79 |
'slug' => apply_filters( 'yith_wcan_default_preset_slug', '' ),
|
80 |
+
'layout' => 'default',
|
81 |
'selector' => '',
|
82 |
'filters' => array(),
|
83 |
'enabled' => true,
|
146 |
return $this->slug;
|
147 |
}
|
148 |
|
149 |
+
/**
|
150 |
+
* Get preset slug
|
151 |
+
*
|
152 |
+
* @param string $context Context of the operation.
|
153 |
+
*
|
154 |
+
* @return string Preset slug
|
155 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
156 |
+
*/
|
157 |
+
public function get_layout( $context = 'view' ) {
|
158 |
+
return $this->get_prop( 'layout', $context );
|
159 |
+
}
|
160 |
+
|
161 |
/**
|
162 |
* Get preset selector
|
163 |
*
|
194 |
$additional_classes[] = 'custom-style';
|
195 |
}
|
196 |
|
197 |
+
$layout = $this->get_layout();
|
198 |
+
|
199 |
+
if ( 'default' !== $layout ) {
|
200 |
+
$additional_classes[] = $layout;
|
201 |
+
}
|
202 |
+
|
203 |
if ( ! yith_wcan_get_option( 'yith_wcan_filters_title', '' ) ) {
|
204 |
$additional_classes[] = 'no-title';
|
205 |
}
|
222 |
return $this->post;
|
223 |
}
|
224 |
|
225 |
+
/**
|
226 |
+
* Return an array of supported fields
|
227 |
+
*
|
228 |
+
* @return array Array of fields
|
229 |
+
*/
|
230 |
+
public static function get_fields() {
|
231 |
+
return include( YITH_WCAN_DIR . 'plugin-options/preset-options.php' );
|
232 |
+
}
|
233 |
+
|
234 |
/* === SETTERS === */
|
235 |
|
236 |
/**
|
253 |
$this->slug = $slug;
|
254 |
}
|
255 |
|
256 |
+
/**
|
257 |
+
* Set preset layout
|
258 |
+
*
|
259 |
+
* @param string $layout Filter preset layout.
|
260 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
261 |
+
*/
|
262 |
+
public function set_layout( $layout ) {
|
263 |
+
$layout = in_array( $layout, array_keys( YITH_WCAN_Preset_Factory::get_supported_layouts() ) ) ? $layout : 'default';
|
264 |
+
|
265 |
+
$this->set_prop( 'layout', $layout );
|
266 |
+
}
|
267 |
+
|
268 |
/**
|
269 |
* Set preset selector
|
270 |
*
|
@@ -218,6 +218,10 @@ if ( ! class_exists( 'YITH_WCAN_Presets' ) ) {
|
|
218 |
$preset->set_title( $title );
|
219 |
}
|
220 |
|
|
|
|
|
|
|
|
|
221 |
// process filters and save them.
|
222 |
if ( ! empty( $_POST['filters'] ) ) {
|
223 |
$filters = $_POST['filters']; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
|
@@ -610,12 +614,19 @@ if ( ! class_exists( 'YITH_WCAN_Presets' ) ) {
|
|
610 |
$filter['multiple'] = isset( $filter['multiple'] ) ? 'yes' : 'no';
|
611 |
$filter['show_stock_filter'] = isset( $filter['show_stock_filter'] ) ? 'yes' : 'no';
|
612 |
$filter['show_sale_filter'] = isset( $filter['show_sale_filter'] ) ? 'yes' : 'no';
|
|
|
|
|
613 |
|
614 |
if ( isset( $filter['terms_order'] ) ) {
|
615 |
$filter['terms'] = $this->_get_sorted_terms( $filter['terms'], array_map( 'intval', $filter['terms_order'] ) );
|
616 |
unset( $filter['terms_order'] );
|
617 |
}
|
618 |
|
|
|
|
|
|
|
|
|
|
|
619 |
// use set methods of YITH_WCAN_Filter object to clean submitted data.
|
620 |
$filter_obj = yith_wcan_get_filter( $filter );
|
621 |
|
218 |
$preset->set_title( $title );
|
219 |
}
|
220 |
|
221 |
+
// retrieve preset layout and save it.
|
222 |
+
$layout = isset( $_POST['preset_layout'] ) && in_array( $_POST['preset_layout'], array_keys( YITH_WCAN_Preset_Factory::get_supported_layouts() ), true ) ? sanitize_text_field( wp_unslash( $_POST['preset_layout'] ) ) : 'default';
|
223 |
+
$preset->set_layout( $layout );
|
224 |
+
|
225 |
// process filters and save them.
|
226 |
if ( ! empty( $_POST['filters'] ) ) {
|
227 |
$filters = $_POST['filters']; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
|
614 |
$filter['multiple'] = isset( $filter['multiple'] ) ? 'yes' : 'no';
|
615 |
$filter['show_stock_filter'] = isset( $filter['show_stock_filter'] ) ? 'yes' : 'no';
|
616 |
$filter['show_sale_filter'] = isset( $filter['show_sale_filter'] ) ? 'yes' : 'no';
|
617 |
+
$filter['show_featured_filter'] = isset( $filter['show_featured_filter'] ) ? 'yes' : 'no';
|
618 |
+
$filter['customize_terms'] = isset( $filter['customize_terms'] ) ? 'yes' : 'no';
|
619 |
|
620 |
if ( isset( $filter['terms_order'] ) ) {
|
621 |
$filter['terms'] = $this->_get_sorted_terms( $filter['terms'], array_map( 'intval', $filter['terms_order'] ) );
|
622 |
unset( $filter['terms_order'] );
|
623 |
}
|
624 |
|
625 |
+
// address the case in which we're not using custom term options.
|
626 |
+
if ( empty( $filter['terms'] ) && ! empty( $filter['term_ids'] ) ) {
|
627 |
+
$filter['terms'] = $filter['term_ids'];
|
628 |
+
}
|
629 |
+
|
630 |
// use set methods of YITH_WCAN_Filter object to clean submitted data.
|
631 |
$filter_obj = yith_wcan_get_filter( $filter );
|
632 |
|
@@ -20,6 +20,27 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
20 |
* @since 4.0.0
|
21 |
*/
|
22 |
class YITH_WCAN_Query {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
/**
|
24 |
* Query parameter added to any filtered page url
|
25 |
*
|
@@ -475,7 +496,7 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
475 |
} elseif ( ! $query->is_main_query() && $query->get( 'wc_query' ) ) {
|
476 |
// skip if we're already executing a special wc_query.
|
477 |
$result = false;
|
478 |
-
} elseif ( $query->get( '
|
479 |
// skip if we're prefetching products.
|
480 |
$result = false;
|
481 |
}
|
@@ -761,7 +782,7 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
761 |
* @return array|bool Query's post__in, or false when no limitation shall be applied.
|
762 |
*/
|
763 |
public function get_post_in( $post_in = array() ) {
|
764 |
-
return $post_in;
|
765 |
}
|
766 |
|
767 |
/**
|
@@ -1061,7 +1082,7 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
1061 |
*/
|
1062 |
public function get_queried_products_transient_name() {
|
1063 |
$cache_version = WC_Cache_Helper::get_transient_version( 'product' );
|
1064 |
-
$cache_name =
|
1065 |
|
1066 |
// WPML support.
|
1067 |
$current_lang = apply_filters( 'wpml_current_language', null );
|
@@ -1080,7 +1101,7 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
1080 |
*/
|
1081 |
public function get_object_in_terms_transient_name() {
|
1082 |
$cache_version = WC_Cache_Helper::get_transient_version( 'product' );
|
1083 |
-
$cache_name =
|
1084 |
|
1085 |
return apply_filters( 'yith_wcan_object_in_terms_name', $cache_name );
|
1086 |
}
|
@@ -1092,7 +1113,7 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
1092 |
*/
|
1093 |
public function get_in_stock_products_transient_name() {
|
1094 |
$cache_version = WC_Cache_Helper::get_transient_version( 'product' );
|
1095 |
-
$cache_name =
|
1096 |
|
1097 |
// WPML support.
|
1098 |
$current_lang = apply_filters( 'wpml_current_language', null );
|
@@ -1117,6 +1138,44 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
1117 |
delete_transient( 'yith_wcan_exclude_from_catalog_product_ids' );
|
1118 |
}
|
1119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1120 |
/* === UTILS === */
|
1121 |
|
1122 |
/**
|
@@ -1157,6 +1216,15 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
1157 |
return wc_get_product_ids_on_sale();
|
1158 |
}
|
1159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1160 |
/**
|
1161 |
* Merge sets of query vars together; when applicable, uses merge mode to merge parameters together
|
1162 |
*
|
@@ -1195,6 +1263,9 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
1195 |
|
1196 |
$query_vars[ $key ] = implode( ',', array_unique( array_merge( $existing, $new ) ) );
|
1197 |
}
|
|
|
|
|
|
|
1198 |
} else {
|
1199 |
$query_vars[ $key ] = $value;
|
1200 |
}
|
@@ -1248,6 +1319,13 @@ if ( ! class_exists( 'YITH_WCAN_Query' ) ) {
|
|
1248 |
unset( $query_vars[ $key ] );
|
1249 |
unset( $query_vars[ "query_type_{$attribute}" ] );
|
1250 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1251 |
} else {
|
1252 |
unset( $query_vars[ $key ] );
|
1253 |
}
|
20 |
* @since 4.0.0
|
21 |
*/
|
22 |
class YITH_WCAN_Query {
|
23 |
+
/**
|
24 |
+
* Base name for queried-products transient
|
25 |
+
*
|
26 |
+
* @const string
|
27 |
+
*/
|
28 |
+
const QUERIED_PRODUCTS_TRANSIENT = 'yith_wcan_queried_products_';
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Base name for object-in-terms transient
|
32 |
+
*
|
33 |
+
* @const string
|
34 |
+
*/
|
35 |
+
const OBJECT_IN_TERMS_TRANSIENT = 'yith_wcan_object_in_terms_';
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Base name for products-in-stock transient
|
39 |
+
*
|
40 |
+
* @const string
|
41 |
+
*/
|
42 |
+
const PRODUCTS_IN_STOCK_TRANSIENT = 'yith_wcan_products_instock_';
|
43 |
+
|
44 |
/**
|
45 |
* Query parameter added to any filtered page url
|
46 |
*
|
496 |
} elseif ( ! $query->is_main_query() && $query->get( 'wc_query' ) ) {
|
497 |
// skip if we're already executing a special wc_query.
|
498 |
$result = false;
|
499 |
+
} elseif ( $query->get( 'yith_wcan_suppress_filters' ) ) {
|
500 |
// skip if we're prefetching products.
|
501 |
$result = false;
|
502 |
}
|
782 |
* @return array|bool Query's post__in, or false when no limitation shall be applied.
|
783 |
*/
|
784 |
public function get_post_in( $post_in = array() ) {
|
785 |
+
return apply_filters( 'yith_wcan_query_post_in', $post_in );
|
786 |
}
|
787 |
|
788 |
/**
|
1082 |
*/
|
1083 |
public function get_queried_products_transient_name() {
|
1084 |
$cache_version = WC_Cache_Helper::get_transient_version( 'product' );
|
1085 |
+
$cache_name = self::QUERIED_PRODUCTS_TRANSIENT . $cache_version;
|
1086 |
|
1087 |
// WPML support.
|
1088 |
$current_lang = apply_filters( 'wpml_current_language', null );
|
1101 |
*/
|
1102 |
public function get_object_in_terms_transient_name() {
|
1103 |
$cache_version = WC_Cache_Helper::get_transient_version( 'product' );
|
1104 |
+
$cache_name = self::OBJECT_IN_TERMS_TRANSIENT . $cache_version;
|
1105 |
|
1106 |
return apply_filters( 'yith_wcan_object_in_terms_name', $cache_name );
|
1107 |
}
|
1113 |
*/
|
1114 |
public function get_in_stock_products_transient_name() {
|
1115 |
$cache_version = WC_Cache_Helper::get_transient_version( 'product' );
|
1116 |
+
$cache_name = self::PRODUCTS_IN_STOCK_TRANSIENT . $cache_version;
|
1117 |
|
1118 |
// WPML support.
|
1119 |
$current_lang = apply_filters( 'wpml_current_language', null );
|
1138 |
delete_transient( 'yith_wcan_exclude_from_catalog_product_ids' );
|
1139 |
}
|
1140 |
|
1141 |
+
/**
|
1142 |
+
* Delete transient used to cache queried products
|
1143 |
+
*
|
1144 |
+
* @return void
|
1145 |
+
*/
|
1146 |
+
public function delete_expired_transients() {
|
1147 |
+
global $wpdb;
|
1148 |
+
|
1149 |
+
$cache_version = WC_Cache_Helper::get_transient_version( 'product' );
|
1150 |
+
$to_delete = array(
|
1151 |
+
self::QUERIED_PRODUCTS_TRANSIENT,
|
1152 |
+
self::OBJECT_IN_TERMS_TRANSIENT,
|
1153 |
+
self::PRODUCTS_IN_STOCK_TRANSIENT,
|
1154 |
+
);
|
1155 |
+
|
1156 |
+
$query = "DELETE FROM {$wpdb->options} WHERE 1=1";
|
1157 |
+
$args = array();
|
1158 |
+
|
1159 |
+
$query .= ' AND ( ';
|
1160 |
+
$first = true;
|
1161 |
+
foreach ( $to_delete as $transient_name ) {
|
1162 |
+
if ( ! $first ) {
|
1163 |
+
$query .= ' OR ';
|
1164 |
+
}
|
1165 |
+
|
1166 |
+
$args[] = "%{$transient_name}%";
|
1167 |
+
|
1168 |
+
$query .= 'option_name LIKE %s';
|
1169 |
+
$first = false;
|
1170 |
+
}
|
1171 |
+
$query .= ')';
|
1172 |
+
|
1173 |
+
$query .= ' AND option_name NOT LIKE %s';
|
1174 |
+
$args[] = "%{$cache_version}%";
|
1175 |
+
|
1176 |
+
$wpdb->query( $wpdb->prepare( $query, $args ) ); // phpcs:ignore WordPress.DB
|
1177 |
+
}
|
1178 |
+
|
1179 |
/* === UTILS === */
|
1180 |
|
1181 |
/**
|
1216 |
return wc_get_product_ids_on_sale();
|
1217 |
}
|
1218 |
|
1219 |
+
/**
|
1220 |
+
* Retrieves list of ids of featured products
|
1221 |
+
*
|
1222 |
+
* @return array Array of product ids
|
1223 |
+
*/
|
1224 |
+
public function get_product_ids_featured() {
|
1225 |
+
return wc_get_featured_product_ids();
|
1226 |
+
}
|
1227 |
+
|
1228 |
/**
|
1229 |
* Merge sets of query vars together; when applicable, uses merge mode to merge parameters together
|
1230 |
*
|
1263 |
|
1264 |
$query_vars[ $key ] = implode( ',', array_unique( array_merge( $existing, $new ) ) );
|
1265 |
}
|
1266 |
+
} elseif ( is_array( $value ) ) {
|
1267 |
+
$glue = 'and' === $merge_mode ? '+' : ',';
|
1268 |
+
$query_vars[ $key ] = implode( $glue, array_merge( isset( $query_vars[ $key ] ) ? (array) $query_vars[ $key ] : array(), $value ) );
|
1269 |
} else {
|
1270 |
$query_vars[ $key ] = $value;
|
1271 |
}
|
1319 |
unset( $query_vars[ $key ] );
|
1320 |
unset( $query_vars[ "query_type_{$attribute}" ] );
|
1321 |
}
|
1322 |
+
} elseif ( is_array( $value ) ) {
|
1323 |
+
$glue = 'and' === $merge_mode ? '+' : ',';
|
1324 |
+
$query_vars[ $key ] = implode( $glue, array_diff( isset( $query_vars[ $key ] ) ? (array) $query_vars[ $key ] : array(), $value ) );
|
1325 |
+
|
1326 |
+
if ( empty( $query_vars[ $key ] ) ) {
|
1327 |
+
unset( $query_vars[ $key ] );
|
1328 |
+
}
|
1329 |
} else {
|
1330 |
unset( $query_vars[ $key ] );
|
1331 |
}
|
@@ -163,7 +163,7 @@ if ( ! class_exists( 'YITH_WCAN' ) ) {
|
|
163 |
// basic cli support.
|
164 |
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
165 |
file_exists( YITH_WCAN_DIR . 'includes/wp-cli/class.yith-wcan-cli-commands.php' ) && require_once YITH_WCAN_DIR . 'includes/wp-cli/class.yith-wcan-cli-commands.php';
|
166 |
-
file_exists( YITH_WCAN_DIR . '
|
167 |
}
|
168 |
}
|
169 |
|
@@ -224,10 +224,10 @@ if ( ! class_exists( 'YITH_WCAN' ) ) {
|
|
224 |
*/
|
225 |
public function load_compatibilities() {
|
226 |
// include theme compatibility, if any.
|
227 |
-
$this
|
228 |
|
229 |
// include compatibilities for installed plugins.
|
230 |
-
$this
|
231 |
}
|
232 |
|
233 |
/**
|
@@ -239,7 +239,7 @@ if ( ! class_exists( 'YITH_WCAN' ) ) {
|
|
239 |
*/
|
240 |
public function load_theme_compatibility() {
|
241 |
$theme = strtolower( wp_get_theme()->Name );
|
242 |
-
$theme = str_replace( '-child', '', $theme );
|
243 |
|
244 |
$compatibility_path = YITH_WCAN_INC . "compatibility/themes/{$theme}/{$theme}.php";
|
245 |
|
@@ -362,6 +362,9 @@ if ( ! class_exists( 'YITH_WCAN' ) ) {
|
|
362 |
'wpml' => array(
|
363 |
'check' => array( 'class_exists', array( 'Sitepress' ) ),
|
364 |
),
|
|
|
|
|
|
|
365 |
);
|
366 |
}
|
367 |
|
163 |
// basic cli support.
|
164 |
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
165 |
file_exists( YITH_WCAN_DIR . 'includes/wp-cli/class.yith-wcan-cli-commands.php' ) && require_once YITH_WCAN_DIR . 'includes/wp-cli/class.yith-wcan-cli-commands.php';
|
166 |
+
file_exists( YITH_WCAN_DIR . 'tools/wp-cli/class.yith-wcan-cli-test-commands.php' ) && require_once YITH_WCAN_DIR . 'tools/wp-cli/class.yith-wcan-cli-test-commands.php';
|
167 |
}
|
168 |
}
|
169 |
|
224 |
*/
|
225 |
public function load_compatibilities() {
|
226 |
// include theme compatibility, if any.
|
227 |
+
add_action( 'after_setup_theme', array( $this, 'load_theme_compatibility' ) );
|
228 |
|
229 |
// include compatibilities for installed plugins.
|
230 |
+
add_action( 'init', array( $this, 'load_plugin_compatibilities' ) );
|
231 |
}
|
232 |
|
233 |
/**
|
239 |
*/
|
240 |
public function load_theme_compatibility() {
|
241 |
$theme = strtolower( wp_get_theme()->Name );
|
242 |
+
$theme = str_replace( array( ' ', '-child' ), array( '-', '' ), $theme );
|
243 |
|
244 |
$compatibility_path = YITH_WCAN_INC . "compatibility/themes/{$theme}/{$theme}.php";
|
245 |
|
362 |
'wpml' => array(
|
363 |
'check' => array( 'class_exists', array( 'Sitepress' ) ),
|
364 |
),
|
365 |
+
'yith-woocommerce-booking' => array(
|
366 |
+
'check' => array( 'class_exists', array( 'YITH_WCBK' ) ),
|
367 |
+
),
|
368 |
);
|
369 |
}
|
370 |
|
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* YITH WooCommerce Booking plugin support
|
4 |
+
*
|
5 |
+
* @author YITH
|
6 |
+
* @package YITH WooCommerce Ajax Product Filter
|
7 |
+
* @version 4.1.0
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'YITH_WCAN' ) ) {
|
11 |
+
exit;
|
12 |
+
} // Exit if accessed directly
|
13 |
+
|
14 |
+
if ( ! class_exists( 'YITH_WCAN_Booking_Compatibility' ) ) {
|
15 |
+
/**
|
16 |
+
* Class that implements methods required to integrate YITH WCAN filters in Booking search page
|
17 |
+
*
|
18 |
+
* @since 4.1.0
|
19 |
+
*/
|
20 |
+
class YITH_WCAN_Booking_Compatibility {
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Main instance
|
24 |
+
*
|
25 |
+
* @var YITH_WCAN_Booking_Compatibility
|
26 |
+
* @since 4.0.0
|
27 |
+
*/
|
28 |
+
protected static $_instance = null;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Init integration, hooking all required methods
|
32 |
+
*
|
33 |
+
* @return void
|
34 |
+
*/
|
35 |
+
public function init() {
|
36 |
+
add_filter( 'yith_wcan_query_post_in', array( $this, 'filter_post_in' ) );
|
37 |
+
add_filter( 'yith_wcan_query_supported_parameters', array( $this, 'filter_supported_query_vars' ) );
|
38 |
+
add_filter( 'yith_wcan_should_process_query', array( $this, 'skip_filtering' ), 10, 2 );
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Filters post in for YITH WCAN queries, including post_in parameter as computed by Booking plugin
|
43 |
+
*
|
44 |
+
* @param array $post_in Array of post ids for the query to include.
|
45 |
+
* @return array Filtered post__in param.
|
46 |
+
*/
|
47 |
+
public function filter_post_in( $post_in ) {
|
48 |
+
if ( ! isset( $_REQUEST['yith-wcbk-booking-search'] ) || 'search-bookings' !== $_REQUEST['yith-wcbk-booking-search'] ) {
|
49 |
+
return $post_in;
|
50 |
+
}
|
51 |
+
|
52 |
+
$search_helper = YITH_WCBK()->search_form_helper;
|
53 |
+
|
54 |
+
if ( ! $search_helper ) {
|
55 |
+
return $post_in;
|
56 |
+
}
|
57 |
+
|
58 |
+
$product_ids = $search_helper->search_booking_products( $_REQUEST );
|
59 |
+
|
60 |
+
if ( empty( $post_in ) && ! empty( $product_ids ) ) {
|
61 |
+
return $product_ids;
|
62 |
+
}
|
63 |
+
|
64 |
+
if ( ! empty( $post_in ) && empty( $product_ids ) ) {
|
65 |
+
return $post_in;
|
66 |
+
}
|
67 |
+
|
68 |
+
$result_set = array_intersect( $post_in, $product_ids );
|
69 |
+
|
70 |
+
if ( ! $result_set ) {
|
71 |
+
return array( 0 );
|
72 |
+
}
|
73 |
+
|
74 |
+
return $result_set;
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Filters WCAN supported query vars, to add booking ones.
|
79 |
+
*
|
80 |
+
* @param array $supported_params Array of supported query vars.
|
81 |
+
* @return array Filtered supported vars.
|
82 |
+
*/
|
83 |
+
public function filter_supported_query_vars( $supported_params ) {
|
84 |
+
if ( ! function_exists( 'YITH_WCBK' ) || ! isset( $_REQUEST['yith-wcbk-booking-search'] ) || 'search-bookings' !== $_REQUEST['yith-wcbk-booking-search'] ) {
|
85 |
+
return $supported_params;
|
86 |
+
}
|
87 |
+
|
88 |
+
$supported_params = array_merge(
|
89 |
+
$supported_params,
|
90 |
+
array(
|
91 |
+
'from',
|
92 |
+
'to',
|
93 |
+
'persons',
|
94 |
+
'person_types',
|
95 |
+
'services',
|
96 |
+
'categories',
|
97 |
+
'tags',
|
98 |
+
'location',
|
99 |
+
'location_range',
|
100 |
+
)
|
101 |
+
);
|
102 |
+
|
103 |
+
return $supported_params;
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Skip query filtering when processing Booking methods (booking retrieves posts to use in post__in clause when filtering main query)
|
108 |
+
*
|
109 |
+
* @param bool $should_process_query Whether query should be processed.
|
110 |
+
* @param WP_Query $query Current query object.
|
111 |
+
*
|
112 |
+
* @return bool Filtered param.
|
113 |
+
*/
|
114 |
+
public function skip_filtering( $should_process_query, $query ) {
|
115 |
+
if ( $query->get( 'yith_wcbk_search' ) ) {
|
116 |
+
return false;
|
117 |
+
}
|
118 |
+
|
119 |
+
return $should_process_query;
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Compatibility class instance
|
124 |
+
*
|
125 |
+
* @return YITH_WCAN_Booking_Compatibility Class unique instance
|
126 |
+
*/
|
127 |
+
public static function instance() {
|
128 |
+
if ( is_null( self::$_instance ) ) {
|
129 |
+
self::$_instance = new self();
|
130 |
+
}
|
131 |
+
|
132 |
+
return self::$_instance;
|
133 |
+
}
|
134 |
+
}
|
135 |
+
}
|
136 |
+
|
137 |
+
// init compatibility.
|
138 |
+
YITH_WCAN_Booking_Compatibility::instance()->init();
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Hello Elementor theme compatibility
|
4 |
+
*
|
5 |
+
* @author YITH
|
6 |
+
* @package YITH WooCommerce Ajax Product FIlter
|
7 |
+
* @version 1.3.2
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'YITH_WCAN' ) ) {
|
11 |
+
exit;
|
12 |
+
} // Exit if accessed directly
|
13 |
+
|
14 |
+
if ( ! function_exists( 'yith_wcan_hello_elementor_content_selector' ) ) {
|
15 |
+
/**
|
16 |
+
* Filters content selector, returning correct value for Hello Elementor theme
|
17 |
+
*
|
18 |
+
* @param string $selector Current selector.
|
19 |
+
* @return string Content selector.
|
20 |
+
*/
|
21 |
+
function yith_wcan_hello_elementor_content_selector( $selector ) {
|
22 |
+
$selector = 'main';
|
23 |
+
|
24 |
+
return $selector;
|
25 |
+
}
|
26 |
+
|
27 |
+
add_filter( 'yith_wcan_content_selector', 'yith_wcan_hello_elementor_content_selector' );
|
28 |
+
}
|
@@ -12,3 +12,35 @@ if ( ! defined( 'YITH_WCAN' ) ) {
|
|
12 |
} // Exit if accessed directly
|
13 |
|
14 |
add_filter( 'yith_wcan_use_wp_the_query_object', '__return_true' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
} // Exit if accessed directly
|
13 |
|
14 |
add_filter( 'yith_wcan_use_wp_the_query_object', '__return_true' );
|
15 |
+
|
16 |
+
if ( ! function_exists( 'yith_wcan_porto_content_selector' ) ) {
|
17 |
+
/**
|
18 |
+
* Filters content selector, returning correct value for Porto theme
|
19 |
+
*
|
20 |
+
* @param string $selector Current selector.
|
21 |
+
* @return string Content selector.
|
22 |
+
*/
|
23 |
+
function yith_wcan_porto_content_selector( $selector ) {
|
24 |
+
$selector = '#main';
|
25 |
+
|
26 |
+
return $selector;
|
27 |
+
}
|
28 |
+
|
29 |
+
add_filter( 'yith_wcan_content_selector', 'yith_wcan_porto_content_selector' );
|
30 |
+
}
|
31 |
+
|
32 |
+
if ( ! function_exists( 'yith_wcan_porto_lazy_load_support' ) ) {
|
33 |
+
/**
|
34 |
+
* Force system to reinit filters after Porto's skeleton lazy load
|
35 |
+
*
|
36 |
+
* @return void
|
37 |
+
*/
|
38 |
+
function yith_wcan_porto_lazy_load_support() {
|
39 |
+
$js = 'jQuery( function($){
|
40 |
+
$(document).on("skeleton-loaded", function(){$(document).trigger("yith_wcan_init_shortcodes")});
|
41 |
+
} );';
|
42 |
+
wp_add_inline_script( 'yith-wcan-shortcodes', $js );
|
43 |
+
}
|
44 |
+
|
45 |
+
add_filter( 'wp_enqueue_scripts', 'yith_wcan_porto_lazy_load_support', 99 );
|
46 |
+
}
|
@@ -27,6 +27,7 @@ if ( ! class_exists( 'YITH_WCAN_Preset_Data_Store' ) ) {
|
|
27 |
'_selector' => 'selector',
|
28 |
'_enabled' => 'enabled',
|
29 |
'_filters' => 'filters',
|
|
|
30 |
);
|
31 |
|
32 |
/**
|
27 |
'_selector' => 'selector',
|
28 |
'_enabled' => 'enabled',
|
29 |
'_filters' => 'filters',
|
30 |
+
'_layout' => 'layout',
|
31 |
);
|
32 |
|
33 |
/**
|
@@ -34,7 +34,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Tax' ) ) {
|
|
34 |
* @return bool Whether current filter is active.
|
35 |
*/
|
36 |
public function is_active() {
|
37 |
-
return apply_filters( 'yith_wcan_is_filter_active', YITH_WCAN_Query()->is_filtered_by($this->get_taxonomy() ), $this );
|
38 |
}
|
39 |
|
40 |
/**
|
@@ -95,9 +95,11 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Tax' ) ) {
|
|
95 |
public function render_item( $term, $term_options = array() ) {
|
96 |
$design = $this->get_filter_design();
|
97 |
$default_callback = "render_item_{$design}";
|
|
|
|
|
98 |
|
99 |
if ( ! $term instanceof WP_Term ) {
|
100 |
-
$term = get_term( $term, $
|
101 |
}
|
102 |
|
103 |
if ( ! $term || is_wp_error( $term ) ) {
|
@@ -132,11 +134,34 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Tax' ) ) {
|
|
132 |
$term_options['additional_classes'][] = 'disabled';
|
133 |
}
|
134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
// allow third party dev change attributes for the item.
|
136 |
$term_options = apply_filters( 'yith_wcan_tax_filter_item_args', $term_options, $term->term_id, $this );
|
137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
// implode additional classes.
|
139 |
-
$term_options['additional_classes'] = implode( ' ', $term_options['additional_classes'] );
|
140 |
|
141 |
if ( method_exists( $this, $default_callback ) ) {
|
142 |
$item = $this->{$default_callback}( $term, $term_options );
|
@@ -199,9 +224,11 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Tax' ) ) {
|
|
199 |
* @return string Item HTML template.
|
200 |
*/
|
201 |
public function render_item_label( $term, $term_options ) {
|
202 |
-
$columns
|
|
|
203 |
|
204 |
$term_options['additional_classes'] .= $term_options['image'] ? " with-image filter-has-{$columns}-column" : '';
|
|
|
205 |
|
206 |
return $this->render_generic_item( 'label', $term, $term_options );
|
207 |
}
|
@@ -214,9 +241,11 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Tax' ) ) {
|
|
214 |
* @return string Item HTML template.
|
215 |
*/
|
216 |
public function render_item_color( $term, $term_options ) {
|
217 |
-
$columns
|
|
|
218 |
|
219 |
$term_options['additional_classes'] .= " filter-has-{$columns}-column";
|
|
|
220 |
|
221 |
return $this->render_generic_item( 'color', $term, $term_options );
|
222 |
}
|
@@ -332,15 +361,19 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Tax' ) ) {
|
|
332 |
$sorted_terms = get_terms(
|
333 |
array_merge(
|
334 |
array(
|
335 |
-
'taxonomy'
|
336 |
-
'
|
337 |
-
'
|
338 |
-
'
|
339 |
-
'fields' => 'ids',
|
340 |
'hide_empty' => $hide_empty,
|
|
|
|
|
|
|
|
|
341 |
),
|
342 |
'term_order' === $this->get_order_by() ? array(
|
343 |
-
'orderby' => '
|
|
|
344 |
) : array(
|
345 |
'orderby' => $this->get_order_by(),
|
346 |
),
|
@@ -350,11 +383,11 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Tax' ) ) {
|
|
350 |
|
351 |
if ( ! empty( $sorted_terms ) ) {
|
352 |
foreach ( $sorted_terms as $term_id ) {
|
353 |
-
if ( ! isset( $terms[ $term_id ] ) ) {
|
354 |
continue;
|
355 |
}
|
356 |
|
357 |
-
$term = $terms[ $term_id ];
|
358 |
|
359 |
// set hierarchical data.
|
360 |
$children_result = $this->_get_term_children( $term_id );
|
34 |
* @return bool Whether current filter is active.
|
35 |
*/
|
36 |
public function is_active() {
|
37 |
+
return apply_filters( 'yith_wcan_is_filter_active', YITH_WCAN_Query()->is_filtered_by( $this->get_taxonomy() ), $this );
|
38 |
}
|
39 |
|
40 |
/**
|
95 |
public function render_item( $term, $term_options = array() ) {
|
96 |
$design = $this->get_filter_design();
|
97 |
$default_callback = "render_item_{$design}";
|
98 |
+
$customize_terms = $this->customize_terms();
|
99 |
+
$taxonomy = $this->get_taxonomy();
|
100 |
|
101 |
if ( ! $term instanceof WP_Term ) {
|
102 |
+
$term = get_term( $term, $taxonomy );
|
103 |
}
|
104 |
|
105 |
if ( ! $term || is_wp_error( $term ) ) {
|
134 |
$term_options['additional_classes'][] = 'disabled';
|
135 |
}
|
136 |
|
137 |
+
// if we're using terms' default option, override any custom setting user may have entered.
|
138 |
+
if ( ! $customize_terms ) {
|
139 |
+
$term_options['label'] = $term->name;
|
140 |
+
$term_options['tooltip'] = '';
|
141 |
+
$term_options['color_1'] = '';
|
142 |
+
$term_options['color_2'] = '';
|
143 |
+
$term_options['image'] = get_term_meta( $term->term_id, apply_filters( 'yith_wcan_tax_filter_default_image_meta', 'thumbnail_id', $taxonomy ), true );
|
144 |
+
$term_options['mode'] = ! ! $term_options['image'] ? 'image' : 'color';
|
145 |
+
}
|
146 |
+
|
147 |
// allow third party dev change attributes for the item.
|
148 |
$term_options = apply_filters( 'yith_wcan_tax_filter_item_args', $term_options, $term->term_id, $this );
|
149 |
|
150 |
+
// specific filtering for attributes.
|
151 |
+
if ( 0 === strpos( $taxonomy, 'pa_' ) && ! $customize_terms ) {
|
152 |
+
$term_options = apply_filters( 'yith_wcan_attribute_filter_item_args', $term_options, $term->term_id, $this );
|
153 |
+
}
|
154 |
+
|
155 |
+
if ( 'color' === $term_options['mode'] && empty( $term_options['color_1'] ) ) {
|
156 |
+
$term_options['additional_classes'][] = 'no-color';
|
157 |
+
}
|
158 |
+
|
159 |
+
if ( 'image' === $term_options['mode'] && empty( $term_options['image'] ) ) {
|
160 |
+
$term_options['additional_classes'][] = 'no-image';
|
161 |
+
}
|
162 |
+
|
163 |
// implode additional classes.
|
164 |
+
$term_options['additional_classes'] = implode( ' ', apply_filters( 'yith_wcan_filter_tax_additional_item_classes', $term_options['additional_classes'] ) );
|
165 |
|
166 |
if ( method_exists( $this, $default_callback ) ) {
|
167 |
$item = $this->{$default_callback}( $term, $term_options );
|
224 |
* @return string Item HTML template.
|
225 |
*/
|
226 |
public function render_item_label( $term, $term_options ) {
|
227 |
+
$columns = $this->get_column_number();
|
228 |
+
$label_position = $this->get_label_position();
|
229 |
|
230 |
$term_options['additional_classes'] .= $term_options['image'] ? " with-image filter-has-{$columns}-column" : '';
|
231 |
+
$term_options['additional_classes'] .= " label-{$label_position}";
|
232 |
|
233 |
return $this->render_generic_item( 'label', $term, $term_options );
|
234 |
}
|
241 |
* @return string Item HTML template.
|
242 |
*/
|
243 |
public function render_item_color( $term, $term_options ) {
|
244 |
+
$columns = $this->get_column_number();
|
245 |
+
$label_position = $this->get_label_position();
|
246 |
|
247 |
$term_options['additional_classes'] .= " filter-has-{$columns}-column";
|
248 |
+
$term_options['additional_classes'] .= " label-{$label_position}";
|
249 |
|
250 |
return $this->render_generic_item( 'color', $term, $term_options );
|
251 |
}
|
361 |
$sorted_terms = get_terms(
|
362 |
array_merge(
|
363 |
array(
|
364 |
+
'taxonomy' => $this->get_taxonomy(),
|
365 |
+
'order' => $this->get_order(),
|
366 |
+
'number' => apply_filters( 'yith_wcan_filter_tax_term_limit', 0 ),
|
367 |
+
'fields' => 'ids',
|
|
|
368 |
'hide_empty' => $hide_empty,
|
369 |
+
'orderby' => $this->get_order_by(),
|
370 |
+
),
|
371 |
+
$this->use_all_terms() ? array() : array(
|
372 |
+
'include' => array_keys( $terms ),
|
373 |
),
|
374 |
'term_order' === $this->get_order_by() ? array(
|
375 |
+
'orderby' => 'meta_value_num',
|
376 |
+
'meta_key' => 'order',
|
377 |
) : array(
|
378 |
'orderby' => $this->get_order_by(),
|
379 |
),
|
383 |
|
384 |
if ( ! empty( $sorted_terms ) ) {
|
385 |
foreach ( $sorted_terms as $term_id ) {
|
386 |
+
if ( ! isset( $terms[ $term_id ] ) && ! $this->use_all_terms() ) {
|
387 |
continue;
|
388 |
}
|
389 |
|
390 |
+
$term = isset( $terms[ $term_id ] ) ? $terms[ $term_id ] : $this->get_default_term_options();
|
391 |
|
392 |
// set hierarchical data.
|
393 |
$children_result = $this->_get_term_children( $term_id );
|
@@ -998,7 +998,7 @@ if ( ! function_exists( 'yith_wcan_get_rating_html' ) ) {
|
|
998 |
$template .= '<div class="star-rating" role="img" aria-label="' . esc_attr( $label ) . '">';
|
999 |
$template .= wc_get_star_rating_html( $rating );
|
1000 |
$template .= '</div>';
|
1001 |
-
$template .= sprintf( '%d %s', $rating, _nx( 'star', 'stars', $rating, '[FRONTEND] Star rating template', 'yith-woocommerce-ajax-navigation' ) );
|
1002 |
|
1003 |
return $template;
|
1004 |
}
|
998 |
$template .= '<div class="star-rating" role="img" aria-label="' . esc_attr( $label ) . '">';
|
999 |
$template .= wc_get_star_rating_html( $rating );
|
1000 |
$template .= '</div>';
|
1001 |
+
$template .= esc_html( sprintf( '%d %s', $rating, _nx( 'star', 'stars', $rating, '[FRONTEND] Star rating template', 'yith-woocommerce-ajax-navigation' ) ) );
|
1002 |
|
1003 |
return $template;
|
1004 |
}
|
@@ -129,7 +129,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Presets_Table' ) ) {
|
|
129 |
*/
|
130 |
public function action_edit( $item ) {
|
131 |
echo sprintf(
|
132 |
-
'<a class="show-on-hover edit" href="%s" title="%s"><i class="
|
133 |
esc_url( $item->get_admin_edit_url() ),
|
134 |
esc_html_x( 'Edit this preset', '[Admin] Preset edit action label', 'yith-woocommerce-ajax-navigation' )
|
135 |
);
|
@@ -142,7 +142,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Presets_Table' ) ) {
|
|
142 |
*/
|
143 |
public function action_clone( $item ) {
|
144 |
echo sprintf(
|
145 |
-
'<a class="show-on-hover clone" href="%s" title="%s"><i class="
|
146 |
esc_url( $item->get_admin_clone_url() ),
|
147 |
esc_html_x( 'Clone this preset', '[Admin] Preset clone action label', 'yith-woocommerce-ajax-navigation' )
|
148 |
);
|
@@ -155,7 +155,7 @@ if ( ! class_exists( 'YITH_WCAN_Filter_Presets_Table' ) ) {
|
|
155 |
*/
|
156 |
public function action_delete( $item ) {
|
157 |
echo sprintf(
|
158 |
-
'<a class="show-on-hover delete" href="%s" title="%s" onclick="return confirm(\'%s\');"><i class="
|
159 |
esc_url( $item->get_admin_delete_url() ),
|
160 |
esc_attr_x( 'Delete this preset', '[Admin] Preset delete action label', 'yith-woocommerce-ajax-navigation' ),
|
161 |
esc_attr_x( 'Are you sure you want to delete this preset?', '[Admin] Preset delete confirm label', 'yith-woocommerce-ajax-navigation' )
|
129 |
*/
|
130 |
public function action_edit( $item ) {
|
131 |
echo sprintf(
|
132 |
+
'<a class="show-on-hover edit" href="%s" title="%s"><i class="yith-icon yith-icon-edit"></i></a>',
|
133 |
esc_url( $item->get_admin_edit_url() ),
|
134 |
esc_html_x( 'Edit this preset', '[Admin] Preset edit action label', 'yith-woocommerce-ajax-navigation' )
|
135 |
);
|
142 |
*/
|
143 |
public function action_clone( $item ) {
|
144 |
echo sprintf(
|
145 |
+
'<a class="show-on-hover clone" href="%s" title="%s"><i class="yith-icon yith-icon-clone"></i></a>',
|
146 |
esc_url( $item->get_admin_clone_url() ),
|
147 |
esc_html_x( 'Clone this preset', '[Admin] Preset clone action label', 'yith-woocommerce-ajax-navigation' )
|
148 |
);
|
155 |
*/
|
156 |
public function action_delete( $item ) {
|
157 |
echo sprintf(
|
158 |
+
'<a class="show-on-hover delete" href="%s" title="%s" onclick="return confirm(\'%s\');"><i class="yith-icon yith-icon-trash"></i></a>',
|
159 |
esc_url( $item->get_admin_delete_url() ),
|
160 |
esc_attr_x( 'Delete this preset', '[Admin] Preset delete action label', 'yith-woocommerce-ajax-navigation' ),
|
161 |
esc_attr_x( 'Are you sure you want to delete this preset?', '[Admin] Preset delete confirm label', 'yith-woocommerce-ajax-navigation' )
|
@@ -3,14 +3,14 @@
|
|
3 |
* Plugin Name: YITH WooCommerce Ajax Product Filter
|
4 |
* Plugin URI: https://wordpress.org/plugins/yith-woocommerce-ajax-navigation/
|
5 |
* Description: <code><strong>YITH WooCommerce AJAX Product Filter</strong></code> allows your users to find the product they are looking for as quickly as possible. Thanks to the plugin you will be able to set up one or more search filters for your WooCommerce products and improve the user experience of your shop. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>
|
6 |
-
* Version: 4.0
|
7 |
* Author: YITH
|
8 |
* Author URI: https://yithemes.com/
|
9 |
* Text Domain: yith-woocommerce-ajax-navigation
|
10 |
* Domain Path: /languages/
|
11 |
*
|
12 |
* WC requires at least: 4.3
|
13 |
-
* WC tested up to: 5.
|
14 |
*
|
15 |
* @author YITH
|
16 |
* @package YITH WooCommerce Ajax Product Filter
|
@@ -38,16 +38,19 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
38 |
exit;
|
39 |
} // Exit if accessed directly
|
40 |
|
|
|
41 |
|
42 |
! defined( 'YITH_WCAN' ) && define( 'YITH_WCAN', true );
|
43 |
! defined( 'YITH_WCAN_URL' ) && define( 'YITH_WCAN_URL', plugin_dir_url( __FILE__ ) );
|
44 |
! defined( 'YITH_WCAN_DIR' ) && define( 'YITH_WCAN_DIR', plugin_dir_path( __FILE__ ) );
|
45 |
! defined( 'YITH_WCAN_INC' ) && define( 'YITH_WCAN_INC', YITH_WCAN_DIR . 'includes/' );
|
46 |
-
! defined( 'YITH_WCAN_VERSION' ) && define( 'YITH_WCAN_VERSION', '4.0
|
47 |
! defined( 'YITH_WCAN_FREE_INIT' ) && define( 'YITH_WCAN_FREE_INIT', plugin_basename( __FILE__ ) );
|
48 |
! defined( 'YITH_WCAN_FILE' ) && define( 'YITH_WCAN_FILE', __FILE__ );
|
49 |
! defined( 'YITH_WCAN_SLUG' ) && define( 'YITH_WCAN_SLUG', 'yith-woocommerce-ajax-navigation' );
|
50 |
|
|
|
|
|
51 |
if ( ! function_exists( 'yith_wcan_register_activation' ) ) {
|
52 |
/**
|
53 |
* Register plugins among recently activated ones
|
3 |
* Plugin Name: YITH WooCommerce Ajax Product Filter
|
4 |
* Plugin URI: https://wordpress.org/plugins/yith-woocommerce-ajax-navigation/
|
5 |
* Description: <code><strong>YITH WooCommerce AJAX Product Filter</strong></code> allows your users to find the product they are looking for as quickly as possible. Thanks to the plugin you will be able to set up one or more search filters for your WooCommerce products and improve the user experience of your shop. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>
|
6 |
+
* Version: 4.1.0
|
7 |
* Author: YITH
|
8 |
* Author URI: https://yithemes.com/
|
9 |
* Text Domain: yith-woocommerce-ajax-navigation
|
10 |
* Domain Path: /languages/
|
11 |
*
|
12 |
* WC requires at least: 4.3
|
13 |
+
* WC tested up to: 5.4
|
14 |
*
|
15 |
* @author YITH
|
16 |
* @package YITH WooCommerce Ajax Product Filter
|
38 |
exit;
|
39 |
} // Exit if accessed directly
|
40 |
|
41 |
+
// define required constants.
|
42 |
|
43 |
! defined( 'YITH_WCAN' ) && define( 'YITH_WCAN', true );
|
44 |
! defined( 'YITH_WCAN_URL' ) && define( 'YITH_WCAN_URL', plugin_dir_url( __FILE__ ) );
|
45 |
! defined( 'YITH_WCAN_DIR' ) && define( 'YITH_WCAN_DIR', plugin_dir_path( __FILE__ ) );
|
46 |
! defined( 'YITH_WCAN_INC' ) && define( 'YITH_WCAN_INC', YITH_WCAN_DIR . 'includes/' );
|
47 |
+
! defined( 'YITH_WCAN_VERSION' ) && define( 'YITH_WCAN_VERSION', '4.1.0' );
|
48 |
! defined( 'YITH_WCAN_FREE_INIT' ) && define( 'YITH_WCAN_FREE_INIT', plugin_basename( __FILE__ ) );
|
49 |
! defined( 'YITH_WCAN_FILE' ) && define( 'YITH_WCAN_FILE', __FILE__ );
|
50 |
! defined( 'YITH_WCAN_SLUG' ) && define( 'YITH_WCAN_SLUG', 'yith-woocommerce-ajax-navigation' );
|
51 |
|
52 |
+
// define required functions.
|
53 |
+
|
54 |
if ( ! function_exists( 'yith_wcan_register_activation' ) ) {
|
55 |
/**
|
56 |
* Register plugins among recently activated ones
|
Binary file
|
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2021-
|
9 |
"PO-Revision-Date: 2021-03-02 11:03+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -16,7 +16,7 @@ msgstr ""
|
|
16 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
"X-Generator: Poedit 2.4.2\n"
|
18 |
|
19 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
20 |
msgid "Draft Preset"
|
21 |
msgstr "Preset Entwurf"
|
22 |
|
@@ -107,13 +107,13 @@ msgstr "Alle Filter zurücksetzen"
|
|
107 |
msgid "Button Label"
|
108 |
msgstr "Button-Beschriftung"
|
109 |
|
110 |
-
#: init.php:
|
111 |
msgid ""
|
112 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
113 |
"while you are using the premium one."
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: init.php:
|
117 |
#, fuzzy
|
118 |
msgid ""
|
119 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
@@ -157,54 +157,58 @@ msgstr ""
|
|
157 |
"Bist du sicher, dass du fortfahren möchtest? Dieser Vorgang wird %s Elemente "
|
158 |
"hinzufügen"
|
159 |
|
160 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
161 |
msgctxt "[Admin] Message shown when filter has empty title"
|
162 |
msgid "< no title >"
|
163 |
msgstr "< Kein Titel >"
|
164 |
|
165 |
-
#: includes/class.yith-wcan-admin.php:
|
166 |
msgctxt "[Admin] Media library title, when selecting images"
|
167 |
msgid "Select media you want to use"
|
168 |
msgstr "Die zu verwendenden Medien auswählen"
|
169 |
|
170 |
-
#: includes/class.yith-wcan-admin.php:
|
171 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
172 |
msgid "Use this media"
|
173 |
msgstr "Dieses Medium verwenden"
|
174 |
|
175 |
-
#: includes/class.yith-wcan-admin.php:
|
176 |
msgctxt "[Admin] tab name"
|
177 |
msgid "Filter presets"
|
178 |
msgstr "Filter-Presets"
|
179 |
|
180 |
-
#: includes/class.yith-wcan-admin.php:
|
181 |
msgctxt "[Admin] tab name"
|
182 |
msgid "General settings"
|
183 |
msgstr "Allgemeine Einstellungen"
|
184 |
|
185 |
-
#: includes/class.yith-wcan-admin.php:
|
186 |
#, fuzzy
|
187 |
msgctxt "[Admin] tab name"
|
188 |
msgid "SEO"
|
189 |
msgstr "SEO"
|
190 |
|
191 |
-
#: includes/class.yith-wcan-admin.php:
|
192 |
msgctxt "[Admin] tab name"
|
193 |
msgid "Premium Version"
|
194 |
msgstr "Premium-Version"
|
195 |
|
196 |
-
#: includes/class.yith-wcan-admin.php:
|
197 |
msgctxt "[Admin] tab name"
|
198 |
msgid "Legacy"
|
199 |
msgstr "Legacy"
|
200 |
|
201 |
-
#: includes/class.yith-wcan-admin.php:
|
202 |
-
#: includes/class.yith-wcan-admin.php:195
|
203 |
msgctxt "[Admin] Menu title"
|
204 |
msgid "Ajax Product Filter"
|
205 |
msgstr "AJAX Produkt-Filter "
|
206 |
|
207 |
-
#: includes/class.yith-wcan-admin.php:
|
208 |
msgctxt "[Admin] Plugin description"
|
209 |
msgid ""
|
210 |
"It allows your users to find the product they are looking for as quickly as "
|
@@ -213,37 +217,44 @@ msgstr ""
|
|
213 |
"Ermöglicht deinen Benutzern, das gesuchte Produkt so schnell wie möglich zu "
|
214 |
"finden."
|
215 |
|
216 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
218 |
msgid "item"
|
219 |
msgstr "Artikel"
|
220 |
|
221 |
-
#: includes/class.yith-wcan-admin.php:
|
222 |
msgctxt "[Admin] Preset table empty message second line"
|
223 |
msgid "But don't worry, here you can create your first one!"
|
224 |
msgstr "Aber keine Sorge, hier kannst du deine erste erstellen!"
|
225 |
|
226 |
-
#: includes/class.yith-wcan-admin.php:
|
227 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
228 |
msgid "Clear Product Filter transients"
|
229 |
msgstr "Produktfilter-Tansients löschen"
|
230 |
|
231 |
-
#: includes/class.yith-wcan-admin.php:
|
232 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
233 |
msgid "Run filter widgets upgrade"
|
234 |
msgstr "Upgrade der Filter-Widgets ausführen"
|
235 |
|
236 |
-
#: includes/class.yith-wcan-admin.php:
|
237 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
238 |
msgid "Clear"
|
239 |
msgstr "Löschen"
|
240 |
|
241 |
-
#: includes/class.yith-wcan-admin.php:
|
242 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
243 |
msgid "Run"
|
244 |
msgstr "Start"
|
245 |
|
246 |
-
#: includes/class.yith-wcan-admin.php:
|
247 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
248 |
msgid ""
|
249 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -255,7 +266,7 @@ msgstr ""
|
|
255 |
"Konfiguration deines Produkts geändert hast und die Filter nicht die "
|
256 |
"erwarteten Ergebnisse anzeigen. "
|
257 |
|
258 |
-
#: includes/class.yith-wcan-admin.php:
|
259 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
260 |
msgid ""
|
261 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -270,176 +281,239 @@ msgctxt "[Admin] Filter edit form"
|
|
270 |
msgid "Taxonomy"
|
271 |
msgstr "Taxonomie"
|
272 |
|
273 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
msgctxt "[Admin] Filter edit form"
|
275 |
msgid "Filter name"
|
276 |
msgstr "Name des Filters"
|
277 |
|
278 |
-
#: plugin-options/filter-options.php:
|
279 |
msgctxt "[Admin] Filter edit form"
|
280 |
msgid "Enter a name to identify this filter"
|
281 |
msgstr "Gib einen Namen ein, um diesen Filter zu identifizieren"
|
282 |
|
283 |
-
#: plugin-options/filter-options.php:
|
284 |
msgctxt "[Admin] Filter edit form"
|
285 |
msgid "Filter for"
|
286 |
msgstr "Filtern nach"
|
287 |
|
288 |
-
#: plugin-options/filter-options.php:
|
289 |
msgctxt "[Admin] Filter edit form"
|
290 |
msgid "Select the parameters you wish to filter for"
|
291 |
msgstr "Wähle die Parameter, nach denen du filtern möchtest"
|
292 |
|
293 |
-
#: plugin-options/filter-options.php:
|
294 |
msgctxt "[Admin] Filter edit form"
|
295 |
msgid "Choose taxonomy"
|
296 |
msgstr "Taxonomie wählen"
|
297 |
|
298 |
-
#: plugin-options/filter-options.php:
|
299 |
msgctxt "[Admin] Filter edit form"
|
300 |
msgid "Select which taxonomy to use for this filter"
|
301 |
msgstr "Wähle, welche Taxonomie für diesen Filter verwendet werden soll"
|
302 |
|
303 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
msgctxt "[Admin] Filter edit form"
|
305 |
msgid "Choose terms"
|
306 |
msgstr "Begriffe wählen"
|
307 |
|
308 |
-
#: plugin-options/filter-options.php:
|
309 |
msgctxt "[Admin] Filter edit form"
|
310 |
msgid "Select which terms to use for filtering"
|
311 |
msgstr "Wähle aus, welche Begriffe für die Filterung verwendet werden sollen"
|
312 |
|
313 |
-
#: plugin-options/filter-options.php:
|
314 |
msgctxt "[Admin] Filter edit form"
|
315 |
msgid "Filter type"
|
316 |
msgstr "Filter-Typ"
|
317 |
|
318 |
-
#: plugin-options/filter-options.php:
|
319 |
msgctxt "[Admin] Filter edit form"
|
320 |
-
msgid "
|
321 |
-
msgstr "
|
322 |
|
323 |
-
#: plugin-options/filter-options.php:
|
|
|
324 |
msgctxt "[Admin] Filter edit form"
|
325 |
-
msgid "
|
326 |
-
msgstr "
|
327 |
|
328 |
-
#: plugin-options/filter-options.php:
|
|
|
329 |
msgctxt "[Admin] Filter edit form"
|
330 |
-
msgid "
|
331 |
-
msgstr "
|
332 |
|
333 |
-
#: plugin-options/filter-options.php:
|
|
|
334 |
msgctxt "[Admin] Filter edit form"
|
335 |
-
msgid "
|
336 |
-
msgstr "
|
337 |
|
338 |
-
#: plugin-options/filter-options.php:
|
339 |
msgctxt "[Admin] Filter edit form"
|
340 |
-
msgid "
|
341 |
-
msgstr "
|
342 |
|
343 |
-
#: plugin-options/filter-options.php:
|
|
|
344 |
msgctxt "[Admin] Filter edit form"
|
345 |
-
msgid "
|
346 |
-
msgstr "Wähle den
|
347 |
|
348 |
-
#: plugin-options/filter-options.php:
|
349 |
msgctxt "[Admin] Filter edit form"
|
350 |
msgid "Columns number"
|
351 |
msgstr "Anzahl der Spalten"
|
352 |
|
353 |
-
#: plugin-options/filter-options.php:
|
354 |
msgctxt "[Admin] Filter edit form"
|
355 |
msgid "Set the number of items per row you want to show for this design"
|
356 |
msgstr ""
|
357 |
"Stelle die Anzahl der Elemente pro Zeile ein, die du für dieses Design "
|
358 |
"anzeigen möchtest"
|
359 |
|
360 |
-
#: plugin-options/filter-options.php:
|
361 |
msgctxt "[Admin] Filter edit form"
|
362 |
msgid "Customize terms"
|
363 |
msgstr "Begriffe anpassen"
|
364 |
|
365 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
msgctxt "[Admin] Filter edit form"
|
367 |
msgid "Show hierarchy"
|
368 |
msgstr "Hierarchie anzeigen"
|
369 |
|
370 |
-
#: plugin-options/filter-options.php:
|
371 |
msgctxt "[Admin] Filter edit form"
|
372 |
msgid "No, show all terms in same level"
|
373 |
msgstr "Nein, alle Begriffe auf der gleichen Ebene anzeigen"
|
374 |
|
375 |
-
#: plugin-options/filter-options.php:
|
376 |
msgctxt "[Admin] Filter edit form"
|
377 |
msgid "No, show only parent terms"
|
378 |
msgstr "Nein, nur übergeordnete Begriffe anzeigen"
|
379 |
|
380 |
-
#: plugin-options/filter-options.php:
|
381 |
msgctxt "[Admin] Filter edit form"
|
382 |
msgid "Yes"
|
383 |
msgstr ""
|
384 |
|
385 |
-
#: plugin-options/filter-options.php:
|
386 |
msgctxt "[Admin] Filter edit form"
|
387 |
msgid "Choose how to show terms hierarchy"
|
388 |
msgstr "Wähle, wie die Begriffshierarchie angezeigt werden soll"
|
389 |
|
390 |
-
#: plugin-options/filter-options.php:
|
391 |
msgctxt "[Admin] Filter edit form"
|
392 |
msgid "Allow multiple selection"
|
393 |
msgstr "Mehrfachauswahl zulassen"
|
394 |
|
395 |
-
#: plugin-options/filter-options.php:
|
396 |
msgctxt "[Admin] Filter edit form"
|
397 |
msgid "Enable if the user can select multiple terms when filtering products"
|
398 |
msgstr ""
|
399 |
"Aktivieren, wenn der Benutzer beim Filtern von Produkten mehrere Begriffe "
|
400 |
"auswählen kann"
|
401 |
|
402 |
-
#: plugin-options/filter-options.php:
|
403 |
msgctxt "[Admin] Filter edit form"
|
404 |
msgid "Multiselect relation"
|
405 |
msgstr "Multiselect-Beziehung"
|
406 |
|
407 |
-
#: plugin-options/filter-options.php:
|
408 |
msgctxt "[Admin] Filter edit form"
|
409 |
msgid "Choose how multiple terms selection should behave"
|
410 |
msgstr "Wähle, wie sich die Auswahl mehrerer Begriffe verhalten soll"
|
411 |
|
412 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
413 |
msgctxt "[Admin] Filter edit form, sorting options"
|
414 |
msgid "Default sorting"
|
415 |
msgstr "Standard-Sortierung"
|
416 |
|
417 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
418 |
msgctxt "[Admin] Filter edit form, sorting options"
|
419 |
msgid "Sort by popularity"
|
420 |
msgstr "Nach Beliebtheit sortieren"
|
421 |
|
422 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
423 |
msgctxt "[Admin] Filter edit form, sorting options"
|
424 |
msgid "Sort by average rating"
|
425 |
msgstr "Best bewertete zuerst"
|
426 |
|
427 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
428 |
msgctxt "[Admin] Filter edit form, sorting options"
|
429 |
msgid "Sort by latest"
|
430 |
msgstr "Neueste zuerst"
|
431 |
|
432 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
433 |
msgctxt "[Admin] Filter edit form, sorting options"
|
434 |
msgid "Sort by price: low to high"
|
435 |
msgstr "Sortieren nach Preis: Preis aufsteigend"
|
436 |
|
437 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
438 |
msgctxt "[Admin] Filter edit form, sorting options"
|
439 |
msgid "Sort by price: high to low"
|
440 |
msgstr "Sortieren nach Preis: Preis absteigend"
|
441 |
|
442 |
-
#: includes/class.yith-wcan-filter.php:
|
443 |
msgctxt "[Admin] Default filter title"
|
444 |
msgid "New filter"
|
445 |
msgstr "Neuer Filter"
|
@@ -472,18 +546,23 @@ msgid "Close"
|
|
472 |
msgstr "Schließen"
|
473 |
|
474 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
475 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
476 |
msgid "Show results"
|
477 |
msgstr "Ergebnisse anzeigen"
|
478 |
|
479 |
-
#: includes/class.yith-wcan-frontend.php:
|
480 |
msgctxt ""
|
481 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
482 |
"selection"
|
483 |
msgid "Clear"
|
484 |
msgstr "Löschen"
|
485 |
|
486 |
-
#: includes/class.yith-wcan-frontend.php:
|
487 |
msgctxt ""
|
488 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
489 |
"selection"
|
@@ -496,11 +575,32 @@ msgid "Default preset"
|
|
496 |
msgstr "Standard-Preset"
|
497 |
|
498 |
#. translators: 1. Taxonomy name.
|
499 |
-
#: includes/class.yith-wcan-install.php:
|
500 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
501 |
msgid "Filter by %s"
|
502 |
msgstr "Nach %s filtern"
|
503 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
504 |
#: includes/class.yith-wcan-presets.php:95
|
505 |
#: includes/class.yith-wcan-presets.php:100
|
506 |
msgctxt "[Admin] name of presets custom post type"
|
@@ -522,7 +622,7 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
522 |
msgid "Convert widgets in a preset"
|
523 |
msgstr "Widgets in eine Preset konvertieren"
|
524 |
|
525 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
526 |
msgctxt ""
|
527 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
528 |
"not exist"
|
@@ -530,7 +630,7 @@ msgid "Invalid preset."
|
|
530 |
msgstr "Ungültige Voreinstellung."
|
531 |
|
532 |
#. translators: 1. Title of original preset.
|
533 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
534 |
msgctxt "[ADMIN] Title of the cloned preset"
|
535 |
msgid "%s - Copy"
|
536 |
msgstr "%s - Kopieren"
|
@@ -745,7 +845,7 @@ msgid "Reset all filters set by YITH WooCommerce AJAX Product Filter"
|
|
745 |
msgstr ""
|
746 |
"Alle von YITH WooCommerce AJAX Product Filter gesetzten Filter zurücksetzen "
|
747 |
|
748 |
-
#: plugin-options/filter-options.php:
|
749 |
#, fuzzy
|
750 |
msgctxt ""
|
751 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -754,7 +854,7 @@ msgstr ""
|
|
754 |
"UND - Die Ergebnisse müssen mit allen ausgewählten Begriffen gleichzeitig "
|
755 |
"übereinstimmen"
|
756 |
|
757 |
-
#: plugin-options/filter-options.php:
|
758 |
#, fuzzy
|
759 |
msgctxt ""
|
760 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -1182,37 +1282,27 @@ msgid ""
|
|
1182 |
"easier to share)"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: templates/admin/preset-edit.php:
|
1186 |
msgctxt "[Admin] Back link in new preset page"
|
1187 |
msgid "< back to preset list"
|
1188 |
msgstr "< zurück zur Preset-Liste"
|
1189 |
|
1190 |
-
#: templates/admin/preset-edit.php:
|
1191 |
msgctxt "[ADMIN] Title for new preset page"
|
1192 |
msgid "Edit filter preset"
|
1193 |
msgstr "Filter-Preset bearbeiten"
|
1194 |
|
1195 |
-
#: templates/admin/preset-edit.php:
|
1196 |
msgctxt "[ADMIN] Title for new preset page"
|
1197 |
msgid "Add new filter preset"
|
1198 |
msgstr "Neues Filter-Preset hinzufügen"
|
1199 |
|
1200 |
-
#: templates/admin/preset-edit.php:
|
1201 |
-
msgctxt "[
|
1202 |
-
msgid "Preset
|
1203 |
-
msgstr "
|
1204 |
-
|
1205 |
-
#: templates/admin/preset-edit.php:54
|
1206 |
-
msgctxt "[Admin] Label in new preset page"
|
1207 |
-
msgid "Enter a name to identify this filter preset"
|
1208 |
-
msgstr "Gib einen Namen ein, um dieses Filter-Preset zu identifizieren"
|
1209 |
-
|
1210 |
-
#: templates/admin/preset-filters.php:20
|
1211 |
-
msgctxt "[Admin] Label in new preset page"
|
1212 |
-
msgid "Filters of this preset"
|
1213 |
-
msgstr "Filter in diesem Preset"
|
1214 |
|
1215 |
-
#: templates/admin/preset-edit.php:
|
1216 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1217 |
msgid "Save preset"
|
1218 |
msgstr "Preset speichern"
|
@@ -1528,10 +1618,6 @@ msgstr "Filter zurücksetzen"
|
|
1528 |
#~ msgid "Set the value for each increment of the price slider"
|
1529 |
#~ msgstr "Stelle den Wert für jedes Inkrement des Preisschiebereglers ein"
|
1530 |
|
1531 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1532 |
-
#~ msgid "Order options"
|
1533 |
-
#~ msgstr "Sortierungsoptionen"
|
1534 |
-
|
1535 |
#~ msgctxt "[Admin] Filter edit form"
|
1536 |
#~ msgid "Select sorting options to show"
|
1537 |
#~ msgstr "Sortieroptionen für die Anzeige auswählen"
|
@@ -1617,10 +1703,6 @@ msgstr "Filter zurücksetzen"
|
|
1617 |
#~ msgid "Select the default order for terms of this filter"
|
1618 |
#~ msgstr "Wähle die Standardreihenfolge für Begriffe dieses Filters"
|
1619 |
|
1620 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1621 |
-
#~ msgid "Show count of items"
|
1622 |
-
#~ msgstr "Anzahl der Elemente anzeigen"
|
1623 |
-
|
1624 |
#~ msgctxt "[Admin] Filter edit form"
|
1625 |
#~ msgid ""
|
1626 |
#~ "Enable if you want to show how many items are available for each term"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
9 |
"PO-Revision-Date: 2021-03-02 11:03+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
16 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
"X-Generator: Poedit 2.4.2\n"
|
18 |
|
19 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
20 |
msgid "Draft Preset"
|
21 |
msgstr "Preset Entwurf"
|
22 |
|
107 |
msgid "Button Label"
|
108 |
msgstr "Button-Beschriftung"
|
109 |
|
110 |
+
#: init.php:148
|
111 |
msgid ""
|
112 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
113 |
"while you are using the premium one."
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: init.php:166
|
117 |
#, fuzzy
|
118 |
msgid ""
|
119 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
157 |
"Bist du sicher, dass du fortfahren möchtest? Dieser Vorgang wird %s Elemente "
|
158 |
"hinzufügen"
|
159 |
|
160 |
+
#: includes/class.yith-wcan-admin.php:111
|
161 |
+
msgctxt "[Admin] Error message"
|
162 |
+
msgid "\"Filter title\" is a required field"
|
163 |
+
msgstr ""
|
164 |
+
|
165 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
166 |
msgctxt "[Admin] Message shown when filter has empty title"
|
167 |
msgid "< no title >"
|
168 |
msgstr "< Kein Titel >"
|
169 |
|
170 |
+
#: includes/class.yith-wcan-admin.php:115
|
171 |
msgctxt "[Admin] Media library title, when selecting images"
|
172 |
msgid "Select media you want to use"
|
173 |
msgstr "Die zu verwendenden Medien auswählen"
|
174 |
|
175 |
+
#: includes/class.yith-wcan-admin.php:116
|
176 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
177 |
msgid "Use this media"
|
178 |
msgstr "Dieses Medium verwenden"
|
179 |
|
180 |
+
#: includes/class.yith-wcan-admin.php:184
|
181 |
msgctxt "[Admin] tab name"
|
182 |
msgid "Filter presets"
|
183 |
msgstr "Filter-Presets"
|
184 |
|
185 |
+
#: includes/class.yith-wcan-admin.php:185
|
186 |
msgctxt "[Admin] tab name"
|
187 |
msgid "General settings"
|
188 |
msgstr "Allgemeine Einstellungen"
|
189 |
|
190 |
+
#: includes/class.yith-wcan-admin.php:186
|
191 |
#, fuzzy
|
192 |
msgctxt "[Admin] tab name"
|
193 |
msgid "SEO"
|
194 |
msgstr "SEO"
|
195 |
|
196 |
+
#: includes/class.yith-wcan-admin.php:187
|
197 |
msgctxt "[Admin] tab name"
|
198 |
msgid "Premium Version"
|
199 |
msgstr "Premium-Version"
|
200 |
|
201 |
+
#: includes/class.yith-wcan-admin.php:191
|
202 |
msgctxt "[Admin] tab name"
|
203 |
msgid "Legacy"
|
204 |
msgstr "Legacy"
|
205 |
|
206 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
207 |
msgctxt "[Admin] Menu title"
|
208 |
msgid "Ajax Product Filter"
|
209 |
msgstr "AJAX Produkt-Filter "
|
210 |
|
211 |
+
#: includes/class.yith-wcan-admin.php:199
|
212 |
msgctxt "[Admin] Plugin description"
|
213 |
msgid ""
|
214 |
"It allows your users to find the product they are looking for as quickly as "
|
217 |
"Ermöglicht deinen Benutzern, das gesuchte Produkt so schnell wie möglich zu "
|
218 |
"finden."
|
219 |
|
220 |
+
#: includes/class.yith-wcan-admin.php:211
|
221 |
+
msgctxt "[HELP TAB] Video title"
|
222 |
+
msgid ""
|
223 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
224 |
+
"the shop page:</b>"
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: includes/class.yith-wcan-admin.php:329
|
228 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
229 |
msgid "item"
|
230 |
msgstr "Artikel"
|
231 |
|
232 |
+
#: includes/class.yith-wcan-admin.php:330
|
233 |
msgctxt "[Admin] Preset table empty message second line"
|
234 |
msgid "But don't worry, here you can create your first one!"
|
235 |
msgstr "Aber keine Sorge, hier kannst du deine erste erstellen!"
|
236 |
|
237 |
+
#: includes/class.yith-wcan-admin.php:478
|
238 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
239 |
msgid "Clear Product Filter transients"
|
240 |
msgstr "Produktfilter-Tansients löschen"
|
241 |
|
242 |
+
#: includes/class.yith-wcan-admin.php:484
|
243 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
244 |
msgid "Run filter widgets upgrade"
|
245 |
msgstr "Upgrade der Filter-Widgets ausführen"
|
246 |
|
247 |
+
#: includes/class.yith-wcan-admin.php:479
|
248 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
249 |
msgid "Clear"
|
250 |
msgstr "Löschen"
|
251 |
|
252 |
+
#: includes/class.yith-wcan-admin.php:485
|
253 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
254 |
msgid "Run"
|
255 |
msgstr "Start"
|
256 |
|
257 |
+
#: includes/class.yith-wcan-admin.php:480
|
258 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
259 |
msgid ""
|
260 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
266 |
"Konfiguration deines Produkts geändert hast und die Filter nicht die "
|
267 |
"erwarteten Ergebnisse anzeigen. "
|
268 |
|
269 |
+
#: includes/class.yith-wcan-admin.php:486
|
270 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
271 |
msgid ""
|
272 |
"This will create a preset for any sidebar of your shop containing filter "
|
281 |
msgid "Taxonomy"
|
282 |
msgstr "Taxonomie"
|
283 |
|
284 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
285 |
+
msgctxt "[Admin] Filter edit form"
|
286 |
+
msgid "Checkbox"
|
287 |
+
msgstr "Checkbox"
|
288 |
+
|
289 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
290 |
+
msgctxt "[Admin] Filter edit form"
|
291 |
+
msgid "Select"
|
292 |
+
msgstr "Auswahl"
|
293 |
+
|
294 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
295 |
+
msgctxt "[Admin] Filter edit form"
|
296 |
+
msgid "Text"
|
297 |
+
msgstr "Text"
|
298 |
+
|
299 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
300 |
+
msgctxt "[Admin] Filter edit form"
|
301 |
+
msgid "Color Swatches"
|
302 |
+
msgstr "Farbmuster"
|
303 |
+
|
304 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
305 |
+
msgctxt "[Admin] Filter edit form"
|
306 |
+
msgid "Label"
|
307 |
+
msgstr "Label"
|
308 |
+
|
309 |
+
#: plugin-options/filter-options.php:32
|
310 |
msgctxt "[Admin] Filter edit form"
|
311 |
msgid "Filter name"
|
312 |
msgstr "Name des Filters"
|
313 |
|
314 |
+
#: plugin-options/filter-options.php:35
|
315 |
msgctxt "[Admin] Filter edit form"
|
316 |
msgid "Enter a name to identify this filter"
|
317 |
msgstr "Gib einen Namen ein, um diesen Filter zu identifizieren"
|
318 |
|
319 |
+
#: plugin-options/filter-options.php:41
|
320 |
msgctxt "[Admin] Filter edit form"
|
321 |
msgid "Filter for"
|
322 |
msgstr "Filtern nach"
|
323 |
|
324 |
+
#: plugin-options/filter-options.php:45
|
325 |
msgctxt "[Admin] Filter edit form"
|
326 |
msgid "Select the parameters you wish to filter for"
|
327 |
msgstr "Wähle die Parameter, nach denen du filtern möchtest"
|
328 |
|
329 |
+
#: plugin-options/filter-options.php:51
|
330 |
msgctxt "[Admin] Filter edit form"
|
331 |
msgid "Choose taxonomy"
|
332 |
msgstr "Taxonomie wählen"
|
333 |
|
334 |
+
#: plugin-options/filter-options.php:55
|
335 |
msgctxt "[Admin] Filter edit form"
|
336 |
msgid "Select which taxonomy to use for this filter"
|
337 |
msgstr "Wähle, welche Taxonomie für diesen Filter verwendet werden soll"
|
338 |
|
339 |
+
#: plugin-options/filter-options.php:60
|
340 |
+
msgctxt "[Admin] Filter edit form"
|
341 |
+
msgid "Auto-populate with all terms"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: plugin-options/filter-options.php:62
|
345 |
+
msgctxt "[Admin] Filter edit form"
|
346 |
+
msgid ""
|
347 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
348 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
349 |
+
"this option, all terms created in the future will be added to this filter as "
|
350 |
+
"well.</span>"
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: plugin-options/filter-options.php:71
|
354 |
msgctxt "[Admin] Filter edit form"
|
355 |
msgid "Choose terms"
|
356 |
msgstr "Begriffe wählen"
|
357 |
|
358 |
+
#: plugin-options/filter-options.php:76
|
359 |
msgctxt "[Admin] Filter edit form"
|
360 |
msgid "Select which terms to use for filtering"
|
361 |
msgstr "Wähle aus, welche Begriffe für die Filterung verwendet werden sollen"
|
362 |
|
363 |
+
#: plugin-options/filter-options.php:80
|
364 |
msgctxt "[Admin] Filter edit form"
|
365 |
msgid "Filter type"
|
366 |
msgstr "Filter-Typ"
|
367 |
|
368 |
+
#: plugin-options/filter-options.php:84
|
369 |
msgctxt "[Admin] Filter edit form"
|
370 |
+
msgid "Select the filter type for this filter"
|
371 |
+
msgstr "Wähle den Filtertyp für diesen Filter"
|
372 |
|
373 |
+
#: plugin-options/filter-options.php:88
|
374 |
+
#, fuzzy
|
375 |
msgctxt "[Admin] Filter edit form"
|
376 |
+
msgid "Labels"
|
377 |
+
msgstr "Label"
|
378 |
|
379 |
+
#: plugin-options/filter-options.php:91
|
380 |
+
#, fuzzy
|
381 |
msgctxt "[Admin] Filter edit form"
|
382 |
+
msgid "Show below"
|
383 |
+
msgstr "Ergebnisse anzeigen"
|
384 |
|
385 |
+
#: plugin-options/filter-options.php:92
|
386 |
+
#, fuzzy
|
387 |
msgctxt "[Admin] Filter edit form"
|
388 |
+
msgid "Show on the right"
|
389 |
+
msgstr "Anzahl der Elemente anzeigen"
|
390 |
|
391 |
+
#: plugin-options/filter-options.php:93
|
392 |
msgctxt "[Admin] Filter edit form"
|
393 |
+
msgid "Hide"
|
394 |
+
msgstr ""
|
395 |
|
396 |
+
#: plugin-options/filter-options.php:95
|
397 |
+
#, fuzzy
|
398 |
msgctxt "[Admin] Filter edit form"
|
399 |
+
msgid "Choose if and where to show the label inside your filter"
|
400 |
+
msgstr "Wähle den Stil des Filters innerhalb von Widgets "
|
401 |
|
402 |
+
#: plugin-options/filter-options.php:99
|
403 |
msgctxt "[Admin] Filter edit form"
|
404 |
msgid "Columns number"
|
405 |
msgstr "Anzahl der Spalten"
|
406 |
|
407 |
+
#: plugin-options/filter-options.php:104
|
408 |
msgctxt "[Admin] Filter edit form"
|
409 |
msgid "Set the number of items per row you want to show for this design"
|
410 |
msgstr ""
|
411 |
"Stelle die Anzahl der Elemente pro Zeile ein, die du für dieses Design "
|
412 |
"anzeigen möchtest"
|
413 |
|
414 |
+
#: plugin-options/filter-options.php:108
|
415 |
msgctxt "[Admin] Filter edit form"
|
416 |
msgid "Customize terms"
|
417 |
msgstr "Begriffe anpassen"
|
418 |
|
419 |
+
#: plugin-options/filter-options.php:111
|
420 |
+
msgctxt "[Admin] Filter edit form"
|
421 |
+
msgid ""
|
422 |
+
"Configure your terms individually; system will otherwise use default labels/"
|
423 |
+
"images for terms.\n"
|
424 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
425 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
426 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, just "
|
427 |
+
"enable this option and use boxes below.</span>\n"
|
428 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
429 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
430 |
+
"this option and use the boxes below</span>"
|
431 |
+
msgstr ""
|
432 |
+
|
433 |
+
#: plugin-options/filter-options.php:121
|
434 |
+
#, fuzzy
|
435 |
+
msgctxt "[Admin] Filter edit form"
|
436 |
+
msgid "Terms options"
|
437 |
+
msgstr "Sortierungsoptionen"
|
438 |
+
|
439 |
+
#: plugin-options/filter-options.php:127
|
440 |
msgctxt "[Admin] Filter edit form"
|
441 |
msgid "Show hierarchy"
|
442 |
msgstr "Hierarchie anzeigen"
|
443 |
|
444 |
+
#: plugin-options/filter-options.php:130
|
445 |
msgctxt "[Admin] Filter edit form"
|
446 |
msgid "No, show all terms in same level"
|
447 |
msgstr "Nein, alle Begriffe auf der gleichen Ebene anzeigen"
|
448 |
|
449 |
+
#: plugin-options/filter-options.php:131
|
450 |
msgctxt "[Admin] Filter edit form"
|
451 |
msgid "No, show only parent terms"
|
452 |
msgstr "Nein, nur übergeordnete Begriffe anzeigen"
|
453 |
|
454 |
+
#: plugin-options/filter-options.php:132
|
455 |
msgctxt "[Admin] Filter edit form"
|
456 |
msgid "Yes"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: plugin-options/filter-options.php:134
|
460 |
msgctxt "[Admin] Filter edit form"
|
461 |
msgid "Choose how to show terms hierarchy"
|
462 |
msgstr "Wähle, wie die Begriffshierarchie angezeigt werden soll"
|
463 |
|
464 |
+
#: plugin-options/filter-options.php:138
|
465 |
msgctxt "[Admin] Filter edit form"
|
466 |
msgid "Allow multiple selection"
|
467 |
msgstr "Mehrfachauswahl zulassen"
|
468 |
|
469 |
+
#: plugin-options/filter-options.php:140
|
470 |
msgctxt "[Admin] Filter edit form"
|
471 |
msgid "Enable if the user can select multiple terms when filtering products"
|
472 |
msgstr ""
|
473 |
"Aktivieren, wenn der Benutzer beim Filtern von Produkten mehrere Begriffe "
|
474 |
"auswählen kann"
|
475 |
|
476 |
+
#: plugin-options/filter-options.php:144
|
477 |
msgctxt "[Admin] Filter edit form"
|
478 |
msgid "Multiselect relation"
|
479 |
msgstr "Multiselect-Beziehung"
|
480 |
|
481 |
+
#: plugin-options/filter-options.php:150
|
482 |
msgctxt "[Admin] Filter edit form"
|
483 |
msgid "Choose how multiple terms selection should behave"
|
484 |
msgstr "Wähle, wie sich die Auswahl mehrerer Begriffe verhalten soll"
|
485 |
|
486 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
487 |
msgctxt "[Admin] Filter edit form, sorting options"
|
488 |
msgid "Default sorting"
|
489 |
msgstr "Standard-Sortierung"
|
490 |
|
491 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
492 |
msgctxt "[Admin] Filter edit form, sorting options"
|
493 |
msgid "Sort by popularity"
|
494 |
msgstr "Nach Beliebtheit sortieren"
|
495 |
|
496 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
497 |
msgctxt "[Admin] Filter edit form, sorting options"
|
498 |
msgid "Sort by average rating"
|
499 |
msgstr "Best bewertete zuerst"
|
500 |
|
501 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
502 |
msgctxt "[Admin] Filter edit form, sorting options"
|
503 |
msgid "Sort by latest"
|
504 |
msgstr "Neueste zuerst"
|
505 |
|
506 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
507 |
msgctxt "[Admin] Filter edit form, sorting options"
|
508 |
msgid "Sort by price: low to high"
|
509 |
msgstr "Sortieren nach Preis: Preis aufsteigend"
|
510 |
|
511 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
512 |
msgctxt "[Admin] Filter edit form, sorting options"
|
513 |
msgid "Sort by price: high to low"
|
514 |
msgstr "Sortieren nach Preis: Preis absteigend"
|
515 |
|
516 |
+
#: includes/class.yith-wcan-filter.php:116
|
517 |
msgctxt "[Admin] Default filter title"
|
518 |
msgid "New filter"
|
519 |
msgstr "Neuer Filter"
|
546 |
msgstr "Schließen"
|
547 |
|
548 |
#: includes/class.yith-wcan-frontend.php:582
|
549 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
550 |
+
msgid "Save"
|
551 |
+
msgstr ""
|
552 |
+
|
553 |
+
#: includes/class.yith-wcan-frontend.php:583
|
554 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
555 |
msgid "Show results"
|
556 |
msgstr "Ergebnisse anzeigen"
|
557 |
|
558 |
+
#: includes/class.yith-wcan-frontend.php:584
|
559 |
msgctxt ""
|
560 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
561 |
"selection"
|
562 |
msgid "Clear"
|
563 |
msgstr "Löschen"
|
564 |
|
565 |
+
#: includes/class.yith-wcan-frontend.php:585
|
566 |
msgctxt ""
|
567 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
568 |
"selection"
|
575 |
msgstr "Standard-Preset"
|
576 |
|
577 |
#. translators: 1. Taxonomy name.
|
578 |
+
#: includes/class.yith-wcan-install.php:285
|
579 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
580 |
msgid "Filter by %s"
|
581 |
msgstr "Nach %s filtern"
|
582 |
|
583 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
584 |
+
#, fuzzy
|
585 |
+
msgctxt "[Admin] Label in new preset page"
|
586 |
+
msgid "Default"
|
587 |
+
msgstr "Standard "
|
588 |
+
|
589 |
+
#: plugin-options/preset-options.php:14
|
590 |
+
msgctxt "[Admin] Label in new preset page"
|
591 |
+
msgid "Preset name"
|
592 |
+
msgstr "Preset-Name"
|
593 |
+
|
594 |
+
#: plugin-options/preset-options.php:16
|
595 |
+
msgctxt "[Admin] Label in new preset page"
|
596 |
+
msgid "Enter a name to identify this filter preset"
|
597 |
+
msgstr "Gib einen Namen ein, um dieses Filter-Preset zu identifizieren"
|
598 |
+
|
599 |
+
#: templates/admin/preset-filters.php:20
|
600 |
+
msgctxt "[Admin] Label in new preset page"
|
601 |
+
msgid "Filters of this preset"
|
602 |
+
msgstr "Filter in diesem Preset"
|
603 |
+
|
604 |
#: includes/class.yith-wcan-presets.php:95
|
605 |
#: includes/class.yith-wcan-presets.php:100
|
606 |
msgctxt "[Admin] name of presets custom post type"
|
622 |
msgid "Convert widgets in a preset"
|
623 |
msgstr "Widgets in eine Preset konvertieren"
|
624 |
|
625 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
626 |
msgctxt ""
|
627 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
628 |
"not exist"
|
630 |
msgstr "Ungültige Voreinstellung."
|
631 |
|
632 |
#. translators: 1. Title of original preset.
|
633 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
634 |
msgctxt "[ADMIN] Title of the cloned preset"
|
635 |
msgid "%s - Copy"
|
636 |
msgstr "%s - Kopieren"
|
845 |
msgstr ""
|
846 |
"Alle von YITH WooCommerce AJAX Product Filter gesetzten Filter zurücksetzen "
|
847 |
|
848 |
+
#: plugin-options/filter-options.php:147
|
849 |
#, fuzzy
|
850 |
msgctxt ""
|
851 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
854 |
"UND - Die Ergebnisse müssen mit allen ausgewählten Begriffen gleichzeitig "
|
855 |
"übereinstimmen"
|
856 |
|
857 |
+
#: plugin-options/filter-options.php:148
|
858 |
#, fuzzy
|
859 |
msgctxt ""
|
860 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
1282 |
"easier to share)"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
+
#: templates/admin/preset-edit.php:29
|
1286 |
msgctxt "[Admin] Back link in new preset page"
|
1287 |
msgid "< back to preset list"
|
1288 |
msgstr "< zurück zur Preset-Liste"
|
1289 |
|
1290 |
+
#: templates/admin/preset-edit.php:36
|
1291 |
msgctxt "[ADMIN] Title for new preset page"
|
1292 |
msgid "Edit filter preset"
|
1293 |
msgstr "Filter-Preset bearbeiten"
|
1294 |
|
1295 |
+
#: templates/admin/preset-edit.php:38
|
1296 |
msgctxt "[ADMIN] Title for new preset page"
|
1297 |
msgid "Add new filter preset"
|
1298 |
msgstr "Neues Filter-Preset hinzufügen"
|
1299 |
|
1300 |
+
#: templates/admin/preset-edit.php:45
|
1301 |
+
msgctxt "[ADMIN] Preset save message"
|
1302 |
+
msgid "Preset saved correctly"
|
1303 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1304 |
|
1305 |
+
#: templates/admin/preset-edit.php:90
|
1306 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1307 |
msgid "Save preset"
|
1308 |
msgstr "Preset speichern"
|
1618 |
#~ msgid "Set the value for each increment of the price slider"
|
1619 |
#~ msgstr "Stelle den Wert für jedes Inkrement des Preisschiebereglers ein"
|
1620 |
|
|
|
|
|
|
|
|
|
1621 |
#~ msgctxt "[Admin] Filter edit form"
|
1622 |
#~ msgid "Select sorting options to show"
|
1623 |
#~ msgstr "Sortieroptionen für die Anzeige auswählen"
|
1703 |
#~ msgid "Select the default order for terms of this filter"
|
1704 |
#~ msgstr "Wähle die Standardreihenfolge für Begriffe dieses Filters"
|
1705 |
|
|
|
|
|
|
|
|
|
1706 |
#~ msgctxt "[Admin] Filter edit form"
|
1707 |
#~ msgid ""
|
1708 |
#~ "Enable if you want to show how many items are available for each term"
|
Binary file
|
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2021-
|
9 |
"PO-Revision-Date: 2021-03-02 11:03+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -16,7 +16,7 @@ msgstr ""
|
|
16 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
"X-Generator: Poedit 2.4.2\n"
|
18 |
|
19 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
20 |
msgid "Draft Preset"
|
21 |
msgstr "Preset Entwurf"
|
22 |
|
@@ -107,13 +107,13 @@ msgstr "Alle Filter zurücksetzen"
|
|
107 |
msgid "Button Label"
|
108 |
msgstr "Button-Beschriftung"
|
109 |
|
110 |
-
#: init.php:
|
111 |
msgid ""
|
112 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
113 |
"while you are using the premium one."
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: init.php:
|
117 |
#, fuzzy
|
118 |
msgid ""
|
119 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
@@ -157,54 +157,58 @@ msgstr ""
|
|
157 |
"Sind Sie sicher, dass Sie fortfahren möchten? Dieser Vorgang wird %s "
|
158 |
"Elemente hinzufügen"
|
159 |
|
160 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
161 |
msgctxt "[Admin] Message shown when filter has empty title"
|
162 |
msgid "< no title >"
|
163 |
msgstr "< Kein Titel >"
|
164 |
|
165 |
-
#: includes/class.yith-wcan-admin.php:
|
166 |
msgctxt "[Admin] Media library title, when selecting images"
|
167 |
msgid "Select media you want to use"
|
168 |
msgstr "Die zu verwendenden Medien auswählen"
|
169 |
|
170 |
-
#: includes/class.yith-wcan-admin.php:
|
171 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
172 |
msgid "Use this media"
|
173 |
msgstr "Dieses Medium verwenden"
|
174 |
|
175 |
-
#: includes/class.yith-wcan-admin.php:
|
176 |
msgctxt "[Admin] tab name"
|
177 |
msgid "Filter presets"
|
178 |
msgstr "Filter-Presets"
|
179 |
|
180 |
-
#: includes/class.yith-wcan-admin.php:
|
181 |
msgctxt "[Admin] tab name"
|
182 |
msgid "General settings"
|
183 |
msgstr "Allgemeine Einstellungen"
|
184 |
|
185 |
-
#: includes/class.yith-wcan-admin.php:
|
186 |
#, fuzzy
|
187 |
msgctxt "[Admin] tab name"
|
188 |
msgid "SEO"
|
189 |
msgstr "SEO"
|
190 |
|
191 |
-
#: includes/class.yith-wcan-admin.php:
|
192 |
msgctxt "[Admin] tab name"
|
193 |
msgid "Premium Version"
|
194 |
msgstr "Premium-Version"
|
195 |
|
196 |
-
#: includes/class.yith-wcan-admin.php:
|
197 |
msgctxt "[Admin] tab name"
|
198 |
msgid "Legacy"
|
199 |
msgstr "Legacy"
|
200 |
|
201 |
-
#: includes/class.yith-wcan-admin.php:
|
202 |
-
#: includes/class.yith-wcan-admin.php:195
|
203 |
msgctxt "[Admin] Menu title"
|
204 |
msgid "Ajax Product Filter"
|
205 |
msgstr "AJAX Produkt-Filter "
|
206 |
|
207 |
-
#: includes/class.yith-wcan-admin.php:
|
208 |
msgctxt "[Admin] Plugin description"
|
209 |
msgid ""
|
210 |
"It allows your users to find the product they are looking for as quickly as "
|
@@ -213,37 +217,44 @@ msgstr ""
|
|
213 |
"Ermöglicht Ihren Benutzern, das gesuchte Produkt so schnell wie möglich zu "
|
214 |
"finden."
|
215 |
|
216 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
218 |
msgid "item"
|
219 |
msgstr "Artikel"
|
220 |
|
221 |
-
#: includes/class.yith-wcan-admin.php:
|
222 |
msgctxt "[Admin] Preset table empty message second line"
|
223 |
msgid "But don't worry, here you can create your first one!"
|
224 |
msgstr "Aber keine Sorge, hier können Sie eine erste erstellen!"
|
225 |
|
226 |
-
#: includes/class.yith-wcan-admin.php:
|
227 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
228 |
msgid "Clear Product Filter transients"
|
229 |
msgstr "Produktfilter-Tansients löschen"
|
230 |
|
231 |
-
#: includes/class.yith-wcan-admin.php:
|
232 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
233 |
msgid "Run filter widgets upgrade"
|
234 |
msgstr "Upgrade der Filter-Widgets ausführen"
|
235 |
|
236 |
-
#: includes/class.yith-wcan-admin.php:
|
237 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
238 |
msgid "Clear"
|
239 |
msgstr "Löschen"
|
240 |
|
241 |
-
#: includes/class.yith-wcan-admin.php:
|
242 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
243 |
msgid "Run"
|
244 |
msgstr "Start"
|
245 |
|
246 |
-
#: includes/class.yith-wcan-admin.php:
|
247 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
248 |
msgid ""
|
249 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -255,7 +266,7 @@ msgstr ""
|
|
255 |
"Konfiguration Ihres Produkts geändert haben und die Filter nicht die "
|
256 |
"erwarteten Ergebnisse anzeigen. "
|
257 |
|
258 |
-
#: includes/class.yith-wcan-admin.php:
|
259 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
260 |
msgid ""
|
261 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -270,177 +281,240 @@ msgctxt "[Admin] Filter edit form"
|
|
270 |
msgid "Taxonomy"
|
271 |
msgstr "Taxonomie"
|
272 |
|
273 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
msgctxt "[Admin] Filter edit form"
|
275 |
msgid "Filter name"
|
276 |
msgstr "Name des Filters"
|
277 |
|
278 |
-
#: plugin-options/filter-options.php:
|
279 |
msgctxt "[Admin] Filter edit form"
|
280 |
msgid "Enter a name to identify this filter"
|
281 |
msgstr "Geben Sie einen Namen ein, um diesen Filter zu identifizieren"
|
282 |
|
283 |
-
#: plugin-options/filter-options.php:
|
284 |
msgctxt "[Admin] Filter edit form"
|
285 |
msgid "Filter for"
|
286 |
msgstr "Filtern nach"
|
287 |
|
288 |
-
#: plugin-options/filter-options.php:
|
289 |
msgctxt "[Admin] Filter edit form"
|
290 |
msgid "Select the parameters you wish to filter for"
|
291 |
msgstr "Wählen Sie die Parameter, nach denen Sie filtern möchten"
|
292 |
|
293 |
-
#: plugin-options/filter-options.php:
|
294 |
msgctxt "[Admin] Filter edit form"
|
295 |
msgid "Choose taxonomy"
|
296 |
msgstr "Taxonomie wählen"
|
297 |
|
298 |
-
#: plugin-options/filter-options.php:
|
299 |
msgctxt "[Admin] Filter edit form"
|
300 |
msgid "Select which taxonomy to use for this filter"
|
301 |
msgstr "Wählen Sie, welche Taxonomie für diesen Filter verwendet werden soll"
|
302 |
|
303 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
msgctxt "[Admin] Filter edit form"
|
305 |
msgid "Choose terms"
|
306 |
msgstr "Begriffe wählen"
|
307 |
|
308 |
-
#: plugin-options/filter-options.php:
|
309 |
msgctxt "[Admin] Filter edit form"
|
310 |
msgid "Select which terms to use for filtering"
|
311 |
msgstr ""
|
312 |
"Wählen Sie aus, welche Begriffe für die Filterung verwendet werden sollen"
|
313 |
|
314 |
-
#: plugin-options/filter-options.php:
|
315 |
msgctxt "[Admin] Filter edit form"
|
316 |
msgid "Filter type"
|
317 |
msgstr "Filter-Typ"
|
318 |
|
319 |
-
#: plugin-options/filter-options.php:
|
320 |
msgctxt "[Admin] Filter edit form"
|
321 |
-
msgid "
|
322 |
-
msgstr "
|
323 |
|
324 |
-
#: plugin-options/filter-options.php:
|
|
|
325 |
msgctxt "[Admin] Filter edit form"
|
326 |
-
msgid "
|
327 |
-
msgstr "
|
328 |
|
329 |
-
#: plugin-options/filter-options.php:
|
|
|
330 |
msgctxt "[Admin] Filter edit form"
|
331 |
-
msgid "
|
332 |
-
msgstr "
|
333 |
|
334 |
-
#: plugin-options/filter-options.php:
|
|
|
335 |
msgctxt "[Admin] Filter edit form"
|
336 |
-
msgid "
|
337 |
-
msgstr "
|
338 |
|
339 |
-
#: plugin-options/filter-options.php:
|
340 |
msgctxt "[Admin] Filter edit form"
|
341 |
-
msgid "
|
342 |
-
msgstr "
|
343 |
|
344 |
-
#: plugin-options/filter-options.php:
|
|
|
345 |
msgctxt "[Admin] Filter edit form"
|
346 |
-
msgid "
|
347 |
-
msgstr "Wählen Sie den
|
348 |
|
349 |
-
#: plugin-options/filter-options.php:
|
350 |
msgctxt "[Admin] Filter edit form"
|
351 |
msgid "Columns number"
|
352 |
msgstr "Anzahl der Spalten"
|
353 |
|
354 |
-
#: plugin-options/filter-options.php:
|
355 |
msgctxt "[Admin] Filter edit form"
|
356 |
msgid "Set the number of items per row you want to show for this design"
|
357 |
msgstr ""
|
358 |
"Stellen Sie die Anzahl der Elemente pro Zeile ein, die Sie für dieses Design "
|
359 |
"anzeigen möchten"
|
360 |
|
361 |
-
#: plugin-options/filter-options.php:
|
362 |
msgctxt "[Admin] Filter edit form"
|
363 |
msgid "Customize terms"
|
364 |
msgstr "Begriffe anpassen"
|
365 |
|
366 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
367 |
msgctxt "[Admin] Filter edit form"
|
368 |
msgid "Show hierarchy"
|
369 |
msgstr "Hierarchie anzeigen"
|
370 |
|
371 |
-
#: plugin-options/filter-options.php:
|
372 |
msgctxt "[Admin] Filter edit form"
|
373 |
msgid "No, show all terms in same level"
|
374 |
msgstr "Nein, alle Begriffe auf der gleichen Ebene anzeigen"
|
375 |
|
376 |
-
#: plugin-options/filter-options.php:
|
377 |
msgctxt "[Admin] Filter edit form"
|
378 |
msgid "No, show only parent terms"
|
379 |
msgstr "Nein, nur übergeordnete Begriffe anzeigen"
|
380 |
|
381 |
-
#: plugin-options/filter-options.php:
|
382 |
msgctxt "[Admin] Filter edit form"
|
383 |
msgid "Yes"
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: plugin-options/filter-options.php:
|
387 |
msgctxt "[Admin] Filter edit form"
|
388 |
msgid "Choose how to show terms hierarchy"
|
389 |
msgstr "Wählen Sie, wie die Begriffshierarchie angezeigt werden soll"
|
390 |
|
391 |
-
#: plugin-options/filter-options.php:
|
392 |
msgctxt "[Admin] Filter edit form"
|
393 |
msgid "Allow multiple selection"
|
394 |
msgstr "Mehrfachauswahl zulassen"
|
395 |
|
396 |
-
#: plugin-options/filter-options.php:
|
397 |
msgctxt "[Admin] Filter edit form"
|
398 |
msgid "Enable if the user can select multiple terms when filtering products"
|
399 |
msgstr ""
|
400 |
"Aktivieren, wenn der Benutzer beim Filtern von Produkten mehrere Begriffe "
|
401 |
"auswählen kann"
|
402 |
|
403 |
-
#: plugin-options/filter-options.php:
|
404 |
msgctxt "[Admin] Filter edit form"
|
405 |
msgid "Multiselect relation"
|
406 |
msgstr "Multiselect-Beziehung"
|
407 |
|
408 |
-
#: plugin-options/filter-options.php:
|
409 |
msgctxt "[Admin] Filter edit form"
|
410 |
msgid "Choose how multiple terms selection should behave"
|
411 |
msgstr "Wählen Sie, wie sich die Auswahl mehrerer Begriffe verhalten soll"
|
412 |
|
413 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
414 |
msgctxt "[Admin] Filter edit form, sorting options"
|
415 |
msgid "Default sorting"
|
416 |
msgstr "Standard-Sortierung"
|
417 |
|
418 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
419 |
msgctxt "[Admin] Filter edit form, sorting options"
|
420 |
msgid "Sort by popularity"
|
421 |
msgstr "Nach Beliebtheit sortieren"
|
422 |
|
423 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
424 |
msgctxt "[Admin] Filter edit form, sorting options"
|
425 |
msgid "Sort by average rating"
|
426 |
msgstr "Best bewertete zuerst"
|
427 |
|
428 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
429 |
msgctxt "[Admin] Filter edit form, sorting options"
|
430 |
msgid "Sort by latest"
|
431 |
msgstr "Neueste zuerst"
|
432 |
|
433 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
434 |
msgctxt "[Admin] Filter edit form, sorting options"
|
435 |
msgid "Sort by price: low to high"
|
436 |
msgstr "Sortieren nach Preis: Preis aufsteigend"
|
437 |
|
438 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
439 |
msgctxt "[Admin] Filter edit form, sorting options"
|
440 |
msgid "Sort by price: high to low"
|
441 |
msgstr "Sortieren nach Preis: Preis absteigend"
|
442 |
|
443 |
-
#: includes/class.yith-wcan-filter.php:
|
444 |
msgctxt "[Admin] Default filter title"
|
445 |
msgid "New filter"
|
446 |
msgstr "Neuer Filter"
|
@@ -473,18 +547,23 @@ msgid "Close"
|
|
473 |
msgstr "Schließen"
|
474 |
|
475 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
476 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
477 |
msgid "Show results"
|
478 |
msgstr "Ergebnisse anzeigen"
|
479 |
|
480 |
-
#: includes/class.yith-wcan-frontend.php:
|
481 |
msgctxt ""
|
482 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
483 |
"selection"
|
484 |
msgid "Clear"
|
485 |
msgstr "Löschen"
|
486 |
|
487 |
-
#: includes/class.yith-wcan-frontend.php:
|
488 |
msgctxt ""
|
489 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
490 |
"selection"
|
@@ -497,11 +576,32 @@ msgid "Default preset"
|
|
497 |
msgstr "Standard-Preset"
|
498 |
|
499 |
#. translators: 1. Taxonomy name.
|
500 |
-
#: includes/class.yith-wcan-install.php:
|
501 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
502 |
msgid "Filter by %s"
|
503 |
msgstr "Nach %s filtern"
|
504 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
#: includes/class.yith-wcan-presets.php:95
|
506 |
#: includes/class.yith-wcan-presets.php:100
|
507 |
msgctxt "[Admin] name of presets custom post type"
|
@@ -523,7 +623,7 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
523 |
msgid "Convert widgets in a preset"
|
524 |
msgstr "Widgets in eine Preset konvertieren"
|
525 |
|
526 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
527 |
msgctxt ""
|
528 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
529 |
"not exist"
|
@@ -531,7 +631,7 @@ msgid "Invalid preset."
|
|
531 |
msgstr "Ungültige Voreinstellung."
|
532 |
|
533 |
#. translators: 1. Title of original preset.
|
534 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
535 |
msgctxt "[ADMIN] Title of the cloned preset"
|
536 |
msgid "%s - Copy"
|
537 |
msgstr "%s - Kopieren"
|
@@ -746,7 +846,7 @@ msgid "Reset all filters set by YITH WooCommerce AJAX Product Filter"
|
|
746 |
msgstr ""
|
747 |
"Alle von YITH WooCommerce AJAX Product Filter gesetzten Filter zurücksetzen "
|
748 |
|
749 |
-
#: plugin-options/filter-options.php:
|
750 |
#, fuzzy
|
751 |
msgctxt ""
|
752 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -755,7 +855,7 @@ msgstr ""
|
|
755 |
"UND - Die Ergebnisse müssen mit allen ausgewählten Begriffen gleichzeitig "
|
756 |
"übereinstimmen"
|
757 |
|
758 |
-
#: plugin-options/filter-options.php:
|
759 |
#, fuzzy
|
760 |
msgctxt ""
|
761 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -1185,37 +1285,27 @@ msgid ""
|
|
1185 |
"easier to share)"
|
1186 |
msgstr ""
|
1187 |
|
1188 |
-
#: templates/admin/preset-edit.php:
|
1189 |
msgctxt "[Admin] Back link in new preset page"
|
1190 |
msgid "< back to preset list"
|
1191 |
msgstr "< zurück zur Preset-Liste"
|
1192 |
|
1193 |
-
#: templates/admin/preset-edit.php:
|
1194 |
msgctxt "[ADMIN] Title for new preset page"
|
1195 |
msgid "Edit filter preset"
|
1196 |
msgstr "Filter-Preset bearbeiten"
|
1197 |
|
1198 |
-
#: templates/admin/preset-edit.php:
|
1199 |
msgctxt "[ADMIN] Title for new preset page"
|
1200 |
msgid "Add new filter preset"
|
1201 |
msgstr "Neues Filter-Preset hinzufügen"
|
1202 |
|
1203 |
-
#: templates/admin/preset-edit.php:
|
1204 |
-
msgctxt "[
|
1205 |
-
msgid "Preset
|
1206 |
-
msgstr "
|
1207 |
-
|
1208 |
-
#: templates/admin/preset-edit.php:54
|
1209 |
-
msgctxt "[Admin] Label in new preset page"
|
1210 |
-
msgid "Enter a name to identify this filter preset"
|
1211 |
-
msgstr "Geben Sie einen Namen ein, um dieses Filter-Preset zu identifizieren"
|
1212 |
-
|
1213 |
-
#: templates/admin/preset-filters.php:20
|
1214 |
-
msgctxt "[Admin] Label in new preset page"
|
1215 |
-
msgid "Filters of this preset"
|
1216 |
-
msgstr "Filter in diesem Preset"
|
1217 |
|
1218 |
-
#: templates/admin/preset-edit.php:
|
1219 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1220 |
msgid "Save preset"
|
1221 |
msgstr "Preset speichern"
|
@@ -1532,10 +1622,6 @@ msgstr "Filter zurücksetzen"
|
|
1532 |
#~ msgstr ""
|
1533 |
#~ "Stellen Sie den Wert für jedes Inkrement des Preisschiebereglers ein"
|
1534 |
|
1535 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1536 |
-
#~ msgid "Order options"
|
1537 |
-
#~ msgstr "Sortierungsoptionen"
|
1538 |
-
|
1539 |
#~ msgctxt "[Admin] Filter edit form"
|
1540 |
#~ msgid "Select sorting options to show"
|
1541 |
#~ msgstr "Sortieroptionen für die Anzeige auswählen"
|
@@ -1622,10 +1708,6 @@ msgstr "Filter zurücksetzen"
|
|
1622 |
#~ msgid "Select the default order for terms of this filter"
|
1623 |
#~ msgstr "Wählen Sie die Standardreihenfolge für Begriffe dieses Filters"
|
1624 |
|
1625 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1626 |
-
#~ msgid "Show count of items"
|
1627 |
-
#~ msgstr "Anzahl der Elemente anzeigen"
|
1628 |
-
|
1629 |
#~ msgctxt "[Admin] Filter edit form"
|
1630 |
#~ msgid ""
|
1631 |
#~ "Enable if you want to show how many items are available for each term"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
9 |
"PO-Revision-Date: 2021-03-02 11:03+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
16 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
"X-Generator: Poedit 2.4.2\n"
|
18 |
|
19 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
20 |
msgid "Draft Preset"
|
21 |
msgstr "Preset Entwurf"
|
22 |
|
107 |
msgid "Button Label"
|
108 |
msgstr "Button-Beschriftung"
|
109 |
|
110 |
+
#: init.php:148
|
111 |
msgid ""
|
112 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
113 |
"while you are using the premium one."
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: init.php:166
|
117 |
#, fuzzy
|
118 |
msgid ""
|
119 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
157 |
"Sind Sie sicher, dass Sie fortfahren möchten? Dieser Vorgang wird %s "
|
158 |
"Elemente hinzufügen"
|
159 |
|
160 |
+
#: includes/class.yith-wcan-admin.php:111
|
161 |
+
msgctxt "[Admin] Error message"
|
162 |
+
msgid "\"Filter title\" is a required field"
|
163 |
+
msgstr ""
|
164 |
+
|
165 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
166 |
msgctxt "[Admin] Message shown when filter has empty title"
|
167 |
msgid "< no title >"
|
168 |
msgstr "< Kein Titel >"
|
169 |
|
170 |
+
#: includes/class.yith-wcan-admin.php:115
|
171 |
msgctxt "[Admin] Media library title, when selecting images"
|
172 |
msgid "Select media you want to use"
|
173 |
msgstr "Die zu verwendenden Medien auswählen"
|
174 |
|
175 |
+
#: includes/class.yith-wcan-admin.php:116
|
176 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
177 |
msgid "Use this media"
|
178 |
msgstr "Dieses Medium verwenden"
|
179 |
|
180 |
+
#: includes/class.yith-wcan-admin.php:184
|
181 |
msgctxt "[Admin] tab name"
|
182 |
msgid "Filter presets"
|
183 |
msgstr "Filter-Presets"
|
184 |
|
185 |
+
#: includes/class.yith-wcan-admin.php:185
|
186 |
msgctxt "[Admin] tab name"
|
187 |
msgid "General settings"
|
188 |
msgstr "Allgemeine Einstellungen"
|
189 |
|
190 |
+
#: includes/class.yith-wcan-admin.php:186
|
191 |
#, fuzzy
|
192 |
msgctxt "[Admin] tab name"
|
193 |
msgid "SEO"
|
194 |
msgstr "SEO"
|
195 |
|
196 |
+
#: includes/class.yith-wcan-admin.php:187
|
197 |
msgctxt "[Admin] tab name"
|
198 |
msgid "Premium Version"
|
199 |
msgstr "Premium-Version"
|
200 |
|
201 |
+
#: includes/class.yith-wcan-admin.php:191
|
202 |
msgctxt "[Admin] tab name"
|
203 |
msgid "Legacy"
|
204 |
msgstr "Legacy"
|
205 |
|
206 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
207 |
msgctxt "[Admin] Menu title"
|
208 |
msgid "Ajax Product Filter"
|
209 |
msgstr "AJAX Produkt-Filter "
|
210 |
|
211 |
+
#: includes/class.yith-wcan-admin.php:199
|
212 |
msgctxt "[Admin] Plugin description"
|
213 |
msgid ""
|
214 |
"It allows your users to find the product they are looking for as quickly as "
|
217 |
"Ermöglicht Ihren Benutzern, das gesuchte Produkt so schnell wie möglich zu "
|
218 |
"finden."
|
219 |
|
220 |
+
#: includes/class.yith-wcan-admin.php:211
|
221 |
+
msgctxt "[HELP TAB] Video title"
|
222 |
+
msgid ""
|
223 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
224 |
+
"the shop page:</b>"
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: includes/class.yith-wcan-admin.php:329
|
228 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
229 |
msgid "item"
|
230 |
msgstr "Artikel"
|
231 |
|
232 |
+
#: includes/class.yith-wcan-admin.php:330
|
233 |
msgctxt "[Admin] Preset table empty message second line"
|
234 |
msgid "But don't worry, here you can create your first one!"
|
235 |
msgstr "Aber keine Sorge, hier können Sie eine erste erstellen!"
|
236 |
|
237 |
+
#: includes/class.yith-wcan-admin.php:478
|
238 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
239 |
msgid "Clear Product Filter transients"
|
240 |
msgstr "Produktfilter-Tansients löschen"
|
241 |
|
242 |
+
#: includes/class.yith-wcan-admin.php:484
|
243 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
244 |
msgid "Run filter widgets upgrade"
|
245 |
msgstr "Upgrade der Filter-Widgets ausführen"
|
246 |
|
247 |
+
#: includes/class.yith-wcan-admin.php:479
|
248 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
249 |
msgid "Clear"
|
250 |
msgstr "Löschen"
|
251 |
|
252 |
+
#: includes/class.yith-wcan-admin.php:485
|
253 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
254 |
msgid "Run"
|
255 |
msgstr "Start"
|
256 |
|
257 |
+
#: includes/class.yith-wcan-admin.php:480
|
258 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
259 |
msgid ""
|
260 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
266 |
"Konfiguration Ihres Produkts geändert haben und die Filter nicht die "
|
267 |
"erwarteten Ergebnisse anzeigen. "
|
268 |
|
269 |
+
#: includes/class.yith-wcan-admin.php:486
|
270 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
271 |
msgid ""
|
272 |
"This will create a preset for any sidebar of your shop containing filter "
|
281 |
msgid "Taxonomy"
|
282 |
msgstr "Taxonomie"
|
283 |
|
284 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
285 |
+
msgctxt "[Admin] Filter edit form"
|
286 |
+
msgid "Checkbox"
|
287 |
+
msgstr "Checkbox"
|
288 |
+
|
289 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
290 |
+
msgctxt "[Admin] Filter edit form"
|
291 |
+
msgid "Select"
|
292 |
+
msgstr "Auswahl"
|
293 |
+
|
294 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
295 |
+
msgctxt "[Admin] Filter edit form"
|
296 |
+
msgid "Text"
|
297 |
+
msgstr "Text"
|
298 |
+
|
299 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
300 |
+
msgctxt "[Admin] Filter edit form"
|
301 |
+
msgid "Color Swatches"
|
302 |
+
msgstr "Farbmuster"
|
303 |
+
|
304 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
305 |
+
msgctxt "[Admin] Filter edit form"
|
306 |
+
msgid "Label"
|
307 |
+
msgstr "Label"
|
308 |
+
|
309 |
+
#: plugin-options/filter-options.php:32
|
310 |
msgctxt "[Admin] Filter edit form"
|
311 |
msgid "Filter name"
|
312 |
msgstr "Name des Filters"
|
313 |
|
314 |
+
#: plugin-options/filter-options.php:35
|
315 |
msgctxt "[Admin] Filter edit form"
|
316 |
msgid "Enter a name to identify this filter"
|
317 |
msgstr "Geben Sie einen Namen ein, um diesen Filter zu identifizieren"
|
318 |
|
319 |
+
#: plugin-options/filter-options.php:41
|
320 |
msgctxt "[Admin] Filter edit form"
|
321 |
msgid "Filter for"
|
322 |
msgstr "Filtern nach"
|
323 |
|
324 |
+
#: plugin-options/filter-options.php:45
|
325 |
msgctxt "[Admin] Filter edit form"
|
326 |
msgid "Select the parameters you wish to filter for"
|
327 |
msgstr "Wählen Sie die Parameter, nach denen Sie filtern möchten"
|
328 |
|
329 |
+
#: plugin-options/filter-options.php:51
|
330 |
msgctxt "[Admin] Filter edit form"
|
331 |
msgid "Choose taxonomy"
|
332 |
msgstr "Taxonomie wählen"
|
333 |
|
334 |
+
#: plugin-options/filter-options.php:55
|
335 |
msgctxt "[Admin] Filter edit form"
|
336 |
msgid "Select which taxonomy to use for this filter"
|
337 |
msgstr "Wählen Sie, welche Taxonomie für diesen Filter verwendet werden soll"
|
338 |
|
339 |
+
#: plugin-options/filter-options.php:60
|
340 |
+
msgctxt "[Admin] Filter edit form"
|
341 |
+
msgid "Auto-populate with all terms"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: plugin-options/filter-options.php:62
|
345 |
+
msgctxt "[Admin] Filter edit form"
|
346 |
+
msgid ""
|
347 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
348 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
349 |
+
"this option, all terms created in the future will be added to this filter as "
|
350 |
+
"well.</span>"
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: plugin-options/filter-options.php:71
|
354 |
msgctxt "[Admin] Filter edit form"
|
355 |
msgid "Choose terms"
|
356 |
msgstr "Begriffe wählen"
|
357 |
|
358 |
+
#: plugin-options/filter-options.php:76
|
359 |
msgctxt "[Admin] Filter edit form"
|
360 |
msgid "Select which terms to use for filtering"
|
361 |
msgstr ""
|
362 |
"Wählen Sie aus, welche Begriffe für die Filterung verwendet werden sollen"
|
363 |
|
364 |
+
#: plugin-options/filter-options.php:80
|
365 |
msgctxt "[Admin] Filter edit form"
|
366 |
msgid "Filter type"
|
367 |
msgstr "Filter-Typ"
|
368 |
|
369 |
+
#: plugin-options/filter-options.php:84
|
370 |
msgctxt "[Admin] Filter edit form"
|
371 |
+
msgid "Select the filter type for this filter"
|
372 |
+
msgstr "Wählen Sie den Filtertyp für diesen Filter"
|
373 |
|
374 |
+
#: plugin-options/filter-options.php:88
|
375 |
+
#, fuzzy
|
376 |
msgctxt "[Admin] Filter edit form"
|
377 |
+
msgid "Labels"
|
378 |
+
msgstr "Label"
|
379 |
|
380 |
+
#: plugin-options/filter-options.php:91
|
381 |
+
#, fuzzy
|
382 |
msgctxt "[Admin] Filter edit form"
|
383 |
+
msgid "Show below"
|
384 |
+
msgstr "Ergebnisse anzeigen"
|
385 |
|
386 |
+
#: plugin-options/filter-options.php:92
|
387 |
+
#, fuzzy
|
388 |
msgctxt "[Admin] Filter edit form"
|
389 |
+
msgid "Show on the right"
|
390 |
+
msgstr "Anzahl der Elemente anzeigen"
|
391 |
|
392 |
+
#: plugin-options/filter-options.php:93
|
393 |
msgctxt "[Admin] Filter edit form"
|
394 |
+
msgid "Hide"
|
395 |
+
msgstr ""
|
396 |
|
397 |
+
#: plugin-options/filter-options.php:95
|
398 |
+
#, fuzzy
|
399 |
msgctxt "[Admin] Filter edit form"
|
400 |
+
msgid "Choose if and where to show the label inside your filter"
|
401 |
+
msgstr "Wählen Sie den Stil des Filters innerhalb von Widgets "
|
402 |
|
403 |
+
#: plugin-options/filter-options.php:99
|
404 |
msgctxt "[Admin] Filter edit form"
|
405 |
msgid "Columns number"
|
406 |
msgstr "Anzahl der Spalten"
|
407 |
|
408 |
+
#: plugin-options/filter-options.php:104
|
409 |
msgctxt "[Admin] Filter edit form"
|
410 |
msgid "Set the number of items per row you want to show for this design"
|
411 |
msgstr ""
|
412 |
"Stellen Sie die Anzahl der Elemente pro Zeile ein, die Sie für dieses Design "
|
413 |
"anzeigen möchten"
|
414 |
|
415 |
+
#: plugin-options/filter-options.php:108
|
416 |
msgctxt "[Admin] Filter edit form"
|
417 |
msgid "Customize terms"
|
418 |
msgstr "Begriffe anpassen"
|
419 |
|
420 |
+
#: plugin-options/filter-options.php:111
|
421 |
+
msgctxt "[Admin] Filter edit form"
|
422 |
+
msgid ""
|
423 |
+
"Configure your terms individually; system will otherwise use default labels/"
|
424 |
+
"images for terms.\n"
|
425 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
426 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
427 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, just "
|
428 |
+
"enable this option and use boxes below.</span>\n"
|
429 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
430 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
431 |
+
"this option and use the boxes below</span>"
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: plugin-options/filter-options.php:121
|
435 |
+
#, fuzzy
|
436 |
+
msgctxt "[Admin] Filter edit form"
|
437 |
+
msgid "Terms options"
|
438 |
+
msgstr "Sortierungsoptionen"
|
439 |
+
|
440 |
+
#: plugin-options/filter-options.php:127
|
441 |
msgctxt "[Admin] Filter edit form"
|
442 |
msgid "Show hierarchy"
|
443 |
msgstr "Hierarchie anzeigen"
|
444 |
|
445 |
+
#: plugin-options/filter-options.php:130
|
446 |
msgctxt "[Admin] Filter edit form"
|
447 |
msgid "No, show all terms in same level"
|
448 |
msgstr "Nein, alle Begriffe auf der gleichen Ebene anzeigen"
|
449 |
|
450 |
+
#: plugin-options/filter-options.php:131
|
451 |
msgctxt "[Admin] Filter edit form"
|
452 |
msgid "No, show only parent terms"
|
453 |
msgstr "Nein, nur übergeordnete Begriffe anzeigen"
|
454 |
|
455 |
+
#: plugin-options/filter-options.php:132
|
456 |
msgctxt "[Admin] Filter edit form"
|
457 |
msgid "Yes"
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: plugin-options/filter-options.php:134
|
461 |
msgctxt "[Admin] Filter edit form"
|
462 |
msgid "Choose how to show terms hierarchy"
|
463 |
msgstr "Wählen Sie, wie die Begriffshierarchie angezeigt werden soll"
|
464 |
|
465 |
+
#: plugin-options/filter-options.php:138
|
466 |
msgctxt "[Admin] Filter edit form"
|
467 |
msgid "Allow multiple selection"
|
468 |
msgstr "Mehrfachauswahl zulassen"
|
469 |
|
470 |
+
#: plugin-options/filter-options.php:140
|
471 |
msgctxt "[Admin] Filter edit form"
|
472 |
msgid "Enable if the user can select multiple terms when filtering products"
|
473 |
msgstr ""
|
474 |
"Aktivieren, wenn der Benutzer beim Filtern von Produkten mehrere Begriffe "
|
475 |
"auswählen kann"
|
476 |
|
477 |
+
#: plugin-options/filter-options.php:144
|
478 |
msgctxt "[Admin] Filter edit form"
|
479 |
msgid "Multiselect relation"
|
480 |
msgstr "Multiselect-Beziehung"
|
481 |
|
482 |
+
#: plugin-options/filter-options.php:150
|
483 |
msgctxt "[Admin] Filter edit form"
|
484 |
msgid "Choose how multiple terms selection should behave"
|
485 |
msgstr "Wählen Sie, wie sich die Auswahl mehrerer Begriffe verhalten soll"
|
486 |
|
487 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
488 |
msgctxt "[Admin] Filter edit form, sorting options"
|
489 |
msgid "Default sorting"
|
490 |
msgstr "Standard-Sortierung"
|
491 |
|
492 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
493 |
msgctxt "[Admin] Filter edit form, sorting options"
|
494 |
msgid "Sort by popularity"
|
495 |
msgstr "Nach Beliebtheit sortieren"
|
496 |
|
497 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
498 |
msgctxt "[Admin] Filter edit form, sorting options"
|
499 |
msgid "Sort by average rating"
|
500 |
msgstr "Best bewertete zuerst"
|
501 |
|
502 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
503 |
msgctxt "[Admin] Filter edit form, sorting options"
|
504 |
msgid "Sort by latest"
|
505 |
msgstr "Neueste zuerst"
|
506 |
|
507 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
508 |
msgctxt "[Admin] Filter edit form, sorting options"
|
509 |
msgid "Sort by price: low to high"
|
510 |
msgstr "Sortieren nach Preis: Preis aufsteigend"
|
511 |
|
512 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
513 |
msgctxt "[Admin] Filter edit form, sorting options"
|
514 |
msgid "Sort by price: high to low"
|
515 |
msgstr "Sortieren nach Preis: Preis absteigend"
|
516 |
|
517 |
+
#: includes/class.yith-wcan-filter.php:116
|
518 |
msgctxt "[Admin] Default filter title"
|
519 |
msgid "New filter"
|
520 |
msgstr "Neuer Filter"
|
547 |
msgstr "Schließen"
|
548 |
|
549 |
#: includes/class.yith-wcan-frontend.php:582
|
550 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
551 |
+
msgid "Save"
|
552 |
+
msgstr ""
|
553 |
+
|
554 |
+
#: includes/class.yith-wcan-frontend.php:583
|
555 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
556 |
msgid "Show results"
|
557 |
msgstr "Ergebnisse anzeigen"
|
558 |
|
559 |
+
#: includes/class.yith-wcan-frontend.php:584
|
560 |
msgctxt ""
|
561 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
562 |
"selection"
|
563 |
msgid "Clear"
|
564 |
msgstr "Löschen"
|
565 |
|
566 |
+
#: includes/class.yith-wcan-frontend.php:585
|
567 |
msgctxt ""
|
568 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
569 |
"selection"
|
576 |
msgstr "Standard-Preset"
|
577 |
|
578 |
#. translators: 1. Taxonomy name.
|
579 |
+
#: includes/class.yith-wcan-install.php:285
|
580 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
581 |
msgid "Filter by %s"
|
582 |
msgstr "Nach %s filtern"
|
583 |
|
584 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
585 |
+
#, fuzzy
|
586 |
+
msgctxt "[Admin] Label in new preset page"
|
587 |
+
msgid "Default"
|
588 |
+
msgstr "Standard "
|
589 |
+
|
590 |
+
#: plugin-options/preset-options.php:14
|
591 |
+
msgctxt "[Admin] Label in new preset page"
|
592 |
+
msgid "Preset name"
|
593 |
+
msgstr "Preset-Name"
|
594 |
+
|
595 |
+
#: plugin-options/preset-options.php:16
|
596 |
+
msgctxt "[Admin] Label in new preset page"
|
597 |
+
msgid "Enter a name to identify this filter preset"
|
598 |
+
msgstr "Geben Sie einen Namen ein, um dieses Filter-Preset zu identifizieren"
|
599 |
+
|
600 |
+
#: templates/admin/preset-filters.php:20
|
601 |
+
msgctxt "[Admin] Label in new preset page"
|
602 |
+
msgid "Filters of this preset"
|
603 |
+
msgstr "Filter in diesem Preset"
|
604 |
+
|
605 |
#: includes/class.yith-wcan-presets.php:95
|
606 |
#: includes/class.yith-wcan-presets.php:100
|
607 |
msgctxt "[Admin] name of presets custom post type"
|
623 |
msgid "Convert widgets in a preset"
|
624 |
msgstr "Widgets in eine Preset konvertieren"
|
625 |
|
626 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
627 |
msgctxt ""
|
628 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
629 |
"not exist"
|
631 |
msgstr "Ungültige Voreinstellung."
|
632 |
|
633 |
#. translators: 1. Title of original preset.
|
634 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
635 |
msgctxt "[ADMIN] Title of the cloned preset"
|
636 |
msgid "%s - Copy"
|
637 |
msgstr "%s - Kopieren"
|
846 |
msgstr ""
|
847 |
"Alle von YITH WooCommerce AJAX Product Filter gesetzten Filter zurücksetzen "
|
848 |
|
849 |
+
#: plugin-options/filter-options.php:147
|
850 |
#, fuzzy
|
851 |
msgctxt ""
|
852 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
855 |
"UND - Die Ergebnisse müssen mit allen ausgewählten Begriffen gleichzeitig "
|
856 |
"übereinstimmen"
|
857 |
|
858 |
+
#: plugin-options/filter-options.php:148
|
859 |
#, fuzzy
|
860 |
msgctxt ""
|
861 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
1285 |
"easier to share)"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
+
#: templates/admin/preset-edit.php:29
|
1289 |
msgctxt "[Admin] Back link in new preset page"
|
1290 |
msgid "< back to preset list"
|
1291 |
msgstr "< zurück zur Preset-Liste"
|
1292 |
|
1293 |
+
#: templates/admin/preset-edit.php:36
|
1294 |
msgctxt "[ADMIN] Title for new preset page"
|
1295 |
msgid "Edit filter preset"
|
1296 |
msgstr "Filter-Preset bearbeiten"
|
1297 |
|
1298 |
+
#: templates/admin/preset-edit.php:38
|
1299 |
msgctxt "[ADMIN] Title for new preset page"
|
1300 |
msgid "Add new filter preset"
|
1301 |
msgstr "Neues Filter-Preset hinzufügen"
|
1302 |
|
1303 |
+
#: templates/admin/preset-edit.php:45
|
1304 |
+
msgctxt "[ADMIN] Preset save message"
|
1305 |
+
msgid "Preset saved correctly"
|
1306 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1307 |
|
1308 |
+
#: templates/admin/preset-edit.php:90
|
1309 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1310 |
msgid "Save preset"
|
1311 |
msgstr "Preset speichern"
|
1622 |
#~ msgstr ""
|
1623 |
#~ "Stellen Sie den Wert für jedes Inkrement des Preisschiebereglers ein"
|
1624 |
|
|
|
|
|
|
|
|
|
1625 |
#~ msgctxt "[Admin] Filter edit form"
|
1626 |
#~ msgid "Select sorting options to show"
|
1627 |
#~ msgstr "Sortieroptionen für die Anzeige auswählen"
|
1708 |
#~ msgid "Select the default order for terms of this filter"
|
1709 |
#~ msgstr "Wählen Sie die Standardreihenfolge für Begriffe dieses Filters"
|
1710 |
|
|
|
|
|
|
|
|
|
1711 |
#~ msgctxt "[Admin] Filter edit form"
|
1712 |
#~ msgid ""
|
1713 |
#~ "Enable if you want to show how many items are available for each term"
|
Binary file
|
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2021-
|
9 |
"PO-Revision-Date: 2021-02-12 13:32:43+0000\n"
|
10 |
"Language: el_GR\n"
|
11 |
"MIME-Version: 1.0\n"
|
@@ -14,7 +14,7 @@ msgstr ""
|
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
18 |
msgid "Draft Preset"
|
19 |
msgstr "Προρύθμιση Πρόχειρου"
|
20 |
|
@@ -105,13 +105,13 @@ msgstr "Επαναφορά Όλων των Φίλτρων"
|
|
105 |
msgid "Button Label"
|
106 |
msgstr "Επιγραφή Κουμπιού"
|
107 |
|
108 |
-
#: init.php:
|
109 |
msgid ""
|
110 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
111 |
"while you are using the premium one."
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: init.php:
|
115 |
#, fuzzy
|
116 |
msgid ""
|
117 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
@@ -156,54 +156,58 @@ msgstr ""
|
|
156 |
"Είστε σίγουροι ότι θέλετε να προχωρήσετε; Αυτή η διαδικασία θα προσθέσει %s "
|
157 |
"αντικείμενα"
|
158 |
|
159 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
160 |
msgctxt "[Admin] Message shown when filter has empty title"
|
161 |
msgid "< no title >"
|
162 |
msgstr "< χωρίς τίτλο >"
|
163 |
|
164 |
-
#: includes/class.yith-wcan-admin.php:
|
165 |
msgctxt "[Admin] Media library title, when selecting images"
|
166 |
msgid "Select media you want to use"
|
167 |
msgstr "Επιλέξτε τα πολυμέσα που θέλετε να χρησιμοποιήσετε"
|
168 |
|
169 |
-
#: includes/class.yith-wcan-admin.php:
|
170 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
171 |
msgid "Use this media"
|
172 |
msgstr "Χρησιμοποιήστε αυτά τα πολυμέσα"
|
173 |
|
174 |
-
#: includes/class.yith-wcan-admin.php:
|
175 |
msgctxt "[Admin] tab name"
|
176 |
msgid "Filter presets"
|
177 |
msgstr "Προρυθμίσεις φίλτρου"
|
178 |
|
179 |
-
#: includes/class.yith-wcan-admin.php:
|
180 |
msgctxt "[Admin] tab name"
|
181 |
msgid "General settings"
|
182 |
msgstr "Γενικές ρυθμίσεις"
|
183 |
|
184 |
-
#: includes/class.yith-wcan-admin.php:
|
185 |
#, fuzzy
|
186 |
msgctxt "[Admin] tab name"
|
187 |
msgid "SEO"
|
188 |
msgstr "SEO"
|
189 |
|
190 |
-
#: includes/class.yith-wcan-admin.php:
|
191 |
msgctxt "[Admin] tab name"
|
192 |
msgid "Premium Version"
|
193 |
msgstr "Premium Έκδοση"
|
194 |
|
195 |
-
#: includes/class.yith-wcan-admin.php:
|
196 |
msgctxt "[Admin] tab name"
|
197 |
msgid "Legacy"
|
198 |
msgstr "Σύστημα κληρονομιάς"
|
199 |
|
200 |
-
#: includes/class.yith-wcan-admin.php:
|
201 |
-
#: includes/class.yith-wcan-admin.php:195
|
202 |
msgctxt "[Admin] Menu title"
|
203 |
msgid "Ajax Product Filter"
|
204 |
msgstr "Ajax Product Filter"
|
205 |
|
206 |
-
#: includes/class.yith-wcan-admin.php:
|
207 |
msgctxt "[Admin] Plugin description"
|
208 |
msgid ""
|
209 |
"It allows your users to find the product they are looking for as quickly as "
|
@@ -212,37 +216,44 @@ msgstr ""
|
|
212 |
"Επιτρέπει στους χρήστες σας να βρουν το προϊόν που επιθυμούν το συντομότερο "
|
213 |
"δυνατό."
|
214 |
|
215 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
217 |
msgid "item"
|
218 |
msgstr "αντικείμενο"
|
219 |
|
220 |
-
#: includes/class.yith-wcan-admin.php:
|
221 |
msgctxt "[Admin] Preset table empty message second line"
|
222 |
msgid "But don't worry, here you can create your first one!"
|
223 |
msgstr "Μην ανησυχείτε, εδώ μπορείτε να δημιουργήσετε το πρώτο!"
|
224 |
|
225 |
-
#: includes/class.yith-wcan-admin.php:
|
226 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
227 |
msgid "Clear Product Filter transients"
|
228 |
msgstr "Καθαρισμός μεταβάσεων φίλτρου προϊόντος"
|
229 |
|
230 |
-
#: includes/class.yith-wcan-admin.php:
|
231 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
232 |
msgid "Run filter widgets upgrade"
|
233 |
msgstr "Εκτέλεση αναβάθμισης μικροεφαρμογών φίλτρου"
|
234 |
|
235 |
-
#: includes/class.yith-wcan-admin.php:
|
236 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
237 |
msgid "Clear"
|
238 |
msgstr "Καθαρισμός"
|
239 |
|
240 |
-
#: includes/class.yith-wcan-admin.php:
|
241 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
242 |
msgid "Run"
|
243 |
msgstr "Εκτέλεση"
|
244 |
|
245 |
-
#: includes/class.yith-wcan-admin.php:
|
246 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
247 |
msgid ""
|
248 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -254,7 +265,7 @@ msgstr ""
|
|
254 |
"κατα την αλλαγή της ρύθμισης του προϊόντος σας, τα φίλτρα δεν εμφανίζουν τα "
|
255 |
"αποτελέσματα που περιμένετε. "
|
256 |
|
257 |
-
#: includes/class.yith-wcan-admin.php:
|
258 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
259 |
msgid ""
|
260 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -269,177 +280,240 @@ msgctxt "[Admin] Filter edit form"
|
|
269 |
msgid "Taxonomy"
|
270 |
msgstr "Ταξινομία"
|
271 |
|
272 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
msgctxt "[Admin] Filter edit form"
|
274 |
msgid "Filter name"
|
275 |
msgstr "Όνομα φίλτρου"
|
276 |
|
277 |
-
#: plugin-options/filter-options.php:
|
278 |
msgctxt "[Admin] Filter edit form"
|
279 |
msgid "Enter a name to identify this filter"
|
280 |
msgstr "Εισάγετε όνομα για να αναγνωρίζετε αυτό το φίλτρο"
|
281 |
|
282 |
-
#: plugin-options/filter-options.php:
|
283 |
msgctxt "[Admin] Filter edit form"
|
284 |
msgid "Filter for"
|
285 |
msgstr "Ταξινόμηση για"
|
286 |
|
287 |
-
#: plugin-options/filter-options.php:
|
288 |
msgctxt "[Admin] Filter edit form"
|
289 |
msgid "Select the parameters you wish to filter for"
|
290 |
msgstr "Επιλέξτε τις παραμέτρους που θέλετε να ταξινομήσετε"
|
291 |
|
292 |
-
#: plugin-options/filter-options.php:
|
293 |
msgctxt "[Admin] Filter edit form"
|
294 |
msgid "Choose taxonomy"
|
295 |
msgstr "Επιλογή ταξινομίας"
|
296 |
|
297 |
-
#: plugin-options/filter-options.php:
|
298 |
msgctxt "[Admin] Filter edit form"
|
299 |
msgid "Select which taxonomy to use for this filter"
|
300 |
msgstr ""
|
301 |
"Επιλέξτε την ταξινομία που θέλετε να χρησιμοποιήσετε για αυτό το φίλτρο"
|
302 |
|
303 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
msgctxt "[Admin] Filter edit form"
|
305 |
msgid "Choose terms"
|
306 |
msgstr "Επιλογή όρων"
|
307 |
|
308 |
-
#: plugin-options/filter-options.php:
|
309 |
msgctxt "[Admin] Filter edit form"
|
310 |
msgid "Select which terms to use for filtering"
|
311 |
msgstr "Επιλέξτε ποιους όρους να χρησιμοποιήσετε για την ταξινόμηση"
|
312 |
|
313 |
-
#: plugin-options/filter-options.php:
|
314 |
msgctxt "[Admin] Filter edit form"
|
315 |
msgid "Filter type"
|
316 |
msgstr "Τύπος φίλτρου"
|
317 |
|
318 |
-
#: plugin-options/filter-options.php:
|
319 |
msgctxt "[Admin] Filter edit form"
|
320 |
-
msgid "
|
321 |
-
msgstr "
|
322 |
|
323 |
-
#: plugin-options/filter-options.php:
|
|
|
324 |
msgctxt "[Admin] Filter edit form"
|
325 |
-
msgid "
|
326 |
-
msgstr "
|
327 |
|
328 |
-
#: plugin-options/filter-options.php:
|
|
|
329 |
msgctxt "[Admin] Filter edit form"
|
330 |
-
msgid "
|
331 |
-
msgstr "
|
332 |
|
333 |
-
#: plugin-options/filter-options.php:
|
|
|
334 |
msgctxt "[Admin] Filter edit form"
|
335 |
-
msgid "
|
336 |
-
msgstr "
|
337 |
|
338 |
-
#: plugin-options/filter-options.php:
|
339 |
msgctxt "[Admin] Filter edit form"
|
340 |
-
msgid "
|
341 |
-
msgstr "
|
342 |
|
343 |
-
#: plugin-options/filter-options.php:
|
|
|
344 |
msgctxt "[Admin] Filter edit form"
|
345 |
-
msgid "
|
346 |
-
msgstr "Επιλέξτε
|
347 |
|
348 |
-
#: plugin-options/filter-options.php:
|
349 |
msgctxt "[Admin] Filter edit form"
|
350 |
msgid "Columns number"
|
351 |
msgstr "Αριθμός στηλών"
|
352 |
|
353 |
-
#: plugin-options/filter-options.php:
|
354 |
msgctxt "[Admin] Filter edit form"
|
355 |
msgid "Set the number of items per row you want to show for this design"
|
356 |
msgstr ""
|
357 |
"Ορίστε τον αριθμό αντικειμένων που θέλετε να εμφανίζετε ανά σειρά για αυτό "
|
358 |
"το σχέδιο"
|
359 |
|
360 |
-
#: plugin-options/filter-options.php:
|
361 |
msgctxt "[Admin] Filter edit form"
|
362 |
msgid "Customize terms"
|
363 |
msgstr "Προσαρμογή όρων"
|
364 |
|
365 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
msgctxt "[Admin] Filter edit form"
|
367 |
msgid "Show hierarchy"
|
368 |
msgstr "Εμφάνιση ιεραρχίας"
|
369 |
|
370 |
-
#: plugin-options/filter-options.php:
|
371 |
msgctxt "[Admin] Filter edit form"
|
372 |
msgid "No, show all terms in same level"
|
373 |
msgstr "Όχι, να εμφανίζονται όλοι οι όροι στο ίδιο επίπεδο"
|
374 |
|
375 |
-
#: plugin-options/filter-options.php:
|
376 |
msgctxt "[Admin] Filter edit form"
|
377 |
msgid "No, show only parent terms"
|
378 |
msgstr "Όχι, να εμφανίζονται μόνο γονικοί όροι"
|
379 |
|
380 |
-
#: plugin-options/filter-options.php:
|
381 |
msgctxt "[Admin] Filter edit form"
|
382 |
msgid "Yes"
|
383 |
msgstr ""
|
384 |
|
385 |
-
#: plugin-options/filter-options.php:
|
386 |
msgctxt "[Admin] Filter edit form"
|
387 |
msgid "Choose how to show terms hierarchy"
|
388 |
msgstr "Επιλέξτε πώς να εμφανίζεται η ιεραρχία όρων"
|
389 |
|
390 |
-
#: plugin-options/filter-options.php:
|
391 |
msgctxt "[Admin] Filter edit form"
|
392 |
msgid "Allow multiple selection"
|
393 |
msgstr "Επιτρέψτε πολλαπλή επιλογή"
|
394 |
|
395 |
-
#: plugin-options/filter-options.php:
|
396 |
msgctxt "[Admin] Filter edit form"
|
397 |
msgid "Enable if the user can select multiple terms when filtering products"
|
398 |
msgstr ""
|
399 |
"Ενεργοποιήστε αν ο χρήστης μπορεί να επιλέξει πολλαπλούς όρους κατα την "
|
400 |
"ταξινόμηση προϊόντων"
|
401 |
|
402 |
-
#: plugin-options/filter-options.php:
|
403 |
msgctxt "[Admin] Filter edit form"
|
404 |
msgid "Multiselect relation"
|
405 |
msgstr "Σχέση πολλαπλής επιλογής"
|
406 |
|
407 |
-
#: plugin-options/filter-options.php:
|
408 |
msgctxt "[Admin] Filter edit form"
|
409 |
msgid "Choose how multiple terms selection should behave"
|
410 |
msgstr "Επιλέξτε την συμπεριφορά επιλογής πολλαπλών όρων"
|
411 |
|
412 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
413 |
msgctxt "[Admin] Filter edit form, sorting options"
|
414 |
msgid "Default sorting"
|
415 |
msgstr "Προεπιλεγμένη ταξινόμηση"
|
416 |
|
417 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
418 |
msgctxt "[Admin] Filter edit form, sorting options"
|
419 |
msgid "Sort by popularity"
|
420 |
msgstr "Ταξινόμηση κατά δημοτικότητα"
|
421 |
|
422 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
423 |
msgctxt "[Admin] Filter edit form, sorting options"
|
424 |
msgid "Sort by average rating"
|
425 |
msgstr "Ταξινόμηση κατα μέση αξιολόγηση"
|
426 |
|
427 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
428 |
msgctxt "[Admin] Filter edit form, sorting options"
|
429 |
msgid "Sort by latest"
|
430 |
msgstr "Ταξινόμηση κατά τελευταίο"
|
431 |
|
432 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
433 |
msgctxt "[Admin] Filter edit form, sorting options"
|
434 |
msgid "Sort by price: low to high"
|
435 |
msgstr "Ταξινόμηση ανά τιμή: χαμηλή προς υψηλή"
|
436 |
|
437 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
438 |
msgctxt "[Admin] Filter edit form, sorting options"
|
439 |
msgid "Sort by price: high to low"
|
440 |
msgstr "Ταξινόμηση ανά τιμή: υψηλή προς χαμηλή"
|
441 |
|
442 |
-
#: includes/class.yith-wcan-filter.php:
|
443 |
msgctxt "[Admin] Default filter title"
|
444 |
msgid "New filter"
|
445 |
msgstr "Νέο φίλτρο"
|
@@ -472,18 +546,23 @@ msgid "Close"
|
|
472 |
msgstr "Κλείσιμο"
|
473 |
|
474 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
475 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
476 |
msgid "Show results"
|
477 |
msgstr "Εμφάνιση αποτελεσμάτων"
|
478 |
|
479 |
-
#: includes/class.yith-wcan-frontend.php:
|
480 |
msgctxt ""
|
481 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
482 |
"selection"
|
483 |
msgid "Clear"
|
484 |
msgstr "Καθαρισμός"
|
485 |
|
486 |
-
#: includes/class.yith-wcan-frontend.php:
|
487 |
msgctxt ""
|
488 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
489 |
"selection"
|
@@ -496,11 +575,32 @@ msgid "Default preset"
|
|
496 |
msgstr "Προεπιλεγμένη προρύθμιση"
|
497 |
|
498 |
#. translators: 1. Taxonomy name.
|
499 |
-
#: includes/class.yith-wcan-install.php:
|
500 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
501 |
msgid "Filter by %s"
|
502 |
msgstr "Ταξινόμηση κατά %s"
|
503 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
504 |
#: includes/class.yith-wcan-presets.php:95
|
505 |
#: includes/class.yith-wcan-presets.php:100
|
506 |
msgctxt "[Admin] name of presets custom post type"
|
@@ -522,7 +622,7 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
522 |
msgid "Convert widgets in a preset"
|
523 |
msgstr "Μετατροπή μικροεφαρμογών σε προρύθμιση"
|
524 |
|
525 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
526 |
msgctxt ""
|
527 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
528 |
"not exist"
|
@@ -530,7 +630,7 @@ msgid "Invalid preset."
|
|
530 |
msgstr "Προρύθμιση άκυρη."
|
531 |
|
532 |
#. translators: 1. Title of original preset.
|
533 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
534 |
msgctxt "[ADMIN] Title of the cloned preset"
|
535 |
msgid "%s - Copy"
|
536 |
msgstr "%s - Αντιγραφή"
|
@@ -747,7 +847,7 @@ msgstr ""
|
|
747 |
"Επαναφορά όλων των φίλτρων που έχουν οριστεί από το YITH WooCommerce AJAX "
|
748 |
"Product Filter"
|
749 |
|
750 |
-
#: plugin-options/filter-options.php:
|
751 |
#, fuzzy
|
752 |
msgctxt ""
|
753 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -756,7 +856,7 @@ msgstr ""
|
|
756 |
"ΚΑΙ - Τα αποτελέσματα πρέπει να αντιστοιχούν σε όλους τους επιλεγμένους "
|
757 |
"όρους ταυτόχρονα"
|
758 |
|
759 |
-
#: plugin-options/filter-options.php:
|
760 |
#, fuzzy
|
761 |
msgctxt ""
|
762 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -1182,37 +1282,27 @@ msgid ""
|
|
1182 |
"easier to share)"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: templates/admin/preset-edit.php:
|
1186 |
msgctxt "[Admin] Back link in new preset page"
|
1187 |
msgid "< back to preset list"
|
1188 |
msgstr "< πίσω στη λίστα προρύθμισης"
|
1189 |
|
1190 |
-
#: templates/admin/preset-edit.php:
|
1191 |
msgctxt "[ADMIN] Title for new preset page"
|
1192 |
msgid "Edit filter preset"
|
1193 |
msgstr "Επεξεργασία προρύθμισης φίλτρου"
|
1194 |
|
1195 |
-
#: templates/admin/preset-edit.php:
|
1196 |
msgctxt "[ADMIN] Title for new preset page"
|
1197 |
msgid "Add new filter preset"
|
1198 |
msgstr "Προσθήκη νέας προρύθμισης φίλτρου"
|
1199 |
|
1200 |
-
#: templates/admin/preset-edit.php:
|
1201 |
-
msgctxt "[
|
1202 |
-
msgid "Preset
|
1203 |
-
msgstr "
|
1204 |
-
|
1205 |
-
#: templates/admin/preset-edit.php:54
|
1206 |
-
msgctxt "[Admin] Label in new preset page"
|
1207 |
-
msgid "Enter a name to identify this filter preset"
|
1208 |
-
msgstr "Εισάγετε όνομα για να αναγνωρίζετε αυτή την προρύθμιση φίλτρου"
|
1209 |
-
|
1210 |
-
#: templates/admin/preset-filters.php:20
|
1211 |
-
msgctxt "[Admin] Label in new preset page"
|
1212 |
-
msgid "Filters of this preset"
|
1213 |
-
msgstr "Φίλτρα αυτής της προρύθμισης"
|
1214 |
|
1215 |
-
#: templates/admin/preset-edit.php:
|
1216 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1217 |
msgid "Save preset"
|
1218 |
msgstr "Αποθήκευση προρύθμισης"
|
@@ -1534,10 +1624,6 @@ msgstr "Επαναφορά φίλτρων"
|
|
1534 |
#~ msgid "Set the value for each increment of the price slider"
|
1535 |
#~ msgstr "Ορίστε την αξία για κάθε προσαύξηση του ολισθητή τιμής"
|
1536 |
|
1537 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1538 |
-
#~ msgid "Order options"
|
1539 |
-
#~ msgstr "Σειρά επιλογών"
|
1540 |
-
|
1541 |
#~ msgctxt "[Admin] Filter edit form"
|
1542 |
#~ msgid "Select sorting options to show"
|
1543 |
#~ msgstr "Διαλέξτε τις επιλογές ταξινόμησης προς εμφάνιση"
|
@@ -1622,10 +1708,6 @@ msgstr "Επαναφορά φίλτρων"
|
|
1622 |
#~ msgid "Select the default order for terms of this filter"
|
1623 |
#~ msgstr "Επιλέξτε την προεπιλεγμένη σειρά για τους όρους αυτού του φίλτρου"
|
1624 |
|
1625 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1626 |
-
#~ msgid "Show count of items"
|
1627 |
-
#~ msgstr "Εμφάνιση αρίθμησης αντικειμένων"
|
1628 |
-
|
1629 |
#~ msgctxt "[Admin] Filter edit form"
|
1630 |
#~ msgid ""
|
1631 |
#~ "Enable if you want to show how many items are available for each term"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
9 |
"PO-Revision-Date: 2021-02-12 13:32:43+0000\n"
|
10 |
"Language: el_GR\n"
|
11 |
"MIME-Version: 1.0\n"
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
18 |
msgid "Draft Preset"
|
19 |
msgstr "Προρύθμιση Πρόχειρου"
|
20 |
|
105 |
msgid "Button Label"
|
106 |
msgstr "Επιγραφή Κουμπιού"
|
107 |
|
108 |
+
#: init.php:148
|
109 |
msgid ""
|
110 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
111 |
"while you are using the premium one."
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: init.php:166
|
115 |
#, fuzzy
|
116 |
msgid ""
|
117 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
156 |
"Είστε σίγουροι ότι θέλετε να προχωρήσετε; Αυτή η διαδικασία θα προσθέσει %s "
|
157 |
"αντικείμενα"
|
158 |
|
159 |
+
#: includes/class.yith-wcan-admin.php:111
|
160 |
+
msgctxt "[Admin] Error message"
|
161 |
+
msgid "\"Filter title\" is a required field"
|
162 |
+
msgstr ""
|
163 |
+
|
164 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
165 |
msgctxt "[Admin] Message shown when filter has empty title"
|
166 |
msgid "< no title >"
|
167 |
msgstr "< χωρίς τίτλο >"
|
168 |
|
169 |
+
#: includes/class.yith-wcan-admin.php:115
|
170 |
msgctxt "[Admin] Media library title, when selecting images"
|
171 |
msgid "Select media you want to use"
|
172 |
msgstr "Επιλέξτε τα πολυμέσα που θέλετε να χρησιμοποιήσετε"
|
173 |
|
174 |
+
#: includes/class.yith-wcan-admin.php:116
|
175 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
176 |
msgid "Use this media"
|
177 |
msgstr "Χρησιμοποιήστε αυτά τα πολυμέσα"
|
178 |
|
179 |
+
#: includes/class.yith-wcan-admin.php:184
|
180 |
msgctxt "[Admin] tab name"
|
181 |
msgid "Filter presets"
|
182 |
msgstr "Προρυθμίσεις φίλτρου"
|
183 |
|
184 |
+
#: includes/class.yith-wcan-admin.php:185
|
185 |
msgctxt "[Admin] tab name"
|
186 |
msgid "General settings"
|
187 |
msgstr "Γενικές ρυθμίσεις"
|
188 |
|
189 |
+
#: includes/class.yith-wcan-admin.php:186
|
190 |
#, fuzzy
|
191 |
msgctxt "[Admin] tab name"
|
192 |
msgid "SEO"
|
193 |
msgstr "SEO"
|
194 |
|
195 |
+
#: includes/class.yith-wcan-admin.php:187
|
196 |
msgctxt "[Admin] tab name"
|
197 |
msgid "Premium Version"
|
198 |
msgstr "Premium Έκδοση"
|
199 |
|
200 |
+
#: includes/class.yith-wcan-admin.php:191
|
201 |
msgctxt "[Admin] tab name"
|
202 |
msgid "Legacy"
|
203 |
msgstr "Σύστημα κληρονομιάς"
|
204 |
|
205 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
206 |
msgctxt "[Admin] Menu title"
|
207 |
msgid "Ajax Product Filter"
|
208 |
msgstr "Ajax Product Filter"
|
209 |
|
210 |
+
#: includes/class.yith-wcan-admin.php:199
|
211 |
msgctxt "[Admin] Plugin description"
|
212 |
msgid ""
|
213 |
"It allows your users to find the product they are looking for as quickly as "
|
216 |
"Επιτρέπει στους χρήστες σας να βρουν το προϊόν που επιθυμούν το συντομότερο "
|
217 |
"δυνατό."
|
218 |
|
219 |
+
#: includes/class.yith-wcan-admin.php:211
|
220 |
+
msgctxt "[HELP TAB] Video title"
|
221 |
+
msgid ""
|
222 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
223 |
+
"the shop page:</b>"
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: includes/class.yith-wcan-admin.php:329
|
227 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
228 |
msgid "item"
|
229 |
msgstr "αντικείμενο"
|
230 |
|
231 |
+
#: includes/class.yith-wcan-admin.php:330
|
232 |
msgctxt "[Admin] Preset table empty message second line"
|
233 |
msgid "But don't worry, here you can create your first one!"
|
234 |
msgstr "Μην ανησυχείτε, εδώ μπορείτε να δημιουργήσετε το πρώτο!"
|
235 |
|
236 |
+
#: includes/class.yith-wcan-admin.php:478
|
237 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
238 |
msgid "Clear Product Filter transients"
|
239 |
msgstr "Καθαρισμός μεταβάσεων φίλτρου προϊόντος"
|
240 |
|
241 |
+
#: includes/class.yith-wcan-admin.php:484
|
242 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
243 |
msgid "Run filter widgets upgrade"
|
244 |
msgstr "Εκτέλεση αναβάθμισης μικροεφαρμογών φίλτρου"
|
245 |
|
246 |
+
#: includes/class.yith-wcan-admin.php:479
|
247 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
248 |
msgid "Clear"
|
249 |
msgstr "Καθαρισμός"
|
250 |
|
251 |
+
#: includes/class.yith-wcan-admin.php:485
|
252 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
253 |
msgid "Run"
|
254 |
msgstr "Εκτέλεση"
|
255 |
|
256 |
+
#: includes/class.yith-wcan-admin.php:480
|
257 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
258 |
msgid ""
|
259 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
265 |
"κατα την αλλαγή της ρύθμισης του προϊόντος σας, τα φίλτρα δεν εμφανίζουν τα "
|
266 |
"αποτελέσματα που περιμένετε. "
|
267 |
|
268 |
+
#: includes/class.yith-wcan-admin.php:486
|
269 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
270 |
msgid ""
|
271 |
"This will create a preset for any sidebar of your shop containing filter "
|
280 |
msgid "Taxonomy"
|
281 |
msgstr "Ταξινομία"
|
282 |
|
283 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
284 |
+
msgctxt "[Admin] Filter edit form"
|
285 |
+
msgid "Checkbox"
|
286 |
+
msgstr "Πλαίσιο ελέγχου"
|
287 |
+
|
288 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
289 |
+
msgctxt "[Admin] Filter edit form"
|
290 |
+
msgid "Select"
|
291 |
+
msgstr "Επιλογή"
|
292 |
+
|
293 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
294 |
+
msgctxt "[Admin] Filter edit form"
|
295 |
+
msgid "Text"
|
296 |
+
msgstr "Κείμενο"
|
297 |
+
|
298 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
299 |
+
msgctxt "[Admin] Filter edit form"
|
300 |
+
msgid "Color Swatches"
|
301 |
+
msgstr "Δείγματα Χρωμάτων"
|
302 |
+
|
303 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
304 |
+
msgctxt "[Admin] Filter edit form"
|
305 |
+
msgid "Label"
|
306 |
+
msgstr "Επιγραφή"
|
307 |
+
|
308 |
+
#: plugin-options/filter-options.php:32
|
309 |
msgctxt "[Admin] Filter edit form"
|
310 |
msgid "Filter name"
|
311 |
msgstr "Όνομα φίλτρου"
|
312 |
|
313 |
+
#: plugin-options/filter-options.php:35
|
314 |
msgctxt "[Admin] Filter edit form"
|
315 |
msgid "Enter a name to identify this filter"
|
316 |
msgstr "Εισάγετε όνομα για να αναγνωρίζετε αυτό το φίλτρο"
|
317 |
|
318 |
+
#: plugin-options/filter-options.php:41
|
319 |
msgctxt "[Admin] Filter edit form"
|
320 |
msgid "Filter for"
|
321 |
msgstr "Ταξινόμηση για"
|
322 |
|
323 |
+
#: plugin-options/filter-options.php:45
|
324 |
msgctxt "[Admin] Filter edit form"
|
325 |
msgid "Select the parameters you wish to filter for"
|
326 |
msgstr "Επιλέξτε τις παραμέτρους που θέλετε να ταξινομήσετε"
|
327 |
|
328 |
+
#: plugin-options/filter-options.php:51
|
329 |
msgctxt "[Admin] Filter edit form"
|
330 |
msgid "Choose taxonomy"
|
331 |
msgstr "Επιλογή ταξινομίας"
|
332 |
|
333 |
+
#: plugin-options/filter-options.php:55
|
334 |
msgctxt "[Admin] Filter edit form"
|
335 |
msgid "Select which taxonomy to use for this filter"
|
336 |
msgstr ""
|
337 |
"Επιλέξτε την ταξινομία που θέλετε να χρησιμοποιήσετε για αυτό το φίλτρο"
|
338 |
|
339 |
+
#: plugin-options/filter-options.php:60
|
340 |
+
msgctxt "[Admin] Filter edit form"
|
341 |
+
msgid "Auto-populate with all terms"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: plugin-options/filter-options.php:62
|
345 |
+
msgctxt "[Admin] Filter edit form"
|
346 |
+
msgid ""
|
347 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
348 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
349 |
+
"this option, all terms created in the future will be added to this filter as "
|
350 |
+
"well.</span>"
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: plugin-options/filter-options.php:71
|
354 |
msgctxt "[Admin] Filter edit form"
|
355 |
msgid "Choose terms"
|
356 |
msgstr "Επιλογή όρων"
|
357 |
|
358 |
+
#: plugin-options/filter-options.php:76
|
359 |
msgctxt "[Admin] Filter edit form"
|
360 |
msgid "Select which terms to use for filtering"
|
361 |
msgstr "Επιλέξτε ποιους όρους να χρησιμοποιήσετε για την ταξινόμηση"
|
362 |
|
363 |
+
#: plugin-options/filter-options.php:80
|
364 |
msgctxt "[Admin] Filter edit form"
|
365 |
msgid "Filter type"
|
366 |
msgstr "Τύπος φίλτρου"
|
367 |
|
368 |
+
#: plugin-options/filter-options.php:84
|
369 |
msgctxt "[Admin] Filter edit form"
|
370 |
+
msgid "Select the filter type for this filter"
|
371 |
+
msgstr "Επιλέξτε τον τύπο για αυτό το φίλτρο"
|
372 |
|
373 |
+
#: plugin-options/filter-options.php:88
|
374 |
+
#, fuzzy
|
375 |
msgctxt "[Admin] Filter edit form"
|
376 |
+
msgid "Labels"
|
377 |
+
msgstr "Επιγραφές"
|
378 |
|
379 |
+
#: plugin-options/filter-options.php:91
|
380 |
+
#, fuzzy
|
381 |
msgctxt "[Admin] Filter edit form"
|
382 |
+
msgid "Show below"
|
383 |
+
msgstr "Εμφάνιση αποτελεσμάτων"
|
384 |
|
385 |
+
#: plugin-options/filter-options.php:92
|
386 |
+
#, fuzzy
|
387 |
msgctxt "[Admin] Filter edit form"
|
388 |
+
msgid "Show on the right"
|
389 |
+
msgstr "Εμφάνιση αρίθμησης αντικειμένων"
|
390 |
|
391 |
+
#: plugin-options/filter-options.php:93
|
392 |
msgctxt "[Admin] Filter edit form"
|
393 |
+
msgid "Hide"
|
394 |
+
msgstr ""
|
395 |
|
396 |
+
#: plugin-options/filter-options.php:95
|
397 |
+
#, fuzzy
|
398 |
msgctxt "[Admin] Filter edit form"
|
399 |
+
msgid "Choose if and where to show the label inside your filter"
|
400 |
+
msgstr "Επιλέξτε το στυλ φίλτρου μέσα στις μικροεφαρμογές"
|
401 |
|
402 |
+
#: plugin-options/filter-options.php:99
|
403 |
msgctxt "[Admin] Filter edit form"
|
404 |
msgid "Columns number"
|
405 |
msgstr "Αριθμός στηλών"
|
406 |
|
407 |
+
#: plugin-options/filter-options.php:104
|
408 |
msgctxt "[Admin] Filter edit form"
|
409 |
msgid "Set the number of items per row you want to show for this design"
|
410 |
msgstr ""
|
411 |
"Ορίστε τον αριθμό αντικειμένων που θέλετε να εμφανίζετε ανά σειρά για αυτό "
|
412 |
"το σχέδιο"
|
413 |
|
414 |
+
#: plugin-options/filter-options.php:108
|
415 |
msgctxt "[Admin] Filter edit form"
|
416 |
msgid "Customize terms"
|
417 |
msgstr "Προσαρμογή όρων"
|
418 |
|
419 |
+
#: plugin-options/filter-options.php:111
|
420 |
+
msgctxt "[Admin] Filter edit form"
|
421 |
+
msgid ""
|
422 |
+
"Configure your terms individually; system will otherwise use default labels/"
|
423 |
+
"images for terms.\n"
|
424 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
425 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
426 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, just "
|
427 |
+
"enable this option and use boxes below.</span>\n"
|
428 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
429 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
430 |
+
"this option and use the boxes below</span>"
|
431 |
+
msgstr ""
|
432 |
+
|
433 |
+
#: plugin-options/filter-options.php:121
|
434 |
+
#, fuzzy
|
435 |
+
msgctxt "[Admin] Filter edit form"
|
436 |
+
msgid "Terms options"
|
437 |
+
msgstr "Σειρά επιλογών"
|
438 |
+
|
439 |
+
#: plugin-options/filter-options.php:127
|
440 |
msgctxt "[Admin] Filter edit form"
|
441 |
msgid "Show hierarchy"
|
442 |
msgstr "Εμφάνιση ιεραρχίας"
|
443 |
|
444 |
+
#: plugin-options/filter-options.php:130
|
445 |
msgctxt "[Admin] Filter edit form"
|
446 |
msgid "No, show all terms in same level"
|
447 |
msgstr "Όχι, να εμφανίζονται όλοι οι όροι στο ίδιο επίπεδο"
|
448 |
|
449 |
+
#: plugin-options/filter-options.php:131
|
450 |
msgctxt "[Admin] Filter edit form"
|
451 |
msgid "No, show only parent terms"
|
452 |
msgstr "Όχι, να εμφανίζονται μόνο γονικοί όροι"
|
453 |
|
454 |
+
#: plugin-options/filter-options.php:132
|
455 |
msgctxt "[Admin] Filter edit form"
|
456 |
msgid "Yes"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: plugin-options/filter-options.php:134
|
460 |
msgctxt "[Admin] Filter edit form"
|
461 |
msgid "Choose how to show terms hierarchy"
|
462 |
msgstr "Επιλέξτε πώς να εμφανίζεται η ιεραρχία όρων"
|
463 |
|
464 |
+
#: plugin-options/filter-options.php:138
|
465 |
msgctxt "[Admin] Filter edit form"
|
466 |
msgid "Allow multiple selection"
|
467 |
msgstr "Επιτρέψτε πολλαπλή επιλογή"
|
468 |
|
469 |
+
#: plugin-options/filter-options.php:140
|
470 |
msgctxt "[Admin] Filter edit form"
|
471 |
msgid "Enable if the user can select multiple terms when filtering products"
|
472 |
msgstr ""
|
473 |
"Ενεργοποιήστε αν ο χρήστης μπορεί να επιλέξει πολλαπλούς όρους κατα την "
|
474 |
"ταξινόμηση προϊόντων"
|
475 |
|
476 |
+
#: plugin-options/filter-options.php:144
|
477 |
msgctxt "[Admin] Filter edit form"
|
478 |
msgid "Multiselect relation"
|
479 |
msgstr "Σχέση πολλαπλής επιλογής"
|
480 |
|
481 |
+
#: plugin-options/filter-options.php:150
|
482 |
msgctxt "[Admin] Filter edit form"
|
483 |
msgid "Choose how multiple terms selection should behave"
|
484 |
msgstr "Επιλέξτε την συμπεριφορά επιλογής πολλαπλών όρων"
|
485 |
|
486 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
487 |
msgctxt "[Admin] Filter edit form, sorting options"
|
488 |
msgid "Default sorting"
|
489 |
msgstr "Προεπιλεγμένη ταξινόμηση"
|
490 |
|
491 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
492 |
msgctxt "[Admin] Filter edit form, sorting options"
|
493 |
msgid "Sort by popularity"
|
494 |
msgstr "Ταξινόμηση κατά δημοτικότητα"
|
495 |
|
496 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
497 |
msgctxt "[Admin] Filter edit form, sorting options"
|
498 |
msgid "Sort by average rating"
|
499 |
msgstr "Ταξινόμηση κατα μέση αξιολόγηση"
|
500 |
|
501 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
502 |
msgctxt "[Admin] Filter edit form, sorting options"
|
503 |
msgid "Sort by latest"
|
504 |
msgstr "Ταξινόμηση κατά τελευταίο"
|
505 |
|
506 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
507 |
msgctxt "[Admin] Filter edit form, sorting options"
|
508 |
msgid "Sort by price: low to high"
|
509 |
msgstr "Ταξινόμηση ανά τιμή: χαμηλή προς υψηλή"
|
510 |
|
511 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
512 |
msgctxt "[Admin] Filter edit form, sorting options"
|
513 |
msgid "Sort by price: high to low"
|
514 |
msgstr "Ταξινόμηση ανά τιμή: υψηλή προς χαμηλή"
|
515 |
|
516 |
+
#: includes/class.yith-wcan-filter.php:116
|
517 |
msgctxt "[Admin] Default filter title"
|
518 |
msgid "New filter"
|
519 |
msgstr "Νέο φίλτρο"
|
546 |
msgstr "Κλείσιμο"
|
547 |
|
548 |
#: includes/class.yith-wcan-frontend.php:582
|
549 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
550 |
+
msgid "Save"
|
551 |
+
msgstr ""
|
552 |
+
|
553 |
+
#: includes/class.yith-wcan-frontend.php:583
|
554 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
555 |
msgid "Show results"
|
556 |
msgstr "Εμφάνιση αποτελεσμάτων"
|
557 |
|
558 |
+
#: includes/class.yith-wcan-frontend.php:584
|
559 |
msgctxt ""
|
560 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
561 |
"selection"
|
562 |
msgid "Clear"
|
563 |
msgstr "Καθαρισμός"
|
564 |
|
565 |
+
#: includes/class.yith-wcan-frontend.php:585
|
566 |
msgctxt ""
|
567 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
568 |
"selection"
|
575 |
msgstr "Προεπιλεγμένη προρύθμιση"
|
576 |
|
577 |
#. translators: 1. Taxonomy name.
|
578 |
+
#: includes/class.yith-wcan-install.php:285
|
579 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
580 |
msgid "Filter by %s"
|
581 |
msgstr "Ταξινόμηση κατά %s"
|
582 |
|
583 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
584 |
+
#, fuzzy
|
585 |
+
msgctxt "[Admin] Label in new preset page"
|
586 |
+
msgid "Default"
|
587 |
+
msgstr "Προεπιλεγμένο"
|
588 |
+
|
589 |
+
#: plugin-options/preset-options.php:14
|
590 |
+
msgctxt "[Admin] Label in new preset page"
|
591 |
+
msgid "Preset name"
|
592 |
+
msgstr "Όνομα προρύθμισης"
|
593 |
+
|
594 |
+
#: plugin-options/preset-options.php:16
|
595 |
+
msgctxt "[Admin] Label in new preset page"
|
596 |
+
msgid "Enter a name to identify this filter preset"
|
597 |
+
msgstr "Εισάγετε όνομα για να αναγνωρίζετε αυτή την προρύθμιση φίλτρου"
|
598 |
+
|
599 |
+
#: templates/admin/preset-filters.php:20
|
600 |
+
msgctxt "[Admin] Label in new preset page"
|
601 |
+
msgid "Filters of this preset"
|
602 |
+
msgstr "Φίλτρα αυτής της προρύθμισης"
|
603 |
+
|
604 |
#: includes/class.yith-wcan-presets.php:95
|
605 |
#: includes/class.yith-wcan-presets.php:100
|
606 |
msgctxt "[Admin] name of presets custom post type"
|
622 |
msgid "Convert widgets in a preset"
|
623 |
msgstr "Μετατροπή μικροεφαρμογών σε προρύθμιση"
|
624 |
|
625 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
626 |
msgctxt ""
|
627 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
628 |
"not exist"
|
630 |
msgstr "Προρύθμιση άκυρη."
|
631 |
|
632 |
#. translators: 1. Title of original preset.
|
633 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
634 |
msgctxt "[ADMIN] Title of the cloned preset"
|
635 |
msgid "%s - Copy"
|
636 |
msgstr "%s - Αντιγραφή"
|
847 |
"Επαναφορά όλων των φίλτρων που έχουν οριστεί από το YITH WooCommerce AJAX "
|
848 |
"Product Filter"
|
849 |
|
850 |
+
#: plugin-options/filter-options.php:147
|
851 |
#, fuzzy
|
852 |
msgctxt ""
|
853 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
856 |
"ΚΑΙ - Τα αποτελέσματα πρέπει να αντιστοιχούν σε όλους τους επιλεγμένους "
|
857 |
"όρους ταυτόχρονα"
|
858 |
|
859 |
+
#: plugin-options/filter-options.php:148
|
860 |
#, fuzzy
|
861 |
msgctxt ""
|
862 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
1282 |
"easier to share)"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
+
#: templates/admin/preset-edit.php:29
|
1286 |
msgctxt "[Admin] Back link in new preset page"
|
1287 |
msgid "< back to preset list"
|
1288 |
msgstr "< πίσω στη λίστα προρύθμισης"
|
1289 |
|
1290 |
+
#: templates/admin/preset-edit.php:36
|
1291 |
msgctxt "[ADMIN] Title for new preset page"
|
1292 |
msgid "Edit filter preset"
|
1293 |
msgstr "Επεξεργασία προρύθμισης φίλτρου"
|
1294 |
|
1295 |
+
#: templates/admin/preset-edit.php:38
|
1296 |
msgctxt "[ADMIN] Title for new preset page"
|
1297 |
msgid "Add new filter preset"
|
1298 |
msgstr "Προσθήκη νέας προρύθμισης φίλτρου"
|
1299 |
|
1300 |
+
#: templates/admin/preset-edit.php:45
|
1301 |
+
msgctxt "[ADMIN] Preset save message"
|
1302 |
+
msgid "Preset saved correctly"
|
1303 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1304 |
|
1305 |
+
#: templates/admin/preset-edit.php:90
|
1306 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1307 |
msgid "Save preset"
|
1308 |
msgstr "Αποθήκευση προρύθμισης"
|
1624 |
#~ msgid "Set the value for each increment of the price slider"
|
1625 |
#~ msgstr "Ορίστε την αξία για κάθε προσαύξηση του ολισθητή τιμής"
|
1626 |
|
|
|
|
|
|
|
|
|
1627 |
#~ msgctxt "[Admin] Filter edit form"
|
1628 |
#~ msgid "Select sorting options to show"
|
1629 |
#~ msgstr "Διαλέξτε τις επιλογές ταξινόμησης προς εμφάνιση"
|
1708 |
#~ msgid "Select the default order for terms of this filter"
|
1709 |
#~ msgstr "Επιλέξτε την προεπιλεγμένη σειρά για τους όρους αυτού του φίλτρου"
|
1710 |
|
|
|
|
|
|
|
|
|
1711 |
#~ msgctxt "[Admin] Filter edit form"
|
1712 |
#~ msgid ""
|
1713 |
#~ "Enable if you want to show how many items are available for each term"
|
Binary file
|
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2021-
|
9 |
"PO-Revision-Date: 2021-02-12 13:30:42+0000\n"
|
10 |
"Language: es\n"
|
11 |
"MIME-Version: 1.0\n"
|
@@ -14,7 +14,7 @@ msgstr ""
|
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
18 |
msgid "Draft Preset"
|
19 |
msgstr "Borrador preestablecido"
|
20 |
|
@@ -105,13 +105,13 @@ msgstr "Restablecer todos los filtros"
|
|
105 |
msgid "Button Label"
|
106 |
msgstr "Etiqueta del botón"
|
107 |
|
108 |
-
#: init.php:
|
109 |
msgid ""
|
110 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
111 |
"while you are using the premium one."
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: init.php:
|
115 |
#, fuzzy
|
116 |
msgid ""
|
117 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
@@ -155,54 +155,58 @@ msgid "Are you sure you want to proceed? This operation will add %s items"
|
|
155 |
msgstr ""
|
156 |
"¿Estás seguro de que quieres continuar? Esta operación añadirá %s artículos"
|
157 |
|
158 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
159 |
msgctxt "[Admin] Message shown when filter has empty title"
|
160 |
msgid "< no title >"
|
161 |
msgstr "< sin título >"
|
162 |
|
163 |
-
#: includes/class.yith-wcan-admin.php:
|
164 |
msgctxt "[Admin] Media library title, when selecting images"
|
165 |
msgid "Select media you want to use"
|
166 |
msgstr "Selecciona los medios que quieres usar"
|
167 |
|
168 |
-
#: includes/class.yith-wcan-admin.php:
|
169 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
170 |
msgid "Use this media"
|
171 |
msgstr "Utiliza estos medios"
|
172 |
|
173 |
-
#: includes/class.yith-wcan-admin.php:
|
174 |
msgctxt "[Admin] tab name"
|
175 |
msgid "Filter presets"
|
176 |
msgstr "Filtrar prestablecidos"
|
177 |
|
178 |
-
#: includes/class.yith-wcan-admin.php:
|
179 |
msgctxt "[Admin] tab name"
|
180 |
msgid "General settings"
|
181 |
msgstr "Ajustes generales"
|
182 |
|
183 |
-
#: includes/class.yith-wcan-admin.php:
|
184 |
#, fuzzy
|
185 |
msgctxt "[Admin] tab name"
|
186 |
msgid "SEO"
|
187 |
msgstr "SEO"
|
188 |
|
189 |
-
#: includes/class.yith-wcan-admin.php:
|
190 |
msgctxt "[Admin] tab name"
|
191 |
msgid "Premium Version"
|
192 |
msgstr "Versión premium"
|
193 |
|
194 |
-
#: includes/class.yith-wcan-admin.php:
|
195 |
msgctxt "[Admin] tab name"
|
196 |
msgid "Legacy"
|
197 |
msgstr "Heredado"
|
198 |
|
199 |
-
#: includes/class.yith-wcan-admin.php:
|
200 |
-
#: includes/class.yith-wcan-admin.php:195
|
201 |
msgctxt "[Admin] Menu title"
|
202 |
msgid "Ajax Product Filter"
|
203 |
msgstr "Ajax Product Filter"
|
204 |
|
205 |
-
#: includes/class.yith-wcan-admin.php:
|
206 |
msgctxt "[Admin] Plugin description"
|
207 |
msgid ""
|
208 |
"It allows your users to find the product they are looking for as quickly as "
|
@@ -211,37 +215,44 @@ msgstr ""
|
|
211 |
"Permite a tus usuarios encontrar el producto que están buscando lo más "
|
212 |
"rápido posible."
|
213 |
|
214 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
216 |
msgid "item"
|
217 |
msgstr "artículo"
|
218 |
|
219 |
-
#: includes/class.yith-wcan-admin.php:
|
220 |
msgctxt "[Admin] Preset table empty message second line"
|
221 |
msgid "But don't worry, here you can create your first one!"
|
222 |
msgstr "¡Pero no te preocupes, aquí puedes crear el primero!"
|
223 |
|
224 |
-
#: includes/class.yith-wcan-admin.php:
|
225 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
226 |
msgid "Clear Product Filter transients"
|
227 |
msgstr "Limpiar datos transitorios de filtro de producto"
|
228 |
|
229 |
-
#: includes/class.yith-wcan-admin.php:
|
230 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
231 |
msgid "Run filter widgets upgrade"
|
232 |
msgstr "Activar actualización de widgets de filtro"
|
233 |
|
234 |
-
#: includes/class.yith-wcan-admin.php:
|
235 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
236 |
msgid "Clear"
|
237 |
msgstr "Limpìar"
|
238 |
|
239 |
-
#: includes/class.yith-wcan-admin.php:
|
240 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
241 |
msgid "Run"
|
242 |
msgstr "Activar"
|
243 |
|
244 |
-
#: includes/class.yith-wcan-admin.php:
|
245 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
246 |
msgid ""
|
247 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -253,7 +264,7 @@ msgstr ""
|
|
253 |
"configuración del producto y los filtros no muestran los resultados "
|
254 |
"esperados."
|
255 |
|
256 |
-
#: includes/class.yith-wcan-admin.php:
|
257 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
258 |
msgid ""
|
259 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -268,176 +279,239 @@ msgctxt "[Admin] Filter edit form"
|
|
268 |
msgid "Taxonomy"
|
269 |
msgstr "Taxonomía"
|
270 |
|
271 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
msgctxt "[Admin] Filter edit form"
|
273 |
msgid "Filter name"
|
274 |
msgstr "Nombre del filtro"
|
275 |
|
276 |
-
#: plugin-options/filter-options.php:
|
277 |
msgctxt "[Admin] Filter edit form"
|
278 |
msgid "Enter a name to identify this filter"
|
279 |
msgstr "Introduce un nombre para identificar este filtro"
|
280 |
|
281 |
-
#: plugin-options/filter-options.php:
|
282 |
msgctxt "[Admin] Filter edit form"
|
283 |
msgid "Filter for"
|
284 |
msgstr "Filtrar por"
|
285 |
|
286 |
-
#: plugin-options/filter-options.php:
|
287 |
msgctxt "[Admin] Filter edit form"
|
288 |
msgid "Select the parameters you wish to filter for"
|
289 |
msgstr "Selecciona los parámetros por los que te gustaría filtrar"
|
290 |
|
291 |
-
#: plugin-options/filter-options.php:
|
292 |
msgctxt "[Admin] Filter edit form"
|
293 |
msgid "Choose taxonomy"
|
294 |
msgstr "Escoger taxonomía"
|
295 |
|
296 |
-
#: plugin-options/filter-options.php:
|
297 |
msgctxt "[Admin] Filter edit form"
|
298 |
msgid "Select which taxonomy to use for this filter"
|
299 |
msgstr "Selecciona qué categoría usar para este filtro"
|
300 |
|
301 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
msgctxt "[Admin] Filter edit form"
|
303 |
msgid "Choose terms"
|
304 |
msgstr "Escoger términos"
|
305 |
|
306 |
-
#: plugin-options/filter-options.php:
|
307 |
msgctxt "[Admin] Filter edit form"
|
308 |
msgid "Select which terms to use for filtering"
|
309 |
msgstr "Selecciona qué términos usar para filtrar"
|
310 |
|
311 |
-
#: plugin-options/filter-options.php:
|
312 |
msgctxt "[Admin] Filter edit form"
|
313 |
msgid "Filter type"
|
314 |
msgstr "Tipo de filtro"
|
315 |
|
316 |
-
#: plugin-options/filter-options.php:
|
317 |
msgctxt "[Admin] Filter edit form"
|
318 |
-
msgid "
|
319 |
-
msgstr "
|
320 |
|
321 |
-
#: plugin-options/filter-options.php:
|
|
|
322 |
msgctxt "[Admin] Filter edit form"
|
323 |
-
msgid "
|
324 |
-
msgstr "
|
325 |
|
326 |
-
#: plugin-options/filter-options.php:
|
|
|
327 |
msgctxt "[Admin] Filter edit form"
|
328 |
-
msgid "
|
329 |
-
msgstr "
|
330 |
|
331 |
-
#: plugin-options/filter-options.php:
|
|
|
332 |
msgctxt "[Admin] Filter edit form"
|
333 |
-
msgid "
|
334 |
-
msgstr "
|
335 |
|
336 |
-
#: plugin-options/filter-options.php:
|
337 |
msgctxt "[Admin] Filter edit form"
|
338 |
-
msgid "
|
339 |
-
msgstr "
|
340 |
|
341 |
-
#: plugin-options/filter-options.php:
|
|
|
342 |
msgctxt "[Admin] Filter edit form"
|
343 |
-
msgid "
|
344 |
-
msgstr "
|
345 |
|
346 |
-
#: plugin-options/filter-options.php:
|
347 |
msgctxt "[Admin] Filter edit form"
|
348 |
msgid "Columns number"
|
349 |
msgstr "Número de columnas"
|
350 |
|
351 |
-
#: plugin-options/filter-options.php:
|
352 |
msgctxt "[Admin] Filter edit form"
|
353 |
msgid "Set the number of items per row you want to show for this design"
|
354 |
msgstr ""
|
355 |
"Establece el número de artículos por fila que quieres mostrar para este "
|
356 |
"diseño"
|
357 |
|
358 |
-
#: plugin-options/filter-options.php:
|
359 |
msgctxt "[Admin] Filter edit form"
|
360 |
msgid "Customize terms"
|
361 |
msgstr "Términos personalizados"
|
362 |
|
363 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
msgctxt "[Admin] Filter edit form"
|
365 |
msgid "Show hierarchy"
|
366 |
msgstr "Mostrar jerarquía"
|
367 |
|
368 |
-
#: plugin-options/filter-options.php:
|
369 |
msgctxt "[Admin] Filter edit form"
|
370 |
msgid "No, show all terms in same level"
|
371 |
msgstr "No, mostrar todos los términos en el mismo nivel"
|
372 |
|
373 |
-
#: plugin-options/filter-options.php:
|
374 |
msgctxt "[Admin] Filter edit form"
|
375 |
msgid "No, show only parent terms"
|
376 |
msgstr "No, mostrar solo términos superiores"
|
377 |
|
378 |
-
#: plugin-options/filter-options.php:
|
379 |
msgctxt "[Admin] Filter edit form"
|
380 |
msgid "Yes"
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: plugin-options/filter-options.php:
|
384 |
msgctxt "[Admin] Filter edit form"
|
385 |
msgid "Choose how to show terms hierarchy"
|
386 |
msgstr "Elige cómo mostrar los términos jerárquicamente"
|
387 |
|
388 |
-
#: plugin-options/filter-options.php:
|
389 |
msgctxt "[Admin] Filter edit form"
|
390 |
msgid "Allow multiple selection"
|
391 |
msgstr "Permitir selección múltiple"
|
392 |
|
393 |
-
#: plugin-options/filter-options.php:
|
394 |
msgctxt "[Admin] Filter edit form"
|
395 |
msgid "Enable if the user can select multiple terms when filtering products"
|
396 |
msgstr ""
|
397 |
"Activa si el usuario puede seleccionar múltiples términos al filtrar los "
|
398 |
"productos"
|
399 |
|
400 |
-
#: plugin-options/filter-options.php:
|
401 |
msgctxt "[Admin] Filter edit form"
|
402 |
msgid "Multiselect relation"
|
403 |
msgstr "Relación de multi-selección"
|
404 |
|
405 |
-
#: plugin-options/filter-options.php:
|
406 |
msgctxt "[Admin] Filter edit form"
|
407 |
msgid "Choose how multiple terms selection should behave"
|
408 |
msgstr "Escoge cómo debe comportarse la selección de términos múltiples"
|
409 |
|
410 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
411 |
msgctxt "[Admin] Filter edit form, sorting options"
|
412 |
msgid "Default sorting"
|
413 |
msgstr "Orden predeterminado"
|
414 |
|
415 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
416 |
msgctxt "[Admin] Filter edit form, sorting options"
|
417 |
msgid "Sort by popularity"
|
418 |
msgstr "Ordenar por popularidad"
|
419 |
|
420 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
421 |
msgctxt "[Admin] Filter edit form, sorting options"
|
422 |
msgid "Sort by average rating"
|
423 |
msgstr "Ordenar por promedio de valoración"
|
424 |
|
425 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
426 |
msgctxt "[Admin] Filter edit form, sorting options"
|
427 |
msgid "Sort by latest"
|
428 |
msgstr "Ordenar por último"
|
429 |
|
430 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
431 |
msgctxt "[Admin] Filter edit form, sorting options"
|
432 |
msgid "Sort by price: low to high"
|
433 |
msgstr "Ordenar por precio: de bajo a alto"
|
434 |
|
435 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
436 |
msgctxt "[Admin] Filter edit form, sorting options"
|
437 |
msgid "Sort by price: high to low"
|
438 |
msgstr "Ordenar por precio: de alto a bajo"
|
439 |
|
440 |
-
#: includes/class.yith-wcan-filter.php:
|
441 |
msgctxt "[Admin] Default filter title"
|
442 |
msgid "New filter"
|
443 |
msgstr "Nuevo filtro"
|
@@ -470,18 +544,23 @@ msgid "Close"
|
|
470 |
msgstr "Cerrar"
|
471 |
|
472 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
473 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
474 |
msgid "Show results"
|
475 |
msgstr "Mostrar resultados"
|
476 |
|
477 |
-
#: includes/class.yith-wcan-frontend.php:
|
478 |
msgctxt ""
|
479 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
480 |
"selection"
|
481 |
msgid "Clear"
|
482 |
msgstr "Limpiar"
|
483 |
|
484 |
-
#: includes/class.yith-wcan-frontend.php:
|
485 |
msgctxt ""
|
486 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
487 |
"selection"
|
@@ -494,11 +573,32 @@ msgid "Default preset"
|
|
494 |
msgstr "Pre establecimiento predeterminado"
|
495 |
|
496 |
#. translators: 1. Taxonomy name.
|
497 |
-
#: includes/class.yith-wcan-install.php:
|
498 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
499 |
msgid "Filter by %s"
|
500 |
msgstr "Filtrar por %s"
|
501 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
502 |
#: includes/class.yith-wcan-presets.php:95
|
503 |
#: includes/class.yith-wcan-presets.php:100
|
504 |
msgctxt "[Admin] name of presets custom post type"
|
@@ -520,7 +620,7 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
520 |
msgid "Convert widgets in a preset"
|
521 |
msgstr "Convertir widgets en un pre establecimiento"
|
522 |
|
523 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
524 |
msgctxt ""
|
525 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
526 |
"not exist"
|
@@ -528,7 +628,7 @@ msgid "Invalid preset."
|
|
528 |
msgstr "Pre establecimiento no válido."
|
529 |
|
530 |
#. translators: 1. Title of original preset.
|
531 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
532 |
msgctxt "[ADMIN] Title of the cloned preset"
|
533 |
msgid "%s - Copy"
|
534 |
msgstr "%s - Copiar"
|
@@ -743,7 +843,7 @@ msgstr ""
|
|
743 |
"Restablecer todos los filtros establecidos por YITH WooCommerce Ajax Product "
|
744 |
"Filter"
|
745 |
|
746 |
-
#: plugin-options/filter-options.php:
|
747 |
#, fuzzy
|
748 |
msgctxt ""
|
749 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -752,7 +852,7 @@ msgstr ""
|
|
752 |
"Y . Los resultados deben coincidir con los términos seleccionados al mismo "
|
753 |
"tiempo"
|
754 |
|
755 |
-
#: plugin-options/filter-options.php:
|
756 |
#, fuzzy
|
757 |
msgctxt ""
|
758 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -1179,37 +1279,27 @@ msgid ""
|
|
1179 |
"easier to share)"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: templates/admin/preset-edit.php:
|
1183 |
msgctxt "[Admin] Back link in new preset page"
|
1184 |
msgid "< back to preset list"
|
1185 |
msgstr "< volver a la lista de pre establecimiento"
|
1186 |
|
1187 |
-
#: templates/admin/preset-edit.php:
|
1188 |
msgctxt "[ADMIN] Title for new preset page"
|
1189 |
msgid "Edit filter preset"
|
1190 |
msgstr "Editar pre establecimiento de filtro"
|
1191 |
|
1192 |
-
#: templates/admin/preset-edit.php:
|
1193 |
msgctxt "[ADMIN] Title for new preset page"
|
1194 |
msgid "Add new filter preset"
|
1195 |
msgstr "Añadir nuevo filtro pre establecido"
|
1196 |
|
1197 |
-
#: templates/admin/preset-edit.php:
|
1198 |
-
msgctxt "[
|
1199 |
-
msgid "Preset
|
1200 |
-
msgstr "
|
1201 |
-
|
1202 |
-
#: templates/admin/preset-edit.php:54
|
1203 |
-
msgctxt "[Admin] Label in new preset page"
|
1204 |
-
msgid "Enter a name to identify this filter preset"
|
1205 |
-
msgstr "Introduce un nombre para identificar este filtro pre establecido"
|
1206 |
-
|
1207 |
-
#: templates/admin/preset-filters.php:20
|
1208 |
-
msgctxt "[Admin] Label in new preset page"
|
1209 |
-
msgid "Filters of this preset"
|
1210 |
-
msgstr "Filtros para este pre establecimiento"
|
1211 |
|
1212 |
-
#: templates/admin/preset-edit.php:
|
1213 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1214 |
msgid "Save preset"
|
1215 |
msgstr "Guardar pre establecimiento"
|
@@ -1528,10 +1618,6 @@ msgstr "Restablecer filtros"
|
|
1528 |
#~ msgid "Set the value for each increment of the price slider"
|
1529 |
#~ msgstr "Establece el valor para cada incremento del deslizante de precio"
|
1530 |
|
1531 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1532 |
-
#~ msgid "Order options"
|
1533 |
-
#~ msgstr "Opciones de orden"
|
1534 |
-
|
1535 |
#~ msgctxt "[Admin] Filter edit form"
|
1536 |
#~ msgid "Select sorting options to show"
|
1537 |
#~ msgstr "Seleccionar orden de opciones a mostrar"
|
@@ -1619,10 +1705,6 @@ msgstr "Restablecer filtros"
|
|
1619 |
#~ msgid "Select the default order for terms of this filter"
|
1620 |
#~ msgstr "Selecciona el orden predeterminado para los términos de este filtro"
|
1621 |
|
1622 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1623 |
-
#~ msgid "Show count of items"
|
1624 |
-
#~ msgstr "Mostrar recuento de artículos"
|
1625 |
-
|
1626 |
#~ msgctxt "[Admin] Filter edit form"
|
1627 |
#~ msgid ""
|
1628 |
#~ "Enable if you want to show how many items are available for each term"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
9 |
"PO-Revision-Date: 2021-02-12 13:30:42+0000\n"
|
10 |
"Language: es\n"
|
11 |
"MIME-Version: 1.0\n"
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
18 |
msgid "Draft Preset"
|
19 |
msgstr "Borrador preestablecido"
|
20 |
|
105 |
msgid "Button Label"
|
106 |
msgstr "Etiqueta del botón"
|
107 |
|
108 |
+
#: init.php:148
|
109 |
msgid ""
|
110 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
111 |
"while you are using the premium one."
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: init.php:166
|
115 |
#, fuzzy
|
116 |
msgid ""
|
117 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
155 |
msgstr ""
|
156 |
"¿Estás seguro de que quieres continuar? Esta operación añadirá %s artículos"
|
157 |
|
158 |
+
#: includes/class.yith-wcan-admin.php:111
|
159 |
+
msgctxt "[Admin] Error message"
|
160 |
+
msgid "\"Filter title\" is a required field"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
164 |
msgctxt "[Admin] Message shown when filter has empty title"
|
165 |
msgid "< no title >"
|
166 |
msgstr "< sin título >"
|
167 |
|
168 |
+
#: includes/class.yith-wcan-admin.php:115
|
169 |
msgctxt "[Admin] Media library title, when selecting images"
|
170 |
msgid "Select media you want to use"
|
171 |
msgstr "Selecciona los medios que quieres usar"
|
172 |
|
173 |
+
#: includes/class.yith-wcan-admin.php:116
|
174 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
175 |
msgid "Use this media"
|
176 |
msgstr "Utiliza estos medios"
|
177 |
|
178 |
+
#: includes/class.yith-wcan-admin.php:184
|
179 |
msgctxt "[Admin] tab name"
|
180 |
msgid "Filter presets"
|
181 |
msgstr "Filtrar prestablecidos"
|
182 |
|
183 |
+
#: includes/class.yith-wcan-admin.php:185
|
184 |
msgctxt "[Admin] tab name"
|
185 |
msgid "General settings"
|
186 |
msgstr "Ajustes generales"
|
187 |
|
188 |
+
#: includes/class.yith-wcan-admin.php:186
|
189 |
#, fuzzy
|
190 |
msgctxt "[Admin] tab name"
|
191 |
msgid "SEO"
|
192 |
msgstr "SEO"
|
193 |
|
194 |
+
#: includes/class.yith-wcan-admin.php:187
|
195 |
msgctxt "[Admin] tab name"
|
196 |
msgid "Premium Version"
|
197 |
msgstr "Versión premium"
|
198 |
|
199 |
+
#: includes/class.yith-wcan-admin.php:191
|
200 |
msgctxt "[Admin] tab name"
|
201 |
msgid "Legacy"
|
202 |
msgstr "Heredado"
|
203 |
|
204 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
205 |
msgctxt "[Admin] Menu title"
|
206 |
msgid "Ajax Product Filter"
|
207 |
msgstr "Ajax Product Filter"
|
208 |
|
209 |
+
#: includes/class.yith-wcan-admin.php:199
|
210 |
msgctxt "[Admin] Plugin description"
|
211 |
msgid ""
|
212 |
"It allows your users to find the product they are looking for as quickly as "
|
215 |
"Permite a tus usuarios encontrar el producto que están buscando lo más "
|
216 |
"rápido posible."
|
217 |
|
218 |
+
#: includes/class.yith-wcan-admin.php:211
|
219 |
+
msgctxt "[HELP TAB] Video title"
|
220 |
+
msgid ""
|
221 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
222 |
+
"the shop page:</b>"
|
223 |
+
msgstr ""
|
224 |
+
|
225 |
+
#: includes/class.yith-wcan-admin.php:329
|
226 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
227 |
msgid "item"
|
228 |
msgstr "artículo"
|
229 |
|
230 |
+
#: includes/class.yith-wcan-admin.php:330
|
231 |
msgctxt "[Admin] Preset table empty message second line"
|
232 |
msgid "But don't worry, here you can create your first one!"
|
233 |
msgstr "¡Pero no te preocupes, aquí puedes crear el primero!"
|
234 |
|
235 |
+
#: includes/class.yith-wcan-admin.php:478
|
236 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
237 |
msgid "Clear Product Filter transients"
|
238 |
msgstr "Limpiar datos transitorios de filtro de producto"
|
239 |
|
240 |
+
#: includes/class.yith-wcan-admin.php:484
|
241 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
242 |
msgid "Run filter widgets upgrade"
|
243 |
msgstr "Activar actualización de widgets de filtro"
|
244 |
|
245 |
+
#: includes/class.yith-wcan-admin.php:479
|
246 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
247 |
msgid "Clear"
|
248 |
msgstr "Limpìar"
|
249 |
|
250 |
+
#: includes/class.yith-wcan-admin.php:485
|
251 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
252 |
msgid "Run"
|
253 |
msgstr "Activar"
|
254 |
|
255 |
+
#: includes/class.yith-wcan-admin.php:480
|
256 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
257 |
msgid ""
|
258 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
264 |
"configuración del producto y los filtros no muestran los resultados "
|
265 |
"esperados."
|
266 |
|
267 |
+
#: includes/class.yith-wcan-admin.php:486
|
268 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
269 |
msgid ""
|
270 |
"This will create a preset for any sidebar of your shop containing filter "
|
279 |
msgid "Taxonomy"
|
280 |
msgstr "Taxonomía"
|
281 |
|
282 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
283 |
+
msgctxt "[Admin] Filter edit form"
|
284 |
+
msgid "Checkbox"
|
285 |
+
msgstr "Casilla de verificación"
|
286 |
+
|
287 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
288 |
+
msgctxt "[Admin] Filter edit form"
|
289 |
+
msgid "Select"
|
290 |
+
msgstr "Seleccionar"
|
291 |
+
|
292 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
293 |
+
msgctxt "[Admin] Filter edit form"
|
294 |
+
msgid "Text"
|
295 |
+
msgstr "Texto"
|
296 |
+
|
297 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
298 |
+
msgctxt "[Admin] Filter edit form"
|
299 |
+
msgid "Color Swatches"
|
300 |
+
msgstr "Muestras de color"
|
301 |
+
|
302 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
303 |
+
msgctxt "[Admin] Filter edit form"
|
304 |
+
msgid "Label"
|
305 |
+
msgstr "Etiqueta"
|
306 |
+
|
307 |
+
#: plugin-options/filter-options.php:32
|
308 |
msgctxt "[Admin] Filter edit form"
|
309 |
msgid "Filter name"
|
310 |
msgstr "Nombre del filtro"
|
311 |
|
312 |
+
#: plugin-options/filter-options.php:35
|
313 |
msgctxt "[Admin] Filter edit form"
|
314 |
msgid "Enter a name to identify this filter"
|
315 |
msgstr "Introduce un nombre para identificar este filtro"
|
316 |
|
317 |
+
#: plugin-options/filter-options.php:41
|
318 |
msgctxt "[Admin] Filter edit form"
|
319 |
msgid "Filter for"
|
320 |
msgstr "Filtrar por"
|
321 |
|
322 |
+
#: plugin-options/filter-options.php:45
|
323 |
msgctxt "[Admin] Filter edit form"
|
324 |
msgid "Select the parameters you wish to filter for"
|
325 |
msgstr "Selecciona los parámetros por los que te gustaría filtrar"
|
326 |
|
327 |
+
#: plugin-options/filter-options.php:51
|
328 |
msgctxt "[Admin] Filter edit form"
|
329 |
msgid "Choose taxonomy"
|
330 |
msgstr "Escoger taxonomía"
|
331 |
|
332 |
+
#: plugin-options/filter-options.php:55
|
333 |
msgctxt "[Admin] Filter edit form"
|
334 |
msgid "Select which taxonomy to use for this filter"
|
335 |
msgstr "Selecciona qué categoría usar para este filtro"
|
336 |
|
337 |
+
#: plugin-options/filter-options.php:60
|
338 |
+
msgctxt "[Admin] Filter edit form"
|
339 |
+
msgid "Auto-populate with all terms"
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: plugin-options/filter-options.php:62
|
343 |
+
msgctxt "[Admin] Filter edit form"
|
344 |
+
msgid ""
|
345 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
346 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
347 |
+
"this option, all terms created in the future will be added to this filter as "
|
348 |
+
"well.</span>"
|
349 |
+
msgstr ""
|
350 |
+
|
351 |
+
#: plugin-options/filter-options.php:71
|
352 |
msgctxt "[Admin] Filter edit form"
|
353 |
msgid "Choose terms"
|
354 |
msgstr "Escoger términos"
|
355 |
|
356 |
+
#: plugin-options/filter-options.php:76
|
357 |
msgctxt "[Admin] Filter edit form"
|
358 |
msgid "Select which terms to use for filtering"
|
359 |
msgstr "Selecciona qué términos usar para filtrar"
|
360 |
|
361 |
+
#: plugin-options/filter-options.php:80
|
362 |
msgctxt "[Admin] Filter edit form"
|
363 |
msgid "Filter type"
|
364 |
msgstr "Tipo de filtro"
|
365 |
|
366 |
+
#: plugin-options/filter-options.php:84
|
367 |
msgctxt "[Admin] Filter edit form"
|
368 |
+
msgid "Select the filter type for this filter"
|
369 |
+
msgstr "Selecciona el tipo para este filtro"
|
370 |
|
371 |
+
#: plugin-options/filter-options.php:88
|
372 |
+
#, fuzzy
|
373 |
msgctxt "[Admin] Filter edit form"
|
374 |
+
msgid "Labels"
|
375 |
+
msgstr "Etiquetas"
|
376 |
|
377 |
+
#: plugin-options/filter-options.php:91
|
378 |
+
#, fuzzy
|
379 |
msgctxt "[Admin] Filter edit form"
|
380 |
+
msgid "Show below"
|
381 |
+
msgstr "Mostrar resultados"
|
382 |
|
383 |
+
#: plugin-options/filter-options.php:92
|
384 |
+
#, fuzzy
|
385 |
msgctxt "[Admin] Filter edit form"
|
386 |
+
msgid "Show on the right"
|
387 |
+
msgstr "Mostrar recuento de artículos"
|
388 |
|
389 |
+
#: plugin-options/filter-options.php:93
|
390 |
msgctxt "[Admin] Filter edit form"
|
391 |
+
msgid "Hide"
|
392 |
+
msgstr ""
|
393 |
|
394 |
+
#: plugin-options/filter-options.php:95
|
395 |
+
#, fuzzy
|
396 |
msgctxt "[Admin] Filter edit form"
|
397 |
+
msgid "Choose if and where to show the label inside your filter"
|
398 |
+
msgstr "Escoge el estilo del filtro dentro de los widgets"
|
399 |
|
400 |
+
#: plugin-options/filter-options.php:99
|
401 |
msgctxt "[Admin] Filter edit form"
|
402 |
msgid "Columns number"
|
403 |
msgstr "Número de columnas"
|
404 |
|
405 |
+
#: plugin-options/filter-options.php:104
|
406 |
msgctxt "[Admin] Filter edit form"
|
407 |
msgid "Set the number of items per row you want to show for this design"
|
408 |
msgstr ""
|
409 |
"Establece el número de artículos por fila que quieres mostrar para este "
|
410 |
"diseño"
|
411 |
|
412 |
+
#: plugin-options/filter-options.php:108
|
413 |
msgctxt "[Admin] Filter edit form"
|
414 |
msgid "Customize terms"
|
415 |
msgstr "Términos personalizados"
|
416 |
|
417 |
+
#: plugin-options/filter-options.php:111
|
418 |
+
msgctxt "[Admin] Filter edit form"
|
419 |
+
msgid ""
|
420 |
+
"Configure your terms individually; system will otherwise use default labels/"
|
421 |
+
"images for terms.\n"
|
422 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
423 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
424 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, just "
|
425 |
+
"enable this option and use boxes below.</span>\n"
|
426 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
427 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
428 |
+
"this option and use the boxes below</span>"
|
429 |
+
msgstr ""
|
430 |
+
|
431 |
+
#: plugin-options/filter-options.php:121
|
432 |
+
#, fuzzy
|
433 |
+
msgctxt "[Admin] Filter edit form"
|
434 |
+
msgid "Terms options"
|
435 |
+
msgstr "Opciones de orden"
|
436 |
+
|
437 |
+
#: plugin-options/filter-options.php:127
|
438 |
msgctxt "[Admin] Filter edit form"
|
439 |
msgid "Show hierarchy"
|
440 |
msgstr "Mostrar jerarquía"
|
441 |
|
442 |
+
#: plugin-options/filter-options.php:130
|
443 |
msgctxt "[Admin] Filter edit form"
|
444 |
msgid "No, show all terms in same level"
|
445 |
msgstr "No, mostrar todos los términos en el mismo nivel"
|
446 |
|
447 |
+
#: plugin-options/filter-options.php:131
|
448 |
msgctxt "[Admin] Filter edit form"
|
449 |
msgid "No, show only parent terms"
|
450 |
msgstr "No, mostrar solo términos superiores"
|
451 |
|
452 |
+
#: plugin-options/filter-options.php:132
|
453 |
msgctxt "[Admin] Filter edit form"
|
454 |
msgid "Yes"
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: plugin-options/filter-options.php:134
|
458 |
msgctxt "[Admin] Filter edit form"
|
459 |
msgid "Choose how to show terms hierarchy"
|
460 |
msgstr "Elige cómo mostrar los términos jerárquicamente"
|
461 |
|
462 |
+
#: plugin-options/filter-options.php:138
|
463 |
msgctxt "[Admin] Filter edit form"
|
464 |
msgid "Allow multiple selection"
|
465 |
msgstr "Permitir selección múltiple"
|
466 |
|
467 |
+
#: plugin-options/filter-options.php:140
|
468 |
msgctxt "[Admin] Filter edit form"
|
469 |
msgid "Enable if the user can select multiple terms when filtering products"
|
470 |
msgstr ""
|
471 |
"Activa si el usuario puede seleccionar múltiples términos al filtrar los "
|
472 |
"productos"
|
473 |
|
474 |
+
#: plugin-options/filter-options.php:144
|
475 |
msgctxt "[Admin] Filter edit form"
|
476 |
msgid "Multiselect relation"
|
477 |
msgstr "Relación de multi-selección"
|
478 |
|
479 |
+
#: plugin-options/filter-options.php:150
|
480 |
msgctxt "[Admin] Filter edit form"
|
481 |
msgid "Choose how multiple terms selection should behave"
|
482 |
msgstr "Escoge cómo debe comportarse la selección de términos múltiples"
|
483 |
|
484 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
485 |
msgctxt "[Admin] Filter edit form, sorting options"
|
486 |
msgid "Default sorting"
|
487 |
msgstr "Orden predeterminado"
|
488 |
|
489 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
490 |
msgctxt "[Admin] Filter edit form, sorting options"
|
491 |
msgid "Sort by popularity"
|
492 |
msgstr "Ordenar por popularidad"
|
493 |
|
494 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
495 |
msgctxt "[Admin] Filter edit form, sorting options"
|
496 |
msgid "Sort by average rating"
|
497 |
msgstr "Ordenar por promedio de valoración"
|
498 |
|
499 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
500 |
msgctxt "[Admin] Filter edit form, sorting options"
|
501 |
msgid "Sort by latest"
|
502 |
msgstr "Ordenar por último"
|
503 |
|
504 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
505 |
msgctxt "[Admin] Filter edit form, sorting options"
|
506 |
msgid "Sort by price: low to high"
|
507 |
msgstr "Ordenar por precio: de bajo a alto"
|
508 |
|
509 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
510 |
msgctxt "[Admin] Filter edit form, sorting options"
|
511 |
msgid "Sort by price: high to low"
|
512 |
msgstr "Ordenar por precio: de alto a bajo"
|
513 |
|
514 |
+
#: includes/class.yith-wcan-filter.php:116
|
515 |
msgctxt "[Admin] Default filter title"
|
516 |
msgid "New filter"
|
517 |
msgstr "Nuevo filtro"
|
544 |
msgstr "Cerrar"
|
545 |
|
546 |
#: includes/class.yith-wcan-frontend.php:582
|
547 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
548 |
+
msgid "Save"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: includes/class.yith-wcan-frontend.php:583
|
552 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
553 |
msgid "Show results"
|
554 |
msgstr "Mostrar resultados"
|
555 |
|
556 |
+
#: includes/class.yith-wcan-frontend.php:584
|
557 |
msgctxt ""
|
558 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
559 |
"selection"
|
560 |
msgid "Clear"
|
561 |
msgstr "Limpiar"
|
562 |
|
563 |
+
#: includes/class.yith-wcan-frontend.php:585
|
564 |
msgctxt ""
|
565 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
566 |
"selection"
|
573 |
msgstr "Pre establecimiento predeterminado"
|
574 |
|
575 |
#. translators: 1. Taxonomy name.
|
576 |
+
#: includes/class.yith-wcan-install.php:285
|
577 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
578 |
msgid "Filter by %s"
|
579 |
msgstr "Filtrar por %s"
|
580 |
|
581 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
582 |
+
#, fuzzy
|
583 |
+
msgctxt "[Admin] Label in new preset page"
|
584 |
+
msgid "Default"
|
585 |
+
msgstr "Predeterminado"
|
586 |
+
|
587 |
+
#: plugin-options/preset-options.php:14
|
588 |
+
msgctxt "[Admin] Label in new preset page"
|
589 |
+
msgid "Preset name"
|
590 |
+
msgstr "Nombre preestablecido"
|
591 |
+
|
592 |
+
#: plugin-options/preset-options.php:16
|
593 |
+
msgctxt "[Admin] Label in new preset page"
|
594 |
+
msgid "Enter a name to identify this filter preset"
|
595 |
+
msgstr "Introduce un nombre para identificar este filtro pre establecido"
|
596 |
+
|
597 |
+
#: templates/admin/preset-filters.php:20
|
598 |
+
msgctxt "[Admin] Label in new preset page"
|
599 |
+
msgid "Filters of this preset"
|
600 |
+
msgstr "Filtros para este pre establecimiento"
|
601 |
+
|
602 |
#: includes/class.yith-wcan-presets.php:95
|
603 |
#: includes/class.yith-wcan-presets.php:100
|
604 |
msgctxt "[Admin] name of presets custom post type"
|
620 |
msgid "Convert widgets in a preset"
|
621 |
msgstr "Convertir widgets en un pre establecimiento"
|
622 |
|
623 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
624 |
msgctxt ""
|
625 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
626 |
"not exist"
|
628 |
msgstr "Pre establecimiento no válido."
|
629 |
|
630 |
#. translators: 1. Title of original preset.
|
631 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
632 |
msgctxt "[ADMIN] Title of the cloned preset"
|
633 |
msgid "%s - Copy"
|
634 |
msgstr "%s - Copiar"
|
843 |
"Restablecer todos los filtros establecidos por YITH WooCommerce Ajax Product "
|
844 |
"Filter"
|
845 |
|
846 |
+
#: plugin-options/filter-options.php:147
|
847 |
#, fuzzy
|
848 |
msgctxt ""
|
849 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
852 |
"Y . Los resultados deben coincidir con los términos seleccionados al mismo "
|
853 |
"tiempo"
|
854 |
|
855 |
+
#: plugin-options/filter-options.php:148
|
856 |
#, fuzzy
|
857 |
msgctxt ""
|
858 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
1279 |
"easier to share)"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: templates/admin/preset-edit.php:29
|
1283 |
msgctxt "[Admin] Back link in new preset page"
|
1284 |
msgid "< back to preset list"
|
1285 |
msgstr "< volver a la lista de pre establecimiento"
|
1286 |
|
1287 |
+
#: templates/admin/preset-edit.php:36
|
1288 |
msgctxt "[ADMIN] Title for new preset page"
|
1289 |
msgid "Edit filter preset"
|
1290 |
msgstr "Editar pre establecimiento de filtro"
|
1291 |
|
1292 |
+
#: templates/admin/preset-edit.php:38
|
1293 |
msgctxt "[ADMIN] Title for new preset page"
|
1294 |
msgid "Add new filter preset"
|
1295 |
msgstr "Añadir nuevo filtro pre establecido"
|
1296 |
|
1297 |
+
#: templates/admin/preset-edit.php:45
|
1298 |
+
msgctxt "[ADMIN] Preset save message"
|
1299 |
+
msgid "Preset saved correctly"
|
1300 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1301 |
|
1302 |
+
#: templates/admin/preset-edit.php:90
|
1303 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1304 |
msgid "Save preset"
|
1305 |
msgstr "Guardar pre establecimiento"
|
1618 |
#~ msgid "Set the value for each increment of the price slider"
|
1619 |
#~ msgstr "Establece el valor para cada incremento del deslizante de precio"
|
1620 |
|
|
|
|
|
|
|
|
|
1621 |
#~ msgctxt "[Admin] Filter edit form"
|
1622 |
#~ msgid "Select sorting options to show"
|
1623 |
#~ msgstr "Seleccionar orden de opciones a mostrar"
|
1705 |
#~ msgid "Select the default order for terms of this filter"
|
1706 |
#~ msgstr "Selecciona el orden predeterminado para los términos de este filtro"
|
1707 |
|
|
|
|
|
|
|
|
|
1708 |
#~ msgctxt "[Admin] Filter edit form"
|
1709 |
#~ msgid ""
|
1710 |
#~ "Enable if you want to show how many items are available for each term"
|
Binary file
|
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2021-
|
9 |
"PO-Revision-Date: 2020-12-29 14:36:56+0000\n"
|
10 |
"Language: fr\n"
|
11 |
"MIME-Version: 1.0\n"
|
@@ -14,7 +14,7 @@ msgstr ""
|
|
14 |
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
18 |
msgid "Draft Preset"
|
19 |
msgstr ""
|
20 |
|
@@ -105,13 +105,13 @@ msgstr "Réinitialiser tous les filtres"
|
|
105 |
msgid "Button Label"
|
106 |
msgstr "Étiquette du bouton"
|
107 |
|
108 |
-
#: init.php:
|
109 |
msgid ""
|
110 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
111 |
"while you are using the premium one."
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: init.php:
|
115 |
#, fuzzy
|
116 |
msgid ""
|
117 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
@@ -146,91 +146,102 @@ msgctxt "[Admin] Confirm add all terms message"
|
|
146 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
150 |
msgctxt "[Admin] Message shown when filter has empty title"
|
151 |
msgid "< no title >"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: includes/class.yith-wcan-admin.php:
|
155 |
msgctxt "[Admin] Media library title, when selecting images"
|
156 |
msgid "Select media you want to use"
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: includes/class.yith-wcan-admin.php:
|
160 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
161 |
msgid "Use this media"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: includes/class.yith-wcan-admin.php:
|
165 |
msgctxt "[Admin] tab name"
|
166 |
msgid "Filter presets"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: includes/class.yith-wcan-admin.php:
|
170 |
msgctxt "[Admin] tab name"
|
171 |
msgid "General settings"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: includes/class.yith-wcan-admin.php:
|
175 |
#, fuzzy
|
176 |
msgctxt "[Admin] tab name"
|
177 |
msgid "SEO"
|
178 |
msgstr "SEO"
|
179 |
|
180 |
-
#: includes/class.yith-wcan-admin.php:
|
181 |
msgctxt "[Admin] tab name"
|
182 |
msgid "Premium Version"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: includes/class.yith-wcan-admin.php:
|
186 |
msgctxt "[Admin] tab name"
|
187 |
msgid "Legacy"
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: includes/class.yith-wcan-admin.php:
|
191 |
-
#: includes/class.yith-wcan-admin.php:195
|
192 |
msgctxt "[Admin] Menu title"
|
193 |
msgid "Ajax Product Filter"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: includes/class.yith-wcan-admin.php:
|
197 |
msgctxt "[Admin] Plugin description"
|
198 |
msgid ""
|
199 |
"It allows your users to find the product they are looking for as quickly as "
|
200 |
"possible."
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
205 |
msgid "item"
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: includes/class.yith-wcan-admin.php:
|
209 |
msgctxt "[Admin] Preset table empty message second line"
|
210 |
msgid "But don't worry, here you can create your first one!"
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: includes/class.yith-wcan-admin.php:
|
214 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
215 |
msgid "Clear Product Filter transients"
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: includes/class.yith-wcan-admin.php:
|
219 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
220 |
msgid "Run filter widgets upgrade"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: includes/class.yith-wcan-admin.php:
|
224 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
225 |
msgid "Clear"
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: includes/class.yith-wcan-admin.php:
|
229 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
230 |
msgid "Run"
|
231 |
msgstr ""
|
232 |
|
233 |
-
#: includes/class.yith-wcan-admin.php:
|
234 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
235 |
msgid ""
|
236 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -238,7 +249,7 @@ msgid ""
|
|
238 |
"and filters do not display the expected results."
|
239 |
msgstr ""
|
240 |
|
241 |
-
#: includes/class.yith-wcan-admin.php:
|
242 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
243 |
msgid ""
|
244 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -250,172 +261,233 @@ msgctxt "[Admin] Filter edit form"
|
|
250 |
msgid "Taxonomy"
|
251 |
msgstr ""
|
252 |
|
253 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
msgctxt "[Admin] Filter edit form"
|
255 |
msgid "Filter name"
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: plugin-options/filter-options.php:
|
259 |
msgctxt "[Admin] Filter edit form"
|
260 |
msgid "Enter a name to identify this filter"
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: plugin-options/filter-options.php:
|
264 |
msgctxt "[Admin] Filter edit form"
|
265 |
msgid "Filter for"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: plugin-options/filter-options.php:
|
269 |
msgctxt "[Admin] Filter edit form"
|
270 |
msgid "Select the parameters you wish to filter for"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: plugin-options/filter-options.php:
|
274 |
msgctxt "[Admin] Filter edit form"
|
275 |
msgid "Choose taxonomy"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: plugin-options/filter-options.php:
|
279 |
msgctxt "[Admin] Filter edit form"
|
280 |
msgid "Select which taxonomy to use for this filter"
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
msgctxt "[Admin] Filter edit form"
|
285 |
msgid "Choose terms"
|
286 |
msgstr ""
|
287 |
|
288 |
-
#: plugin-options/filter-options.php:
|
289 |
msgctxt "[Admin] Filter edit form"
|
290 |
msgid "Select which terms to use for filtering"
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: plugin-options/filter-options.php:
|
294 |
msgctxt "[Admin] Filter edit form"
|
295 |
msgid "Filter type"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: plugin-options/filter-options.php:
|
299 |
msgctxt "[Admin] Filter edit form"
|
300 |
-
msgid "
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: plugin-options/filter-options.php:
|
|
|
304 |
msgctxt "[Admin] Filter edit form"
|
305 |
-
msgid "
|
306 |
-
msgstr ""
|
307 |
|
308 |
-
#: plugin-options/filter-options.php:
|
|
|
309 |
msgctxt "[Admin] Filter edit form"
|
310 |
-
msgid "
|
311 |
-
msgstr ""
|
312 |
|
313 |
-
#: plugin-options/filter-options.php:
|
314 |
msgctxt "[Admin] Filter edit form"
|
315 |
-
msgid "
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: plugin-options/filter-options.php:
|
319 |
msgctxt "[Admin] Filter edit form"
|
320 |
-
msgid "
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: plugin-options/filter-options.php:
|
|
|
324 |
msgctxt "[Admin] Filter edit form"
|
325 |
-
msgid "
|
326 |
-
msgstr ""
|
327 |
|
328 |
-
#: plugin-options/filter-options.php:
|
329 |
msgctxt "[Admin] Filter edit form"
|
330 |
msgid "Columns number"
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: plugin-options/filter-options.php:
|
334 |
msgctxt "[Admin] Filter edit form"
|
335 |
msgid "Set the number of items per row you want to show for this design"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: plugin-options/filter-options.php:
|
339 |
msgctxt "[Admin] Filter edit form"
|
340 |
msgid "Customize terms"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
msgctxt "[Admin] Filter edit form"
|
345 |
msgid "Show hierarchy"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: plugin-options/filter-options.php:
|
349 |
msgctxt "[Admin] Filter edit form"
|
350 |
msgid "No, show all terms in same level"
|
351 |
msgstr ""
|
352 |
|
353 |
-
#: plugin-options/filter-options.php:
|
354 |
msgctxt "[Admin] Filter edit form"
|
355 |
msgid "No, show only parent terms"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: plugin-options/filter-options.php:
|
359 |
msgctxt "[Admin] Filter edit form"
|
360 |
msgid "Yes"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: plugin-options/filter-options.php:
|
364 |
msgctxt "[Admin] Filter edit form"
|
365 |
msgid "Choose how to show terms hierarchy"
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: plugin-options/filter-options.php:
|
369 |
msgctxt "[Admin] Filter edit form"
|
370 |
msgid "Allow multiple selection"
|
371 |
msgstr ""
|
372 |
|
373 |
-
#: plugin-options/filter-options.php:
|
374 |
msgctxt "[Admin] Filter edit form"
|
375 |
msgid "Enable if the user can select multiple terms when filtering products"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: plugin-options/filter-options.php:
|
379 |
msgctxt "[Admin] Filter edit form"
|
380 |
msgid "Multiselect relation"
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: plugin-options/filter-options.php:
|
384 |
msgctxt "[Admin] Filter edit form"
|
385 |
msgid "Choose how multiple terms selection should behave"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
389 |
msgctxt "[Admin] Filter edit form, sorting options"
|
390 |
msgid "Default sorting"
|
391 |
msgstr ""
|
392 |
|
393 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
394 |
msgctxt "[Admin] Filter edit form, sorting options"
|
395 |
msgid "Sort by popularity"
|
396 |
msgstr ""
|
397 |
|
398 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
399 |
msgctxt "[Admin] Filter edit form, sorting options"
|
400 |
msgid "Sort by average rating"
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
404 |
msgctxt "[Admin] Filter edit form, sorting options"
|
405 |
msgid "Sort by latest"
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
409 |
msgctxt "[Admin] Filter edit form, sorting options"
|
410 |
msgid "Sort by price: low to high"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
414 |
msgctxt "[Admin] Filter edit form, sorting options"
|
415 |
msgid "Sort by price: high to low"
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: includes/class.yith-wcan-filter.php:
|
419 |
msgctxt "[Admin] Default filter title"
|
420 |
msgid "New filter"
|
421 |
msgstr ""
|
@@ -448,18 +520,23 @@ msgid "Close"
|
|
448 |
msgstr ""
|
449 |
|
450 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
451 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
452 |
msgid "Show results"
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: includes/class.yith-wcan-frontend.php:
|
456 |
msgctxt ""
|
457 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
458 |
"selection"
|
459 |
msgid "Clear"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: includes/class.yith-wcan-frontend.php:
|
463 |
msgctxt ""
|
464 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
465 |
"selection"
|
@@ -472,11 +549,31 @@ msgid "Default preset"
|
|
472 |
msgstr ""
|
473 |
|
474 |
#. translators: 1. Taxonomy name.
|
475 |
-
#: includes/class.yith-wcan-install.php:
|
476 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
477 |
msgid "Filter by %s"
|
478 |
msgstr ""
|
479 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
480 |
#: includes/class.yith-wcan-presets.php:95
|
481 |
#: includes/class.yith-wcan-presets.php:100
|
482 |
msgctxt "[Admin] name of presets custom post type"
|
@@ -498,7 +595,7 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
498 |
msgid "Convert widgets in a preset"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
502 |
msgctxt ""
|
503 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
504 |
"not exist"
|
@@ -506,7 +603,7 @@ msgid "Invalid preset."
|
|
506 |
msgstr ""
|
507 |
|
508 |
#. translators: 1. Title of original preset.
|
509 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
510 |
msgctxt "[ADMIN] Title of the cloned preset"
|
511 |
msgid "%s - Copy"
|
512 |
msgstr ""
|
@@ -706,13 +803,13 @@ msgctxt "[Plugin Name]"
|
|
706 |
msgid "Reset all filters set by YITH WooCommerce AJAX Product Filter"
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: plugin-options/filter-options.php:
|
710 |
msgctxt ""
|
711 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
712 |
msgid "AND - Results need to match all selected terms at the same time"
|
713 |
msgstr ""
|
714 |
|
715 |
-
#: plugin-options/filter-options.php:
|
716 |
msgctxt ""
|
717 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
718 |
msgid "OR - Results need to match at least one of the selected terms"
|
@@ -1108,37 +1205,27 @@ msgid ""
|
|
1108 |
"easier to share)"
|
1109 |
msgstr ""
|
1110 |
|
1111 |
-
#: templates/admin/preset-edit.php:
|
1112 |
msgctxt "[Admin] Back link in new preset page"
|
1113 |
msgid "< back to preset list"
|
1114 |
msgstr ""
|
1115 |
|
1116 |
-
#: templates/admin/preset-edit.php:
|
1117 |
msgctxt "[ADMIN] Title for new preset page"
|
1118 |
msgid "Edit filter preset"
|
1119 |
msgstr ""
|
1120 |
|
1121 |
-
#: templates/admin/preset-edit.php:
|
1122 |
msgctxt "[ADMIN] Title for new preset page"
|
1123 |
msgid "Add new filter preset"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
-
#: templates/admin/preset-edit.php:
|
1127 |
-
msgctxt "[
|
1128 |
-
msgid "Preset
|
1129 |
-
msgstr ""
|
1130 |
-
|
1131 |
-
#: templates/admin/preset-edit.php:54
|
1132 |
-
msgctxt "[Admin] Label in new preset page"
|
1133 |
-
msgid "Enter a name to identify this filter preset"
|
1134 |
-
msgstr ""
|
1135 |
-
|
1136 |
-
#: templates/admin/preset-filters.php:20
|
1137 |
-
msgctxt "[Admin] Label in new preset page"
|
1138 |
-
msgid "Filters of this preset"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: templates/admin/preset-edit.php:
|
1142 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1143 |
msgid "Save preset"
|
1144 |
msgstr ""
|
@@ -1300,9 +1387,6 @@ msgstr ""
|
|
1300 |
#~ msgid "No tags found."
|
1301 |
#~ msgstr "Aucune balise trouvée."
|
1302 |
|
1303 |
-
#~ msgid "Show Selected"
|
1304 |
-
#~ msgstr "Afficher la sélection"
|
1305 |
-
|
1306 |
#~ msgid "Hide Selected"
|
1307 |
#~ msgstr "Masquer la sélection"
|
1308 |
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
9 |
"PO-Revision-Date: 2020-12-29 14:36:56+0000\n"
|
10 |
"Language: fr\n"
|
11 |
"MIME-Version: 1.0\n"
|
14 |
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
18 |
msgid "Draft Preset"
|
19 |
msgstr ""
|
20 |
|
105 |
msgid "Button Label"
|
106 |
msgstr "Étiquette du bouton"
|
107 |
|
108 |
+
#: init.php:148
|
109 |
msgid ""
|
110 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
111 |
"while you are using the premium one."
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: init.php:166
|
115 |
#, fuzzy
|
116 |
msgid ""
|
117 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
146 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: includes/class.yith-wcan-admin.php:111
|
150 |
+
msgctxt "[Admin] Error message"
|
151 |
+
msgid "\"Filter title\" is a required field"
|
152 |
+
msgstr ""
|
153 |
+
|
154 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
155 |
msgctxt "[Admin] Message shown when filter has empty title"
|
156 |
msgid "< no title >"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: includes/class.yith-wcan-admin.php:115
|
160 |
msgctxt "[Admin] Media library title, when selecting images"
|
161 |
msgid "Select media you want to use"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: includes/class.yith-wcan-admin.php:116
|
165 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
166 |
msgid "Use this media"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: includes/class.yith-wcan-admin.php:184
|
170 |
msgctxt "[Admin] tab name"
|
171 |
msgid "Filter presets"
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: includes/class.yith-wcan-admin.php:185
|
175 |
msgctxt "[Admin] tab name"
|
176 |
msgid "General settings"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: includes/class.yith-wcan-admin.php:186
|
180 |
#, fuzzy
|
181 |
msgctxt "[Admin] tab name"
|
182 |
msgid "SEO"
|
183 |
msgstr "SEO"
|
184 |
|
185 |
+
#: includes/class.yith-wcan-admin.php:187
|
186 |
msgctxt "[Admin] tab name"
|
187 |
msgid "Premium Version"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: includes/class.yith-wcan-admin.php:191
|
191 |
msgctxt "[Admin] tab name"
|
192 |
msgid "Legacy"
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
196 |
msgctxt "[Admin] Menu title"
|
197 |
msgid "Ajax Product Filter"
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: includes/class.yith-wcan-admin.php:199
|
201 |
msgctxt "[Admin] Plugin description"
|
202 |
msgid ""
|
203 |
"It allows your users to find the product they are looking for as quickly as "
|
204 |
"possible."
|
205 |
msgstr ""
|
206 |
|
207 |
+
#: includes/class.yith-wcan-admin.php:211
|
208 |
+
msgctxt "[HELP TAB] Video title"
|
209 |
+
msgid ""
|
210 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
211 |
+
"the shop page:</b>"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: includes/class.yith-wcan-admin.php:329
|
215 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
216 |
msgid "item"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: includes/class.yith-wcan-admin.php:330
|
220 |
msgctxt "[Admin] Preset table empty message second line"
|
221 |
msgid "But don't worry, here you can create your first one!"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: includes/class.yith-wcan-admin.php:478
|
225 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
226 |
msgid "Clear Product Filter transients"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: includes/class.yith-wcan-admin.php:484
|
230 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
231 |
msgid "Run filter widgets upgrade"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: includes/class.yith-wcan-admin.php:479
|
235 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
236 |
msgid "Clear"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: includes/class.yith-wcan-admin.php:485
|
240 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
241 |
msgid "Run"
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: includes/class.yith-wcan-admin.php:480
|
245 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
246 |
msgid ""
|
247 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
249 |
"and filters do not display the expected results."
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: includes/class.yith-wcan-admin.php:486
|
253 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
254 |
msgid ""
|
255 |
"This will create a preset for any sidebar of your shop containing filter "
|
261 |
msgid "Taxonomy"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
265 |
+
msgctxt "[Admin] Filter edit form"
|
266 |
+
msgid "Checkbox"
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
270 |
+
msgctxt "[Admin] Filter edit form"
|
271 |
+
msgid "Select"
|
272 |
+
msgstr ""
|
273 |
+
|
274 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
275 |
+
msgctxt "[Admin] Filter edit form"
|
276 |
+
msgid "Text"
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
280 |
+
msgctxt "[Admin] Filter edit form"
|
281 |
+
msgid "Color Swatches"
|
282 |
+
msgstr ""
|
283 |
+
|
284 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
285 |
+
msgctxt "[Admin] Filter edit form"
|
286 |
+
msgid "Label"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: plugin-options/filter-options.php:32
|
290 |
msgctxt "[Admin] Filter edit form"
|
291 |
msgid "Filter name"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: plugin-options/filter-options.php:35
|
295 |
msgctxt "[Admin] Filter edit form"
|
296 |
msgid "Enter a name to identify this filter"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: plugin-options/filter-options.php:41
|
300 |
msgctxt "[Admin] Filter edit form"
|
301 |
msgid "Filter for"
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: plugin-options/filter-options.php:45
|
305 |
msgctxt "[Admin] Filter edit form"
|
306 |
msgid "Select the parameters you wish to filter for"
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: plugin-options/filter-options.php:51
|
310 |
msgctxt "[Admin] Filter edit form"
|
311 |
msgid "Choose taxonomy"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: plugin-options/filter-options.php:55
|
315 |
msgctxt "[Admin] Filter edit form"
|
316 |
msgid "Select which taxonomy to use for this filter"
|
317 |
msgstr ""
|
318 |
|
319 |
+
#: plugin-options/filter-options.php:60
|
320 |
+
msgctxt "[Admin] Filter edit form"
|
321 |
+
msgid "Auto-populate with all terms"
|
322 |
+
msgstr ""
|
323 |
+
|
324 |
+
#: plugin-options/filter-options.php:62
|
325 |
+
msgctxt "[Admin] Filter edit form"
|
326 |
+
msgid ""
|
327 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
328 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
329 |
+
"this option, all terms created in the future will be added to this filter as "
|
330 |
+
"well.</span>"
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: plugin-options/filter-options.php:71
|
334 |
msgctxt "[Admin] Filter edit form"
|
335 |
msgid "Choose terms"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: plugin-options/filter-options.php:76
|
339 |
msgctxt "[Admin] Filter edit form"
|
340 |
msgid "Select which terms to use for filtering"
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: plugin-options/filter-options.php:80
|
344 |
msgctxt "[Admin] Filter edit form"
|
345 |
msgid "Filter type"
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: plugin-options/filter-options.php:84
|
349 |
msgctxt "[Admin] Filter edit form"
|
350 |
+
msgid "Select the filter type for this filter"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: plugin-options/filter-options.php:88
|
354 |
+
#, fuzzy
|
355 |
msgctxt "[Admin] Filter edit form"
|
356 |
+
msgid "Labels"
|
357 |
+
msgstr "Étiquettes"
|
358 |
|
359 |
+
#: plugin-options/filter-options.php:91
|
360 |
+
#, fuzzy
|
361 |
msgctxt "[Admin] Filter edit form"
|
362 |
+
msgid "Show below"
|
363 |
+
msgstr "Afficher la sélection"
|
364 |
|
365 |
+
#: plugin-options/filter-options.php:92
|
366 |
msgctxt "[Admin] Filter edit form"
|
367 |
+
msgid "Show on the right"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: plugin-options/filter-options.php:93
|
371 |
msgctxt "[Admin] Filter edit form"
|
372 |
+
msgid "Hide"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: plugin-options/filter-options.php:95
|
376 |
+
#, fuzzy
|
377 |
msgctxt "[Admin] Filter edit form"
|
378 |
+
msgid "Choose if and where to show the label inside your filter"
|
379 |
+
msgstr "Choisissez comment trier les produits WooCommerce"
|
380 |
|
381 |
+
#: plugin-options/filter-options.php:99
|
382 |
msgctxt "[Admin] Filter edit form"
|
383 |
msgid "Columns number"
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: plugin-options/filter-options.php:104
|
387 |
msgctxt "[Admin] Filter edit form"
|
388 |
msgid "Set the number of items per row you want to show for this design"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: plugin-options/filter-options.php:108
|
392 |
msgctxt "[Admin] Filter edit form"
|
393 |
msgid "Customize terms"
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: plugin-options/filter-options.php:111
|
397 |
+
msgctxt "[Admin] Filter edit form"
|
398 |
+
msgid ""
|
399 |
+
"Configure your terms individually; system will otherwise use default labels/"
|
400 |
+
"images for terms.\n"
|
401 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
402 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
403 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, just "
|
404 |
+
"enable this option and use boxes below.</span>\n"
|
405 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
406 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
407 |
+
"this option and use the boxes below</span>"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: plugin-options/filter-options.php:121
|
411 |
+
msgctxt "[Admin] Filter edit form"
|
412 |
+
msgid "Terms options"
|
413 |
+
msgstr ""
|
414 |
+
|
415 |
+
#: plugin-options/filter-options.php:127
|
416 |
msgctxt "[Admin] Filter edit form"
|
417 |
msgid "Show hierarchy"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: plugin-options/filter-options.php:130
|
421 |
msgctxt "[Admin] Filter edit form"
|
422 |
msgid "No, show all terms in same level"
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: plugin-options/filter-options.php:131
|
426 |
msgctxt "[Admin] Filter edit form"
|
427 |
msgid "No, show only parent terms"
|
428 |
msgstr ""
|
429 |
|
430 |
+
#: plugin-options/filter-options.php:132
|
431 |
msgctxt "[Admin] Filter edit form"
|
432 |
msgid "Yes"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: plugin-options/filter-options.php:134
|
436 |
msgctxt "[Admin] Filter edit form"
|
437 |
msgid "Choose how to show terms hierarchy"
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: plugin-options/filter-options.php:138
|
441 |
msgctxt "[Admin] Filter edit form"
|
442 |
msgid "Allow multiple selection"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: plugin-options/filter-options.php:140
|
446 |
msgctxt "[Admin] Filter edit form"
|
447 |
msgid "Enable if the user can select multiple terms when filtering products"
|
448 |
msgstr ""
|
449 |
|
450 |
+
#: plugin-options/filter-options.php:144
|
451 |
msgctxt "[Admin] Filter edit form"
|
452 |
msgid "Multiselect relation"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: plugin-options/filter-options.php:150
|
456 |
msgctxt "[Admin] Filter edit form"
|
457 |
msgid "Choose how multiple terms selection should behave"
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
461 |
msgctxt "[Admin] Filter edit form, sorting options"
|
462 |
msgid "Default sorting"
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
466 |
msgctxt "[Admin] Filter edit form, sorting options"
|
467 |
msgid "Sort by popularity"
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
471 |
msgctxt "[Admin] Filter edit form, sorting options"
|
472 |
msgid "Sort by average rating"
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
476 |
msgctxt "[Admin] Filter edit form, sorting options"
|
477 |
msgid "Sort by latest"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
481 |
msgctxt "[Admin] Filter edit form, sorting options"
|
482 |
msgid "Sort by price: low to high"
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
486 |
msgctxt "[Admin] Filter edit form, sorting options"
|
487 |
msgid "Sort by price: high to low"
|
488 |
msgstr ""
|
489 |
|
490 |
+
#: includes/class.yith-wcan-filter.php:116
|
491 |
msgctxt "[Admin] Default filter title"
|
492 |
msgid "New filter"
|
493 |
msgstr ""
|
520 |
msgstr ""
|
521 |
|
522 |
#: includes/class.yith-wcan-frontend.php:582
|
523 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
524 |
+
msgid "Save"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: includes/class.yith-wcan-frontend.php:583
|
528 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
529 |
msgid "Show results"
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: includes/class.yith-wcan-frontend.php:584
|
533 |
msgctxt ""
|
534 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
535 |
"selection"
|
536 |
msgid "Clear"
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: includes/class.yith-wcan-frontend.php:585
|
540 |
msgctxt ""
|
541 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
542 |
"selection"
|
549 |
msgstr ""
|
550 |
|
551 |
#. translators: 1. Taxonomy name.
|
552 |
+
#: includes/class.yith-wcan-install.php:285
|
553 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
554 |
msgid "Filter by %s"
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
558 |
+
msgctxt "[Admin] Label in new preset page"
|
559 |
+
msgid "Default"
|
560 |
+
msgstr ""
|
561 |
+
|
562 |
+
#: plugin-options/preset-options.php:14
|
563 |
+
msgctxt "[Admin] Label in new preset page"
|
564 |
+
msgid "Preset name"
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: plugin-options/preset-options.php:16
|
568 |
+
msgctxt "[Admin] Label in new preset page"
|
569 |
+
msgid "Enter a name to identify this filter preset"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: templates/admin/preset-filters.php:20
|
573 |
+
msgctxt "[Admin] Label in new preset page"
|
574 |
+
msgid "Filters of this preset"
|
575 |
+
msgstr ""
|
576 |
+
|
577 |
#: includes/class.yith-wcan-presets.php:95
|
578 |
#: includes/class.yith-wcan-presets.php:100
|
579 |
msgctxt "[Admin] name of presets custom post type"
|
595 |
msgid "Convert widgets in a preset"
|
596 |
msgstr ""
|
597 |
|
598 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
599 |
msgctxt ""
|
600 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
601 |
"not exist"
|
603 |
msgstr ""
|
604 |
|
605 |
#. translators: 1. Title of original preset.
|
606 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
607 |
msgctxt "[ADMIN] Title of the cloned preset"
|
608 |
msgid "%s - Copy"
|
609 |
msgstr ""
|
803 |
msgid "Reset all filters set by YITH WooCommerce AJAX Product Filter"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: plugin-options/filter-options.php:147
|
807 |
msgctxt ""
|
808 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
809 |
msgid "AND - Results need to match all selected terms at the same time"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: plugin-options/filter-options.php:148
|
813 |
msgctxt ""
|
814 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
815 |
msgid "OR - Results need to match at least one of the selected terms"
|
1205 |
"easier to share)"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
+
#: templates/admin/preset-edit.php:29
|
1209 |
msgctxt "[Admin] Back link in new preset page"
|
1210 |
msgid "< back to preset list"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
+
#: templates/admin/preset-edit.php:36
|
1214 |
msgctxt "[ADMIN] Title for new preset page"
|
1215 |
msgid "Edit filter preset"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: templates/admin/preset-edit.php:38
|
1219 |
msgctxt "[ADMIN] Title for new preset page"
|
1220 |
msgid "Add new filter preset"
|
1221 |
msgstr ""
|
1222 |
|
1223 |
+
#: templates/admin/preset-edit.php:45
|
1224 |
+
msgctxt "[ADMIN] Preset save message"
|
1225 |
+
msgid "Preset saved correctly"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1226 |
msgstr ""
|
1227 |
|
1228 |
+
#: templates/admin/preset-edit.php:90
|
1229 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1230 |
msgid "Save preset"
|
1231 |
msgstr ""
|
1387 |
#~ msgid "No tags found."
|
1388 |
#~ msgstr "Aucune balise trouvée."
|
1389 |
|
|
|
|
|
|
|
1390 |
#~ msgid "Hide Selected"
|
1391 |
#~ msgstr "Masquer la sélection"
|
1392 |
|
Binary file
|
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2021-
|
9 |
"PO-Revision-Date: 2021-03-03 10:36+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -16,7 +16,7 @@ msgstr ""
|
|
16 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
"X-Generator: Poedit 2.4.2\n"
|
18 |
|
19 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
20 |
msgid "Draft Preset"
|
21 |
msgstr "Preset bozza"
|
22 |
|
@@ -107,7 +107,7 @@ msgstr "Resetta tutti i filtri"
|
|
107 |
msgid "Button Label"
|
108 |
msgstr "Etichetta Pulsante"
|
109 |
|
110 |
-
#: init.php:
|
111 |
msgid ""
|
112 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
113 |
"while you are using the premium one."
|
@@ -115,7 +115,7 @@ msgstr ""
|
|
115 |
"Non è possibile attivare la versione gratuita di YITH WooCommerce Ajax "
|
116 |
"Product Filter se stai già utilizzando la versione premium."
|
117 |
|
118 |
-
#: init.php:
|
119 |
msgid ""
|
120 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
121 |
"requires WooCommerce in order to work."
|
@@ -157,53 +157,57 @@ msgctxt "[Admin] Confirm add all terms message"
|
|
157 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
158 |
msgstr "Sei sicuro di voler procedere? Questa azione aggiungerà %s elementi"
|
159 |
|
160 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
161 |
msgctxt "[Admin] Message shown when filter has empty title"
|
162 |
msgid "< no title >"
|
163 |
msgstr "< nessun titolo >"
|
164 |
|
165 |
-
#: includes/class.yith-wcan-admin.php:
|
166 |
msgctxt "[Admin] Media library title, when selecting images"
|
167 |
msgid "Select media you want to use"
|
168 |
msgstr "Seleziona i media da usare"
|
169 |
|
170 |
-
#: includes/class.yith-wcan-admin.php:
|
171 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
172 |
msgid "Use this media"
|
173 |
msgstr "Usa questo media"
|
174 |
|
175 |
-
#: includes/class.yith-wcan-admin.php:
|
176 |
msgctxt "[Admin] tab name"
|
177 |
msgid "Filter presets"
|
178 |
msgstr "Preset filtri"
|
179 |
|
180 |
-
#: includes/class.yith-wcan-admin.php:
|
181 |
msgctxt "[Admin] tab name"
|
182 |
msgid "General settings"
|
183 |
msgstr "Impostazioni generali"
|
184 |
|
185 |
-
#: includes/class.yith-wcan-admin.php:
|
186 |
msgctxt "[Admin] tab name"
|
187 |
msgid "SEO"
|
188 |
msgstr "SEO"
|
189 |
|
190 |
-
#: includes/class.yith-wcan-admin.php:
|
191 |
msgctxt "[Admin] tab name"
|
192 |
msgid "Premium Version"
|
193 |
msgstr "Versione Premium"
|
194 |
|
195 |
-
#: includes/class.yith-wcan-admin.php:
|
196 |
msgctxt "[Admin] tab name"
|
197 |
msgid "Legacy"
|
198 |
msgstr "Legacy"
|
199 |
|
200 |
-
#: includes/class.yith-wcan-admin.php:
|
201 |
-
#: includes/class.yith-wcan-admin.php:195
|
202 |
msgctxt "[Admin] Menu title"
|
203 |
msgid "Ajax Product Filter"
|
204 |
msgstr "Ajax Product Filter"
|
205 |
|
206 |
-
#: includes/class.yith-wcan-admin.php:
|
207 |
msgctxt "[Admin] Plugin description"
|
208 |
msgid ""
|
209 |
"It allows your users to find the product they are looking for as quickly as "
|
@@ -212,37 +216,44 @@ msgstr ""
|
|
212 |
"Permette ai tuoi utenti di trovare il prodotto che stanno cercando il più "
|
213 |
"velocemente possibile."
|
214 |
|
215 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
217 |
msgid "item"
|
218 |
msgstr "elemento"
|
219 |
|
220 |
-
#: includes/class.yith-wcan-admin.php:
|
221 |
msgctxt "[Admin] Preset table empty message second line"
|
222 |
msgid "But don't worry, here you can create your first one!"
|
223 |
msgstr "Ma non preoccuparti. Puoi iniziare a crearli qui!"
|
224 |
|
225 |
-
#: includes/class.yith-wcan-admin.php:
|
226 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
227 |
msgid "Clear Product Filter transients"
|
228 |
msgstr "Cancella i transient Product Filter"
|
229 |
|
230 |
-
#: includes/class.yith-wcan-admin.php:
|
231 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
232 |
msgid "Run filter widgets upgrade"
|
233 |
msgstr "Avvia l'upgrade dei widget dei filtri"
|
234 |
|
235 |
-
#: includes/class.yith-wcan-admin.php:
|
236 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
237 |
msgid "Clear"
|
238 |
msgstr "Cancella"
|
239 |
|
240 |
-
#: includes/class.yith-wcan-admin.php:
|
241 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
242 |
msgid "Run"
|
243 |
msgstr "Avvia"
|
244 |
|
245 |
-
#: includes/class.yith-wcan-admin.php:
|
246 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
247 |
msgid ""
|
248 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -253,7 +264,7 @@ msgstr ""
|
|
253 |
"Product Filter. Utile se hai cambiato la configurazione del prodotto e i "
|
254 |
"filtri non mostrano i risultati previsti. "
|
255 |
|
256 |
-
#: includes/class.yith-wcan-admin.php:
|
257 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
258 |
msgid ""
|
259 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -267,172 +278,237 @@ msgctxt "[Admin] Filter edit form"
|
|
267 |
msgid "Taxonomy"
|
268 |
msgstr "Tassonomia"
|
269 |
|
270 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
msgctxt "[Admin] Filter edit form"
|
272 |
msgid "Filter name"
|
273 |
msgstr "Nome filtro"
|
274 |
|
275 |
-
#: plugin-options/filter-options.php:
|
276 |
msgctxt "[Admin] Filter edit form"
|
277 |
msgid "Enter a name to identify this filter"
|
278 |
msgstr "Inserisci un nome per definire questo filtro"
|
279 |
|
280 |
-
#: plugin-options/filter-options.php:
|
281 |
msgctxt "[Admin] Filter edit form"
|
282 |
msgid "Filter for"
|
283 |
msgstr "Filtro per"
|
284 |
|
285 |
-
#: plugin-options/filter-options.php:
|
286 |
msgctxt "[Admin] Filter edit form"
|
287 |
msgid "Select the parameters you wish to filter for"
|
288 |
msgstr "Seleziona il parametro per il filtro"
|
289 |
|
290 |
-
#: plugin-options/filter-options.php:
|
291 |
msgctxt "[Admin] Filter edit form"
|
292 |
msgid "Choose taxonomy"
|
293 |
msgstr "Scegli tassonomia"
|
294 |
|
295 |
-
#: plugin-options/filter-options.php:
|
296 |
msgctxt "[Admin] Filter edit form"
|
297 |
msgid "Select which taxonomy to use for this filter"
|
298 |
msgstr "Seleziona quale tassonomia usare per questo filtro"
|
299 |
|
300 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
301 |
msgctxt "[Admin] Filter edit form"
|
302 |
msgid "Choose terms"
|
303 |
msgstr "Scegli termini"
|
304 |
|
305 |
-
#: plugin-options/filter-options.php:
|
306 |
msgctxt "[Admin] Filter edit form"
|
307 |
msgid "Select which terms to use for filtering"
|
308 |
msgstr "Seleziona quali termini usare per i filtri"
|
309 |
|
310 |
-
#: plugin-options/filter-options.php:
|
311 |
msgctxt "[Admin] Filter edit form"
|
312 |
msgid "Filter type"
|
313 |
msgstr "Tipo filtro"
|
314 |
|
315 |
-
#: plugin-options/filter-options.php:
|
316 |
msgctxt "[Admin] Filter edit form"
|
317 |
-
msgid "
|
318 |
-
msgstr "
|
319 |
|
320 |
-
#: plugin-options/filter-options.php:
|
|
|
321 |
msgctxt "[Admin] Filter edit form"
|
322 |
-
msgid "
|
323 |
-
msgstr "
|
324 |
|
325 |
-
#: plugin-options/filter-options.php:
|
|
|
326 |
msgctxt "[Admin] Filter edit form"
|
327 |
-
msgid "
|
328 |
-
msgstr "
|
329 |
|
330 |
-
#: plugin-options/filter-options.php:
|
|
|
331 |
msgctxt "[Admin] Filter edit form"
|
332 |
-
msgid "
|
333 |
-
msgstr "
|
334 |
|
335 |
-
#: plugin-options/filter-options.php:
|
336 |
msgctxt "[Admin] Filter edit form"
|
337 |
-
msgid "
|
338 |
-
msgstr "
|
339 |
|
340 |
-
#: plugin-options/filter-options.php:
|
|
|
341 |
msgctxt "[Admin] Filter edit form"
|
342 |
-
msgid "
|
343 |
-
msgstr "
|
|
|
|
|
344 |
|
345 |
-
#: plugin-options/filter-options.php:
|
346 |
msgctxt "[Admin] Filter edit form"
|
347 |
msgid "Columns number"
|
348 |
msgstr "Numero colonne"
|
349 |
|
350 |
-
#: plugin-options/filter-options.php:
|
351 |
msgctxt "[Admin] Filter edit form"
|
352 |
msgid "Set the number of items per row you want to show for this design"
|
353 |
msgstr "Scegli il numero di elementi per riga da mostrare "
|
354 |
|
355 |
-
#: plugin-options/filter-options.php:
|
356 |
msgctxt "[Admin] Filter edit form"
|
357 |
msgid "Customize terms"
|
358 |
msgstr "Personalizza termini"
|
359 |
|
360 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361 |
msgctxt "[Admin] Filter edit form"
|
362 |
msgid "Show hierarchy"
|
363 |
msgstr "Mostra gerarchia"
|
364 |
|
365 |
-
#: plugin-options/filter-options.php:
|
366 |
msgctxt "[Admin] Filter edit form"
|
367 |
msgid "No, show all terms in same level"
|
368 |
msgstr "No, mostra tutti i termini nello stesso livello"
|
369 |
|
370 |
-
#: plugin-options/filter-options.php:
|
371 |
msgctxt "[Admin] Filter edit form"
|
372 |
msgid "No, show only parent terms"
|
373 |
msgstr "No, mostra solo termini genitore"
|
374 |
|
375 |
-
#: plugin-options/filter-options.php:
|
376 |
msgctxt "[Admin] Filter edit form"
|
377 |
msgid "Yes"
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: plugin-options/filter-options.php:
|
381 |
msgctxt "[Admin] Filter edit form"
|
382 |
msgid "Choose how to show terms hierarchy"
|
383 |
msgstr "Decidi come mostrare la gerarchia dei termini"
|
384 |
|
385 |
-
#: plugin-options/filter-options.php:
|
386 |
msgctxt "[Admin] Filter edit form"
|
387 |
msgid "Allow multiple selection"
|
388 |
msgstr "Abilita selezione multipla"
|
389 |
|
390 |
-
#: plugin-options/filter-options.php:
|
391 |
msgctxt "[Admin] Filter edit form"
|
392 |
msgid "Enable if the user can select multiple terms when filtering products"
|
393 |
msgstr "Abilita la selezione multipla dei termini per filtrare i prodotti"
|
394 |
|
395 |
-
#: plugin-options/filter-options.php:
|
396 |
msgctxt "[Admin] Filter edit form"
|
397 |
msgid "Multiselect relation"
|
398 |
msgstr "Relazione seleziona multipla"
|
399 |
|
400 |
-
#: plugin-options/filter-options.php:
|
401 |
msgctxt "[Admin] Filter edit form"
|
402 |
msgid "Choose how multiple terms selection should behave"
|
403 |
msgstr "Decidi il comportamento della selezione multipla dei termini"
|
404 |
|
405 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
406 |
msgctxt "[Admin] Filter edit form, sorting options"
|
407 |
msgid "Default sorting"
|
408 |
msgstr "Ordinamento predefinito "
|
409 |
|
410 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
411 |
msgctxt "[Admin] Filter edit form, sorting options"
|
412 |
msgid "Sort by popularity"
|
413 |
msgstr "Ordina per popolarità"
|
414 |
|
415 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
416 |
msgctxt "[Admin] Filter edit form, sorting options"
|
417 |
msgid "Sort by average rating"
|
418 |
msgstr "Ordina per valutazione media"
|
419 |
|
420 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
421 |
msgctxt "[Admin] Filter edit form, sorting options"
|
422 |
msgid "Sort by latest"
|
423 |
msgstr "Ordina per più recenti"
|
424 |
|
425 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
426 |
msgctxt "[Admin] Filter edit form, sorting options"
|
427 |
msgid "Sort by price: low to high"
|
428 |
msgstr "Ordina per prezzo: crescente"
|
429 |
|
430 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
431 |
msgctxt "[Admin] Filter edit form, sorting options"
|
432 |
msgid "Sort by price: high to low"
|
433 |
msgstr "Ordina per prezzo: decrescente"
|
434 |
|
435 |
-
#: includes/class.yith-wcan-filter.php:
|
436 |
msgctxt "[Admin] Default filter title"
|
437 |
msgid "New filter"
|
438 |
msgstr "Nuovo filtro"
|
@@ -465,18 +541,23 @@ msgid "Close"
|
|
465 |
msgstr "Chiudi"
|
466 |
|
467 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
468 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
469 |
msgid "Show results"
|
470 |
msgstr "Mostra risultati"
|
471 |
|
472 |
-
#: includes/class.yith-wcan-frontend.php:
|
473 |
msgctxt ""
|
474 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
475 |
"selection"
|
476 |
msgid "Clear"
|
477 |
msgstr "Cancella"
|
478 |
|
479 |
-
#: includes/class.yith-wcan-frontend.php:
|
480 |
msgctxt ""
|
481 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
482 |
"selection"
|
@@ -489,11 +570,32 @@ msgid "Default preset"
|
|
489 |
msgstr "Preset predefinito"
|
490 |
|
491 |
#. translators: 1. Taxonomy name.
|
492 |
-
#: includes/class.yith-wcan-install.php:
|
493 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
494 |
msgid "Filter by %s"
|
495 |
msgstr "Filtra per %s"
|
496 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
497 |
#: includes/class.yith-wcan-presets.php:95
|
498 |
#: includes/class.yith-wcan-presets.php:100
|
499 |
msgctxt "[Admin] name of presets custom post type"
|
@@ -515,7 +617,7 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
515 |
msgid "Convert widgets in a preset"
|
516 |
msgstr "Converti widget in preset"
|
517 |
|
518 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
519 |
msgctxt ""
|
520 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
521 |
"not exist"
|
@@ -523,7 +625,7 @@ msgid "Invalid preset."
|
|
523 |
msgstr "Preset non valido."
|
524 |
|
525 |
#. translators: 1. Title of original preset.
|
526 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
527 |
msgctxt "[ADMIN] Title of the cloned preset"
|
528 |
msgid "%s - Copy"
|
529 |
msgstr "%s - Copia"
|
@@ -736,14 +838,14 @@ msgid "Reset all filters set by YITH WooCommerce AJAX Product Filter"
|
|
736 |
msgstr ""
|
737 |
"Resetta tutti i filtri impostati da YITH WooCommerce AJAX Product Filter"
|
738 |
|
739 |
-
#: plugin-options/filter-options.php:
|
740 |
#, fuzzy
|
741 |
msgctxt ""
|
742 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
743 |
msgid "AND - Results need to match all selected terms at the same time"
|
744 |
msgstr "AND - I risultati devono combaciare con tutti i termini selezionati "
|
745 |
|
746 |
-
#: plugin-options/filter-options.php:
|
747 |
#, fuzzy
|
748 |
msgctxt ""
|
749 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -1221,37 +1323,27 @@ msgstr ""
|
|
1221 |
"aggiungendo i filtri applicati o di modificarlo attraverso i permalink del "
|
1222 |
"plugin (in questo modo gli URL saranno più brevi e semplici da condividere)"
|
1223 |
|
1224 |
-
#: templates/admin/preset-edit.php:
|
1225 |
msgctxt "[Admin] Back link in new preset page"
|
1226 |
msgid "< back to preset list"
|
1227 |
msgstr "< Torna all'elenco preset"
|
1228 |
|
1229 |
-
#: templates/admin/preset-edit.php:
|
1230 |
msgctxt "[ADMIN] Title for new preset page"
|
1231 |
msgid "Edit filter preset"
|
1232 |
msgstr "Modifica preset filtri"
|
1233 |
|
1234 |
-
#: templates/admin/preset-edit.php:
|
1235 |
msgctxt "[ADMIN] Title for new preset page"
|
1236 |
msgid "Add new filter preset"
|
1237 |
msgstr "Aggiungi nuovo preset filtri"
|
1238 |
|
1239 |
-
#: templates/admin/preset-edit.php:
|
1240 |
-
msgctxt "[
|
1241 |
-
msgid "Preset
|
1242 |
-
msgstr "
|
1243 |
-
|
1244 |
-
#: templates/admin/preset-edit.php:54
|
1245 |
-
msgctxt "[Admin] Label in new preset page"
|
1246 |
-
msgid "Enter a name to identify this filter preset"
|
1247 |
-
msgstr "Inserisci un nome per definire questo preset di filtri"
|
1248 |
-
|
1249 |
-
#: templates/admin/preset-filters.php:20
|
1250 |
-
msgctxt "[Admin] Label in new preset page"
|
1251 |
-
msgid "Filters of this preset"
|
1252 |
-
msgstr "Filtri di questo preset"
|
1253 |
|
1254 |
-
#: templates/admin/preset-edit.php:
|
1255 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1256 |
msgid "Save preset"
|
1257 |
msgstr "Salva preset"
|
@@ -1568,10 +1660,6 @@ msgstr "Resetta filtri"
|
|
1568 |
#~ msgid "Set the value for each increment of the price slider"
|
1569 |
#~ msgstr "Imposta il valore per gli incrementi dello slider prezzi"
|
1570 |
|
1571 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1572 |
-
#~ msgid "Order options"
|
1573 |
-
#~ msgstr "Opzioni ordinamento"
|
1574 |
-
|
1575 |
#~ msgctxt "[Admin] Filter edit form"
|
1576 |
#~ msgid "Select sorting options to show"
|
1577 |
#~ msgstr "Seleziona le opzioni di ordinamento da mostrare"
|
@@ -1656,10 +1744,6 @@ msgstr "Resetta filtri"
|
|
1656 |
#~ msgid "Select the default order for terms of this filter"
|
1657 |
#~ msgstr "Seleziona l'ordinamento predefinito per i termini di questo filtro"
|
1658 |
|
1659 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1660 |
-
#~ msgid "Show count of items"
|
1661 |
-
#~ msgstr "Mostra conteggio elementi"
|
1662 |
-
|
1663 |
#~ msgctxt "[Admin] Filter edit form"
|
1664 |
#~ msgid ""
|
1665 |
#~ "Enable if you want to show how many items are available for each term"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
9 |
"PO-Revision-Date: 2021-03-03 10:36+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
16 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
"X-Generator: Poedit 2.4.2\n"
|
18 |
|
19 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
20 |
msgid "Draft Preset"
|
21 |
msgstr "Preset bozza"
|
22 |
|
107 |
msgid "Button Label"
|
108 |
msgstr "Etichetta Pulsante"
|
109 |
|
110 |
+
#: init.php:148
|
111 |
msgid ""
|
112 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
113 |
"while you are using the premium one."
|
115 |
"Non è possibile attivare la versione gratuita di YITH WooCommerce Ajax "
|
116 |
"Product Filter se stai già utilizzando la versione premium."
|
117 |
|
118 |
+
#: init.php:166
|
119 |
msgid ""
|
120 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
121 |
"requires WooCommerce in order to work."
|
157 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
158 |
msgstr "Sei sicuro di voler procedere? Questa azione aggiungerà %s elementi"
|
159 |
|
160 |
+
#: includes/class.yith-wcan-admin.php:111
|
161 |
+
msgctxt "[Admin] Error message"
|
162 |
+
msgid "\"Filter title\" is a required field"
|
163 |
+
msgstr ""
|
164 |
+
|
165 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
166 |
msgctxt "[Admin] Message shown when filter has empty title"
|
167 |
msgid "< no title >"
|
168 |
msgstr "< nessun titolo >"
|
169 |
|
170 |
+
#: includes/class.yith-wcan-admin.php:115
|
171 |
msgctxt "[Admin] Media library title, when selecting images"
|
172 |
msgid "Select media you want to use"
|
173 |
msgstr "Seleziona i media da usare"
|
174 |
|
175 |
+
#: includes/class.yith-wcan-admin.php:116
|
176 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
177 |
msgid "Use this media"
|
178 |
msgstr "Usa questo media"
|
179 |
|
180 |
+
#: includes/class.yith-wcan-admin.php:184
|
181 |
msgctxt "[Admin] tab name"
|
182 |
msgid "Filter presets"
|
183 |
msgstr "Preset filtri"
|
184 |
|
185 |
+
#: includes/class.yith-wcan-admin.php:185
|
186 |
msgctxt "[Admin] tab name"
|
187 |
msgid "General settings"
|
188 |
msgstr "Impostazioni generali"
|
189 |
|
190 |
+
#: includes/class.yith-wcan-admin.php:186
|
191 |
msgctxt "[Admin] tab name"
|
192 |
msgid "SEO"
|
193 |
msgstr "SEO"
|
194 |
|
195 |
+
#: includes/class.yith-wcan-admin.php:187
|
196 |
msgctxt "[Admin] tab name"
|
197 |
msgid "Premium Version"
|
198 |
msgstr "Versione Premium"
|
199 |
|
200 |
+
#: includes/class.yith-wcan-admin.php:191
|
201 |
msgctxt "[Admin] tab name"
|
202 |
msgid "Legacy"
|
203 |
msgstr "Legacy"
|
204 |
|
205 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
206 |
msgctxt "[Admin] Menu title"
|
207 |
msgid "Ajax Product Filter"
|
208 |
msgstr "Ajax Product Filter"
|
209 |
|
210 |
+
#: includes/class.yith-wcan-admin.php:199
|
211 |
msgctxt "[Admin] Plugin description"
|
212 |
msgid ""
|
213 |
"It allows your users to find the product they are looking for as quickly as "
|
216 |
"Permette ai tuoi utenti di trovare il prodotto che stanno cercando il più "
|
217 |
"velocemente possibile."
|
218 |
|
219 |
+
#: includes/class.yith-wcan-admin.php:211
|
220 |
+
msgctxt "[HELP TAB] Video title"
|
221 |
+
msgid ""
|
222 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
223 |
+
"the shop page:</b>"
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: includes/class.yith-wcan-admin.php:329
|
227 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
228 |
msgid "item"
|
229 |
msgstr "elemento"
|
230 |
|
231 |
+
#: includes/class.yith-wcan-admin.php:330
|
232 |
msgctxt "[Admin] Preset table empty message second line"
|
233 |
msgid "But don't worry, here you can create your first one!"
|
234 |
msgstr "Ma non preoccuparti. Puoi iniziare a crearli qui!"
|
235 |
|
236 |
+
#: includes/class.yith-wcan-admin.php:478
|
237 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
238 |
msgid "Clear Product Filter transients"
|
239 |
msgstr "Cancella i transient Product Filter"
|
240 |
|
241 |
+
#: includes/class.yith-wcan-admin.php:484
|
242 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
243 |
msgid "Run filter widgets upgrade"
|
244 |
msgstr "Avvia l'upgrade dei widget dei filtri"
|
245 |
|
246 |
+
#: includes/class.yith-wcan-admin.php:479
|
247 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
248 |
msgid "Clear"
|
249 |
msgstr "Cancella"
|
250 |
|
251 |
+
#: includes/class.yith-wcan-admin.php:485
|
252 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
253 |
msgid "Run"
|
254 |
msgstr "Avvia"
|
255 |
|
256 |
+
#: includes/class.yith-wcan-admin.php:480
|
257 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
258 |
msgid ""
|
259 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
264 |
"Product Filter. Utile se hai cambiato la configurazione del prodotto e i "
|
265 |
"filtri non mostrano i risultati previsti. "
|
266 |
|
267 |
+
#: includes/class.yith-wcan-admin.php:486
|
268 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
269 |
msgid ""
|
270 |
"This will create a preset for any sidebar of your shop containing filter "
|
278 |
msgid "Taxonomy"
|
279 |
msgstr "Tassonomia"
|
280 |
|
281 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
282 |
+
msgctxt "[Admin] Filter edit form"
|
283 |
+
msgid "Checkbox"
|
284 |
+
msgstr "Checkbox"
|
285 |
+
|
286 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
287 |
+
msgctxt "[Admin] Filter edit form"
|
288 |
+
msgid "Select"
|
289 |
+
msgstr "Select"
|
290 |
+
|
291 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
292 |
+
msgctxt "[Admin] Filter edit form"
|
293 |
+
msgid "Text"
|
294 |
+
msgstr "Testo"
|
295 |
+
|
296 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
297 |
+
msgctxt "[Admin] Filter edit form"
|
298 |
+
msgid "Color Swatches"
|
299 |
+
msgstr "Campioni colore"
|
300 |
+
|
301 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
302 |
+
msgctxt "[Admin] Filter edit form"
|
303 |
+
msgid "Label"
|
304 |
+
msgstr "Etichetta"
|
305 |
+
|
306 |
+
#: plugin-options/filter-options.php:32
|
307 |
msgctxt "[Admin] Filter edit form"
|
308 |
msgid "Filter name"
|
309 |
msgstr "Nome filtro"
|
310 |
|
311 |
+
#: plugin-options/filter-options.php:35
|
312 |
msgctxt "[Admin] Filter edit form"
|
313 |
msgid "Enter a name to identify this filter"
|
314 |
msgstr "Inserisci un nome per definire questo filtro"
|
315 |
|
316 |
+
#: plugin-options/filter-options.php:41
|
317 |
msgctxt "[Admin] Filter edit form"
|
318 |
msgid "Filter for"
|
319 |
msgstr "Filtro per"
|
320 |
|
321 |
+
#: plugin-options/filter-options.php:45
|
322 |
msgctxt "[Admin] Filter edit form"
|
323 |
msgid "Select the parameters you wish to filter for"
|
324 |
msgstr "Seleziona il parametro per il filtro"
|
325 |
|
326 |
+
#: plugin-options/filter-options.php:51
|
327 |
msgctxt "[Admin] Filter edit form"
|
328 |
msgid "Choose taxonomy"
|
329 |
msgstr "Scegli tassonomia"
|
330 |
|
331 |
+
#: plugin-options/filter-options.php:55
|
332 |
msgctxt "[Admin] Filter edit form"
|
333 |
msgid "Select which taxonomy to use for this filter"
|
334 |
msgstr "Seleziona quale tassonomia usare per questo filtro"
|
335 |
|
336 |
+
#: plugin-options/filter-options.php:60
|
337 |
+
msgctxt "[Admin] Filter edit form"
|
338 |
+
msgid "Auto-populate with all terms"
|
339 |
+
msgstr ""
|
340 |
+
|
341 |
+
#: plugin-options/filter-options.php:62
|
342 |
+
msgctxt "[Admin] Filter edit form"
|
343 |
+
msgid ""
|
344 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
345 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
346 |
+
"this option, all terms created in the future will be added to this filter as "
|
347 |
+
"well.</span>"
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: plugin-options/filter-options.php:71
|
351 |
msgctxt "[Admin] Filter edit form"
|
352 |
msgid "Choose terms"
|
353 |
msgstr "Scegli termini"
|
354 |
|
355 |
+
#: plugin-options/filter-options.php:76
|
356 |
msgctxt "[Admin] Filter edit form"
|
357 |
msgid "Select which terms to use for filtering"
|
358 |
msgstr "Seleziona quali termini usare per i filtri"
|
359 |
|
360 |
+
#: plugin-options/filter-options.php:80
|
361 |
msgctxt "[Admin] Filter edit form"
|
362 |
msgid "Filter type"
|
363 |
msgstr "Tipo filtro"
|
364 |
|
365 |
+
#: plugin-options/filter-options.php:84
|
366 |
msgctxt "[Admin] Filter edit form"
|
367 |
+
msgid "Select the filter type for this filter"
|
368 |
+
msgstr "Seleziona il tipo di filtro"
|
369 |
|
370 |
+
#: plugin-options/filter-options.php:88
|
371 |
+
#, fuzzy
|
372 |
msgctxt "[Admin] Filter edit form"
|
373 |
+
msgid "Labels"
|
374 |
+
msgstr "Etichette "
|
375 |
|
376 |
+
#: plugin-options/filter-options.php:91
|
377 |
+
#, fuzzy
|
378 |
msgctxt "[Admin] Filter edit form"
|
379 |
+
msgid "Show below"
|
380 |
+
msgstr "Mostra risultati"
|
381 |
|
382 |
+
#: plugin-options/filter-options.php:92
|
383 |
+
#, fuzzy
|
384 |
msgctxt "[Admin] Filter edit form"
|
385 |
+
msgid "Show on the right"
|
386 |
+
msgstr "Mostra conteggio elementi"
|
387 |
|
388 |
+
#: plugin-options/filter-options.php:93
|
389 |
msgctxt "[Admin] Filter edit form"
|
390 |
+
msgid "Hide"
|
391 |
+
msgstr ""
|
392 |
|
393 |
+
#: plugin-options/filter-options.php:95
|
394 |
+
#, fuzzy
|
395 |
msgctxt "[Admin] Filter edit form"
|
396 |
+
msgid "Choose if and where to show the label inside your filter"
|
397 |
+
msgstr ""
|
398 |
+
"Decidi se e dove mostrare il pulsante \"Resetta filtri\" e i filtri "
|
399 |
+
"selezionati"
|
400 |
|
401 |
+
#: plugin-options/filter-options.php:99
|
402 |
msgctxt "[Admin] Filter edit form"
|
403 |
msgid "Columns number"
|
404 |
msgstr "Numero colonne"
|
405 |
|
406 |
+
#: plugin-options/filter-options.php:104
|
407 |
msgctxt "[Admin] Filter edit form"
|
408 |
msgid "Set the number of items per row you want to show for this design"
|
409 |
msgstr "Scegli il numero di elementi per riga da mostrare "
|
410 |
|
411 |
+
#: plugin-options/filter-options.php:108
|
412 |
msgctxt "[Admin] Filter edit form"
|
413 |
msgid "Customize terms"
|
414 |
msgstr "Personalizza termini"
|
415 |
|
416 |
+
#: plugin-options/filter-options.php:111
|
417 |
+
msgctxt "[Admin] Filter edit form"
|
418 |
+
msgid ""
|
419 |
+
"Configure your terms individually; system will otherwise use default labels/"
|
420 |
+
"images for terms.\n"
|
421 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
422 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
423 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, just "
|
424 |
+
"enable this option and use boxes below.</span>\n"
|
425 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
426 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
427 |
+
"this option and use the boxes below</span>"
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: plugin-options/filter-options.php:121
|
431 |
+
#, fuzzy
|
432 |
+
msgctxt "[Admin] Filter edit form"
|
433 |
+
msgid "Terms options"
|
434 |
+
msgstr "Opzioni ordinamento"
|
435 |
+
|
436 |
+
#: plugin-options/filter-options.php:127
|
437 |
msgctxt "[Admin] Filter edit form"
|
438 |
msgid "Show hierarchy"
|
439 |
msgstr "Mostra gerarchia"
|
440 |
|
441 |
+
#: plugin-options/filter-options.php:130
|
442 |
msgctxt "[Admin] Filter edit form"
|
443 |
msgid "No, show all terms in same level"
|
444 |
msgstr "No, mostra tutti i termini nello stesso livello"
|
445 |
|
446 |
+
#: plugin-options/filter-options.php:131
|
447 |
msgctxt "[Admin] Filter edit form"
|
448 |
msgid "No, show only parent terms"
|
449 |
msgstr "No, mostra solo termini genitore"
|
450 |
|
451 |
+
#: plugin-options/filter-options.php:132
|
452 |
msgctxt "[Admin] Filter edit form"
|
453 |
msgid "Yes"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: plugin-options/filter-options.php:134
|
457 |
msgctxt "[Admin] Filter edit form"
|
458 |
msgid "Choose how to show terms hierarchy"
|
459 |
msgstr "Decidi come mostrare la gerarchia dei termini"
|
460 |
|
461 |
+
#: plugin-options/filter-options.php:138
|
462 |
msgctxt "[Admin] Filter edit form"
|
463 |
msgid "Allow multiple selection"
|
464 |
msgstr "Abilita selezione multipla"
|
465 |
|
466 |
+
#: plugin-options/filter-options.php:140
|
467 |
msgctxt "[Admin] Filter edit form"
|
468 |
msgid "Enable if the user can select multiple terms when filtering products"
|
469 |
msgstr "Abilita la selezione multipla dei termini per filtrare i prodotti"
|
470 |
|
471 |
+
#: plugin-options/filter-options.php:144
|
472 |
msgctxt "[Admin] Filter edit form"
|
473 |
msgid "Multiselect relation"
|
474 |
msgstr "Relazione seleziona multipla"
|
475 |
|
476 |
+
#: plugin-options/filter-options.php:150
|
477 |
msgctxt "[Admin] Filter edit form"
|
478 |
msgid "Choose how multiple terms selection should behave"
|
479 |
msgstr "Decidi il comportamento della selezione multipla dei termini"
|
480 |
|
481 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
482 |
msgctxt "[Admin] Filter edit form, sorting options"
|
483 |
msgid "Default sorting"
|
484 |
msgstr "Ordinamento predefinito "
|
485 |
|
486 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
487 |
msgctxt "[Admin] Filter edit form, sorting options"
|
488 |
msgid "Sort by popularity"
|
489 |
msgstr "Ordina per popolarità"
|
490 |
|
491 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
492 |
msgctxt "[Admin] Filter edit form, sorting options"
|
493 |
msgid "Sort by average rating"
|
494 |
msgstr "Ordina per valutazione media"
|
495 |
|
496 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
497 |
msgctxt "[Admin] Filter edit form, sorting options"
|
498 |
msgid "Sort by latest"
|
499 |
msgstr "Ordina per più recenti"
|
500 |
|
501 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
502 |
msgctxt "[Admin] Filter edit form, sorting options"
|
503 |
msgid "Sort by price: low to high"
|
504 |
msgstr "Ordina per prezzo: crescente"
|
505 |
|
506 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
507 |
msgctxt "[Admin] Filter edit form, sorting options"
|
508 |
msgid "Sort by price: high to low"
|
509 |
msgstr "Ordina per prezzo: decrescente"
|
510 |
|
511 |
+
#: includes/class.yith-wcan-filter.php:116
|
512 |
msgctxt "[Admin] Default filter title"
|
513 |
msgid "New filter"
|
514 |
msgstr "Nuovo filtro"
|
541 |
msgstr "Chiudi"
|
542 |
|
543 |
#: includes/class.yith-wcan-frontend.php:582
|
544 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
545 |
+
msgid "Save"
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: includes/class.yith-wcan-frontend.php:583
|
549 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
550 |
msgid "Show results"
|
551 |
msgstr "Mostra risultati"
|
552 |
|
553 |
+
#: includes/class.yith-wcan-frontend.php:584
|
554 |
msgctxt ""
|
555 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
556 |
"selection"
|
557 |
msgid "Clear"
|
558 |
msgstr "Cancella"
|
559 |
|
560 |
+
#: includes/class.yith-wcan-frontend.php:585
|
561 |
msgctxt ""
|
562 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
563 |
"selection"
|
570 |
msgstr "Preset predefinito"
|
571 |
|
572 |
#. translators: 1. Taxonomy name.
|
573 |
+
#: includes/class.yith-wcan-install.php:285
|
574 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
575 |
msgid "Filter by %s"
|
576 |
msgstr "Filtra per %s"
|
577 |
|
578 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
579 |
+
#, fuzzy
|
580 |
+
msgctxt "[Admin] Label in new preset page"
|
581 |
+
msgid "Default"
|
582 |
+
msgstr "Predefinito"
|
583 |
+
|
584 |
+
#: plugin-options/preset-options.php:14
|
585 |
+
msgctxt "[Admin] Label in new preset page"
|
586 |
+
msgid "Preset name"
|
587 |
+
msgstr "Nome preset"
|
588 |
+
|
589 |
+
#: plugin-options/preset-options.php:16
|
590 |
+
msgctxt "[Admin] Label in new preset page"
|
591 |
+
msgid "Enter a name to identify this filter preset"
|
592 |
+
msgstr "Inserisci un nome per definire questo preset di filtri"
|
593 |
+
|
594 |
+
#: templates/admin/preset-filters.php:20
|
595 |
+
msgctxt "[Admin] Label in new preset page"
|
596 |
+
msgid "Filters of this preset"
|
597 |
+
msgstr "Filtri di questo preset"
|
598 |
+
|
599 |
#: includes/class.yith-wcan-presets.php:95
|
600 |
#: includes/class.yith-wcan-presets.php:100
|
601 |
msgctxt "[Admin] name of presets custom post type"
|
617 |
msgid "Convert widgets in a preset"
|
618 |
msgstr "Converti widget in preset"
|
619 |
|
620 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
621 |
msgctxt ""
|
622 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
623 |
"not exist"
|
625 |
msgstr "Preset non valido."
|
626 |
|
627 |
#. translators: 1. Title of original preset.
|
628 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
629 |
msgctxt "[ADMIN] Title of the cloned preset"
|
630 |
msgid "%s - Copy"
|
631 |
msgstr "%s - Copia"
|
838 |
msgstr ""
|
839 |
"Resetta tutti i filtri impostati da YITH WooCommerce AJAX Product Filter"
|
840 |
|
841 |
+
#: plugin-options/filter-options.php:147
|
842 |
#, fuzzy
|
843 |
msgctxt ""
|
844 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
845 |
msgid "AND - Results need to match all selected terms at the same time"
|
846 |
msgstr "AND - I risultati devono combaciare con tutti i termini selezionati "
|
847 |
|
848 |
+
#: plugin-options/filter-options.php:148
|
849 |
#, fuzzy
|
850 |
msgctxt ""
|
851 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
1323 |
"aggiungendo i filtri applicati o di modificarlo attraverso i permalink del "
|
1324 |
"plugin (in questo modo gli URL saranno più brevi e semplici da condividere)"
|
1325 |
|
1326 |
+
#: templates/admin/preset-edit.php:29
|
1327 |
msgctxt "[Admin] Back link in new preset page"
|
1328 |
msgid "< back to preset list"
|
1329 |
msgstr "< Torna all'elenco preset"
|
1330 |
|
1331 |
+
#: templates/admin/preset-edit.php:36
|
1332 |
msgctxt "[ADMIN] Title for new preset page"
|
1333 |
msgid "Edit filter preset"
|
1334 |
msgstr "Modifica preset filtri"
|
1335 |
|
1336 |
+
#: templates/admin/preset-edit.php:38
|
1337 |
msgctxt "[ADMIN] Title for new preset page"
|
1338 |
msgid "Add new filter preset"
|
1339 |
msgstr "Aggiungi nuovo preset filtri"
|
1340 |
|
1341 |
+
#: templates/admin/preset-edit.php:45
|
1342 |
+
msgctxt "[ADMIN] Preset save message"
|
1343 |
+
msgid "Preset saved correctly"
|
1344 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1345 |
|
1346 |
+
#: templates/admin/preset-edit.php:90
|
1347 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1348 |
msgid "Save preset"
|
1349 |
msgstr "Salva preset"
|
1660 |
#~ msgid "Set the value for each increment of the price slider"
|
1661 |
#~ msgstr "Imposta il valore per gli incrementi dello slider prezzi"
|
1662 |
|
|
|
|
|
|
|
|
|
1663 |
#~ msgctxt "[Admin] Filter edit form"
|
1664 |
#~ msgid "Select sorting options to show"
|
1665 |
#~ msgstr "Seleziona le opzioni di ordinamento da mostrare"
|
1744 |
#~ msgid "Select the default order for terms of this filter"
|
1745 |
#~ msgstr "Seleziona l'ordinamento predefinito per i termini di questo filtro"
|
1746 |
|
|
|
|
|
|
|
|
|
1747 |
#~ msgctxt "[Admin] Filter edit form"
|
1748 |
#~ msgid ""
|
1749 |
#~ "Enable if you want to show how many items are available for each term"
|
Binary file
|
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2021-
|
9 |
"PO-Revision-Date: 2021-02-12 13:32:05+0000\n"
|
10 |
"Language: nl\n"
|
11 |
"MIME-Version: 1.0\n"
|
@@ -14,7 +14,7 @@ msgstr ""
|
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
18 |
msgid "Draft Preset"
|
19 |
msgstr "Concept pre-set"
|
20 |
|
@@ -105,13 +105,13 @@ msgstr "Alle filters resetten"
|
|
105 |
msgid "Button Label"
|
106 |
msgstr "Labelknop"
|
107 |
|
108 |
-
#: init.php:
|
109 |
msgid ""
|
110 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
111 |
"while you are using the premium one."
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: init.php:
|
115 |
#, fuzzy
|
116 |
msgid ""
|
117 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
@@ -153,54 +153,58 @@ msgctxt "[Admin] Confirm add all terms message"
|
|
153 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
154 |
msgstr "Weet je zeker dat je door wilt gaan? Deze operatie voegt %s items toe"
|
155 |
|
156 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
157 |
msgctxt "[Admin] Message shown when filter has empty title"
|
158 |
msgid "< no title >"
|
159 |
msgstr "< geen titel >"
|
160 |
|
161 |
-
#: includes/class.yith-wcan-admin.php:
|
162 |
msgctxt "[Admin] Media library title, when selecting images"
|
163 |
msgid "Select media you want to use"
|
164 |
msgstr "Selecteer de media die je wilt gebruiken"
|
165 |
|
166 |
-
#: includes/class.yith-wcan-admin.php:
|
167 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
168 |
msgid "Use this media"
|
169 |
msgstr "Gebruik deze media"
|
170 |
|
171 |
-
#: includes/class.yith-wcan-admin.php:
|
172 |
msgctxt "[Admin] tab name"
|
173 |
msgid "Filter presets"
|
174 |
msgstr "Filter pre-set"
|
175 |
|
176 |
-
#: includes/class.yith-wcan-admin.php:
|
177 |
msgctxt "[Admin] tab name"
|
178 |
msgid "General settings"
|
179 |
msgstr "Algemene instellingen"
|
180 |
|
181 |
-
#: includes/class.yith-wcan-admin.php:
|
182 |
#, fuzzy
|
183 |
msgctxt "[Admin] tab name"
|
184 |
msgid "SEO"
|
185 |
msgstr "SEO"
|
186 |
|
187 |
-
#: includes/class.yith-wcan-admin.php:
|
188 |
msgctxt "[Admin] tab name"
|
189 |
msgid "Premium Version"
|
190 |
msgstr "Premium versie"
|
191 |
|
192 |
-
#: includes/class.yith-wcan-admin.php:
|
193 |
msgctxt "[Admin] tab name"
|
194 |
msgid "Legacy"
|
195 |
msgstr "Nalatenschap"
|
196 |
|
197 |
-
#: includes/class.yith-wcan-admin.php:
|
198 |
-
#: includes/class.yith-wcan-admin.php:195
|
199 |
msgctxt "[Admin] Menu title"
|
200 |
msgid "Ajax Product Filter"
|
201 |
msgstr "Ajax Product Filter"
|
202 |
|
203 |
-
#: includes/class.yith-wcan-admin.php:
|
204 |
msgctxt "[Admin] Plugin description"
|
205 |
msgid ""
|
206 |
"It allows your users to find the product they are looking for as quickly as "
|
@@ -209,37 +213,44 @@ msgstr ""
|
|
209 |
"Het laat je gebruikers het product het product dat ze zoeken, zo snel "
|
210 |
"mogelijk vinden."
|
211 |
|
212 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
214 |
msgid "item"
|
215 |
msgstr "Item"
|
216 |
|
217 |
-
#: includes/class.yith-wcan-admin.php:
|
218 |
msgctxt "[Admin] Preset table empty message second line"
|
219 |
msgid "But don't worry, here you can create your first one!"
|
220 |
msgstr "Maar geen zorgen, je kunt hier je eerste aanmaken!"
|
221 |
|
222 |
-
#: includes/class.yith-wcan-admin.php:
|
223 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
224 |
msgid "Clear Product Filter transients"
|
225 |
msgstr "Product Filter transients legen"
|
226 |
|
227 |
-
#: includes/class.yith-wcan-admin.php:
|
228 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
229 |
msgid "Run filter widgets upgrade"
|
230 |
msgstr "Filter widgets upgrade uitvoeren"
|
231 |
|
232 |
-
#: includes/class.yith-wcan-admin.php:
|
233 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
234 |
msgid "Clear"
|
235 |
msgstr "Wissen"
|
236 |
|
237 |
-
#: includes/class.yith-wcan-admin.php:
|
238 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
239 |
msgid "Run"
|
240 |
msgstr "Uitvoeren"
|
241 |
|
242 |
-
#: includes/class.yith-wcan-admin.php:
|
243 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
244 |
msgid ""
|
245 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -251,7 +262,7 @@ msgstr ""
|
|
251 |
"configuratie van je product hebt gewijzigd en filters niet de verwachte "
|
252 |
"resultaten weergeven."
|
253 |
|
254 |
-
#: includes/class.yith-wcan-admin.php:
|
255 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
256 |
msgid ""
|
257 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -266,174 +277,237 @@ msgctxt "[Admin] Filter edit form"
|
|
266 |
msgid "Taxonomy"
|
267 |
msgstr "Taxonomie"
|
268 |
|
269 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
270 |
msgctxt "[Admin] Filter edit form"
|
271 |
msgid "Filter name"
|
272 |
msgstr "Naam filter"
|
273 |
|
274 |
-
#: plugin-options/filter-options.php:
|
275 |
msgctxt "[Admin] Filter edit form"
|
276 |
msgid "Enter a name to identify this filter"
|
277 |
msgstr "Naam invoeren voor deze filter"
|
278 |
|
279 |
-
#: plugin-options/filter-options.php:
|
280 |
msgctxt "[Admin] Filter edit form"
|
281 |
msgid "Filter for"
|
282 |
msgstr "Filter voor"
|
283 |
|
284 |
-
#: plugin-options/filter-options.php:
|
285 |
msgctxt "[Admin] Filter edit form"
|
286 |
msgid "Select the parameters you wish to filter for"
|
287 |
msgstr "Selecteer de parameters je wilt filteren voor"
|
288 |
|
289 |
-
#: plugin-options/filter-options.php:
|
290 |
msgctxt "[Admin] Filter edit form"
|
291 |
msgid "Choose taxonomy"
|
292 |
msgstr "Kies taxonomie"
|
293 |
|
294 |
-
#: plugin-options/filter-options.php:
|
295 |
msgctxt "[Admin] Filter edit form"
|
296 |
msgid "Select which taxonomy to use for this filter"
|
297 |
msgstr "Selecteer welke taxonomie je wilt gebruiken voor deze filter"
|
298 |
|
299 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
msgctxt "[Admin] Filter edit form"
|
301 |
msgid "Choose terms"
|
302 |
msgstr "Kies termen"
|
303 |
|
304 |
-
#: plugin-options/filter-options.php:
|
305 |
msgctxt "[Admin] Filter edit form"
|
306 |
msgid "Select which terms to use for filtering"
|
307 |
msgstr "Selecteer welke termen je wilt gebruiken voor filteren"
|
308 |
|
309 |
-
#: plugin-options/filter-options.php:
|
310 |
msgctxt "[Admin] Filter edit form"
|
311 |
msgid "Filter type"
|
312 |
msgstr "Filter type"
|
313 |
|
314 |
-
#: plugin-options/filter-options.php:
|
315 |
msgctxt "[Admin] Filter edit form"
|
316 |
-
msgid "
|
317 |
-
msgstr "
|
318 |
|
319 |
-
#: plugin-options/filter-options.php:
|
|
|
320 |
msgctxt "[Admin] Filter edit form"
|
321 |
-
msgid "
|
322 |
-
msgstr "
|
323 |
|
324 |
-
#: plugin-options/filter-options.php:
|
|
|
325 |
msgctxt "[Admin] Filter edit form"
|
326 |
-
msgid "
|
327 |
-
msgstr "
|
328 |
|
329 |
-
#: plugin-options/filter-options.php:
|
|
|
330 |
msgctxt "[Admin] Filter edit form"
|
331 |
-
msgid "
|
332 |
-
msgstr "
|
333 |
|
334 |
-
#: plugin-options/filter-options.php:
|
335 |
msgctxt "[Admin] Filter edit form"
|
336 |
-
msgid "
|
337 |
-
msgstr "
|
338 |
|
339 |
-
#: plugin-options/filter-options.php:
|
|
|
340 |
msgctxt "[Admin] Filter edit form"
|
341 |
-
msgid "
|
342 |
-
msgstr "
|
343 |
|
344 |
-
#: plugin-options/filter-options.php:
|
345 |
msgctxt "[Admin] Filter edit form"
|
346 |
msgid "Columns number"
|
347 |
msgstr "Kolommen nummer"
|
348 |
|
349 |
-
#: plugin-options/filter-options.php:
|
350 |
msgctxt "[Admin] Filter edit form"
|
351 |
msgid "Set the number of items per row you want to show for this design"
|
352 |
msgstr "Kies het aantal items per rij dat je wilt tonen voor dit ontwerp"
|
353 |
|
354 |
-
#: plugin-options/filter-options.php:
|
355 |
msgctxt "[Admin] Filter edit form"
|
356 |
msgid "Customize terms"
|
357 |
msgstr "Aangepaste termen"
|
358 |
|
359 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
msgctxt "[Admin] Filter edit form"
|
361 |
msgid "Show hierarchy"
|
362 |
msgstr "Toon hiërarchie "
|
363 |
|
364 |
-
#: plugin-options/filter-options.php:
|
365 |
msgctxt "[Admin] Filter edit form"
|
366 |
msgid "No, show all terms in same level"
|
367 |
msgstr "Nee, toon alle termen in hetzelfde niveau"
|
368 |
|
369 |
-
#: plugin-options/filter-options.php:
|
370 |
msgctxt "[Admin] Filter edit form"
|
371 |
msgid "No, show only parent terms"
|
372 |
msgstr "Nee, alleen hoofd-termen tonen"
|
373 |
|
374 |
-
#: plugin-options/filter-options.php:
|
375 |
msgctxt "[Admin] Filter edit form"
|
376 |
msgid "Yes"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: plugin-options/filter-options.php:
|
380 |
msgctxt "[Admin] Filter edit form"
|
381 |
msgid "Choose how to show terms hierarchy"
|
382 |
msgstr "Bepaal hoe je de termen hiërarchie wilt tonen"
|
383 |
|
384 |
-
#: plugin-options/filter-options.php:
|
385 |
msgctxt "[Admin] Filter edit form"
|
386 |
msgid "Allow multiple selection"
|
387 |
msgstr "Meervoudige selectie toestaan"
|
388 |
|
389 |
-
#: plugin-options/filter-options.php:
|
390 |
msgctxt "[Admin] Filter edit form"
|
391 |
msgid "Enable if the user can select multiple terms when filtering products"
|
392 |
msgstr ""
|
393 |
"Inschakelen als de gebruiker meerdere termen can selecteren bij het filteren "
|
394 |
"van producten"
|
395 |
|
396 |
-
#: plugin-options/filter-options.php:
|
397 |
msgctxt "[Admin] Filter edit form"
|
398 |
msgid "Multiselect relation"
|
399 |
msgstr "Multi-selecteren relatie"
|
400 |
|
401 |
-
#: plugin-options/filter-options.php:
|
402 |
msgctxt "[Admin] Filter edit form"
|
403 |
msgid "Choose how multiple terms selection should behave"
|
404 |
msgstr "Bepaal het gedrag van meervoudige termen selectie"
|
405 |
|
406 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
407 |
msgctxt "[Admin] Filter edit form, sorting options"
|
408 |
msgid "Default sorting"
|
409 |
msgstr "Standaard sortering"
|
410 |
|
411 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
412 |
msgctxt "[Admin] Filter edit form, sorting options"
|
413 |
msgid "Sort by popularity"
|
414 |
msgstr "Sorteren op populariteit"
|
415 |
|
416 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
417 |
msgctxt "[Admin] Filter edit form, sorting options"
|
418 |
msgid "Sort by average rating"
|
419 |
msgstr "Sorteren op gemiddelde waardering"
|
420 |
|
421 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
422 |
msgctxt "[Admin] Filter edit form, sorting options"
|
423 |
msgid "Sort by latest"
|
424 |
msgstr "Sorteren op laaste"
|
425 |
|
426 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
427 |
msgctxt "[Admin] Filter edit form, sorting options"
|
428 |
msgid "Sort by price: low to high"
|
429 |
msgstr "Sorteren op prijs: laag naar hoog"
|
430 |
|
431 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
432 |
msgctxt "[Admin] Filter edit form, sorting options"
|
433 |
msgid "Sort by price: high to low"
|
434 |
msgstr "Sorteren op prijs: hoog naar laag"
|
435 |
|
436 |
-
#: includes/class.yith-wcan-filter.php:
|
437 |
msgctxt "[Admin] Default filter title"
|
438 |
msgid "New filter"
|
439 |
msgstr "Nieuwe filter"
|
@@ -466,18 +540,23 @@ msgid "Close"
|
|
466 |
msgstr "Sluiten"
|
467 |
|
468 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
469 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
470 |
msgid "Show results"
|
471 |
msgstr "Resultaten weergeven"
|
472 |
|
473 |
-
#: includes/class.yith-wcan-frontend.php:
|
474 |
msgctxt ""
|
475 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
476 |
"selection"
|
477 |
msgid "Clear"
|
478 |
msgstr "Wissen"
|
479 |
|
480 |
-
#: includes/class.yith-wcan-frontend.php:
|
481 |
msgctxt ""
|
482 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
483 |
"selection"
|
@@ -490,11 +569,32 @@ msgid "Default preset"
|
|
490 |
msgstr "Standaard pre-set"
|
491 |
|
492 |
#. translators: 1. Taxonomy name.
|
493 |
-
#: includes/class.yith-wcan-install.php:
|
494 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
495 |
msgid "Filter by %s"
|
496 |
msgstr "Filter op %s"
|
497 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
498 |
#: includes/class.yith-wcan-presets.php:95
|
499 |
#: includes/class.yith-wcan-presets.php:100
|
500 |
msgctxt "[Admin] name of presets custom post type"
|
@@ -516,7 +616,7 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
516 |
msgid "Convert widgets in a preset"
|
517 |
msgstr "Widgets omzetten in een pre-set"
|
518 |
|
519 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
520 |
msgctxt ""
|
521 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
522 |
"not exist"
|
@@ -524,7 +624,7 @@ msgid "Invalid preset."
|
|
524 |
msgstr "Ongeldige pre-set"
|
525 |
|
526 |
#. translators: 1. Title of original preset.
|
527 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
528 |
msgctxt "[ADMIN] Title of the cloned preset"
|
529 |
msgid "%s - Copy"
|
530 |
msgstr "%s - Kopieer"
|
@@ -739,7 +839,7 @@ msgstr ""
|
|
739 |
"Alle filters terugzetten die zijn ingesteld door YITH WooCommerce AJAX "
|
740 |
"Product Filter"
|
741 |
|
742 |
-
#: plugin-options/filter-options.php:
|
743 |
#, fuzzy
|
744 |
msgctxt ""
|
745 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -747,7 +847,7 @@ msgid "AND - Results need to match all selected terms at the same time"
|
|
747 |
msgstr ""
|
748 |
"EN - Resultaten moeten matchen met alle geselecteerde termen tegelijkertijd"
|
749 |
|
750 |
-
#: plugin-options/filter-options.php:
|
751 |
#, fuzzy
|
752 |
msgctxt ""
|
753 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
@@ -1172,37 +1272,27 @@ msgid ""
|
|
1172 |
"easier to share)"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
-
#: templates/admin/preset-edit.php:
|
1176 |
msgctxt "[Admin] Back link in new preset page"
|
1177 |
msgid "< back to preset list"
|
1178 |
msgstr "< terug naar pre-set lijst"
|
1179 |
|
1180 |
-
#: templates/admin/preset-edit.php:
|
1181 |
msgctxt "[ADMIN] Title for new preset page"
|
1182 |
msgid "Edit filter preset"
|
1183 |
msgstr "Filter pre-set bewerken"
|
1184 |
|
1185 |
-
#: templates/admin/preset-edit.php:
|
1186 |
msgctxt "[ADMIN] Title for new preset page"
|
1187 |
msgid "Add new filter preset"
|
1188 |
msgstr "Nieuwe filter pre-set toevoegen"
|
1189 |
|
1190 |
-
#: templates/admin/preset-edit.php:
|
1191 |
-
msgctxt "[
|
1192 |
-
msgid "Preset
|
1193 |
-
msgstr "
|
1194 |
-
|
1195 |
-
#: templates/admin/preset-edit.php:54
|
1196 |
-
msgctxt "[Admin] Label in new preset page"
|
1197 |
-
msgid "Enter a name to identify this filter preset"
|
1198 |
-
msgstr "Naam invoeren voor deze filter pre-set"
|
1199 |
-
|
1200 |
-
#: templates/admin/preset-filters.php:20
|
1201 |
-
msgctxt "[Admin] Label in new preset page"
|
1202 |
-
msgid "Filters of this preset"
|
1203 |
-
msgstr "Filters van deze pre-set"
|
1204 |
|
1205 |
-
#: templates/admin/preset-edit.php:
|
1206 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1207 |
msgid "Save preset"
|
1208 |
msgstr "Pre-set opslaan"
|
@@ -1519,10 +1609,6 @@ msgstr "Filters resetten"
|
|
1519 |
#~ msgid "Set the value for each increment of the price slider"
|
1520 |
#~ msgstr "bepaal de hoogte van elke waardevermeerdering van de prijs slider"
|
1521 |
|
1522 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1523 |
-
#~ msgid "Order options"
|
1524 |
-
#~ msgstr "Bestelling opties"
|
1525 |
-
|
1526 |
#~ msgctxt "[Admin] Filter edit form"
|
1527 |
#~ msgid "Select sorting options to show"
|
1528 |
#~ msgstr "Selecteer sorteer opties om te tonen"
|
@@ -1607,10 +1693,6 @@ msgstr "Filters resetten"
|
|
1607 |
#~ msgid "Select the default order for terms of this filter"
|
1608 |
#~ msgstr "Selecteer de standaard volgorde voor termen van deze filter"
|
1609 |
|
1610 |
-
#~ msgctxt "[Admin] Filter edit form"
|
1611 |
-
#~ msgid "Show count of items"
|
1612 |
-
#~ msgstr "Toon item telling"
|
1613 |
-
|
1614 |
#~ msgctxt "[Admin] Filter edit form"
|
1615 |
#~ msgid ""
|
1616 |
#~ "Enable if you want to show how many items are available for each term"
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Product Filter\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
7 |
"ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
9 |
"PO-Revision-Date: 2021-02-12 13:32:05+0000\n"
|
10 |
"Language: nl\n"
|
11 |
"MIME-Version: 1.0\n"
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
16 |
|
17 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
18 |
msgid "Draft Preset"
|
19 |
msgstr "Concept pre-set"
|
20 |
|
105 |
msgid "Button Label"
|
106 |
msgstr "Labelknop"
|
107 |
|
108 |
+
#: init.php:148
|
109 |
msgid ""
|
110 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
111 |
"while you are using the premium one."
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: init.php:166
|
115 |
#, fuzzy
|
116 |
msgid ""
|
117 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
153 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
154 |
msgstr "Weet je zeker dat je door wilt gaan? Deze operatie voegt %s items toe"
|
155 |
|
156 |
+
#: includes/class.yith-wcan-admin.php:111
|
157 |
+
msgctxt "[Admin] Error message"
|
158 |
+
msgid "\"Filter title\" is a required field"
|
159 |
+
msgstr ""
|
160 |
+
|
161 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
162 |
msgctxt "[Admin] Message shown when filter has empty title"
|
163 |
msgid "< no title >"
|
164 |
msgstr "< geen titel >"
|
165 |
|
166 |
+
#: includes/class.yith-wcan-admin.php:115
|
167 |
msgctxt "[Admin] Media library title, when selecting images"
|
168 |
msgid "Select media you want to use"
|
169 |
msgstr "Selecteer de media die je wilt gebruiken"
|
170 |
|
171 |
+
#: includes/class.yith-wcan-admin.php:116
|
172 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
173 |
msgid "Use this media"
|
174 |
msgstr "Gebruik deze media"
|
175 |
|
176 |
+
#: includes/class.yith-wcan-admin.php:184
|
177 |
msgctxt "[Admin] tab name"
|
178 |
msgid "Filter presets"
|
179 |
msgstr "Filter pre-set"
|
180 |
|
181 |
+
#: includes/class.yith-wcan-admin.php:185
|
182 |
msgctxt "[Admin] tab name"
|
183 |
msgid "General settings"
|
184 |
msgstr "Algemene instellingen"
|
185 |
|
186 |
+
#: includes/class.yith-wcan-admin.php:186
|
187 |
#, fuzzy
|
188 |
msgctxt "[Admin] tab name"
|
189 |
msgid "SEO"
|
190 |
msgstr "SEO"
|
191 |
|
192 |
+
#: includes/class.yith-wcan-admin.php:187
|
193 |
msgctxt "[Admin] tab name"
|
194 |
msgid "Premium Version"
|
195 |
msgstr "Premium versie"
|
196 |
|
197 |
+
#: includes/class.yith-wcan-admin.php:191
|
198 |
msgctxt "[Admin] tab name"
|
199 |
msgid "Legacy"
|
200 |
msgstr "Nalatenschap"
|
201 |
|
202 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
203 |
msgctxt "[Admin] Menu title"
|
204 |
msgid "Ajax Product Filter"
|
205 |
msgstr "Ajax Product Filter"
|
206 |
|
207 |
+
#: includes/class.yith-wcan-admin.php:199
|
208 |
msgctxt "[Admin] Plugin description"
|
209 |
msgid ""
|
210 |
"It allows your users to find the product they are looking for as quickly as "
|
213 |
"Het laat je gebruikers het product het product dat ze zoeken, zo snel "
|
214 |
"mogelijk vinden."
|
215 |
|
216 |
+
#: includes/class.yith-wcan-admin.php:211
|
217 |
+
msgctxt "[HELP TAB] Video title"
|
218 |
+
msgid ""
|
219 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
220 |
+
"the shop page:</b>"
|
221 |
+
msgstr ""
|
222 |
+
|
223 |
+
#: includes/class.yith-wcan-admin.php:329
|
224 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
225 |
msgid "item"
|
226 |
msgstr "Item"
|
227 |
|
228 |
+
#: includes/class.yith-wcan-admin.php:330
|
229 |
msgctxt "[Admin] Preset table empty message second line"
|
230 |
msgid "But don't worry, here you can create your first one!"
|
231 |
msgstr "Maar geen zorgen, je kunt hier je eerste aanmaken!"
|
232 |
|
233 |
+
#: includes/class.yith-wcan-admin.php:478
|
234 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
235 |
msgid "Clear Product Filter transients"
|
236 |
msgstr "Product Filter transients legen"
|
237 |
|
238 |
+
#: includes/class.yith-wcan-admin.php:484
|
239 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
240 |
msgid "Run filter widgets upgrade"
|
241 |
msgstr "Filter widgets upgrade uitvoeren"
|
242 |
|
243 |
+
#: includes/class.yith-wcan-admin.php:479
|
244 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
245 |
msgid "Clear"
|
246 |
msgstr "Wissen"
|
247 |
|
248 |
+
#: includes/class.yith-wcan-admin.php:485
|
249 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
250 |
msgid "Run"
|
251 |
msgstr "Uitvoeren"
|
252 |
|
253 |
+
#: includes/class.yith-wcan-admin.php:480
|
254 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
255 |
msgid ""
|
256 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
262 |
"configuratie van je product hebt gewijzigd en filters niet de verwachte "
|
263 |
"resultaten weergeven."
|
264 |
|
265 |
+
#: includes/class.yith-wcan-admin.php:486
|
266 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
267 |
msgid ""
|
268 |
"This will create a preset for any sidebar of your shop containing filter "
|
277 |
msgid "Taxonomy"
|
278 |
msgstr "Taxonomie"
|
279 |
|
280 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
281 |
+
msgctxt "[Admin] Filter edit form"
|
282 |
+
msgid "Checkbox"
|
283 |
+
msgstr "Keuzevakje"
|
284 |
+
|
285 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
286 |
+
msgctxt "[Admin] Filter edit form"
|
287 |
+
msgid "Select"
|
288 |
+
msgstr "Selecteren"
|
289 |
+
|
290 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
291 |
+
msgctxt "[Admin] Filter edit form"
|
292 |
+
msgid "Text"
|
293 |
+
msgstr "Tekst"
|
294 |
+
|
295 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
296 |
+
msgctxt "[Admin] Filter edit form"
|
297 |
+
msgid "Color Swatches"
|
298 |
+
msgstr "Kleur swatches"
|
299 |
+
|
300 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
301 |
+
msgctxt "[Admin] Filter edit form"
|
302 |
+
msgid "Label"
|
303 |
+
msgstr "Label"
|
304 |
+
|
305 |
+
#: plugin-options/filter-options.php:32
|
306 |
msgctxt "[Admin] Filter edit form"
|
307 |
msgid "Filter name"
|
308 |
msgstr "Naam filter"
|
309 |
|
310 |
+
#: plugin-options/filter-options.php:35
|
311 |
msgctxt "[Admin] Filter edit form"
|
312 |
msgid "Enter a name to identify this filter"
|
313 |
msgstr "Naam invoeren voor deze filter"
|
314 |
|
315 |
+
#: plugin-options/filter-options.php:41
|
316 |
msgctxt "[Admin] Filter edit form"
|
317 |
msgid "Filter for"
|
318 |
msgstr "Filter voor"
|
319 |
|
320 |
+
#: plugin-options/filter-options.php:45
|
321 |
msgctxt "[Admin] Filter edit form"
|
322 |
msgid "Select the parameters you wish to filter for"
|
323 |
msgstr "Selecteer de parameters je wilt filteren voor"
|
324 |
|
325 |
+
#: plugin-options/filter-options.php:51
|
326 |
msgctxt "[Admin] Filter edit form"
|
327 |
msgid "Choose taxonomy"
|
328 |
msgstr "Kies taxonomie"
|
329 |
|
330 |
+
#: plugin-options/filter-options.php:55
|
331 |
msgctxt "[Admin] Filter edit form"
|
332 |
msgid "Select which taxonomy to use for this filter"
|
333 |
msgstr "Selecteer welke taxonomie je wilt gebruiken voor deze filter"
|
334 |
|
335 |
+
#: plugin-options/filter-options.php:60
|
336 |
+
msgctxt "[Admin] Filter edit form"
|
337 |
+
msgid "Auto-populate with all terms"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: plugin-options/filter-options.php:62
|
341 |
+
msgctxt "[Admin] Filter edit form"
|
342 |
+
msgid ""
|
343 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
344 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
345 |
+
"this option, all terms created in the future will be added to this filter as "
|
346 |
+
"well.</span>"
|
347 |
+
msgstr ""
|
348 |
+
|
349 |
+
#: plugin-options/filter-options.php:71
|
350 |
msgctxt "[Admin] Filter edit form"
|
351 |
msgid "Choose terms"
|
352 |
msgstr "Kies termen"
|
353 |
|
354 |
+
#: plugin-options/filter-options.php:76
|
355 |
msgctxt "[Admin] Filter edit form"
|
356 |
msgid "Select which terms to use for filtering"
|
357 |
msgstr "Selecteer welke termen je wilt gebruiken voor filteren"
|
358 |
|
359 |
+
#: plugin-options/filter-options.php:80
|
360 |
msgctxt "[Admin] Filter edit form"
|
361 |
msgid "Filter type"
|
362 |
msgstr "Filter type"
|
363 |
|
364 |
+
#: plugin-options/filter-options.php:84
|
365 |
msgctxt "[Admin] Filter edit form"
|
366 |
+
msgid "Select the filter type for this filter"
|
367 |
+
msgstr "Selecteer het filter type voor deze filter"
|
368 |
|
369 |
+
#: plugin-options/filter-options.php:88
|
370 |
+
#, fuzzy
|
371 |
msgctxt "[Admin] Filter edit form"
|
372 |
+
msgid "Labels"
|
373 |
+
msgstr "Labels"
|
374 |
|
375 |
+
#: plugin-options/filter-options.php:91
|
376 |
+
#, fuzzy
|
377 |
msgctxt "[Admin] Filter edit form"
|
378 |
+
msgid "Show below"
|
379 |
+
msgstr "Resultaten weergeven"
|
380 |
|
381 |
+
#: plugin-options/filter-options.php:92
|
382 |
+
#, fuzzy
|
383 |
msgctxt "[Admin] Filter edit form"
|
384 |
+
msgid "Show on the right"
|
385 |
+
msgstr "Toon item telling"
|
386 |
|
387 |
+
#: plugin-options/filter-options.php:93
|
388 |
msgctxt "[Admin] Filter edit form"
|
389 |
+
msgid "Hide"
|
390 |
+
msgstr ""
|
391 |
|
392 |
+
#: plugin-options/filter-options.php:95
|
393 |
+
#, fuzzy
|
394 |
msgctxt "[Admin] Filter edit form"
|
395 |
+
msgid "Choose if and where to show the label inside your filter"
|
396 |
+
msgstr "Kies de stijl van de filter binnen de widgets"
|
397 |
|
398 |
+
#: plugin-options/filter-options.php:99
|
399 |
msgctxt "[Admin] Filter edit form"
|
400 |
msgid "Columns number"
|
401 |
msgstr "Kolommen nummer"
|
402 |
|
403 |
+
#: plugin-options/filter-options.php:104
|
404 |
msgctxt "[Admin] Filter edit form"
|
405 |
msgid "Set the number of items per row you want to show for this design"
|
406 |
msgstr "Kies het aantal items per rij dat je wilt tonen voor dit ontwerp"
|
407 |
|
408 |
+
#: plugin-options/filter-options.php:108
|
409 |
msgctxt "[Admin] Filter edit form"
|
410 |
msgid "Customize terms"
|
411 |
msgstr "Aangepaste termen"
|
412 |
|
413 |
+
#: plugin-options/filter-options.php:111
|
414 |
+
msgctxt "[Admin] Filter edit form"
|
415 |
+
msgid ""
|
416 |
+
"Configure your terms individually; system will otherwise use default labels/"
|
417 |
+
"images for terms.\n"
|
418 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
419 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
420 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, just "
|
421 |
+
"enable this option and use boxes below.</span>\n"
|
422 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
423 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
424 |
+
"this option and use the boxes below</span>"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: plugin-options/filter-options.php:121
|
428 |
+
#, fuzzy
|
429 |
+
msgctxt "[Admin] Filter edit form"
|
430 |
+
msgid "Terms options"
|
431 |
+
msgstr "Bestelling opties"
|
432 |
+
|
433 |
+
#: plugin-options/filter-options.php:127
|
434 |
msgctxt "[Admin] Filter edit form"
|
435 |
msgid "Show hierarchy"
|
436 |
msgstr "Toon hiërarchie "
|
437 |
|
438 |
+
#: plugin-options/filter-options.php:130
|
439 |
msgctxt "[Admin] Filter edit form"
|
440 |
msgid "No, show all terms in same level"
|
441 |
msgstr "Nee, toon alle termen in hetzelfde niveau"
|
442 |
|
443 |
+
#: plugin-options/filter-options.php:131
|
444 |
msgctxt "[Admin] Filter edit form"
|
445 |
msgid "No, show only parent terms"
|
446 |
msgstr "Nee, alleen hoofd-termen tonen"
|
447 |
|
448 |
+
#: plugin-options/filter-options.php:132
|
449 |
msgctxt "[Admin] Filter edit form"
|
450 |
msgid "Yes"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: plugin-options/filter-options.php:134
|
454 |
msgctxt "[Admin] Filter edit form"
|
455 |
msgid "Choose how to show terms hierarchy"
|
456 |
msgstr "Bepaal hoe je de termen hiërarchie wilt tonen"
|
457 |
|
458 |
+
#: plugin-options/filter-options.php:138
|
459 |
msgctxt "[Admin] Filter edit form"
|
460 |
msgid "Allow multiple selection"
|
461 |
msgstr "Meervoudige selectie toestaan"
|
462 |
|
463 |
+
#: plugin-options/filter-options.php:140
|
464 |
msgctxt "[Admin] Filter edit form"
|
465 |
msgid "Enable if the user can select multiple terms when filtering products"
|
466 |
msgstr ""
|
467 |
"Inschakelen als de gebruiker meerdere termen can selecteren bij het filteren "
|
468 |
"van producten"
|
469 |
|
470 |
+
#: plugin-options/filter-options.php:144
|
471 |
msgctxt "[Admin] Filter edit form"
|
472 |
msgid "Multiselect relation"
|
473 |
msgstr "Multi-selecteren relatie"
|
474 |
|
475 |
+
#: plugin-options/filter-options.php:150
|
476 |
msgctxt "[Admin] Filter edit form"
|
477 |
msgid "Choose how multiple terms selection should behave"
|
478 |
msgstr "Bepaal het gedrag van meervoudige termen selectie"
|
479 |
|
480 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
481 |
msgctxt "[Admin] Filter edit form, sorting options"
|
482 |
msgid "Default sorting"
|
483 |
msgstr "Standaard sortering"
|
484 |
|
485 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
486 |
msgctxt "[Admin] Filter edit form, sorting options"
|
487 |
msgid "Sort by popularity"
|
488 |
msgstr "Sorteren op populariteit"
|
489 |
|
490 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
491 |
msgctxt "[Admin] Filter edit form, sorting options"
|
492 |
msgid "Sort by average rating"
|
493 |
msgstr "Sorteren op gemiddelde waardering"
|
494 |
|
495 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
496 |
msgctxt "[Admin] Filter edit form, sorting options"
|
497 |
msgid "Sort by latest"
|
498 |
msgstr "Sorteren op laaste"
|
499 |
|
500 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
501 |
msgctxt "[Admin] Filter edit form, sorting options"
|
502 |
msgid "Sort by price: low to high"
|
503 |
msgstr "Sorteren op prijs: laag naar hoog"
|
504 |
|
505 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
506 |
msgctxt "[Admin] Filter edit form, sorting options"
|
507 |
msgid "Sort by price: high to low"
|
508 |
msgstr "Sorteren op prijs: hoog naar laag"
|
509 |
|
510 |
+
#: includes/class.yith-wcan-filter.php:116
|
511 |
msgctxt "[Admin] Default filter title"
|
512 |
msgid "New filter"
|
513 |
msgstr "Nieuwe filter"
|
540 |
msgstr "Sluiten"
|
541 |
|
542 |
#: includes/class.yith-wcan-frontend.php:582
|
543 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
544 |
+
msgid "Save"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: includes/class.yith-wcan-frontend.php:583
|
548 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
549 |
msgid "Show results"
|
550 |
msgstr "Resultaten weergeven"
|
551 |
|
552 |
+
#: includes/class.yith-wcan-frontend.php:584
|
553 |
msgctxt ""
|
554 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
555 |
"selection"
|
556 |
msgid "Clear"
|
557 |
msgstr "Wissen"
|
558 |
|
559 |
+
#: includes/class.yith-wcan-frontend.php:585
|
560 |
msgctxt ""
|
561 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
562 |
"selection"
|
569 |
msgstr "Standaard pre-set"
|
570 |
|
571 |
#. translators: 1. Taxonomy name.
|
572 |
+
#: includes/class.yith-wcan-install.php:285
|
573 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
574 |
msgid "Filter by %s"
|
575 |
msgstr "Filter op %s"
|
576 |
|
577 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
578 |
+
#, fuzzy
|
579 |
+
msgctxt "[Admin] Label in new preset page"
|
580 |
+
msgid "Default"
|
581 |
+
msgstr "Standaard"
|
582 |
+
|
583 |
+
#: plugin-options/preset-options.php:14
|
584 |
+
msgctxt "[Admin] Label in new preset page"
|
585 |
+
msgid "Preset name"
|
586 |
+
msgstr "Pre-set naam"
|
587 |
+
|
588 |
+
#: plugin-options/preset-options.php:16
|
589 |
+
msgctxt "[Admin] Label in new preset page"
|
590 |
+
msgid "Enter a name to identify this filter preset"
|
591 |
+
msgstr "Naam invoeren voor deze filter pre-set"
|
592 |
+
|
593 |
+
#: templates/admin/preset-filters.php:20
|
594 |
+
msgctxt "[Admin] Label in new preset page"
|
595 |
+
msgid "Filters of this preset"
|
596 |
+
msgstr "Filters van deze pre-set"
|
597 |
+
|
598 |
#: includes/class.yith-wcan-presets.php:95
|
599 |
#: includes/class.yith-wcan-presets.php:100
|
600 |
msgctxt "[Admin] name of presets custom post type"
|
616 |
msgid "Convert widgets in a preset"
|
617 |
msgstr "Widgets omzetten in een pre-set"
|
618 |
|
619 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
620 |
msgctxt ""
|
621 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
622 |
"not exist"
|
624 |
msgstr "Ongeldige pre-set"
|
625 |
|
626 |
#. translators: 1. Title of original preset.
|
627 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
628 |
msgctxt "[ADMIN] Title of the cloned preset"
|
629 |
msgid "%s - Copy"
|
630 |
msgstr "%s - Kopieer"
|
839 |
"Alle filters terugzetten die zijn ingesteld door YITH WooCommerce AJAX "
|
840 |
"Product Filter"
|
841 |
|
842 |
+
#: plugin-options/filter-options.php:147
|
843 |
#, fuzzy
|
844 |
msgctxt ""
|
845 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
847 |
msgstr ""
|
848 |
"EN - Resultaten moeten matchen met alle geselecteerde termen tegelijkertijd"
|
849 |
|
850 |
+
#: plugin-options/filter-options.php:148
|
851 |
#, fuzzy
|
852 |
msgctxt ""
|
853 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
1272 |
"easier to share)"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
+
#: templates/admin/preset-edit.php:29
|
1276 |
msgctxt "[Admin] Back link in new preset page"
|
1277 |
msgid "< back to preset list"
|
1278 |
msgstr "< terug naar pre-set lijst"
|
1279 |
|
1280 |
+
#: templates/admin/preset-edit.php:36
|
1281 |
msgctxt "[ADMIN] Title for new preset page"
|
1282 |
msgid "Edit filter preset"
|
1283 |
msgstr "Filter pre-set bewerken"
|
1284 |
|
1285 |
+
#: templates/admin/preset-edit.php:38
|
1286 |
msgctxt "[ADMIN] Title for new preset page"
|
1287 |
msgid "Add new filter preset"
|
1288 |
msgstr "Nieuwe filter pre-set toevoegen"
|
1289 |
|
1290 |
+
#: templates/admin/preset-edit.php:45
|
1291 |
+
msgctxt "[ADMIN] Preset save message"
|
1292 |
+
msgid "Preset saved correctly"
|
1293 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1294 |
|
1295 |
+
#: templates/admin/preset-edit.php:90
|
1296 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1297 |
msgid "Save preset"
|
1298 |
msgstr "Pre-set opslaan"
|
1609 |
#~ msgid "Set the value for each increment of the price slider"
|
1610 |
#~ msgstr "bepaal de hoogte van elke waardevermeerdering van de prijs slider"
|
1611 |
|
|
|
|
|
|
|
|
|
1612 |
#~ msgctxt "[Admin] Filter edit form"
|
1613 |
#~ msgid "Select sorting options to show"
|
1614 |
#~ msgstr "Selecteer sorteer opties om te tonen"
|
1693 |
#~ msgid "Select the default order for terms of this filter"
|
1694 |
#~ msgstr "Selecteer de standaard volgorde voor termen van deze filter"
|
1695 |
|
|
|
|
|
|
|
|
|
1696 |
#~ msgctxt "[Admin] Filter edit form"
|
1697 |
#~ msgid ""
|
1698 |
#~ "Enable if you want to show how many items are available for each term"
|
Binary file
|
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: YITH WooCommerce Ajax Product filter\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
5 |
"ajax-product-filter\n"
|
6 |
-
"POT-Creation-Date: 2021-
|
7 |
"PO-Revision-Date: 2019-06-06 10:16+0200\n"
|
8 |
"Last-Translator: Caner Öncel <caneroncel@gmail.com>\n"
|
9 |
"Language-Team: Caner Öncel <caneroncel@gmail.com>\n"
|
@@ -21,7 +21,7 @@ msgstr ""
|
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: plugin-fw\n"
|
23 |
|
24 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
25 |
msgid "Draft Preset"
|
26 |
msgstr ""
|
27 |
|
@@ -124,13 +124,13 @@ msgstr "Tüm Filtreleri Sıfırla"
|
|
124 |
msgid "Button Label"
|
125 |
msgstr "Buton Metni"
|
126 |
|
127 |
-
#: init.php:
|
128 |
msgid ""
|
129 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
130 |
"while you are using the premium one."
|
131 |
msgstr ""
|
132 |
|
133 |
-
#: init.php:
|
134 |
msgid ""
|
135 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
136 |
"requires WooCommerce in order to work."
|
@@ -162,93 +162,104 @@ msgctxt "[Admin] Confirm add all terms message"
|
|
162 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
166 |
msgctxt "[Admin] Message shown when filter has empty title"
|
167 |
msgid "< no title >"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: includes/class.yith-wcan-admin.php:
|
171 |
msgctxt "[Admin] Media library title, when selecting images"
|
172 |
msgid "Select media you want to use"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: includes/class.yith-wcan-admin.php:
|
176 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
177 |
msgid "Use this media"
|
178 |
msgstr ""
|
179 |
|
180 |
-
#: includes/class.yith-wcan-admin.php:
|
181 |
#, fuzzy
|
182 |
msgctxt "[Admin] tab name"
|
183 |
msgid "Filter presets"
|
184 |
msgstr "Filtre Listesi:"
|
185 |
|
186 |
-
#: includes/class.yith-wcan-admin.php:
|
187 |
msgctxt "[Admin] tab name"
|
188 |
msgid "General settings"
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: includes/class.yith-wcan-admin.php:
|
192 |
msgctxt "[Admin] tab name"
|
193 |
msgid "SEO"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: includes/class.yith-wcan-admin.php:
|
197 |
msgctxt "[Admin] tab name"
|
198 |
msgid "Premium Version"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: includes/class.yith-wcan-admin.php:
|
202 |
msgctxt "[Admin] tab name"
|
203 |
msgid "Legacy"
|
204 |
msgstr ""
|
205 |
|
206 |
# @ yit
|
207 |
-
#: includes/class.yith-wcan-admin.php:
|
208 |
-
#: includes/class.yith-wcan-admin.php:195
|
209 |
#, fuzzy
|
210 |
msgctxt "[Admin] Menu title"
|
211 |
msgid "Ajax Product Filter"
|
212 |
msgstr "YITH WooCommerce Ajax Navigation"
|
213 |
|
214 |
-
#: includes/class.yith-wcan-admin.php:
|
215 |
msgctxt "[Admin] Plugin description"
|
216 |
msgid ""
|
217 |
"It allows your users to find the product they are looking for as quickly as "
|
218 |
"possible."
|
219 |
msgstr ""
|
220 |
|
221 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
223 |
msgid "item"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: includes/class.yith-wcan-admin.php:
|
227 |
msgctxt "[Admin] Preset table empty message second line"
|
228 |
msgid "But don't worry, here you can create your first one!"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: includes/class.yith-wcan-admin.php:
|
232 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
233 |
msgid "Clear Product Filter transients"
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: includes/class.yith-wcan-admin.php:
|
237 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
238 |
msgid "Run filter widgets upgrade"
|
239 |
msgstr ""
|
240 |
|
241 |
-
#: includes/class.yith-wcan-admin.php:
|
242 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
243 |
msgid "Clear"
|
244 |
msgstr ""
|
245 |
|
246 |
-
#: includes/class.yith-wcan-admin.php:
|
247 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
248 |
msgid "Run"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: includes/class.yith-wcan-admin.php:
|
252 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
253 |
msgid ""
|
254 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -256,7 +267,7 @@ msgid ""
|
|
256 |
"and filters do not display the expected results."
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: includes/class.yith-wcan-admin.php:
|
260 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
261 |
msgid ""
|
262 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -268,178 +279,238 @@ msgctxt "[Admin] Filter edit form"
|
|
268 |
msgid "Taxonomy"
|
269 |
msgstr ""
|
270 |
|
271 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
msgctxt "[Admin] Filter edit form"
|
273 |
msgid "Filter name"
|
274 |
msgstr ""
|
275 |
|
276 |
-
#: plugin-options/filter-options.php:
|
277 |
msgctxt "[Admin] Filter edit form"
|
278 |
msgid "Enter a name to identify this filter"
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: plugin-options/filter-options.php:
|
282 |
#, fuzzy
|
283 |
msgctxt "[Admin] Filter edit form"
|
284 |
msgid "Filter for"
|
285 |
msgstr "Filtre Listesi:"
|
286 |
|
287 |
-
#: plugin-options/filter-options.php:
|
288 |
msgctxt "[Admin] Filter edit form"
|
289 |
msgid "Select the parameters you wish to filter for"
|
290 |
msgstr ""
|
291 |
|
292 |
-
#: plugin-options/filter-options.php:
|
293 |
msgctxt "[Admin] Filter edit form"
|
294 |
msgid "Choose taxonomy"
|
295 |
msgstr ""
|
296 |
|
297 |
-
#: plugin-options/filter-options.php:
|
298 |
msgctxt "[Admin] Filter edit form"
|
299 |
msgid "Select which taxonomy to use for this filter"
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
msgctxt "[Admin] Filter edit form"
|
304 |
msgid "Choose terms"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: plugin-options/filter-options.php:
|
308 |
msgctxt "[Admin] Filter edit form"
|
309 |
msgid "Select which terms to use for filtering"
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: plugin-options/filter-options.php:
|
313 |
#, fuzzy
|
314 |
msgctxt "[Admin] Filter edit form"
|
315 |
msgid "Filter type"
|
316 |
msgstr "Filtre Listesi:"
|
317 |
|
318 |
-
#: plugin-options/filter-options.php:
|
319 |
msgctxt "[Admin] Filter edit form"
|
320 |
-
msgid "
|
321 |
msgstr ""
|
322 |
|
323 |
# @ yit
|
324 |
-
#: plugin-options/filter-options.php:
|
325 |
#, fuzzy
|
326 |
msgctxt "[Admin] Filter edit form"
|
327 |
-
msgid "
|
328 |
-
msgstr "
|
329 |
|
330 |
-
#: plugin-options/filter-options.php:
|
331 |
msgctxt "[Admin] Filter edit form"
|
332 |
-
msgid "
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: plugin-options/filter-options.php:
|
336 |
msgctxt "[Admin] Filter edit form"
|
337 |
-
msgid "
|
338 |
msgstr ""
|
339 |
|
340 |
-
|
341 |
-
#: plugin-options/filter-options.php:75
|
342 |
-
#, fuzzy
|
343 |
msgctxt "[Admin] Filter edit form"
|
344 |
-
msgid "
|
345 |
-
msgstr "
|
346 |
|
347 |
-
#: plugin-options/filter-options.php:
|
348 |
msgctxt "[Admin] Filter edit form"
|
349 |
-
msgid "
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: plugin-options/filter-options.php:
|
353 |
msgctxt "[Admin] Filter edit form"
|
354 |
msgid "Columns number"
|
355 |
msgstr ""
|
356 |
|
357 |
-
#: plugin-options/filter-options.php:
|
358 |
msgctxt "[Admin] Filter edit form"
|
359 |
msgid "Set the number of items per row you want to show for this design"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: plugin-options/filter-options.php:
|
363 |
msgctxt "[Admin] Filter edit form"
|
364 |
msgid "Customize terms"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
368 |
msgctxt "[Admin] Filter edit form"
|
369 |
msgid "Show hierarchy"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: plugin-options/filter-options.php:
|
373 |
msgctxt "[Admin] Filter edit form"
|
374 |
msgid "No, show all terms in same level"
|
375 |
msgstr ""
|
376 |
|
377 |
-
#: plugin-options/filter-options.php:
|
378 |
msgctxt "[Admin] Filter edit form"
|
379 |
msgid "No, show only parent terms"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: plugin-options/filter-options.php:
|
383 |
msgctxt "[Admin] Filter edit form"
|
384 |
msgid "Yes"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: plugin-options/filter-options.php:
|
388 |
msgctxt "[Admin] Filter edit form"
|
389 |
msgid "Choose how to show terms hierarchy"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: plugin-options/filter-options.php:
|
393 |
msgctxt "[Admin] Filter edit form"
|
394 |
msgid "Allow multiple selection"
|
395 |
msgstr ""
|
396 |
|
397 |
-
#: plugin-options/filter-options.php:
|
398 |
msgctxt "[Admin] Filter edit form"
|
399 |
msgid "Enable if the user can select multiple terms when filtering products"
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: plugin-options/filter-options.php:
|
403 |
msgctxt "[Admin] Filter edit form"
|
404 |
msgid "Multiselect relation"
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: plugin-options/filter-options.php:
|
408 |
msgctxt "[Admin] Filter edit form"
|
409 |
msgid "Choose how multiple terms selection should behave"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
413 |
msgctxt "[Admin] Filter edit form, sorting options"
|
414 |
msgid "Default sorting"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
418 |
msgctxt "[Admin] Filter edit form, sorting options"
|
419 |
msgid "Sort by popularity"
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
423 |
msgctxt "[Admin] Filter edit form, sorting options"
|
424 |
msgid "Sort by average rating"
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
428 |
msgctxt "[Admin] Filter edit form, sorting options"
|
429 |
msgid "Sort by latest"
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
433 |
msgctxt "[Admin] Filter edit form, sorting options"
|
434 |
msgid "Sort by price: low to high"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
438 |
msgctxt "[Admin] Filter edit form, sorting options"
|
439 |
msgid "Sort by price: high to low"
|
440 |
msgstr ""
|
441 |
|
442 |
-
#: includes/class.yith-wcan-filter.php:
|
443 |
msgctxt "[Admin] Default filter title"
|
444 |
msgid "New filter"
|
445 |
msgstr ""
|
@@ -472,18 +543,23 @@ msgid "Close"
|
|
472 |
msgstr ""
|
473 |
|
474 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
475 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
476 |
msgid "Show results"
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: includes/class.yith-wcan-frontend.php:
|
480 |
msgctxt ""
|
481 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
482 |
"selection"
|
483 |
msgid "Clear"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: includes/class.yith-wcan-frontend.php:
|
487 |
msgctxt ""
|
488 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
489 |
"selection"
|
@@ -496,12 +572,33 @@ msgid "Default preset"
|
|
496 |
msgstr ""
|
497 |
|
498 |
#. translators: 1. Taxonomy name.
|
499 |
-
#: includes/class.yith-wcan-install.php:
|
500 |
#, fuzzy
|
501 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
502 |
msgid "Filter by %s"
|
503 |
msgstr "Filtre Listesi:"
|
504 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
#: includes/class.yith-wcan-presets.php:95
|
506 |
#: includes/class.yith-wcan-presets.php:100
|
507 |
#, fuzzy
|
@@ -525,7 +622,7 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
525 |
msgid "Convert widgets in a preset"
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
529 |
msgctxt ""
|
530 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
531 |
"not exist"
|
@@ -533,7 +630,7 @@ msgid "Invalid preset."
|
|
533 |
msgstr ""
|
534 |
|
535 |
#. translators: 1. Title of original preset.
|
536 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
537 |
msgctxt "[ADMIN] Title of the cloned preset"
|
538 |
msgid "%s - Copy"
|
539 |
msgstr ""
|
@@ -743,13 +840,13 @@ msgid "Reset all filters set by YITH WooCommerce AJAX Product Filter"
|
|
743 |
msgstr ""
|
744 |
"YITH WooCommerce Ajax Navigation için ayarlanmış tüm filtreleri sıfırlayın"
|
745 |
|
746 |
-
#: plugin-options/filter-options.php:
|
747 |
msgctxt ""
|
748 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
749 |
msgid "AND - Results need to match all selected terms at the same time"
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: plugin-options/filter-options.php:
|
753 |
msgctxt ""
|
754 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
755 |
msgid "OR - Results need to match at least one of the selected terms"
|
@@ -1146,38 +1243,27 @@ msgid ""
|
|
1146 |
"easier to share)"
|
1147 |
msgstr ""
|
1148 |
|
1149 |
-
#: templates/admin/preset-edit.php:
|
1150 |
msgctxt "[Admin] Back link in new preset page"
|
1151 |
msgid "< back to preset list"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
-
#: templates/admin/preset-edit.php:
|
1155 |
msgctxt "[ADMIN] Title for new preset page"
|
1156 |
msgid "Edit filter preset"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
#: templates/admin/preset-edit.php:
|
1160 |
msgctxt "[ADMIN] Title for new preset page"
|
1161 |
msgid "Add new filter preset"
|
1162 |
msgstr ""
|
1163 |
|
1164 |
-
#: templates/admin/preset-edit.php:
|
1165 |
-
msgctxt "[
|
1166 |
-
msgid "Preset
|
1167 |
-
msgstr ""
|
1168 |
-
|
1169 |
-
#: templates/admin/preset-edit.php:54
|
1170 |
-
msgctxt "[Admin] Label in new preset page"
|
1171 |
-
msgid "Enter a name to identify this filter preset"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: templates/admin/preset-
|
1175 |
-
#, fuzzy
|
1176 |
-
msgctxt "[Admin] Label in new preset page"
|
1177 |
-
msgid "Filters of this preset"
|
1178 |
-
msgstr "Filtre Listesi:"
|
1179 |
-
|
1180 |
-
#: templates/admin/preset-edit.php:68
|
1181 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1182 |
msgid "Save preset"
|
1183 |
msgstr ""
|
3 |
"Project-Id-Version: YITH WooCommerce Ajax Product filter\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/yith-woocommerce-"
|
5 |
"ajax-product-filter\n"
|
6 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
7 |
"PO-Revision-Date: 2019-06-06 10:16+0200\n"
|
8 |
"Last-Translator: Caner Öncel <caneroncel@gmail.com>\n"
|
9 |
"Language-Team: Caner Öncel <caneroncel@gmail.com>\n"
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: plugin-fw\n"
|
23 |
|
24 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
25 |
msgid "Draft Preset"
|
26 |
msgstr ""
|
27 |
|
124 |
msgid "Button Label"
|
125 |
msgstr "Buton Metni"
|
126 |
|
127 |
+
#: init.php:148
|
128 |
msgid ""
|
129 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
130 |
"while you are using the premium one."
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: init.php:166
|
134 |
msgid ""
|
135 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
136 |
"requires WooCommerce in order to work."
|
162 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: includes/class.yith-wcan-admin.php:111
|
166 |
+
msgctxt "[Admin] Error message"
|
167 |
+
msgid "\"Filter title\" is a required field"
|
168 |
+
msgstr ""
|
169 |
+
|
170 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
171 |
msgctxt "[Admin] Message shown when filter has empty title"
|
172 |
msgid "< no title >"
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: includes/class.yith-wcan-admin.php:115
|
176 |
msgctxt "[Admin] Media library title, when selecting images"
|
177 |
msgid "Select media you want to use"
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: includes/class.yith-wcan-admin.php:116
|
181 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
182 |
msgid "Use this media"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: includes/class.yith-wcan-admin.php:184
|
186 |
#, fuzzy
|
187 |
msgctxt "[Admin] tab name"
|
188 |
msgid "Filter presets"
|
189 |
msgstr "Filtre Listesi:"
|
190 |
|
191 |
+
#: includes/class.yith-wcan-admin.php:185
|
192 |
msgctxt "[Admin] tab name"
|
193 |
msgid "General settings"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: includes/class.yith-wcan-admin.php:186
|
197 |
msgctxt "[Admin] tab name"
|
198 |
msgid "SEO"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: includes/class.yith-wcan-admin.php:187
|
202 |
msgctxt "[Admin] tab name"
|
203 |
msgid "Premium Version"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: includes/class.yith-wcan-admin.php:191
|
207 |
msgctxt "[Admin] tab name"
|
208 |
msgid "Legacy"
|
209 |
msgstr ""
|
210 |
|
211 |
# @ yit
|
212 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
213 |
#, fuzzy
|
214 |
msgctxt "[Admin] Menu title"
|
215 |
msgid "Ajax Product Filter"
|
216 |
msgstr "YITH WooCommerce Ajax Navigation"
|
217 |
|
218 |
+
#: includes/class.yith-wcan-admin.php:199
|
219 |
msgctxt "[Admin] Plugin description"
|
220 |
msgid ""
|
221 |
"It allows your users to find the product they are looking for as quickly as "
|
222 |
"possible."
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: includes/class.yith-wcan-admin.php:211
|
226 |
+
msgctxt "[HELP TAB] Video title"
|
227 |
+
msgid ""
|
228 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
229 |
+
"the shop page:</b>"
|
230 |
+
msgstr ""
|
231 |
+
|
232 |
+
#: includes/class.yith-wcan-admin.php:329
|
233 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
234 |
msgid "item"
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: includes/class.yith-wcan-admin.php:330
|
238 |
msgctxt "[Admin] Preset table empty message second line"
|
239 |
msgid "But don't worry, here you can create your first one!"
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: includes/class.yith-wcan-admin.php:478
|
243 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
244 |
msgid "Clear Product Filter transients"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: includes/class.yith-wcan-admin.php:484
|
248 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
249 |
msgid "Run filter widgets upgrade"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: includes/class.yith-wcan-admin.php:479
|
253 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
254 |
msgid "Clear"
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: includes/class.yith-wcan-admin.php:485
|
258 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
259 |
msgid "Run"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: includes/class.yith-wcan-admin.php:480
|
263 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
264 |
msgid ""
|
265 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
267 |
"and filters do not display the expected results."
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: includes/class.yith-wcan-admin.php:486
|
271 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
272 |
msgid ""
|
273 |
"This will create a preset for any sidebar of your shop containing filter "
|
279 |
msgid "Taxonomy"
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
283 |
+
msgctxt "[Admin] Filter edit form"
|
284 |
+
msgid "Checkbox"
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
# @ yit
|
288 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
289 |
+
#, fuzzy
|
290 |
+
msgctxt "[Admin] Filter edit form"
|
291 |
+
msgid "Select"
|
292 |
+
msgstr "Bir tarih seçin"
|
293 |
+
|
294 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
295 |
+
msgctxt "[Admin] Filter edit form"
|
296 |
+
msgid "Text"
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
300 |
+
msgctxt "[Admin] Filter edit form"
|
301 |
+
msgid "Color Swatches"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
# @ yit
|
305 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
306 |
+
#, fuzzy
|
307 |
+
msgctxt "[Admin] Filter edit form"
|
308 |
+
msgid "Label"
|
309 |
+
msgstr "Etiket"
|
310 |
+
|
311 |
+
#: plugin-options/filter-options.php:32
|
312 |
msgctxt "[Admin] Filter edit form"
|
313 |
msgid "Filter name"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: plugin-options/filter-options.php:35
|
317 |
msgctxt "[Admin] Filter edit form"
|
318 |
msgid "Enter a name to identify this filter"
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: plugin-options/filter-options.php:41
|
322 |
#, fuzzy
|
323 |
msgctxt "[Admin] Filter edit form"
|
324 |
msgid "Filter for"
|
325 |
msgstr "Filtre Listesi:"
|
326 |
|
327 |
+
#: plugin-options/filter-options.php:45
|
328 |
msgctxt "[Admin] Filter edit form"
|
329 |
msgid "Select the parameters you wish to filter for"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: plugin-options/filter-options.php:51
|
333 |
msgctxt "[Admin] Filter edit form"
|
334 |
msgid "Choose taxonomy"
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: plugin-options/filter-options.php:55
|
338 |
msgctxt "[Admin] Filter edit form"
|
339 |
msgid "Select which taxonomy to use for this filter"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: plugin-options/filter-options.php:60
|
343 |
+
msgctxt "[Admin] Filter edit form"
|
344 |
+
msgid "Auto-populate with all terms"
|
345 |
+
msgstr ""
|
346 |
+
|
347 |
+
#: plugin-options/filter-options.php:62
|
348 |
+
msgctxt "[Admin] Filter edit form"
|
349 |
+
msgid ""
|
350 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
351 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
352 |
+
"this option, all terms created in the future will be added to this filter as "
|
353 |
+
"well.</span>"
|
354 |
+
msgstr ""
|
355 |
+
|
356 |
+
#: plugin-options/filter-options.php:71
|
357 |
msgctxt "[Admin] Filter edit form"
|
358 |
msgid "Choose terms"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: plugin-options/filter-options.php:76
|
362 |
msgctxt "[Admin] Filter edit form"
|
363 |
msgid "Select which terms to use for filtering"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: plugin-options/filter-options.php:80
|
367 |
#, fuzzy
|
368 |
msgctxt "[Admin] Filter edit form"
|
369 |
msgid "Filter type"
|
370 |
msgstr "Filtre Listesi:"
|
371 |
|
372 |
+
#: plugin-options/filter-options.php:84
|
373 |
msgctxt "[Admin] Filter edit form"
|
374 |
+
msgid "Select the filter type for this filter"
|
375 |
msgstr ""
|
376 |
|
377 |
# @ yit
|
378 |
+
#: plugin-options/filter-options.php:88
|
379 |
#, fuzzy
|
380 |
msgctxt "[Admin] Filter edit form"
|
381 |
+
msgid "Labels"
|
382 |
+
msgstr "Etiketler"
|
383 |
|
384 |
+
#: plugin-options/filter-options.php:91
|
385 |
msgctxt "[Admin] Filter edit form"
|
386 |
+
msgid "Show below"
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: plugin-options/filter-options.php:92
|
390 |
msgctxt "[Admin] Filter edit form"
|
391 |
+
msgid "Show on the right"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: plugin-options/filter-options.php:93
|
|
|
|
|
395 |
msgctxt "[Admin] Filter edit form"
|
396 |
+
msgid "Hide"
|
397 |
+
msgstr ""
|
398 |
|
399 |
+
#: plugin-options/filter-options.php:95
|
400 |
msgctxt "[Admin] Filter edit form"
|
401 |
+
msgid "Choose if and where to show the label inside your filter"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: plugin-options/filter-options.php:99
|
405 |
msgctxt "[Admin] Filter edit form"
|
406 |
msgid "Columns number"
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: plugin-options/filter-options.php:104
|
410 |
msgctxt "[Admin] Filter edit form"
|
411 |
msgid "Set the number of items per row you want to show for this design"
|
412 |
msgstr ""
|
413 |
|
414 |
+
#: plugin-options/filter-options.php:108
|
415 |
msgctxt "[Admin] Filter edit form"
|
416 |
msgid "Customize terms"
|
417 |
msgstr ""
|
418 |
|
419 |
+
#: plugin-options/filter-options.php:111
|
420 |
+
msgctxt "[Admin] Filter edit form"
|
421 |
+
msgid ""
|
422 |
+
"Configure your terms individually; system will otherwise use default labels/"
|
423 |
+
"images for terms.\n"
|
424 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
425 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
426 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, just "
|
427 |
+
"enable this option and use boxes below.</span>\n"
|
428 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
429 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
430 |
+
"this option and use the boxes below</span>"
|
431 |
+
msgstr ""
|
432 |
+
|
433 |
+
#: plugin-options/filter-options.php:121
|
434 |
+
msgctxt "[Admin] Filter edit form"
|
435 |
+
msgid "Terms options"
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#: plugin-options/filter-options.php:127
|
439 |
msgctxt "[Admin] Filter edit form"
|
440 |
msgid "Show hierarchy"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: plugin-options/filter-options.php:130
|
444 |
msgctxt "[Admin] Filter edit form"
|
445 |
msgid "No, show all terms in same level"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: plugin-options/filter-options.php:131
|
449 |
msgctxt "[Admin] Filter edit form"
|
450 |
msgid "No, show only parent terms"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: plugin-options/filter-options.php:132
|
454 |
msgctxt "[Admin] Filter edit form"
|
455 |
msgid "Yes"
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: plugin-options/filter-options.php:134
|
459 |
msgctxt "[Admin] Filter edit form"
|
460 |
msgid "Choose how to show terms hierarchy"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: plugin-options/filter-options.php:138
|
464 |
msgctxt "[Admin] Filter edit form"
|
465 |
msgid "Allow multiple selection"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: plugin-options/filter-options.php:140
|
469 |
msgctxt "[Admin] Filter edit form"
|
470 |
msgid "Enable if the user can select multiple terms when filtering products"
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: plugin-options/filter-options.php:144
|
474 |
msgctxt "[Admin] Filter edit form"
|
475 |
msgid "Multiselect relation"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: plugin-options/filter-options.php:150
|
479 |
msgctxt "[Admin] Filter edit form"
|
480 |
msgid "Choose how multiple terms selection should behave"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
484 |
msgctxt "[Admin] Filter edit form, sorting options"
|
485 |
msgid "Default sorting"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
489 |
msgctxt "[Admin] Filter edit form, sorting options"
|
490 |
msgid "Sort by popularity"
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
494 |
msgctxt "[Admin] Filter edit form, sorting options"
|
495 |
msgid "Sort by average rating"
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
499 |
msgctxt "[Admin] Filter edit form, sorting options"
|
500 |
msgid "Sort by latest"
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
504 |
msgctxt "[Admin] Filter edit form, sorting options"
|
505 |
msgid "Sort by price: low to high"
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
509 |
msgctxt "[Admin] Filter edit form, sorting options"
|
510 |
msgid "Sort by price: high to low"
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: includes/class.yith-wcan-filter.php:116
|
514 |
msgctxt "[Admin] Default filter title"
|
515 |
msgid "New filter"
|
516 |
msgstr ""
|
543 |
msgstr ""
|
544 |
|
545 |
#: includes/class.yith-wcan-frontend.php:582
|
546 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
547 |
+
msgid "Save"
|
548 |
+
msgstr ""
|
549 |
+
|
550 |
+
#: includes/class.yith-wcan-frontend.php:583
|
551 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
552 |
msgid "Show results"
|
553 |
msgstr ""
|
554 |
|
555 |
+
#: includes/class.yith-wcan-frontend.php:584
|
556 |
msgctxt ""
|
557 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
558 |
"selection"
|
559 |
msgid "Clear"
|
560 |
msgstr ""
|
561 |
|
562 |
+
#: includes/class.yith-wcan-frontend.php:585
|
563 |
msgctxt ""
|
564 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
565 |
"selection"
|
572 |
msgstr ""
|
573 |
|
574 |
#. translators: 1. Taxonomy name.
|
575 |
+
#: includes/class.yith-wcan-install.php:285
|
576 |
#, fuzzy
|
577 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
578 |
msgid "Filter by %s"
|
579 |
msgstr "Filtre Listesi:"
|
580 |
|
581 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
582 |
+
msgctxt "[Admin] Label in new preset page"
|
583 |
+
msgid "Default"
|
584 |
+
msgstr ""
|
585 |
+
|
586 |
+
#: plugin-options/preset-options.php:14
|
587 |
+
msgctxt "[Admin] Label in new preset page"
|
588 |
+
msgid "Preset name"
|
589 |
+
msgstr ""
|
590 |
+
|
591 |
+
#: plugin-options/preset-options.php:16
|
592 |
+
msgctxt "[Admin] Label in new preset page"
|
593 |
+
msgid "Enter a name to identify this filter preset"
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: templates/admin/preset-filters.php:20
|
597 |
+
#, fuzzy
|
598 |
+
msgctxt "[Admin] Label in new preset page"
|
599 |
+
msgid "Filters of this preset"
|
600 |
+
msgstr "Filtre Listesi:"
|
601 |
+
|
602 |
#: includes/class.yith-wcan-presets.php:95
|
603 |
#: includes/class.yith-wcan-presets.php:100
|
604 |
#, fuzzy
|
622 |
msgid "Convert widgets in a preset"
|
623 |
msgstr ""
|
624 |
|
625 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
626 |
msgctxt ""
|
627 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
628 |
"not exist"
|
630 |
msgstr ""
|
631 |
|
632 |
#. translators: 1. Title of original preset.
|
633 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
634 |
msgctxt "[ADMIN] Title of the cloned preset"
|
635 |
msgid "%s - Copy"
|
636 |
msgstr ""
|
840 |
msgstr ""
|
841 |
"YITH WooCommerce Ajax Navigation için ayarlanmış tüm filtreleri sıfırlayın"
|
842 |
|
843 |
+
#: plugin-options/filter-options.php:147
|
844 |
msgctxt ""
|
845 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
846 |
msgid "AND - Results need to match all selected terms at the same time"
|
847 |
msgstr ""
|
848 |
|
849 |
+
#: plugin-options/filter-options.php:148
|
850 |
msgctxt ""
|
851 |
"[Admin] Filter edit form; logical operator that affects query behaviour"
|
852 |
msgid "OR - Results need to match at least one of the selected terms"
|
1243 |
"easier to share)"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
+
#: templates/admin/preset-edit.php:29
|
1247 |
msgctxt "[Admin] Back link in new preset page"
|
1248 |
msgid "< back to preset list"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
+
#: templates/admin/preset-edit.php:36
|
1252 |
msgctxt "[ADMIN] Title for new preset page"
|
1253 |
msgid "Edit filter preset"
|
1254 |
msgstr ""
|
1255 |
|
1256 |
+
#: templates/admin/preset-edit.php:38
|
1257 |
msgctxt "[ADMIN] Title for new preset page"
|
1258 |
msgid "Add new filter preset"
|
1259 |
msgstr ""
|
1260 |
|
1261 |
+
#: templates/admin/preset-edit.php:45
|
1262 |
+
msgctxt "[ADMIN] Preset save message"
|
1263 |
+
msgid "Preset saved correctly"
|
|
|
|
|
|
|
|
|
|
|
1264 |
msgstr ""
|
1265 |
|
1266 |
+
#: templates/admin/preset-edit.php:90
|
|
|
|
|
|
|
|
|
|
|
|
|
1267 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1268 |
msgid "Save preset"
|
1269 |
msgstr ""
|
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Navigation\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/yith-woocommerce-ajax-product-filter\n"
|
8 |
-
"POT-Creation-Date: 2021-
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -29,7 +29,7 @@ msgstr ""
|
|
29 |
"X-Poedit-SearchPathExcluded-2: node_modules\n"
|
30 |
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
31 |
|
32 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
33 |
msgid "Draft Preset"
|
34 |
msgstr ""
|
35 |
|
@@ -120,13 +120,13 @@ msgstr ""
|
|
120 |
msgid "Button Label"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: init.php:
|
124 |
msgid ""
|
125 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
126 |
"while you are using the premium one."
|
127 |
msgstr ""
|
128 |
|
129 |
-
#: init.php:
|
130 |
msgid ""
|
131 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
132 |
"requires WooCommerce in order to work."
|
@@ -158,90 +158,101 @@ msgctxt "[Admin] Confirm add all terms message"
|
|
158 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
162 |
msgctxt "[Admin] Message shown when filter has empty title"
|
163 |
msgid "< no title >"
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: includes/class.yith-wcan-admin.php:
|
167 |
msgctxt "[Admin] Media library title, when selecting images"
|
168 |
msgid "Select media you want to use"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: includes/class.yith-wcan-admin.php:
|
172 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
173 |
msgid "Use this media"
|
174 |
msgstr ""
|
175 |
|
176 |
-
#: includes/class.yith-wcan-admin.php:
|
177 |
msgctxt "[Admin] tab name"
|
178 |
msgid "Filter presets"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: includes/class.yith-wcan-admin.php:
|
182 |
msgctxt "[Admin] tab name"
|
183 |
msgid "General settings"
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: includes/class.yith-wcan-admin.php:
|
187 |
msgctxt "[Admin] tab name"
|
188 |
msgid "SEO"
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: includes/class.yith-wcan-admin.php:
|
192 |
msgctxt "[Admin] tab name"
|
193 |
msgid "Premium Version"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: includes/class.yith-wcan-admin.php:
|
197 |
msgctxt "[Admin] tab name"
|
198 |
msgid "Legacy"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: includes/class.yith-wcan-admin.php:
|
202 |
-
#: includes/class.yith-wcan-admin.php:195
|
203 |
msgctxt "[Admin] Menu title"
|
204 |
msgid "Ajax Product Filter"
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: includes/class.yith-wcan-admin.php:
|
208 |
msgctxt "[Admin] Plugin description"
|
209 |
msgid ""
|
210 |
"It allows your users to find the product they are looking for as quickly as "
|
211 |
"possible."
|
212 |
msgstr ""
|
213 |
|
214 |
-
#: includes/class.yith-wcan-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
216 |
msgid "item"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: includes/class.yith-wcan-admin.php:
|
220 |
msgctxt "[Admin] Preset table empty message second line"
|
221 |
msgid "But don't worry, here you can create your first one!"
|
222 |
msgstr ""
|
223 |
|
224 |
-
#: includes/class.yith-wcan-admin.php:
|
225 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
226 |
msgid "Clear Product Filter transients"
|
227 |
msgstr ""
|
228 |
|
229 |
-
#: includes/class.yith-wcan-admin.php:
|
230 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
231 |
msgid "Run filter widgets upgrade"
|
232 |
msgstr ""
|
233 |
|
234 |
-
#: includes/class.yith-wcan-admin.php:
|
235 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
236 |
msgid "Clear"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: includes/class.yith-wcan-admin.php:
|
240 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
241 |
msgid "Run"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: includes/class.yith-wcan-admin.php:
|
245 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
246 |
msgid ""
|
247 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
@@ -249,7 +260,7 @@ msgid ""
|
|
249 |
"configuration, and filters do not display the expected results."
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: includes/class.yith-wcan-admin.php:
|
253 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
254 |
msgid ""
|
255 |
"This will create a preset for any sidebar of your shop containing filter "
|
@@ -261,172 +272,230 @@ msgctxt "[Admin] Filter edit form"
|
|
261 |
msgid "Taxonomy"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
msgctxt "[Admin] Filter edit form"
|
266 |
msgid "Filter name"
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: plugin-options/filter-options.php:
|
270 |
msgctxt "[Admin] Filter edit form"
|
271 |
msgid "Enter a name to identify this filter"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: plugin-options/filter-options.php:
|
275 |
msgctxt "[Admin] Filter edit form"
|
276 |
msgid "Filter for"
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: plugin-options/filter-options.php:
|
280 |
msgctxt "[Admin] Filter edit form"
|
281 |
msgid "Select the parameters you wish to filter for"
|
282 |
msgstr ""
|
283 |
|
284 |
-
#: plugin-options/filter-options.php:
|
285 |
msgctxt "[Admin] Filter edit form"
|
286 |
msgid "Choose taxonomy"
|
287 |
msgstr ""
|
288 |
|
289 |
-
#: plugin-options/filter-options.php:
|
290 |
msgctxt "[Admin] Filter edit form"
|
291 |
msgid "Select which taxonomy to use for this filter"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
msgctxt "[Admin] Filter edit form"
|
296 |
msgid "Choose terms"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: plugin-options/filter-options.php:
|
300 |
msgctxt "[Admin] Filter edit form"
|
301 |
msgid "Select which terms to use for filtering"
|
302 |
msgstr ""
|
303 |
|
304 |
-
#: plugin-options/filter-options.php:
|
305 |
msgctxt "[Admin] Filter edit form"
|
306 |
msgid "Filter type"
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: plugin-options/filter-options.php:
|
310 |
msgctxt "[Admin] Filter edit form"
|
311 |
-
msgid "
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: plugin-options/filter-options.php:
|
315 |
msgctxt "[Admin] Filter edit form"
|
316 |
-
msgid "
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: plugin-options/filter-options.php:
|
320 |
msgctxt "[Admin] Filter edit form"
|
321 |
-
msgid "
|
322 |
msgstr ""
|
323 |
|
324 |
-
#: plugin-options/filter-options.php:
|
325 |
msgctxt "[Admin] Filter edit form"
|
326 |
-
msgid "
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: plugin-options/filter-options.php:
|
330 |
msgctxt "[Admin] Filter edit form"
|
331 |
-
msgid "
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: plugin-options/filter-options.php:
|
335 |
msgctxt "[Admin] Filter edit form"
|
336 |
-
msgid "
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: plugin-options/filter-options.php:
|
340 |
msgctxt "[Admin] Filter edit form"
|
341 |
msgid "Columns number"
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: plugin-options/filter-options.php:
|
345 |
msgctxt "[Admin] Filter edit form"
|
346 |
msgid "Set the number of items per row you want to show for this design"
|
347 |
msgstr ""
|
348 |
|
349 |
-
#: plugin-options/filter-options.php:
|
350 |
msgctxt "[Admin] Filter edit form"
|
351 |
msgid "Customize terms"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: plugin-options/filter-options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
msgctxt "[Admin] Filter edit form"
|
356 |
msgid "Show hierarchy"
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: plugin-options/filter-options.php:
|
360 |
msgctxt "[Admin] Filter edit form"
|
361 |
msgid "No, show all terms in same level"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: plugin-options/filter-options.php:
|
365 |
msgctxt "[Admin] Filter edit form"
|
366 |
msgid "No, show only parent terms"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: plugin-options/filter-options.php:
|
370 |
msgctxt "[Admin] Filter edit form"
|
371 |
msgid "Yes"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: plugin-options/filter-options.php:
|
375 |
msgctxt "[Admin] Filter edit form"
|
376 |
msgid "Choose how to show terms hierarchy"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: plugin-options/filter-options.php:
|
380 |
msgctxt "[Admin] Filter edit form"
|
381 |
msgid "Allow multiple selection"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: plugin-options/filter-options.php:
|
385 |
msgctxt "[Admin] Filter edit form"
|
386 |
msgid "Enable if the user can select multiple terms when filtering products"
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: plugin-options/filter-options.php:
|
390 |
msgctxt "[Admin] Filter edit form"
|
391 |
msgid "Multiselect relation"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: plugin-options/filter-options.php:
|
395 |
msgctxt "[Admin] Filter edit form"
|
396 |
msgid "Choose how multiple terms selection should behave"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
400 |
msgctxt "[Admin] Filter edit form, sorting options"
|
401 |
msgid "Default sorting"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
405 |
msgctxt "[Admin] Filter edit form, sorting options"
|
406 |
msgid "Sort by popularity"
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
410 |
msgctxt "[Admin] Filter edit form, sorting options"
|
411 |
msgid "Sort by average rating"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
415 |
msgctxt "[Admin] Filter edit form, sorting options"
|
416 |
msgid "Sort by latest"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
420 |
msgctxt "[Admin] Filter edit form, sorting options"
|
421 |
msgid "Sort by price: low to high"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: includes/class.yith-wcan-filter-factory.php:
|
425 |
msgctxt "[Admin] Filter edit form, sorting options"
|
426 |
msgid "Sort by price: high to low"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: includes/class.yith-wcan-filter.php:
|
430 |
msgctxt "[Admin] Default filter title"
|
431 |
msgid "New filter"
|
432 |
msgstr ""
|
@@ -459,18 +528,23 @@ msgid "Close"
|
|
459 |
msgstr ""
|
460 |
|
461 |
#: includes/class.yith-wcan-frontend.php:582
|
|
|
|
|
|
|
|
|
|
|
462 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
463 |
msgid "Show results"
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: includes/class.yith-wcan-frontend.php:
|
467 |
msgctxt ""
|
468 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
469 |
"selection"
|
470 |
msgid "Clear"
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: includes/class.yith-wcan-frontend.php:
|
474 |
msgctxt ""
|
475 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
476 |
"selection"
|
@@ -482,12 +556,32 @@ msgctxt "[ADMIN] Name of default preset that is installed with the plugin"
|
|
482 |
msgid "Default preset"
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: includes/class.yith-wcan-install.php:
|
486 |
#. translators: 1. Taxonomy name.
|
487 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
488 |
msgid "Filter by %s"
|
489 |
msgstr ""
|
490 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
#: includes/class.yith-wcan-presets.php:95
|
492 |
#: includes/class.yith-wcan-presets.php:100
|
493 |
msgctxt "[Admin] name of presets custom post type"
|
@@ -509,14 +603,14 @@ msgctxt "[ADMIN] Convert widgets tools, in preset tab"
|
|
509 |
msgid "Convert widgets in a preset"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
513 |
msgctxt ""
|
514 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
515 |
"not exist"
|
516 |
msgid "Invalid preset."
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: includes/data-stores/class.yith-wcan-preset-data-store.php:
|
520 |
#. translators: 1. Title of original preset.
|
521 |
msgctxt "[ADMIN] Title of the cloned preset"
|
522 |
msgid "%s - Copy"
|
@@ -712,12 +806,12 @@ msgctxt "[Plugin Name]"
|
|
712 |
msgid "Reset all filters set by YITH WooCommerce AJAX Product Filter"
|
713 |
msgstr ""
|
714 |
|
715 |
-
#: plugin-options/filter-options.php:
|
716 |
msgctxt "[Admin] Filter edit form; logical operator that affects query behaviour"
|
717 |
msgid "AND - Results need to match all selected terms at the same time"
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: plugin-options/filter-options.php:
|
721 |
msgctxt "[Admin] Filter edit form; logical operator that affects query behaviour"
|
722 |
msgid "OR - Results need to match at least one of the selected terms"
|
723 |
msgstr ""
|
@@ -1107,37 +1201,27 @@ msgid ""
|
|
1107 |
"easier to share)"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: templates/admin/preset-edit.php:
|
1111 |
msgctxt "[Admin] Back link in new preset page"
|
1112 |
msgid "< back to preset list"
|
1113 |
msgstr ""
|
1114 |
|
1115 |
-
#: templates/admin/preset-edit.php:
|
1116 |
msgctxt "[ADMIN] Title for new preset page"
|
1117 |
msgid "Edit filter preset"
|
1118 |
msgstr ""
|
1119 |
|
1120 |
-
#: templates/admin/preset-edit.php:
|
1121 |
msgctxt "[ADMIN] Title for new preset page"
|
1122 |
msgid "Add new filter preset"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
-
#: templates/admin/preset-edit.php:
|
1126 |
-
msgctxt "[
|
1127 |
-
msgid "Preset
|
1128 |
-
msgstr ""
|
1129 |
-
|
1130 |
-
#: templates/admin/preset-edit.php:54
|
1131 |
-
msgctxt "[Admin] Label in new preset page"
|
1132 |
-
msgid "Enter a name to identify this filter preset"
|
1133 |
-
msgstr ""
|
1134 |
-
|
1135 |
-
#: templates/admin/preset-filters.php:20
|
1136 |
-
msgctxt "[Admin] Label in new preset page"
|
1137 |
-
msgid "Filters of this preset"
|
1138 |
msgstr ""
|
1139 |
|
1140 |
-
#: templates/admin/preset-edit.php:
|
1141 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1142 |
msgid "Save preset"
|
1143 |
msgstr ""
|
5 |
"Project-Id-Version: YITH WooCommerce Ajax Navigation\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/yith-woocommerce-ajax-product-filter\n"
|
8 |
+
"POT-Creation-Date: 2021-06-18 12:05:17+00:00\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
29 |
"X-Poedit-SearchPathExcluded-2: node_modules\n"
|
30 |
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
31 |
|
32 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:57
|
33 |
msgid "Draft Preset"
|
34 |
msgstr ""
|
35 |
|
120 |
msgid "Button Label"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: init.php:148
|
124 |
msgid ""
|
125 |
"You can't activate the free version of YITH WooCommerce Ajax Product Filter "
|
126 |
"while you are using the premium one."
|
127 |
msgstr ""
|
128 |
|
129 |
+
#: init.php:166
|
130 |
msgid ""
|
131 |
"YITH WooCommerce Ajax Product Filter is enabled but not effective. It "
|
132 |
"requires WooCommerce in order to work."
|
158 |
msgid "Are you sure you want to proceed? This operation will add %s items"
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: includes/class.yith-wcan-admin.php:111
|
162 |
+
msgctxt "[Admin] Error message"
|
163 |
+
msgid "\"Filter title\" is a required field"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: includes/class.yith-wcan-admin.php:114 templates/admin/preset-filter.php:31
|
167 |
msgctxt "[Admin] Message shown when filter has empty title"
|
168 |
msgid "< no title >"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: includes/class.yith-wcan-admin.php:115
|
172 |
msgctxt "[Admin] Media library title, when selecting images"
|
173 |
msgid "Select media you want to use"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: includes/class.yith-wcan-admin.php:116
|
177 |
msgctxt "[Admin] Media library confirm button, when selecting images"
|
178 |
msgid "Use this media"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: includes/class.yith-wcan-admin.php:184
|
182 |
msgctxt "[Admin] tab name"
|
183 |
msgid "Filter presets"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: includes/class.yith-wcan-admin.php:185
|
187 |
msgctxt "[Admin] tab name"
|
188 |
msgid "General settings"
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: includes/class.yith-wcan-admin.php:186
|
192 |
msgctxt "[Admin] tab name"
|
193 |
msgid "SEO"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: includes/class.yith-wcan-admin.php:187
|
197 |
msgctxt "[Admin] tab name"
|
198 |
msgid "Premium Version"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: includes/class.yith-wcan-admin.php:191
|
202 |
msgctxt "[Admin] tab name"
|
203 |
msgid "Legacy"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: includes/class.yith-wcan-admin.php:198
|
|
|
207 |
msgctxt "[Admin] Menu title"
|
208 |
msgid "Ajax Product Filter"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: includes/class.yith-wcan-admin.php:199
|
212 |
msgctxt "[Admin] Plugin description"
|
213 |
msgid ""
|
214 |
"It allows your users to find the product they are looking for as quickly as "
|
215 |
"possible."
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: includes/class.yith-wcan-admin.php:211
|
219 |
+
msgctxt "[HELP TAB] Video title"
|
220 |
+
msgid ""
|
221 |
+
"Check this video to learn how to <b>create a filter preset and show it on "
|
222 |
+
"the shop page:</b>"
|
223 |
+
msgstr ""
|
224 |
+
|
225 |
+
#: includes/class.yith-wcan-admin.php:329
|
226 |
msgctxt "[Admin] Generic item name, in \"You have no x yet\""
|
227 |
msgid "item"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: includes/class.yith-wcan-admin.php:330
|
231 |
msgctxt "[Admin] Preset table empty message second line"
|
232 |
msgid "But don't worry, here you can create your first one!"
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: includes/class.yith-wcan-admin.php:478
|
236 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
237 |
msgid "Clear Product Filter transients"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: includes/class.yith-wcan-admin.php:484
|
241 |
msgctxt "[ADMIN] WooCommerce Tools tab, name of the tool"
|
242 |
msgid "Run filter widgets upgrade"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: includes/class.yith-wcan-admin.php:479
|
246 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
247 |
msgid "Clear"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: includes/class.yith-wcan-admin.php:485
|
251 |
msgctxt "[ADMIN] WooCommerce Tools tab, button for the tool"
|
252 |
msgid "Run"
|
253 |
msgstr ""
|
254 |
|
255 |
+
#: includes/class.yith-wcan-admin.php:480
|
256 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
257 |
msgid ""
|
258 |
"This will clear all transients related to the YITH WooCommerce AJAX Product "
|
260 |
"configuration, and filters do not display the expected results."
|
261 |
msgstr ""
|
262 |
|
263 |
+
#: includes/class.yith-wcan-admin.php:486
|
264 |
msgctxt "[ADMIN] WooCommerce Tools tab, description of the tool"
|
265 |
msgid ""
|
266 |
"This will create a preset for any sidebar of your shop containing filter "
|
272 |
msgid "Taxonomy"
|
273 |
msgstr ""
|
274 |
|
275 |
+
#: includes/class.yith-wcan-filter-factory.php:86
|
276 |
+
msgctxt "[Admin] Filter edit form"
|
277 |
+
msgid "Checkbox"
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
+
#: includes/class.yith-wcan-filter-factory.php:87
|
281 |
+
msgctxt "[Admin] Filter edit form"
|
282 |
+
msgid "Select"
|
283 |
+
msgstr ""
|
284 |
+
|
285 |
+
#: includes/class.yith-wcan-filter-factory.php:88
|
286 |
+
msgctxt "[Admin] Filter edit form"
|
287 |
+
msgid "Text"
|
288 |
+
msgstr ""
|
289 |
+
|
290 |
+
#: includes/class.yith-wcan-filter-factory.php:89
|
291 |
+
msgctxt "[Admin] Filter edit form"
|
292 |
+
msgid "Color Swatches"
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: includes/class.yith-wcan-filter-factory.php:90
|
296 |
+
msgctxt "[Admin] Filter edit form"
|
297 |
+
msgid "Label"
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: plugin-options/filter-options.php:32
|
301 |
msgctxt "[Admin] Filter edit form"
|
302 |
msgid "Filter name"
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: plugin-options/filter-options.php:35
|
306 |
msgctxt "[Admin] Filter edit form"
|
307 |
msgid "Enter a name to identify this filter"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: plugin-options/filter-options.php:41
|
311 |
msgctxt "[Admin] Filter edit form"
|
312 |
msgid "Filter for"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: plugin-options/filter-options.php:45
|
316 |
msgctxt "[Admin] Filter edit form"
|
317 |
msgid "Select the parameters you wish to filter for"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: plugin-options/filter-options.php:51
|
321 |
msgctxt "[Admin] Filter edit form"
|
322 |
msgid "Choose taxonomy"
|
323 |
msgstr ""
|
324 |
|
325 |
+
#: plugin-options/filter-options.php:55
|
326 |
msgctxt "[Admin] Filter edit form"
|
327 |
msgid "Select which taxonomy to use for this filter"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: plugin-options/filter-options.php:60
|
331 |
+
msgctxt "[Admin] Filter edit form"
|
332 |
+
msgid "Auto-populate with all terms"
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#: plugin-options/filter-options.php:62
|
336 |
+
msgctxt "[Admin] Filter edit form"
|
337 |
+
msgid ""
|
338 |
+
"Populate this filter with all existing terms of the selected taxonomy.\n"
|
339 |
+
"\t\t\t\t\t<span class=\"future-terms-notice\"><b>Notice:</b> if you enable "
|
340 |
+
"this option, all terms created in the future will be added to this filter "
|
341 |
+
"as well.</span>"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: plugin-options/filter-options.php:71
|
345 |
msgctxt "[Admin] Filter edit form"
|
346 |
msgid "Choose terms"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: plugin-options/filter-options.php:76
|
350 |
msgctxt "[Admin] Filter edit form"
|
351 |
msgid "Select which terms to use for filtering"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: plugin-options/filter-options.php:80
|
355 |
msgctxt "[Admin] Filter edit form"
|
356 |
msgid "Filter type"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: plugin-options/filter-options.php:84
|
360 |
msgctxt "[Admin] Filter edit form"
|
361 |
+
msgid "Select the filter type for this filter"
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: plugin-options/filter-options.php:88
|
365 |
msgctxt "[Admin] Filter edit form"
|
366 |
+
msgid "Labels"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: plugin-options/filter-options.php:91
|
370 |
msgctxt "[Admin] Filter edit form"
|
371 |
+
msgid "Show below"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: plugin-options/filter-options.php:92
|
375 |
msgctxt "[Admin] Filter edit form"
|
376 |
+
msgid "Show on the right"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: plugin-options/filter-options.php:93
|
380 |
msgctxt "[Admin] Filter edit form"
|
381 |
+
msgid "Hide"
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: plugin-options/filter-options.php:95
|
385 |
msgctxt "[Admin] Filter edit form"
|
386 |
+
msgid "Choose if and where to show the label inside your filter"
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: plugin-options/filter-options.php:99
|
390 |
msgctxt "[Admin] Filter edit form"
|
391 |
msgid "Columns number"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: plugin-options/filter-options.php:104
|
395 |
msgctxt "[Admin] Filter edit form"
|
396 |
msgid "Set the number of items per row you want to show for this design"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: plugin-options/filter-options.php:108
|
400 |
msgctxt "[Admin] Filter edit form"
|
401 |
msgid "Customize terms"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: plugin-options/filter-options.php:111
|
405 |
+
msgctxt "[Admin] Filter edit form"
|
406 |
+
msgid ""
|
407 |
+
"Configure your terms individually; system will otherwise use default "
|
408 |
+
"labels/images for terms.\n"
|
409 |
+
"\t\t\t\t\t<span class=\"wccl-notice\"><b>Notice:</b> optionally, you can "
|
410 |
+
"configure labels/images/colors for your attributes using YITH WooCommerce "
|
411 |
+
"Color and Label Variations options, in the term's edit page. Otherwise, "
|
412 |
+
"just enable this option and use boxes below.</span>\n"
|
413 |
+
"\t\t\t\t\t<span class=\"images-notice\"><b>Notice:</b> optionally, you can "
|
414 |
+
"configure the images in ‘edit page’ for the terms. Otherwise, just enable "
|
415 |
+
"this option and use the boxes below</span>"
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: plugin-options/filter-options.php:121
|
419 |
+
msgctxt "[Admin] Filter edit form"
|
420 |
+
msgid "Terms options"
|
421 |
+
msgstr ""
|
422 |
+
|
423 |
+
#: plugin-options/filter-options.php:127
|
424 |
msgctxt "[Admin] Filter edit form"
|
425 |
msgid "Show hierarchy"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: plugin-options/filter-options.php:130
|
429 |
msgctxt "[Admin] Filter edit form"
|
430 |
msgid "No, show all terms in same level"
|
431 |
msgstr ""
|
432 |
|
433 |
+
#: plugin-options/filter-options.php:131
|
434 |
msgctxt "[Admin] Filter edit form"
|
435 |
msgid "No, show only parent terms"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: plugin-options/filter-options.php:132
|
439 |
msgctxt "[Admin] Filter edit form"
|
440 |
msgid "Yes"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: plugin-options/filter-options.php:134
|
444 |
msgctxt "[Admin] Filter edit form"
|
445 |
msgid "Choose how to show terms hierarchy"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: plugin-options/filter-options.php:138
|
449 |
msgctxt "[Admin] Filter edit form"
|
450 |
msgid "Allow multiple selection"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: plugin-options/filter-options.php:140
|
454 |
msgctxt "[Admin] Filter edit form"
|
455 |
msgid "Enable if the user can select multiple terms when filtering products"
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: plugin-options/filter-options.php:144
|
459 |
msgctxt "[Admin] Filter edit form"
|
460 |
msgid "Multiselect relation"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: plugin-options/filter-options.php:150
|
464 |
msgctxt "[Admin] Filter edit form"
|
465 |
msgid "Choose how multiple terms selection should behave"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: includes/class.yith-wcan-filter-factory.php:104
|
469 |
msgctxt "[Admin] Filter edit form, sorting options"
|
470 |
msgid "Default sorting"
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: includes/class.yith-wcan-filter-factory.php:105
|
474 |
msgctxt "[Admin] Filter edit form, sorting options"
|
475 |
msgid "Sort by popularity"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: includes/class.yith-wcan-filter-factory.php:106
|
479 |
msgctxt "[Admin] Filter edit form, sorting options"
|
480 |
msgid "Sort by average rating"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: includes/class.yith-wcan-filter-factory.php:107
|
484 |
msgctxt "[Admin] Filter edit form, sorting options"
|
485 |
msgid "Sort by latest"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: includes/class.yith-wcan-filter-factory.php:108
|
489 |
msgctxt "[Admin] Filter edit form, sorting options"
|
490 |
msgid "Sort by price: low to high"
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: includes/class.yith-wcan-filter-factory.php:109
|
494 |
msgctxt "[Admin] Filter edit form, sorting options"
|
495 |
msgid "Sort by price: high to low"
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: includes/class.yith-wcan-filter.php:116
|
499 |
msgctxt "[Admin] Default filter title"
|
500 |
msgid "New filter"
|
501 |
msgstr ""
|
528 |
msgstr ""
|
529 |
|
530 |
#: includes/class.yith-wcan-frontend.php:582
|
531 |
+
msgctxt "[FRONTEND] Label for filter button, on horizontal layout"
|
532 |
+
msgid "Save"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: includes/class.yith-wcan-frontend.php:583
|
536 |
msgctxt "[FRONTEND] Label for filter button, on mobile modal"
|
537 |
msgid "Show results"
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: includes/class.yith-wcan-frontend.php:584
|
541 |
msgctxt ""
|
542 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
543 |
"selection"
|
544 |
msgid "Clear"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: includes/class.yith-wcan-frontend.php:585
|
548 |
msgctxt ""
|
549 |
"[FRONTEND] Label for clear selection link, that appears above filter after "
|
550 |
"selection"
|
556 |
msgid "Default preset"
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: includes/class.yith-wcan-install.php:285
|
560 |
#. translators: 1. Taxonomy name.
|
561 |
msgctxt "[ADMIN] Name of default taxonomy filter created by plugin"
|
562 |
msgid "Filter by %s"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: includes/class.yith-wcan-preset-factory.php:112
|
566 |
+
msgctxt "[Admin] Label in new preset page"
|
567 |
+
msgid "Default"
|
568 |
+
msgstr ""
|
569 |
+
|
570 |
+
#: plugin-options/preset-options.php:14
|
571 |
+
msgctxt "[Admin] Label in new preset page"
|
572 |
+
msgid "Preset name"
|
573 |
+
msgstr ""
|
574 |
+
|
575 |
+
#: plugin-options/preset-options.php:16
|
576 |
+
msgctxt "[Admin] Label in new preset page"
|
577 |
+
msgid "Enter a name to identify this filter preset"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: templates/admin/preset-filters.php:20
|
581 |
+
msgctxt "[Admin] Label in new preset page"
|
582 |
+
msgid "Filters of this preset"
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
#: includes/class.yith-wcan-presets.php:95
|
586 |
#: includes/class.yith-wcan-presets.php:100
|
587 |
msgctxt "[Admin] name of presets custom post type"
|
603 |
msgid "Convert widgets in a preset"
|
604 |
msgstr ""
|
605 |
|
606 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:108
|
607 |
msgctxt ""
|
608 |
"[Generic] Error that happens when trying to read a filter preset that does "
|
609 |
"not exist"
|
610 |
msgid "Invalid preset."
|
611 |
msgstr ""
|
612 |
|
613 |
+
#: includes/data-stores/class.yith-wcan-preset-data-store.php:235
|
614 |
#. translators: 1. Title of original preset.
|
615 |
msgctxt "[ADMIN] Title of the cloned preset"
|
616 |
msgid "%s - Copy"
|
806 |
msgid "Reset all filters set by YITH WooCommerce AJAX Product Filter"
|
807 |
msgstr ""
|
808 |
|
809 |
+
#: plugin-options/filter-options.php:147
|
810 |
msgctxt "[Admin] Filter edit form; logical operator that affects query behaviour"
|
811 |
msgid "AND - Results need to match all selected terms at the same time"
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: plugin-options/filter-options.php:148
|
815 |
msgctxt "[Admin] Filter edit form; logical operator that affects query behaviour"
|
816 |
msgid "OR - Results need to match at least one of the selected terms"
|
817 |
msgstr ""
|
1201 |
"easier to share)"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
+
#: templates/admin/preset-edit.php:29
|
1205 |
msgctxt "[Admin] Back link in new preset page"
|
1206 |
msgid "< back to preset list"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
+
#: templates/admin/preset-edit.php:36
|
1210 |
msgctxt "[ADMIN] Title for new preset page"
|
1211 |
msgid "Edit filter preset"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: templates/admin/preset-edit.php:38
|
1215 |
msgctxt "[ADMIN] Title for new preset page"
|
1216 |
msgid "Add new filter preset"
|
1217 |
msgstr ""
|
1218 |
|
1219 |
+
#: templates/admin/preset-edit.php:45
|
1220 |
+
msgctxt "[ADMIN] Preset save message"
|
1221 |
+
msgid "Preset saved correctly"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1222 |
msgstr ""
|
1223 |
|
1224 |
+
#: templates/admin/preset-edit.php:90
|
1225 |
msgctxt "[Admin] Preset save button, in new/edit preset page"
|
1226 |
msgid "Save preset"
|
1227 |
msgstr ""
|
@@ -78,6 +78,242 @@
|
|
78 |
margin : 0;
|
79 |
}
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
|
82 |
/**
|
83 |
Post type Edit
|
@@ -760,16 +996,25 @@ li.yith-plugin-fw-tab-element a.nav-tab i:before {
|
|
760 |
*/
|
761 |
|
762 |
button#yith-plugin-fw-float-save-button {
|
|
|
763 |
align-items : center;
|
764 |
-
border-radius :
|
765 |
bottom : 50px;
|
766 |
box-shadow : 0 0 6px 3px rgba(0, 121, 159, .2);
|
767 |
-
display : flex;
|
768 |
padding : 6px 20px;
|
769 |
position : fixed;
|
770 |
right : 70px;
|
771 |
text-transform : uppercase;
|
772 |
z-index : 2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
773 |
}
|
774 |
|
775 |
button#yith-plugin-fw-float-save-button i {
|
@@ -778,7 +1023,7 @@ button#yith-plugin-fw-float-save-button i {
|
|
778 |
}
|
779 |
|
780 |
button#yith-plugin-fw-float-save-button:hover {
|
781 |
-
box-shadow :
|
782 |
}
|
783 |
|
784 |
button#yith-plugin-fw-float-save-button.green {
|
@@ -798,6 +1043,23 @@ button#yith-plugin-fw-float-save-button.green {
|
|
798 |
|
799 |
}
|
800 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
801 |
@media (min-width : 768px) and (max-width : 992px) {
|
802 |
}
|
803 |
|
78 |
margin : 0;
|
79 |
}
|
80 |
|
81 |
+
/**
|
82 |
+
Help tab
|
83 |
+
*/
|
84 |
+
|
85 |
+
.yith-plugin-fw-panel-help-tab-container {
|
86 |
+
background-color : #fff;
|
87 |
+
padding : 60px 25px;
|
88 |
+
}
|
89 |
+
|
90 |
+
.yith-plugin-fw-panel-help-tab-content {
|
91 |
+
background-color : #F4F4F4;
|
92 |
+
border-radius : 15px;
|
93 |
+
max-width : 1100px;
|
94 |
+
margin : 0 auto;
|
95 |
+
padding : 40px 40px 60px;
|
96 |
+
}
|
97 |
+
|
98 |
+
.yith-plugin-fw-panel-help-tab-content p,
|
99 |
+
.yith-plugin-fw-panel-help-tab-content a{
|
100 |
+
font-size : 16px;
|
101 |
+
}
|
102 |
+
|
103 |
+
.yith-plugin-fw-panel-help-tab-content .row {
|
104 |
+
margin : 0 -15px 50px;
|
105 |
+
white-space : nowrap;
|
106 |
+
}
|
107 |
+
|
108 |
+
.yith-plugin-fw-panel-help-tab-content .row:last-child {
|
109 |
+
margin-bottom : 0;
|
110 |
+
}
|
111 |
+
|
112 |
+
.yith-plugin-fw-panel-help-tab-content .row .column-left,
|
113 |
+
.yith-plugin-fw-panel-help-tab-content .row .column-right {
|
114 |
+
display : inline-block;
|
115 |
+
padding : 0 15px;
|
116 |
+
vertical-align : top;
|
117 |
+
width : 66%;
|
118 |
+
}
|
119 |
+
|
120 |
+
.yith-plugin-fw-panel-help-tab-content .row .column-right {
|
121 |
+
width : 33%;
|
122 |
+
}
|
123 |
+
|
124 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video,
|
125 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-actions,
|
126 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles,
|
127 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket {
|
128 |
+
box-sizing : border-box;
|
129 |
+
white-space : normal;
|
130 |
+
}
|
131 |
+
|
132 |
+
.yith-plugin-fw-panel-help-tab-content h2.yith-plugin-fw-panel-help-tab-title {
|
133 |
+
background : none;
|
134 |
+
border : none;
|
135 |
+
font-size : 22px;
|
136 |
+
line-height : 1.5em;
|
137 |
+
padding : 0;
|
138 |
+
text-align : center;
|
139 |
+
}
|
140 |
+
|
141 |
+
.yith-plugin-fw-panel-help-tab-content h3 {
|
142 |
+
color : #03689F;
|
143 |
+
font-size : 15px;
|
144 |
+
}
|
145 |
+
|
146 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-panel-tab-description {
|
147 |
+
font-size : 18px;
|
148 |
+
text-align : center;
|
149 |
+
margin-bottom : 40px;
|
150 |
+
}
|
151 |
+
|
152 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video {
|
153 |
+
text-align: center;
|
154 |
+
}
|
155 |
+
|
156 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video p.video-description {
|
157 |
+
margin-bottom : 25px;
|
158 |
+
}
|
159 |
+
|
160 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-caption p {
|
161 |
+
margin : 5px 0;
|
162 |
+
}
|
163 |
+
|
164 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-container {
|
165 |
+
margin : 0 auto 50px;
|
166 |
+
overflow : hidden;
|
167 |
+
padding-top : 56.25%;
|
168 |
+
position : relative;
|
169 |
+
}
|
170 |
+
|
171 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-help-tab-video .video-container iframe {
|
172 |
+
border : 0;
|
173 |
+
height : 100%;
|
174 |
+
left : 0;
|
175 |
+
position : absolute;
|
176 |
+
top : 0;
|
177 |
+
width : 100%;
|
178 |
+
}
|
179 |
+
|
180 |
+
.yith-plugin-fw-panel-help-tab-content .box-with-shadow {
|
181 |
+
display : block;
|
182 |
+
background-color : #fff;
|
183 |
+
border-radius : 5px;
|
184 |
+
box-shadow : 0 0 15px 5px rgba(174,201,207,0.3);
|
185 |
+
transition : all .2s ease;
|
186 |
+
}
|
187 |
+
|
188 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions,
|
189 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket {
|
190 |
+
margin : 0 auto;
|
191 |
+
max-width : 640px;
|
192 |
+
}
|
193 |
+
|
194 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions:not( .full-width ) {
|
195 |
+
padding-top : 65px!important;
|
196 |
+
}
|
197 |
+
|
198 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li {
|
199 |
+
margin-bottom : 20px;
|
200 |
+
}
|
201 |
+
|
202 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li > a {
|
203 |
+
display : block;
|
204 |
+
padding : 15px 20px 15px 75px!important;
|
205 |
+
text-decoration : none;
|
206 |
+
}
|
207 |
+
|
208 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li:hover {
|
209 |
+
box-shadow : 0 0 15px 5px rgba(177,220,228,0.6);
|
210 |
+
transform : scale(1.04);
|
211 |
+
}
|
212 |
+
|
213 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li a:before {
|
214 |
+
color : #03689F;
|
215 |
+
float : left;
|
216 |
+
font-family : 'yith-icon';
|
217 |
+
font-size : 36px;
|
218 |
+
line-height : 1;
|
219 |
+
margin-left : -50px;
|
220 |
+
-webkit-font-smoothing : antialiased;
|
221 |
+
-moz-osx-font-smoothing : grayscale;
|
222 |
+
}
|
223 |
+
|
224 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.read-documentation a:before {
|
225 |
+
content : '\f10d';
|
226 |
+
}
|
227 |
+
|
228 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.watch-videotutorials a:before {
|
229 |
+
content : '\f10e';
|
230 |
+
}
|
231 |
+
|
232 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li.check-faqs a:before {
|
233 |
+
content : '\f10c';
|
234 |
+
}
|
235 |
+
|
236 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li h4 {
|
237 |
+
margin : 0 0 5px;
|
238 |
+
}
|
239 |
+
|
240 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li h4 a {
|
241 |
+
color : #03689F;
|
242 |
+
text-decoration : none;
|
243 |
+
}
|
244 |
+
|
245 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li .description {
|
246 |
+
margin : 0;
|
247 |
+
font-size : 14px;
|
248 |
+
}
|
249 |
+
|
250 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions li .separator {
|
251 |
+
display : inline-block;
|
252 |
+
margin : 0 5px;
|
253 |
+
}
|
254 |
+
|
255 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles h3 {
|
256 |
+
font-size : 18px;
|
257 |
+
margin : 0;
|
258 |
+
padding : 10px 0;
|
259 |
+
position : relative;
|
260 |
+
|
261 |
+
}
|
262 |
+
|
263 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles h3:before {
|
264 |
+
content : '';
|
265 |
+
background : #03689F;
|
266 |
+
display : block;
|
267 |
+
height : 100%;
|
268 |
+
left : -40px;
|
269 |
+
position : absolute;
|
270 |
+
top : 0;
|
271 |
+
width : 15px;
|
272 |
+
|
273 |
+
}
|
274 |
+
|
275 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles a.button {
|
276 |
+
font-size: 16px;
|
277 |
+
}
|
278 |
+
|
279 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list {
|
280 |
+
margin : 15px 0 30px;
|
281 |
+
}
|
282 |
+
|
283 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list li {
|
284 |
+
display : block;
|
285 |
+
margin-bottom : 10px;
|
286 |
+
}
|
287 |
+
|
288 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list li:before {
|
289 |
+
content: '-';
|
290 |
+
}
|
291 |
+
|
292 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-hc-articles-list a {
|
293 |
+
text-decoration : none;
|
294 |
+
}
|
295 |
+
|
296 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket > .box-with-shadow{
|
297 |
+
padding: 30px!important;
|
298 |
+
}
|
299 |
+
|
300 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket h3{
|
301 |
+
color : #B90A0A;
|
302 |
+
font-size : 18px;
|
303 |
+
margin : 0 0 15px;
|
304 |
+
}
|
305 |
+
|
306 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket p {
|
307 |
+
margin-bottom: 35px;
|
308 |
+
}
|
309 |
+
|
310 |
+
.yith-plugin-fw-panel-help-tab-content .yith-plugin-fw-submit-ticket .button {
|
311 |
+
border-radius : 7px;
|
312 |
+
display : block;
|
313 |
+
font-size : 15px;
|
314 |
+
padding : 7px 15px;
|
315 |
+
text-align : center;
|
316 |
+
}
|
317 |
|
318 |
/**
|
319 |
Post type Edit
|
996 |
*/
|
997 |
|
998 |
button#yith-plugin-fw-float-save-button {
|
999 |
+
display : none;
|
1000 |
align-items : center;
|
1001 |
+
border-radius : 60px;
|
1002 |
bottom : 50px;
|
1003 |
box-shadow : 0 0 6px 3px rgba(0, 121, 159, .2);
|
|
|
1004 |
padding : 6px 20px;
|
1005 |
position : fixed;
|
1006 |
right : 70px;
|
1007 |
text-transform : uppercase;
|
1008 |
z-index : 2;
|
1009 |
+
transition : 0.3s ease-in-out;
|
1010 |
+
}
|
1011 |
+
|
1012 |
+
.ywtenv-is-sandbox button#yith-plugin-fw-float-save-button {
|
1013 |
+
bottom: 100px;
|
1014 |
+
}
|
1015 |
+
|
1016 |
+
button#yith-plugin-fw-float-save-button.visible {
|
1017 |
+
display : flex;
|
1018 |
}
|
1019 |
|
1020 |
button#yith-plugin-fw-float-save-button i {
|
1023 |
}
|
1024 |
|
1025 |
button#yith-plugin-fw-float-save-button:hover {
|
1026 |
+
box-shadow : 0px 1px 6px 3px rgba(0, 121, 159, .3);
|
1027 |
}
|
1028 |
|
1029 |
button#yith-plugin-fw-float-save-button.green {
|
1043 |
|
1044 |
}
|
1045 |
|
1046 |
+
@media (max-width: 992px) {
|
1047 |
+
.yith-plugin-fw-panel-help-tab-content .row {
|
1048 |
+
white-space: normal;
|
1049 |
+
margin-bottom: 0;
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
.yith-plugin-fw-panel-help-tab-content .row .column-left,
|
1053 |
+
.yith-plugin-fw-panel-help-tab-content .row .column-right {
|
1054 |
+
width : 100%;
|
1055 |
+
margin-bottom: 50px;
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
.yith-plugin-fw-panel-help-tab-content ul.yith-plugin-fw-help-tab-actions {
|
1059 |
+
padding-top: 0!important;
|
1060 |
+
}
|
1061 |
+
}
|
1062 |
+
|
1063 |
@media (min-width : 768px) and (max-width : 992px) {
|
1064 |
}
|
1065 |
|
@@ -710,11 +710,11 @@ YITH UI
|
|
710 |
.yith-plugin-ui input[type=number],
|
711 |
.yith-plugin-ui.metaboxes-tab input[type=number],
|
712 |
.yith-plugin-ui input[type=text],
|
713 |
-
.yith-plugin-ui input[type=text],
|
714 |
.yith-plugin-ui input[type=email],
|
715 |
.yith-plugin-ui input[type=password],
|
716 |
.yith-plugin-ui .search-box input[name="s"],
|
717 |
.yith-plugin-fw.yith-plugin-ui input[type=text]:not(.select2-search__field),
|
|
|
718 |
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text]:not(.select2-search__field),
|
719 |
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
|
720 |
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area),
|
@@ -1811,21 +1811,24 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
|
|
1811 |
border : 0;
|
1812 |
}
|
1813 |
|
1814 |
-
/** MULTI SELECT **/
|
1815 |
-
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select
|
|
|
1816 |
display : inline-block;
|
1817 |
width : 30%;
|
1818 |
margin-right : 3%;
|
1819 |
max-width : 400px;
|
1820 |
}
|
1821 |
|
1822 |
-
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select label
|
|
|
1823 |
display : block;
|
1824 |
font-size : 11px;
|
1825 |
font-weight : 600;
|
1826 |
margin : 0 0 10px 0;
|
1827 |
}
|
1828 |
|
|
|
1829 |
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select select,
|
1830 |
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select span.select2 {
|
1831 |
width : 100% !important;
|
@@ -1948,6 +1951,24 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
|
|
1948 |
border-color : #007694;
|
1949 |
}
|
1950 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1951 |
/**
|
1952 |
* Copy to clipboard
|
1953 |
*/
|
@@ -1990,6 +2011,7 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
|
|
1990 |
|
1991 |
.yith-plugin-fw-copy-to-clipboard input[type=text].yith-plugin-fw-copy-to-clipboard__field,
|
1992 |
.yith-plugin-fw.yith-plugin-ui .yith-plugin-fw-copy-to-clipboard input[type=text].yith-plugin-fw-copy-to-clipboard__field,
|
|
|
1993 |
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].yith-plugin-fw-copy-to-clipboard__field {
|
1994 |
height : 38px;
|
1995 |
width : 100%;
|
710 |
.yith-plugin-ui input[type=number],
|
711 |
.yith-plugin-ui.metaboxes-tab input[type=number],
|
712 |
.yith-plugin-ui input[type=text],
|
|
|
713 |
.yith-plugin-ui input[type=email],
|
714 |
.yith-plugin-ui input[type=password],
|
715 |
.yith-plugin-ui .search-box input[name="s"],
|
716 |
.yith-plugin-fw.yith-plugin-ui input[type=text]:not(.select2-search__field),
|
717 |
+
.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text],
|
718 |
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text]:not(.select2-search__field),
|
719 |
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table select,
|
720 |
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table textarea:not(.wp-editor-area),
|
1811 |
border : 0;
|
1812 |
}
|
1813 |
|
1814 |
+
/** MULTI SELECT AND TEXT ARRAY INLINE STYLE **/
|
1815 |
+
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select,
|
1816 |
+
.yith-plugin-ui .yith-plugin-fw-text-array-inline .yith-single-text {
|
1817 |
display : inline-block;
|
1818 |
width : 30%;
|
1819 |
margin-right : 3%;
|
1820 |
max-width : 400px;
|
1821 |
}
|
1822 |
|
1823 |
+
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select label,
|
1824 |
+
.yith-plugin-ui .yith-plugin-fw-text-array-inline .yith-single-text label {
|
1825 |
display : block;
|
1826 |
font-size : 11px;
|
1827 |
font-weight : 600;
|
1828 |
margin : 0 0 10px 0;
|
1829 |
}
|
1830 |
|
1831 |
+
.yith-plugin-ui .yith-plugin-fw-text-array-inline .yith-single-text input,
|
1832 |
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select select,
|
1833 |
.yith-plugin-ui .yith-plugin-fw-multi-select .yith-single-select span.select2 {
|
1834 |
width : 100% !important;
|
1951 |
border-color : #007694;
|
1952 |
}
|
1953 |
|
1954 |
+
/**
|
1955 |
+
* Image dimensions
|
1956 |
+
*/
|
1957 |
+
.yith-plugin-ui .yith-plugin-fw-image-dimensions > div {
|
1958 |
+
display : inline-block;
|
1959 |
+
width : 30%;
|
1960 |
+
margin-right : 3%;
|
1961 |
+
max-width : 100px;
|
1962 |
+
}
|
1963 |
+
|
1964 |
+
.yith-plugin-ui .yith-plugin-fw-image-dimensions label {
|
1965 |
+
display : block;
|
1966 |
+
font-size : 11px;
|
1967 |
+
font-weight : 600;
|
1968 |
+
text-transform : uppercase;
|
1969 |
+
margin : 0 0 10px 0;
|
1970 |
+
}
|
1971 |
+
|
1972 |
/**
|
1973 |
* Copy to clipboard
|
1974 |
*/
|
2011 |
|
2012 |
.yith-plugin-fw-copy-to-clipboard input[type=text].yith-plugin-fw-copy-to-clipboard__field,
|
2013 |
.yith-plugin-fw.yith-plugin-ui .yith-plugin-fw-copy-to-clipboard input[type=text].yith-plugin-fw-copy-to-clipboard__field,
|
2014 |
+
.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].yith-plugin-fw-copy-to-clipboard__field,
|
2015 |
.woocommerce.yith-plugin-fw-panel .yith-plugin-ui table.form-table input[type=text].yith-plugin-fw-copy-to-clipboard__field {
|
2016 |
height : 38px;
|
2017 |
width : 100%;
|
@@ -6,10 +6,10 @@
|
|
6 |
/* stylelint-disable function-url-quotes, declaration-colon-newline-after */
|
7 |
@font-face {
|
8 |
font-family: yith-icon;
|
9 |
-
src: url("../fonts/yith-icon.eot?
|
10 |
-
src: url("../fonts/yith-icon.eot?
|
11 |
-
url("data:application/x-font-woff;charset=utf-8;base64,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") format("woff"),
|
12 |
-
|
13 |
font-weight: 400;
|
14 |
font-style: normal;
|
15 |
}
|
@@ -123,6 +123,10 @@
|
|
123 |
content: "\e911";
|
124 |
}
|
125 |
|
|
|
|
|
|
|
|
|
126 |
.yith-icon-image:before {
|
127 |
content: "\f10a";
|
128 |
}
|
@@ -135,6 +139,10 @@
|
|
135 |
content: "\e90e";
|
136 |
}
|
137 |
|
|
|
|
|
|
|
|
|
138 |
.yith-icon-magnifier:before {
|
139 |
content: "\e908";
|
140 |
}
|
@@ -207,6 +215,10 @@
|
|
207 |
content: "\f108";
|
208 |
}
|
209 |
|
|
|
|
|
|
|
|
|
210 |
.yith-icon-warning-triangle:before {
|
211 |
content: "\e923";
|
212 |
}
|
@@ -225,7 +237,7 @@
|
|
225 |
|
226 |
/** Deprecated: use yith-icon-paypal instead */
|
227 |
.yith-icon-paypal-svgrepo-com:before {
|
228 |
-
|
229 |
}
|
230 |
|
231 |
/** Deprecated: use yith-icon-arrow-down instead */
|
@@ -290,10 +302,10 @@
|
|
290 |
|
291 |
/** Deprecated: use yith-icon-edit instead */
|
292 |
.yith-icon-pencil:before {
|
293 |
-
|
294 |
}
|
295 |
|
296 |
/** Deprecated: use yith-icon-reset instead */
|
297 |
.yith-icon-update:before {
|
298 |
-
|
299 |
}
|
6 |
/* stylelint-disable function-url-quotes, declaration-colon-newline-after */
|
7 |
@font-face {
|
8 |
font-family: yith-icon;
|
9 |
+
src: url("../fonts/yith-icon.eot?91e38b491fff50f72e9b5b51960fdee6");
|
10 |
+
src: url("../fonts/yith-icon.eot?91e38b491fff50f72e9b5b51960fdee6#iefix") format("embedded-opentype"),
|
11 |
+
url("data:application/x-font-woff;charset=utf-8;base64,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") format("woff"),
|
12 |
+
url("../fonts/yith-icon.ttf?91e38b491fff50f72e9b5b51960fdee6") format("truetype");
|
13 |
font-weight: 400;
|
14 |
font-style: normal;
|
15 |
}
|
123 |
content: "\e911";
|
124 |
}
|
125 |
|
126 |
+
.yith-icon-helping-hand:before {
|
127 |
+
content: "\f10c";
|
128 |
+
}
|
129 |
+
|
130 |
.yith-icon-image:before {
|
131 |
content: "\f10a";
|
132 |
}
|
139 |
content: "\e90e";
|
140 |
}
|
141 |
|
142 |
+
.yith-icon-list-search:before {
|
143 |
+
content: "\f10d";
|
144 |
+
}
|
145 |
+
|
146 |
.yith-icon-magnifier:before {
|
147 |
content: "\e908";
|
148 |
}
|
215 |
content: "\f108";
|
216 |
}
|
217 |
|
218 |
+
.yith-icon-video:before {
|
219 |
+
content: "\f10e";
|
220 |
+
}
|
221 |
+
|
222 |
.yith-icon-warning-triangle:before {
|
223 |
content: "\e923";
|
224 |
}
|
237 |
|
238 |
/** Deprecated: use yith-icon-paypal instead */
|
239 |
.yith-icon-paypal-svgrepo-com:before {
|
240 |
+
content: "\e91b";
|
241 |
}
|
242 |
|
243 |
/** Deprecated: use yith-icon-arrow-down instead */
|
302 |
|
303 |
/** Deprecated: use yith-icon-edit instead */
|
304 |
.yith-icon-pencil:before {
|
305 |
+
content: "\e907";
|
306 |
}
|
307 |
|
308 |
/** Deprecated: use yith-icon-reset instead */
|
309 |
.yith-icon-update:before {
|
310 |
+
content: "\e910";
|
311 |
}
|
@@ -25,7 +25,7 @@
|
|
25 |
--yith-update-focus: #e7eccc;
|
26 |
--yith-outline-text: #0087b3;
|
27 |
--yith-outline-border: #0094c4;
|
28 |
-
--yith-outline-bg:
|
29 |
--yith-outline-bg-hover: rgba(157, 198, 205, 0.2);
|
30 |
--yith-outline-border-hover: #007ba3;
|
31 |
--yith-outline-focus: #dfeef2;
|
@@ -268,6 +268,7 @@
|
|
268 |
display: inline-block;
|
269 |
text-decoration: none;
|
270 |
cursor: pointer;
|
|
|
271 |
}
|
272 |
|
273 |
.yith-plugin-ui .button-primary:focus, .yith-plugin-ui .button-secondary:focus, .wp-core-ui .yith-plugin-ui .button-primary:focus, .wp-core-ui .yith-plugin-ui .button-secondary:focus {
|
@@ -429,6 +430,7 @@
|
|
429 |
cursor: pointer;
|
430 |
transition: all .3s ease-in-out;
|
431 |
text-decoration: none;
|
|
|
432 |
}
|
433 |
|
434 |
.yith-plugin-ui .yith-plugin-fw__button:focus, .yith-plugin-ui [class^="yith-plugin-fw__button--"]:focus, .yith-plugin-ui [class*=" yith-plugin-fw__button--"]:focus,
|
@@ -838,6 +840,7 @@
|
|
838 |
cursor: pointer;
|
839 |
display: inline-block;
|
840 |
margin-right: 10px;
|
|
|
841 |
}
|
842 |
|
843 |
.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button:last-child {
|
@@ -1540,6 +1543,10 @@ table.yith-plugin-fw__boxed-table.wp-list-table tbody tr:hover .yith-plugin-fw__
|
|
1540 |
/**
|
1541 |
* YITH Animations
|
1542 |
*/
|
|
|
|
|
|
|
|
|
1543 |
.yith-plugin-fw-animate__appear-from-top {
|
1544 |
animation: yith-plugin-fw-appear-from-top .3s forwards;
|
1545 |
}
|
@@ -1574,6 +1581,32 @@ table.yith-plugin-fw__boxed-table.wp-list-table tbody tr:hover .yith-plugin-fw__
|
|
1574 |
}
|
1575 |
}
|
1576 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1577 |
@-webkit-keyframes yith-plugin-fw-fade-in {
|
1578 |
from {
|
1579 |
opacity: 0;
|
25 |
--yith-update-focus: #e7eccc;
|
26 |
--yith-outline-text: #0087b3;
|
27 |
--yith-outline-border: #0094c4;
|
28 |
+
--yith-outline-bg: rgba(255, 255, 255, 0);
|
29 |
--yith-outline-bg-hover: rgba(157, 198, 205, 0.2);
|
30 |
--yith-outline-border-hover: #007ba3;
|
31 |
--yith-outline-focus: #dfeef2;
|
268 |
display: inline-block;
|
269 |
text-decoration: none;
|
270 |
cursor: pointer;
|
271 |
+
white-space: nowrap;
|
272 |
}
|
273 |
|
274 |
.yith-plugin-ui .button-primary:focus, .yith-plugin-ui .button-secondary:focus, .wp-core-ui .yith-plugin-ui .button-primary:focus, .wp-core-ui .yith-plugin-ui .button-secondary:focus {
|
430 |
cursor: pointer;
|
431 |
transition: all .3s ease-in-out;
|
432 |
text-decoration: none;
|
433 |
+
white-space: nowrap;
|
434 |
}
|
435 |
|
436 |
.yith-plugin-ui .yith-plugin-fw__button:focus, .yith-plugin-ui [class^="yith-plugin-fw__button--"]:focus, .yith-plugin-ui [class*=" yith-plugin-fw__button--"]:focus,
|
840 |
cursor: pointer;
|
841 |
display: inline-block;
|
842 |
margin-right: 10px;
|
843 |
+
white-space: nowrap;
|
844 |
}
|
845 |
|
846 |
.yith-plugin-fw__confirm__wrap .yith-plugin-fw__confirm__button:last-child {
|
1543 |
/**
|
1544 |
* YITH Animations
|
1545 |
*/
|
1546 |
+
.yith-plugin-fw-animate__appear-from-bottom {
|
1547 |
+
animation: yith-plugin-fw-appear-from-bottom .3s forwards;
|
1548 |
+
}
|
1549 |
+
|
1550 |
.yith-plugin-fw-animate__appear-from-top {
|
1551 |
animation: yith-plugin-fw-appear-from-top .3s forwards;
|
1552 |
}
|
1581 |
}
|
1582 |
}
|
1583 |
|
1584 |
+
@-webkit-keyframes yith-plugin-fw-appear-from-bottom {
|
1585 |
+
from {
|
1586 |
+
opacity: 0;
|
1587 |
+
transform: translateY(30%);
|
1588 |
+
-webkit-transform: translateY(30%);
|
1589 |
+
}
|
1590 |
+
to {
|
1591 |
+
opacity: 1;
|
1592 |
+
transform: translateY(0);
|
1593 |
+
-webkit-transform: translateY(0);
|
1594 |
+
}
|
1595 |
+
}
|
1596 |
+
|
1597 |
+
@keyframes yith-plugin-fw-appear-from-bottom {
|
1598 |
+
from {
|
1599 |
+
opacity: 0;
|
1600 |
+
transform: translateY(30%);
|
1601 |
+
-webkit-transform: translateY(30%);
|
1602 |
+
}
|
1603 |
+
to {
|
1604 |
+
opacity: 1;
|
1605 |
+
transform: translateY(0);
|
1606 |
+
-webkit-transform: translateY(0);
|
1607 |
+
}
|
1608 |
+
}
|
1609 |
+
|
1610 |
@-webkit-keyframes yith-plugin-fw-fade-in {
|
1611 |
from {
|
1612 |
opacity: 0;
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,12 +1,4 @@
|
|
1 |
-
|
2 |
-
* This file belongs to the YIT Plugin Framework.
|
3 |
-
*
|
4 |
-
* This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
|
5 |
-
* that is bundled with this package in the file LICENSE.txt.
|
6 |
-
* It is also available through the world-wide-web at this URL:
|
7 |
-
* http://www.gnu.org/licenses/gpl-3.0.txt
|
8 |
-
*/
|
9 |
-
|
10 |
jQuery( function ( $ ) {
|
11 |
var wrap = $( '.yith-plugin-fw-wp-page-wrapper' ),
|
12 |
notices = $( 'div.updated, div.error, div.notice' ).not( '#message' ),
|
@@ -28,7 +20,55 @@ jQuery( function ( $ ) {
|
|
28 |
e.stopPropagation();
|
29 |
message.removeClass( 'yith-plugin-fw-animate__appear-from-top' ).slideUp( 200 );
|
30 |
} )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
|
|
|
|
32 |
}
|
33 |
|
34 |
} );
|
1 |
+
/* global yith_plugin_fw_wp_pages */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
jQuery( function ( $ ) {
|
3 |
var wrap = $( '.yith-plugin-fw-wp-page-wrapper' ),
|
4 |
notices = $( 'div.updated, div.error, div.notice' ).not( '#message' ),
|
20 |
e.stopPropagation();
|
21 |
message.removeClass( 'yith-plugin-fw-animate__appear-from-top' ).slideUp( 200 );
|
22 |
} )
|
23 |
+
}
|
24 |
+
|
25 |
+
// Confirmation window when deleting custom post types and custom terms through Bulk Actions.
|
26 |
+
if ( yith_plugin_fw_wp_pages.bulk_delete_confirmation_enabled ) {
|
27 |
+
var bulkDeleteConfirmed = false;
|
28 |
+
|
29 |
+
$( document ).on( 'click', '#doaction, #doaction2', function ( e ) {
|
30 |
+
var doActionButton = $( this ),
|
31 |
+
bulkActionSelector = doActionButton.siblings( '#bulk-action-selector-top, #bulk-action-selector-bottom' );
|
32 |
+
|
33 |
+
if ( 'yith' in window && 'ui' in yith ) {
|
34 |
+
if ( bulkDeleteConfirmed ) {
|
35 |
+
bulkDeleteConfirmed = false;
|
36 |
+
} else {
|
37 |
+
var confirmOptions = {},
|
38 |
+
selectedItems = $( '#the-list .check-column input[type=checkbox]:checked' );
|
39 |
+
|
40 |
+
if ( selectedItems.length ) {
|
41 |
+
switch ( bulkActionSelector.val() ) {
|
42 |
+
case 'trash':
|
43 |
+
confirmOptions.title = yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_title;
|
44 |
+
confirmOptions.message = yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_message;
|
45 |
+
confirmOptions.confirmButton = yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_button;
|
46 |
+
confirmOptions.confirmButtonType = 'delete';
|
47 |
+
break;
|
48 |
+
case 'delete':
|
49 |
+
confirmOptions.title = yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_title;
|
50 |
+
confirmOptions.message = yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_message;
|
51 |
+
confirmOptions.confirmButton = yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_button;
|
52 |
+
confirmOptions.confirmButtonType = 'delete';
|
53 |
+
break;
|
54 |
+
}
|
55 |
+
|
56 |
+
if ( !$.isEmptyObject( confirmOptions ) ) {
|
57 |
+
e.preventDefault();
|
58 |
+
|
59 |
+
confirmOptions.closeAfterConfirm = false;
|
60 |
+
confirmOptions.onConfirm = function () {
|
61 |
+
bulkDeleteConfirmed = true;
|
62 |
+
doActionButton.trigger( 'click' );
|
63 |
+
};
|
64 |
+
|
65 |
+
yith.ui.confirm( confirmOptions );
|
66 |
+
}
|
67 |
+
}
|
68 |
+
}
|
69 |
|
70 |
+
}
|
71 |
+
} );
|
72 |
}
|
73 |
|
74 |
} );
|
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(
|
1 |
+
jQuery(function(e){var i=e(".yith-plugin-fw-wp-page-wrapper"),t=e("div.updated, div.error, div.notice").not("#message"),n=e("div#message.updated");if(e(".yith-plugin-fw-wp-page-wrapper .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper"),t.addClass("inline"),i.length&&i.prepend(t),n.length&&(n.addClass("yith-plugin-fw-animate__appear-from-top").show(),n.on("click",".notice-dismiss",function(e){e.stopPropagation(),n.removeClass("yith-plugin-fw-animate__appear-from-top").slideUp(200)})),yith_plugin_fw_wp_pages.bulk_delete_confirmation_enabled){var a=!1;e(document).on("click","#doaction, #doaction2",function(i){var t=e(this),n=t.siblings("#bulk-action-selector-top, #bulk-action-selector-bottom");if("yith"in window&&"ui"in yith)if(a)a=!1;else{var o={};if(e("#the-list .check-column input[type=checkbox]:checked").length){switch(n.val()){case"trash":o.title=yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_title,o.message=yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_message,o.confirmButton=yith_plugin_fw_wp_pages.i18n.bulk_trash_confirm_button,o.confirmButtonType="delete";break;case"delete":o.title=yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_title,o.message=yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_message,o.confirmButton=yith_plugin_fw_wp_pages.i18n.bulk_delete_confirm_button,o.confirmButtonType="delete"}e.isEmptyObject(o)||(i.preventDefault(),o.closeAfterConfirm=!1,o.onConfirm=function(){a=!0,t.trigger("click")},yith.ui.confirm(o))}}})}});
|
@@ -217,9 +217,9 @@ jQuery( function ( $ ) {
|
|
217 |
|
218 |
function checkButtonPosition() {
|
219 |
if ( isInViewport( saveButton ) ) {
|
220 |
-
floatSaveButton.
|
221 |
} else {
|
222 |
-
floatSaveButton.
|
223 |
}
|
224 |
}
|
225 |
|
@@ -238,7 +238,6 @@ jQuery( function ( $ ) {
|
|
238 |
}
|
239 |
|
240 |
if ( floatSaveButton.length > 0 && mainForm.length > 0 ) {
|
241 |
-
floatSaveButton.hide();
|
242 |
checkButtonPosition();
|
243 |
document.addEventListener( 'scroll', checkButtonPosition, { passive: true } );
|
244 |
|
@@ -254,7 +253,7 @@ jQuery( function ( $ ) {
|
|
254 |
}
|
255 |
);
|
256 |
$.post( document.location.href, mainForm.serialize() )
|
257 |
-
.done( function (
|
258 |
floatSaveButton.unblock()
|
259 |
.addClass( 'green' )
|
260 |
.fadeOut( 300 )
|
@@ -272,6 +271,11 @@ jQuery( function ( $ ) {
|
|
272 |
);
|
273 |
next();
|
274 |
} );
|
|
|
|
|
|
|
|
|
|
|
275 |
} );
|
276 |
} )
|
277 |
}
|
217 |
|
218 |
function checkButtonPosition() {
|
219 |
if ( isInViewport( saveButton ) ) {
|
220 |
+
floatSaveButton.removeClass( 'visible' );
|
221 |
} else {
|
222 |
+
floatSaveButton.addClass( 'visible' );
|
223 |
}
|
224 |
}
|
225 |
|
238 |
}
|
239 |
|
240 |
if ( floatSaveButton.length > 0 && mainForm.length > 0 ) {
|
|
|
241 |
checkButtonPosition();
|
242 |
document.addEventListener( 'scroll', checkButtonPosition, { passive: true } );
|
243 |
|
253 |
}
|
254 |
);
|
255 |
$.post( document.location.href, mainForm.serialize() )
|
256 |
+
.done( function ( response ) {
|
257 |
floatSaveButton.unblock()
|
258 |
.addClass( 'green' )
|
259 |
.fadeOut( 300 )
|
271 |
);
|
272 |
next();
|
273 |
} );
|
274 |
+
|
275 |
+
// Prevent WooCommerce warning for changes without saving.
|
276 |
+
window.onbeforeunload = null;
|
277 |
+
|
278 |
+
$( document ).trigger( 'yith-plugin-fw-float-save-button-after-saving', [response] );
|
279 |
} );
|
280 |
} )
|
281 |
}
|
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(e){function t(){e("[data-dep-target]:not( .deps-initialized )").each(function(){var t=e(this);if(!t.closest(".metaboxes-tab").length){t.addClass("deps-initialized");var a="#"+t.data("dep-target"),i="#"+t.data("dep-id"),n=t.data("dep-value"),
|
1 |
+
jQuery(function(e){function t(){e("[data-dep-target]:not( .deps-initialized )").each(function(){var t=e(this);if(!t.closest(".metaboxes-tab").length){t.addClass("deps-initialized");var a="#"+t.data("dep-target"),i="#"+t.data("dep-id"),n=t.data("dep-value"),s=t.data("dep-type");e(i).on("change",function(){!function(t,a,i,n){var s=!0;if("string"==typeof a){":radio"===a.substr(0,6)&&(a+=":checked");var d=e(a),o=d.attr("type"),r=d.val();switch(o){case"checkbox":r=d.is(":checked")?"yes":"no";break;case"radio":r=d.find('input[type="radio"]').filter(":checked").val()}i=i.split(",");for(var c=0;c<i.length;c++){if(r==i[c]){s=!0;break}s=!1}}var l=e(t),h=e(t+"-container").closest("tr");h.length<1&&(h=l.closest(".yith-plugin-fw-panel-wc-row, .yith-toggle-content-row"));var u,g=n.split("-");for(u in g){var f=g[u];if(s)switch(f){case"disable":h.removeClass("yith-disabled"),l.attr("disabled",!1);break;case"hide":case"hideNow":h.show();break;case"hideme":l.show();break;case"fadeOut":h.show();break;case"fadeInOut":case"fadeIn":default:h.show(500)}else switch(f){case"disable":h.addClass("yith-disabled"),l.attr("disabled",!0);break;case"hide":case"hideNow":h.hide();break;case"hideme":l.hide();break;case"fadeInOut":case"fadeOut":h.hide(500);break;case"fadeIn":default:h.hide()}}}(a,i,n.toString(),s)}).trigger("change")}})}t(),e(document).on("yith-add-box-button-toggle",t),e(".rm_connectedlist").each(function(){var t=e(this).find("ul"),a=e(this).find(":hidden");t.sortable({connectWith:t,update:function(i,n){var s={};t.each(function(){var t={};e(this).children().each(function(){t[e(this).data("option")]=e(this).text()}),s[e(this).data("list")]=t}),a.val(JSON.stringify(s).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()}),e(function(){e(".google-analytic-generate").click(function(){var t=e("#"+e(this).data("textarea")).data("codemirrorInstance"),a="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";a+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n",a+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n",a+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n",a+="ga('create', '"+e("#"+e(this).data("input")).val()+"', '"+e(this).data("basename")+"');\n",a+="ga('send', 'pageview');\n",t.replaceRange(a,t.getCursor("start"),t.getCursor("end"))})}),e(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper");var a=e(".wrap.yith-plugin-ui").first(),i=e("div.updated, div.error, div.notice");i.addClass("inline"),a.length&&a.prepend(i),function(){var t=e(".yith-nav-sub-tab.nav-tab-active"),a=e(".yith-plugin-fw-wp-page__sub-tab-wrap");if(t.length&&!a.length){var i=e(".yith-plugin-fw-wp-page-wrapper");if(i.length||(i=e("#wpbody-content > .yith-plugin-ui")),i){var n=i.find(".yit-admin-panel-content-wrap");n.length?n.addClass("has-subnav"):i.find(".wrap").wrap('<div class="yith-plugin-fw-wp-page__sub-tab-wrap"></div>')}}}(),function(){var t=e("#yith-plugin-fw-float-save-button"),a=e("#plugin-fw-wc"),i=document.querySelector("#main-save-button");function n(){var e,a;e=i.getBoundingClientRect(),a={width:window.innerWidth||document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight},e.top>=0&&e.left>=0&&e.top<=a.height&&e.left<=a.width?t.removeClass("visible"):t.addClass("visible")}t.length>0&&a.length>0&&(n(),document.addEventListener("scroll",n,{passive:!0}),e(document).on("click","#yith-plugin-fw-float-save-button",function(i){i.preventDefault(),t.block({message:null,overlayCSS:{background:"transparent",opacity:.6}}),e.post(document.location.href,a.serialize()).done(function(a){t.unblock().addClass("green").fadeOut(300).html('<i class="yith-icon yith-icon-check"></i>'+t.data("saved-label")).fadeIn(300).delay(2500).queue(function(a){t.fadeOut(500,function(){e(this).removeClass("green"),e(this).html('<i class="yith-icon yith-icon-save"></i>'+e(this).data("default-label")).fadeIn(500)}),a()}),window.onbeforeunload=null,e(document).trigger("yith-plugin-fw-float-save-button-after-saving",[a])})}))}()});
|
@@ -130,6 +130,69 @@ jQuery( function ( $ ) {
|
|
130 |
}
|
131 |
} );
|
132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
// TERM SEARCH
|
134 |
$( '.yith-term-search' ).filter( ':not(.enhanced)' ).each( function () {
|
135 |
var default_data = {
|
130 |
}
|
131 |
} );
|
132 |
|
133 |
+
// Customer Search
|
134 |
+
$( '.yith-page-search' ).filter( ':not(.enhanced)' ).each( function () {
|
135 |
+
var default_data = {
|
136 |
+
action : $( this ).data( 'action' ),
|
137 |
+
security : yith_framework_enhanced_select_params.search_pages_nonce
|
138 |
+
},
|
139 |
+
current_data = $.extend( default_data, $( this ).data() ),
|
140 |
+
select2_args = {
|
141 |
+
allowClear : $( this ).data( 'allow_clear' ) ? true : false,
|
142 |
+
placeholder : $( this ).data( 'placeholder' ),
|
143 |
+
minimumInputLength: $( this ).data( 'minimum_input_length' ) ? $( this ).data( 'minimum_input_length' ) : '3',
|
144 |
+
escapeMarkup : function ( m ) {
|
145 |
+
return m;
|
146 |
+
},
|
147 |
+
ajax : {
|
148 |
+
url : ajaxurl,
|
149 |
+
dataType : 'json',
|
150 |
+
quietMillis : 250,
|
151 |
+
data : function ( params ) {
|
152 |
+
var default_data_to_return = {
|
153 |
+
term: params.term
|
154 |
+
};
|
155 |
+
|
156 |
+
return $.extend( default_data_to_return, current_data );
|
157 |
+
},
|
158 |
+
processResults: function ( data ) {
|
159 |
+
var terms = [];
|
160 |
+
if ( data ) {
|
161 |
+
$.each( data, function ( id, text ) {
|
162 |
+
text = $.trim( text.replace( /\(.*\)/, '' ) ); // Remove page ID.
|
163 |
+
terms.push( { id: id, text: text } );
|
164 |
+
} );
|
165 |
+
}
|
166 |
+
return {
|
167 |
+
results: terms
|
168 |
+
};
|
169 |
+
},
|
170 |
+
cache : true
|
171 |
+
}
|
172 |
+
};
|
173 |
+
|
174 |
+
$( this ).select2( select2_args ).addClass( 'enhanced' );
|
175 |
+
|
176 |
+
if ( $( this ).data( 'sortable' ) ) {
|
177 |
+
var $select = $( this );
|
178 |
+
var $list = $( this ).next( '.select2-container' ).find( 'ul.select2-selection__rendered' );
|
179 |
+
|
180 |
+
$list.sortable( {
|
181 |
+
placeholder : 'ui-state-highlight select2-selection__choice',
|
182 |
+
forcePlaceholderSize: true,
|
183 |
+
items : 'li:not(.select2-search__field)',
|
184 |
+
tolerance : 'pointer',
|
185 |
+
stop : function () {
|
186 |
+
$( $list.find( '.select2-selection__choice' ).get().reverse() ).each( function () {
|
187 |
+
var id = $( this ).data( 'data' ).id;
|
188 |
+
var option = $select.find( 'option[value="' + id + '"]' )[ 0 ];
|
189 |
+
$select.prepend( option );
|
190 |
+
} );
|
191 |
+
}
|
192 |
+
} );
|
193 |
+
}
|
194 |
+
} );
|
195 |
+
|
196 |
// TERM SEARCH
|
197 |
$( '.yith-term-search' ).filter( ':not(.enhanced)' ).each( function () {
|
198 |
var default_data = {
|
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(e){"use strict";e(document.body).on("yith-framework-enhanced-select-init",function(){e(".yith-post-search").filter(":not(.enhanced)").each(function(){var t={action:"yith_plugin_fw_json_search_posts",security:yith_framework_enhanced_select_params.search_posts_nonce,post_type:"post"},a=e.extend(t,e(this).data()),n={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:ajaxurl,dataType:"json",quietMillis:250,data:function(t){var n={term:t.term};return e.extend(n,a)},processResults:function(t){var a=[];return t&&e.each(t,function(e,t){a.push({id:e,text:t})}),{results:a}},cache:!0}};if(e(this).select2(n).addClass("enhanced"),e(this).data("sortable")){var i=e(this),
|
1 |
+
jQuery(function(e){"use strict";e(document.body).on("yith-framework-enhanced-select-init",function(){e(".yith-post-search").filter(":not(.enhanced)").each(function(){var t={action:"yith_plugin_fw_json_search_posts",security:yith_framework_enhanced_select_params.search_posts_nonce,post_type:"post"},a=e.extend(t,e(this).data()),n={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:ajaxurl,dataType:"json",quietMillis:250,data:function(t){var n={term:t.term};return e.extend(n,a)},processResults:function(t){var a=[];return t&&e.each(t,function(e,t){a.push({id:e,text:t})}),{results:a}},cache:!0}};if(e(this).select2(n).addClass("enhanced"),e(this).data("sortable")){var i=e(this),c=e(this).next(".select2-container").find("ul.select2-selection__rendered");c.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(c.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,a=i.find('option[value="'+t+'"]')[0];i.prepend(a)})}})}}),e(".yith-customer-search").filter(":not(.enhanced)").each(function(){var t={action:"woocommerce_json_search_customers",security:yith_framework_enhanced_select_params.search_customers_nonce},a=e.extend(t,e(this).data()),n={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:ajaxurl,dataType:"json",quietMillis:250,data:function(t){var n={term:t.term};return e.extend(n,a)},processResults:function(t){var a=[];return t&&e.each(t,function(e,t){a.push({id:e,text:t})}),{results:a}},cache:!0}};if(e(this).select2(n).addClass("enhanced"),e(this).data("sortable")){var i=e(this),c=e(this).next(".select2-container").find("ul.select2-selection__rendered");c.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(c.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,a=i.find('option[value="'+t+'"]')[0];i.prepend(a)})}})}}),e(".yith-page-search").filter(":not(.enhanced)").each(function(){var t={action:e(this).data("action"),security:yith_framework_enhanced_select_params.search_pages_nonce},a=e.extend(t,e(this).data()),n={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:ajaxurl,dataType:"json",quietMillis:250,data:function(t){var n={term:t.term};return e.extend(n,a)},processResults:function(t){var a=[];return t&&e.each(t,function(t,n){n=e.trim(n.replace(/\(.*\)/,"")),a.push({id:t,text:n})}),{results:a}},cache:!0}};if(e(this).select2(n).addClass("enhanced"),e(this).data("sortable")){var i=e(this),c=e(this).next(".select2-container").find("ul.select2-selection__rendered");c.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(c.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,a=i.find('option[value="'+t+'"]')[0];i.prepend(a)})}})}}),e(".yith-term-search").filter(":not(.enhanced)").each(function(){var t={action:"yith_plugin_fw_json_search_terms",security:yith_framework_enhanced_select_params.search_terms_nonce,taxonomy:"category"},a=e.extend(t,e(this).data()),n={allowClear:!!e(this).data("allow_clear"),placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"3",escapeMarkup:function(e){return e},ajax:{url:ajaxurl,dataType:"json",quietMillis:250,data:function(t){var n={term:t.term};return e.extend(n,a)},processResults:function(t){var a=[];return t&&e.each(t,function(e,t){a.push({id:e,text:t})}),{results:a}},cache:!0}};if(e(this).select2(n).addClass("enhanced"),e(this).data("sortable")){var i=e(this),c=e(this).next(".select2-container").find("ul.select2-selection__rendered");c.sortable({placeholder:"ui-state-highlight select2-selection__choice",forcePlaceholderSize:!0,items:"li:not(.select2-search__field)",tolerance:"pointer",stop:function(){e(c.find(".select2-selection__choice").get().reverse()).each(function(){var t=e(this).data("data").id,a=i.find('option[value="'+t+'"]')[0];i.prepend(a)})}})}})}).trigger("yith-framework-enhanced-select-init")});
|
@@ -323,7 +323,7 @@
|
|
323 |
|
324 |
|
325 |
slide: function ( event, ui ) {
|
326 |
-
$( this ).find( 'input' ).val( ui.value );
|
327 |
$( this ).find( '.ui-slider-handle' ).text( ui.value );
|
328 |
$( this ).siblings( '.feedback' ).find( 'strong' ).text( ui.value + labels );
|
329 |
}
|
@@ -794,7 +794,7 @@
|
|
794 |
|
795 |
units.removeClass( fw_dimensions.selectors.units.selectedClass );
|
796 |
unit.addClass( fw_dimensions.selectors.units.selectedClass );
|
797 |
-
valueField.val( value );
|
798 |
},
|
799 |
linkedChange: function () {
|
800 |
var button = $( this ).closest( fw_dimensions.selectors.linked.button ),
|
323 |
|
324 |
|
325 |
slide: function ( event, ui ) {
|
326 |
+
$( this ).find( 'input' ).val( ui.value ).trigger( 'change' );
|
327 |
$( this ).find( '.ui-slider-handle' ).text( ui.value );
|
328 |
$( this ).siblings( '.feedback' ).find( 'strong' ).text( ui.value + labels );
|
329 |
}
|
794 |
|
795 |
units.removeClass( fw_dimensions.selectors.units.selectedClass );
|
796 |
unit.addClass( fw_dimensions.selectors.units.selectedClass );
|
797 |
+
valueField.val( value ).trigger( 'change' );
|
798 |
},
|
799 |
linkedChange: function () {
|
800 |
var button = $( this ).closest( fw_dimensions.selectors.linked.button ),
|
@@ -1 +1 @@
|
|
1 |
-
!function(e){e(document).on("yith_fields_init",function(){var t=e(".yith-plugin-fw-datepicker"),i=e(".yith-plugin-fw-colorpicker"),n={imgPreviewHandler:".yith-plugin-fw-upload-img-preview",uploadButtonHandler:".yith-plugin-fw-upload-button",imgUrlHandler:".yith-plugin-fw-upload-img-url",resetButtonHandler:".yith-plugin-fw-upload-button-reset",imgUrl:e(".yith-plugin-fw-upload-img-url")},a=e(".add_media"),l={rootSelector:".yith-plugin-fw-image-gallery",buttonSelector:".yith-plugin-fw-image-gallery .image-gallery-button",sliderWrapper:e(".yith-plugin-fw-image-gallery ul.slides-wrapper")},o=e(".yith-plugin-fw-sidebar-layout"),s=e(".yith-plugin-fw-slider-container .ui-slider-horizontal"),r=e(".yit-icons-manager-wrapper");e(".yith-plugin-ui td.forminp-checkbox");t.each(function(){var t=e(this),i=t.data(),n=t.next(".yith-icon-calendar");i.showAnim=!1,i.beforeShow=function(e,t){t.dpDiv.addClass("yith-plugin-fw-datepicker-div")},i.onClose=function(e,t){t.dpDiv.removeClass("yith-plugin-fw-datepicker-div")},t.datepicker(i),n&&n.on("click",function(){t.datepicker("show")})}),i.wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var t=e(this);t.val(t.data("default-color")),t.change()}}),i.each(function(){var t=e(this).data("variations-label"),i=e(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),n=e(this).closest(".yith-single-colorpicker"),a=i.find(".wp-picker-input-wrap"),l=n.find(".wp-picker-input-wrap");if(a.length&&i.find("a.wp-color-result").attr("title",t),n.length&&n.find("a.wp-color-result").attr("title",t),!a.find(".wp-picker-default-custom").length){var o=e("<span/>").attr({"class":"wp-picker-default-custom"});a.find(".wp-picker-default").wrap(o)}l.find(".wp-picker-default-custom").length||(o=e("<span/>").attr({"class":"wp-picker-default-custom"}),l.find(".wp-picker-default").wrap(o))}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(n.imgUrl.change(function(){var t=e(this).val(),i=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)"),a=e(this).parent().find(n.imgPreviewHandler).first();a.length<1&&(a=e(this).parent().parent().find(n.imgPreviewHandler).first()),i.test(t)?a.html('<img src="'+t+'" style="max-width:100px; max-height:100px;" />'):a.html("")}).trigger("change"),e(document).on("click",n.uploadButtonHandler,function(t){t.preventDefault();var i,a=e(this).attr("id").replace(/-button$/,"").replace(/(\[|\])/g,"\\$1");if(i)i.open();else{var l=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];(i=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:l})).on("select",function(){var t=i.state().get("selection").first().toJSON();e("#"+a).val(t.url),e("#"+a+"-yith-attachment-id")&&e("#"+a+"-yith-attachment-id").val(t.id),n.imgUrl.trigger("change")}),i.open()}}),e(document).on("click",n.resetButtonHandler,function(t){var i=e(this),a=i.attr("id").replace(/(\[|\])/g,"\\$1"),l=i.attr("id").replace(/-button-reset$/,"").replace(/(\[|\])/g,"\\$1"),o=e("#"+a).data("default");e("#"+l).val(o),n.imgUrl.trigger("change")}));a.on("click",function(){}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(e(document).on("click",l.buttonSelector,function(t){var i=e(this),n=i.closest(l.rootSelector),a=n.find(".image_gallery_ids"),o=a.val(),s=n.find("ul.slides-wrapper"),r=wp.media.frames.image_gallery=wp.media({title:i.data("choose"),button:{text:i.data("update")},states:[new wp.media.controller.Library({title:i.data("choose"),filterable:"all",multiple:!0})]});r.on("select",function(){r.state().get("selection").map(function(e){(e=e.toJSON()).id&&(o=o?o+","+e.id:e.id,s.append('<li class="image" data-attachment_id="'+e.id+'"><img src="'+e.sizes.thumbnail.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+i.data("delete")+'">x</a></li></ul></li>'))}),a.val(o),a.trigger("change")}),r.open()}),l.sliderWrapper.each(function(){var t=e(this);t.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(i,n){var a="";t.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");a=a+t+","}),t.closest(l.rootSelector).find(".image_gallery_ids").val(a)}})}),l.sliderWrapper.on("click","a.delete",function(t){t.preventDefault();var i=e(this).closest(l.rootSelector),n=i.find("ul.slides-wrapper"),a=i.find(".image_gallery_ids"),o="";e(this).closest("li.image").remove(),n.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");o=o+t+","}),a.val(o)})),o.each(function(){e(this).find("img").on("click",function(){var t=e(this).closest(".yith-plugin-fw-sidebar-layout"),i=t.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container"),n=t.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container"),a=e(this).data("type");if(e(this).parent().children(":radio").attr("checked",!1),e(this).prev(":radio").attr("checked",!0),void 0!==a)switch(a){case"left":i.show(),n.hide();break;case"right":n.show(),i.hide();break;case"double":i.show(),n.show();break;default:i.hide(),n.hide()}})}),s.each(function(){var t=e(this).data("val"),i=e(this).data("min"),n=e(this).data("max"),a=e(this).data("step"),l=e(this).data("labels");e(this).slider({value:t,min:i,max:n,range:"min",step:a,create:function(){e(this).find(".ui-slider-handle").text(e(this).slider("value"))},slide:function(t,i){e(this).find("input").val(i.value),e(this).find(".ui-slider-handle").text(i.value),e(this).siblings(".feedback").find("strong").text(i.value+l)}})}),e(function(){e(document).on("yith-plugin-fw-codemirror-init",function(){"undefined"!=typeof wp&&"undefined"!=typeof wp.codeEditor&&e(".codemirror:not(.codemirror--initialized)").each(function(){var t=e(this).data("settings"),i=wp.codeEditor.initialize(e(this),t);e(this).addClass("codemirror--initialized"),e(this).data("codemirrorInstance",i)})}).trigger("yith-plugin-fw-codemirror-init")}),e(document).on("click",".yith-plugin-fw-select-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!0).trigger("change")}),e(document).on("click",".yith-plugin-fw-deselect-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!1).trigger("change")}),r.each(function(){var t=e(this),i=t.find(".yit-icons-manager-icon-preview").first(),n=t.find(".yit-icons-manager-icon-text");t.on("click",".yit-icons-manager-list li",function(a){var l=e(a.target).closest("li"),o=l.data("font"),s=l.data("icon"),r=l.data("key"),d=l.data("name");i.attr("data-font",o),i.attr("data-icon",s),i.attr("data-key",r),i.attr("data-name",d),n.val(o+":"+d),t.find(".yit-icons-manager-list li").removeClass("active"),l.addClass("active")}),t.on("click",".yit-icons-manager-action-set-default",function(){t.find(".yit-icons-manager-list li.default").trigger("click")})}),e(document).on("click",".yith-plugin-fw-select-images__item",function(){var t=e(this),i=t.data("key"),n=t.closest(".yith-plugin-fw-select-images__wrapper"),a=n.find(".yith-plugin-fw-select-images__item"),l=n.find("select").first();l.length&&(l.val(i).trigger("yith_select_images_value_changed").trigger("change"),a.removeClass("yith-plugin-fw-select-images__item--selected"),t.addClass("yith-plugin-fw-select-images__item--selected"))}),e(document.body).trigger("wc-enhanced-select-init"),e(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(t,i){var n=jQuery(".ui-sortable-handle"),a=0,l=new Array;for(a=0;a<n.length;a++)l[a]=e(n[a]).data("item_key");l.length>0&&e(this).closest(".toggle-element").saveToggleElement(null,l)}}),e(document.body).trigger("yith-framework-enhanced-select-init")}).trigger("yith_fields_init"),e(document).on("click",".yith-plugin-fw-onoff-container span",function(){var t=e(this).prev("input");t.prop("disabled")||t.trigger("click")}),e(document).on("click",".yith-plugin-fw-onoff-container input",function(t){e(this).is(":checked")?e(this).attr("value","yes").addClass("onoffchecked"):e(this).attr("value","no").removeClass("onoffchecked"),e(this).trigger("change")}),e.fn.saveToggleElement=function(t,i){var n=e(this),a="yith_plugin_fw_save_toggle_element",l=n.serializeToggleElement(),o=n.find(".yith-toggle_wrapper"),s=o.attr("id"),r=e.urlParam("tab");l.append("security",o.data("nonce")),void 0!==i&&i.length>0&&l.append("yith_toggle_elements_order_keys",i),n.closest(".metaboxes-tab.yith-plugin-ui").length?(a="yith_plugin_fw_save_toggle_element_metabox",post_id=e(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=e(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=e(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+a+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+s+"&metabox_tab="+metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+a+"&tab="+r+"&toggle_id="+s,e.ajax({type:"POST",url:url,data:l,contentType:!1,processData:!1,success:function(i){t&&t.removeClass("show"),e(document).trigger("yith_save_toggle_element_done",[i,n])}})},e.fn.serializeToggleElement=function(){var t=e(this),i=new FormData,n=e(t).find(":input").serializeArray();return e.each(n,function(e,t){el_name=t.name,i.append(t.name,t.value)}),i},e.fn.formatToggleTitle=function(){var t=e(this),i=t.find(":input"),n=t.find("span.title").data("title_format"),a=t.find(".subtitle").data("subtitle_format"),l=new RegExp("[^%%]+(?=[%%])","g");if(void 0!==n)var o=n.match(l);if(void 0!==a)var s=a.match(l);e.each(i,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=e(i).val(),null!=o&&void 0!==o&&-1!==o.indexOf($field_id)&&(n=n.replace("%%"+$field_id+"%%",$field_val)),null!=s&&void 0!==s&&-1!==s.indexOf($field_id)&&(a=a.replace("%%"+$field_id+"%%",$field_val)))}),""!==n&&t.find("span.title").html(n),""!==a&&t.find(".subtitle").html(a),e(document).trigger("yith-toggle-element-item-title",[t])},e.urlParam=function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.search);return null!==t&&(t[1]||0)},e(document).on("click",".yith-toggle-title",function(t){var i=e(t.target),n=i.closest(".yith-toggle-row"),a=n.find(".yith-toggle-content");if(i.hasClass("yith-plugin-fw-onoff")||i.hasClass("yith-icon-drag"))return!1;n.is(".yith-toggle-row-opened")?a.slideUp(400):a.slideDown(400),n.toggleClass("yith-toggle-row-opened")}),e(document).on("click",".yith-add-box-button",function(t){t.preventDefault();var i=e(this),n=i.data("box_id"),a=i.data("closed_label"),l=i.data("opened_label"),o=i.closest(".yith-toggle_wrapper").attr("id"),s=wp.template("yith-toggle-element-add-box-content-"+o);""!==n&&(e("#"+n).html(s({index:"box_id"})).slideToggle(),""!==a&&(i.html()===a?i.html(l).removeClass("closed"):i.html(a).addClass("closed")),e(document).trigger("yith_fields_init"),e(document).trigger("yith-add-box-button-toggle",[i]))}),e(document).on("click",".yith-add-box-buttons .yith-save-button",function(t){t.preventDefault();var i=e(this).parents(".yith-add-box"),n=e(this).closest(".yith-toggle_wrapper").attr("id"),a=i.find(".spinner"),l=e(this).parents(".toggle-element"),o=i.find(":input"),s=0,r=e('<input type="hidden">');l.find(".yith-toggle-row").each(function(){var t=parseInt(e(this).data("item_key"));s<=t&&(s=t+1)}),r.val(s),e(document).trigger("yith-toggle-change-counter",[r,i]),s=r.val();var d=wp.template("yith-toggle-element-item-"+n),c=e(d({index:s}));a.addClass("show"),e.each(o,function(t,i){if(void 0!==e(i).attr("id")){var n=e(i).attr("id"),a=e(i).val();n="radio"===e(i).attr("type")?(n=(n=e(i).closest(".yith-plugin-fw-radio").attr("id")).replace("new_","")+"_"+s)+"-"+a:n.replace("new_","")+"_"+s,e(i).is(":checked")&&e(c).find("#"+n).prop("checked",!0),(e(i).hasClass("yith-post-search")||e(i).hasClass("yith-term-search"))&&e(c).find("#"+n).html(e("#"+e(i).attr("id")).html()),e(c).find("#"+n).val(a)}}),e(c).formatToggleTitle();var u=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-add",[i,c,u]);setTimeout(function(){if("yes"===u.val()){e(l).find(".yith-toggle-elements").append(c),e(i).find(".yith-plugin-fw-datepicker").datepicker("destroy"),e(i).html(""),e(i).prev(".yith-add-box-button").trigger("click"),l.saveToggleElement();setTimeout(function(){e(l).find(".highlight").removeClass("highlight")},2e3),e(document).trigger("yith_fields_init")}},1e3)}),e(document).on("click",".yith-toggle-row .yith-save-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element"),n=e(this).closest(".yith-toggle-row"),a=n.find(".spinner");n.formatToggleTitle();var l=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-update",[i,n,l]),"yes"===l.val()&&(a.addClass("show"),i.saveToggleElement(a))}),e(document).on("click",".yith-toggle-row .yith-delete-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element");e(this).closest(".yith-toggle-row").remove(),i.saveToggleElement()}),e(document).on("click",".yith-toggle-onoff",function(t){t.preventDefault(),e(this).closest(".toggle-element").saveToggleElement()}),e(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){var t=e(this).closest(".yith-plugin-fw-radio"),i=e(this).val();t.val(i).data("value",i).trigger("change")}),e(document.body).on("yith-plugin-fw-init-radio",function(){e(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){e(this).val(e(this).data("value")),e(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio"),e(document).on("click",".yith-password-eye",function(){var t=e(this),i=e(this).closest(".yith-password-wrapper").find("input");"password"===i.attr("type")?(i.attr("type","text"),t.addClass("yith-password-eye-closed")):(i.attr("type","password"),t.removeClass("yith-password-eye-closed"))}),e(document).on("select2:open",function(t){e(t.target).closest(".yith-plugin-ui").length&&e(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var t={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var i=t;e(document).on("click",i.selectors.units.single,i.unitChange),e(document).on("click",i.selectors.linked.button,i.linkedChange),e(document).on("change keyup",i.selectors.dimensions.number,i.numberChange)},unitChange:function(i){var n=e(this).closest(t.selectors.units.single),a=n.closest(t.selectors.units.wrapper),l=a.find(t.selectors.units.single),o=a.find(t.selectors.units.value).first(),s=n.data("value");l.removeClass(t.selectors.units.selectedClass),n.addClass(t.selectors.units.selectedClass),o.val(s)},linkedChange:function(){var i=e(this).closest(t.selectors.linked.button),n=i.closest(t.selectors.wrapper),a=i.find(t.selectors.linked.value);"yes"===a.val()?(n.removeClass(t.selectors.linked.wrapperActiveClass),a.val("no")):(n.addClass(t.selectors.linked.wrapperActiveClass),a.val("yes"),n.find(t.selectors.dimensions.number).first().trigger("change"))},numberChange:function(i){var n=e(this).closest(t.selectors.dimensions.number),a=n.closest(t.selectors.wrapper);a.hasClass(t.selectors.linked.wrapperActiveClass)&&a.find(t.selectors.dimensions.number).val(n.val())}};t.init();e(document).on("click",".yith-plugin-fw-copy-to-clipboard__copy",function(){var t,i=e(this).closest(".yith-plugin-fw-copy-to-clipboard"),n=i.find(".yith-plugin-fw-copy-to-clipboard__field"),a=i.find(".yith-plugin-fw-copy-to-clipboard__tip"),l=i.data("tip-timeout");l&&clearTimeout(l),n.select(),document.execCommand("copy"),(t="getSelection"in window&&window.getSelection())?"empty"in t?t.empty():"removeAllRanges"in t&&t.removeAllRanges():"selection"in document&&document.selection.empty(),a.fadeIn(400),l=setTimeout(function(){a.fadeOut(400)},1500),i.data("tip-timeout",l)});var i={init:function(){e(document).on("click",".yith-plugin-fw__action-button--has-menu",i.open),e(document).on("click",".yith-plugin-fw__action-button__menu",i.stopPropagation),e(document).on("click",i.closeAll)},closeAll:function(){e(".yith-plugin-fw__action-button--opened").removeClass("yith-plugin-fw__action-button--opened")},open:function(t){var n=e(this).closest(".yith-plugin-fw__action-button"),a=n.hasClass("yith-plugin-fw__action-button--opened");t.preventDefault(),t.stopPropagation(),i.closeAll(),a||n.addClass("yith-plugin-fw__action-button--opened")},stopPropagation:function(e){e.stopPropagation()}};i.init(),e(document).on("click","a.yith-plugin-fw__require-confirmation-link",function(t){var i=e(this).closest("a.yith-plugin-fw__require-confirmation-link"),n=i.attr("href");if(n&&"#"!==n&&(t.preventDefault(),t.stopPropagation(),"yith"in window&&"ui"in yith)){var a,l=["title","message","confirmButtonType","cancelButton","confirmButton"],o={};for(a in l){var s=l[a],r=i.data(s);void 0!==r&&(o[s]=r)}o.onConfirm=function(){window.location.href=n},o.closeAfterConfirm=!1,yith.ui.confirm(o)}}),e(document).on("yith-plugin-fw-tips-init",function(){e(".yith-plugin-fw__tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200})}).trigger("yith-plugin-fw-tips-init")}(jQuery);
|
1 |
+
!function(e){e(document).on("yith_fields_init",function(){var t=e(".yith-plugin-fw-datepicker"),i=e(".yith-plugin-fw-colorpicker"),n={imgPreviewHandler:".yith-plugin-fw-upload-img-preview",uploadButtonHandler:".yith-plugin-fw-upload-button",imgUrlHandler:".yith-plugin-fw-upload-img-url",resetButtonHandler:".yith-plugin-fw-upload-button-reset",imgUrl:e(".yith-plugin-fw-upload-img-url")},a=e(".add_media"),l={rootSelector:".yith-plugin-fw-image-gallery",buttonSelector:".yith-plugin-fw-image-gallery .image-gallery-button",sliderWrapper:e(".yith-plugin-fw-image-gallery ul.slides-wrapper")},o=e(".yith-plugin-fw-sidebar-layout"),s=e(".yith-plugin-fw-slider-container .ui-slider-horizontal"),r=e(".yit-icons-manager-wrapper");e(".yith-plugin-ui td.forminp-checkbox");t.each(function(){var t=e(this),i=t.data(),n=t.next(".yith-icon-calendar");i.showAnim=!1,i.beforeShow=function(e,t){t.dpDiv.addClass("yith-plugin-fw-datepicker-div")},i.onClose=function(e,t){t.dpDiv.removeClass("yith-plugin-fw-datepicker-div")},t.datepicker(i),n&&n.on("click",function(){t.datepicker("show")})}),i.wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var t=e(this);t.val(t.data("default-color")),t.change()}}),i.each(function(){var t=e(this).data("variations-label"),i=e(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),n=e(this).closest(".yith-single-colorpicker"),a=i.find(".wp-picker-input-wrap"),l=n.find(".wp-picker-input-wrap");if(a.length&&i.find("a.wp-color-result").attr("title",t),n.length&&n.find("a.wp-color-result").attr("title",t),!a.find(".wp-picker-default-custom").length){var o=e("<span/>").attr({"class":"wp-picker-default-custom"});a.find(".wp-picker-default").wrap(o)}l.find(".wp-picker-default-custom").length||(o=e("<span/>").attr({"class":"wp-picker-default-custom"}),l.find(".wp-picker-default").wrap(o))}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(n.imgUrl.change(function(){var t=e(this).val(),i=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)"),a=e(this).parent().find(n.imgPreviewHandler).first();a.length<1&&(a=e(this).parent().parent().find(n.imgPreviewHandler).first()),i.test(t)?a.html('<img src="'+t+'" style="max-width:100px; max-height:100px;" />'):a.html("")}).trigger("change"),e(document).on("click",n.uploadButtonHandler,function(t){t.preventDefault();var i,a=e(this).attr("id").replace(/-button$/,"").replace(/(\[|\])/g,"\\$1");if(i)i.open();else{var l=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];(i=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:l})).on("select",function(){var t=i.state().get("selection").first().toJSON();e("#"+a).val(t.url),e("#"+a+"-yith-attachment-id")&&e("#"+a+"-yith-attachment-id").val(t.id),n.imgUrl.trigger("change")}),i.open()}}),e(document).on("click",n.resetButtonHandler,function(t){var i=e(this),a=i.attr("id").replace(/(\[|\])/g,"\\$1"),l=i.attr("id").replace(/-button-reset$/,"").replace(/(\[|\])/g,"\\$1"),o=e("#"+a).data("default");e("#"+l).val(o),n.imgUrl.trigger("change")}));a.on("click",function(){}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(e(document).on("click",l.buttonSelector,function(t){var i=e(this),n=i.closest(l.rootSelector),a=n.find(".image_gallery_ids"),o=a.val(),s=n.find("ul.slides-wrapper"),r=wp.media.frames.image_gallery=wp.media({title:i.data("choose"),button:{text:i.data("update")},states:[new wp.media.controller.Library({title:i.data("choose"),filterable:"all",multiple:!0})]});r.on("select",function(){r.state().get("selection").map(function(e){(e=e.toJSON()).id&&(o=o?o+","+e.id:e.id,s.append('<li class="image" data-attachment_id="'+e.id+'"><img src="'+e.sizes.thumbnail.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+i.data("delete")+'">x</a></li></ul></li>'))}),a.val(o),a.trigger("change")}),r.open()}),l.sliderWrapper.each(function(){var t=e(this);t.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(i,n){var a="";t.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");a=a+t+","}),t.closest(l.rootSelector).find(".image_gallery_ids").val(a)}})}),l.sliderWrapper.on("click","a.delete",function(t){t.preventDefault();var i=e(this).closest(l.rootSelector),n=i.find("ul.slides-wrapper"),a=i.find(".image_gallery_ids"),o="";e(this).closest("li.image").remove(),n.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");o=o+t+","}),a.val(o)})),o.each(function(){e(this).find("img").on("click",function(){var t=e(this).closest(".yith-plugin-fw-sidebar-layout"),i=t.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container"),n=t.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container"),a=e(this).data("type");if(e(this).parent().children(":radio").attr("checked",!1),e(this).prev(":radio").attr("checked",!0),void 0!==a)switch(a){case"left":i.show(),n.hide();break;case"right":n.show(),i.hide();break;case"double":i.show(),n.show();break;default:i.hide(),n.hide()}})}),s.each(function(){var t=e(this).data("val"),i=e(this).data("min"),n=e(this).data("max"),a=e(this).data("step"),l=e(this).data("labels");e(this).slider({value:t,min:i,max:n,range:"min",step:a,create:function(){e(this).find(".ui-slider-handle").text(e(this).slider("value"))},slide:function(t,i){e(this).find("input").val(i.value).trigger("change"),e(this).find(".ui-slider-handle").text(i.value),e(this).siblings(".feedback").find("strong").text(i.value+l)}})}),e(function(){e(document).on("yith-plugin-fw-codemirror-init",function(){"undefined"!=typeof wp&&"undefined"!=typeof wp.codeEditor&&e(".codemirror:not(.codemirror--initialized)").each(function(){var t=e(this).data("settings"),i=wp.codeEditor.initialize(e(this),t);e(this).addClass("codemirror--initialized"),e(this).data("codemirrorInstance",i)})}).trigger("yith-plugin-fw-codemirror-init")}),e(document).on("click",".yith-plugin-fw-select-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!0).trigger("change")}),e(document).on("click",".yith-plugin-fw-deselect-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!1).trigger("change")}),r.each(function(){var t=e(this),i=t.find(".yit-icons-manager-icon-preview").first(),n=t.find(".yit-icons-manager-icon-text");t.on("click",".yit-icons-manager-list li",function(a){var l=e(a.target).closest("li"),o=l.data("font"),s=l.data("icon"),r=l.data("key"),c=l.data("name");i.attr("data-font",o),i.attr("data-icon",s),i.attr("data-key",r),i.attr("data-name",c),n.val(o+":"+c),t.find(".yit-icons-manager-list li").removeClass("active"),l.addClass("active")}),t.on("click",".yit-icons-manager-action-set-default",function(){t.find(".yit-icons-manager-list li.default").trigger("click")})}),e(document).on("click",".yith-plugin-fw-select-images__item",function(){var t=e(this),i=t.data("key"),n=t.closest(".yith-plugin-fw-select-images__wrapper"),a=n.find(".yith-plugin-fw-select-images__item"),l=n.find("select").first();l.length&&(l.val(i).trigger("yith_select_images_value_changed").trigger("change"),a.removeClass("yith-plugin-fw-select-images__item--selected"),t.addClass("yith-plugin-fw-select-images__item--selected"))}),e(document.body).trigger("wc-enhanced-select-init"),e(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(t,i){var n=jQuery(".ui-sortable-handle"),a=0,l=new Array;for(a=0;a<n.length;a++)l[a]=e(n[a]).data("item_key");l.length>0&&e(this).closest(".toggle-element").saveToggleElement(null,l)}}),e(document.body).trigger("yith-framework-enhanced-select-init")}).trigger("yith_fields_init"),e(document).on("click",".yith-plugin-fw-onoff-container span",function(){var t=e(this).prev("input");t.prop("disabled")||t.trigger("click")}),e(document).on("click",".yith-plugin-fw-onoff-container input",function(t){e(this).is(":checked")?e(this).attr("value","yes").addClass("onoffchecked"):e(this).attr("value","no").removeClass("onoffchecked"),e(this).trigger("change")}),e.fn.saveToggleElement=function(t,i){var n=e(this),a="yith_plugin_fw_save_toggle_element",l=n.serializeToggleElement(),o=n.find(".yith-toggle_wrapper"),s=o.attr("id"),r=e.urlParam("tab");l.append("security",o.data("nonce")),void 0!==i&&i.length>0&&l.append("yith_toggle_elements_order_keys",i),n.closest(".metaboxes-tab.yith-plugin-ui").length?(a="yith_plugin_fw_save_toggle_element_metabox",post_id=e(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=e(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=e(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+a+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+s+"&metabox_tab="+metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+a+"&tab="+r+"&toggle_id="+s,e.ajax({type:"POST",url:url,data:l,contentType:!1,processData:!1,success:function(i){t&&t.removeClass("show"),e(document).trigger("yith_save_toggle_element_done",[i,n])}})},e.fn.serializeToggleElement=function(){var t=e(this),i=new FormData,n=e(t).find(":input").serializeArray();return e.each(n,function(e,t){el_name=t.name,i.append(t.name,t.value)}),i},e.fn.formatToggleTitle=function(){var t=e(this),i=t.find(":input"),n=t.find("span.title").data("title_format"),a=t.find(".subtitle").data("subtitle_format"),l=new RegExp("[^%%]+(?=[%%])","g");if(void 0!==n)var o=n.match(l);if(void 0!==a)var s=a.match(l);e.each(i,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=e(i).val(),null!=o&&void 0!==o&&-1!==o.indexOf($field_id)&&(n=n.replace("%%"+$field_id+"%%",$field_val)),null!=s&&void 0!==s&&-1!==s.indexOf($field_id)&&(a=a.replace("%%"+$field_id+"%%",$field_val)))}),""!==n&&t.find("span.title").html(n),""!==a&&t.find(".subtitle").html(a),e(document).trigger("yith-toggle-element-item-title",[t])},e.urlParam=function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.search);return null!==t&&(t[1]||0)},e(document).on("click",".yith-toggle-title",function(t){var i=e(t.target),n=i.closest(".yith-toggle-row"),a=n.find(".yith-toggle-content");if(i.hasClass("yith-plugin-fw-onoff")||i.hasClass("yith-icon-drag"))return!1;n.is(".yith-toggle-row-opened")?a.slideUp(400):a.slideDown(400),n.toggleClass("yith-toggle-row-opened")}),e(document).on("click",".yith-add-box-button",function(t){t.preventDefault();var i=e(this),n=i.data("box_id"),a=i.data("closed_label"),l=i.data("opened_label"),o=i.closest(".yith-toggle_wrapper").attr("id"),s=wp.template("yith-toggle-element-add-box-content-"+o);""!==n&&(e("#"+n).html(s({index:"box_id"})).slideToggle(),""!==a&&(i.html()===a?i.html(l).removeClass("closed"):i.html(a).addClass("closed")),e(document).trigger("yith_fields_init"),e(document).trigger("yith-add-box-button-toggle",[i]))}),e(document).on("click",".yith-add-box-buttons .yith-save-button",function(t){t.preventDefault();var i=e(this).parents(".yith-add-box"),n=e(this).closest(".yith-toggle_wrapper").attr("id"),a=i.find(".spinner"),l=e(this).parents(".toggle-element"),o=i.find(":input"),s=0,r=e('<input type="hidden">');l.find(".yith-toggle-row").each(function(){var t=parseInt(e(this).data("item_key"));s<=t&&(s=t+1)}),r.val(s),e(document).trigger("yith-toggle-change-counter",[r,i]),s=r.val();var c=wp.template("yith-toggle-element-item-"+n),d=e(c({index:s}));a.addClass("show"),e.each(o,function(t,i){if(void 0!==e(i).attr("id")){var n=e(i).attr("id"),a=e(i).val();n="radio"===e(i).attr("type")?(n=(n=e(i).closest(".yith-plugin-fw-radio").attr("id")).replace("new_","")+"_"+s)+"-"+a:n.replace("new_","")+"_"+s,e(i).is(":checked")&&e(d).find("#"+n).prop("checked",!0),(e(i).hasClass("yith-post-search")||e(i).hasClass("yith-term-search"))&&e(d).find("#"+n).html(e("#"+e(i).attr("id")).html()),e(d).find("#"+n).val(a)}}),e(d).formatToggleTitle();var u=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-add",[i,d,u]);setTimeout(function(){if("yes"===u.val()){e(l).find(".yith-toggle-elements").append(d),e(i).find(".yith-plugin-fw-datepicker").datepicker("destroy"),e(i).html(""),e(i).prev(".yith-add-box-button").trigger("click"),l.saveToggleElement();setTimeout(function(){e(l).find(".highlight").removeClass("highlight")},2e3),e(document).trigger("yith_fields_init")}},1e3)}),e(document).on("click",".yith-toggle-row .yith-save-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element"),n=e(this).closest(".yith-toggle-row"),a=n.find(".spinner");n.formatToggleTitle();var l=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-update",[i,n,l]),"yes"===l.val()&&(a.addClass("show"),i.saveToggleElement(a))}),e(document).on("click",".yith-toggle-row .yith-delete-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element");e(this).closest(".yith-toggle-row").remove(),i.saveToggleElement()}),e(document).on("click",".yith-toggle-onoff",function(t){t.preventDefault(),e(this).closest(".toggle-element").saveToggleElement()}),e(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){var t=e(this).closest(".yith-plugin-fw-radio"),i=e(this).val();t.val(i).data("value",i).trigger("change")}),e(document.body).on("yith-plugin-fw-init-radio",function(){e(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){e(this).val(e(this).data("value")),e(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio"),e(document).on("click",".yith-password-eye",function(){var t=e(this),i=e(this).closest(".yith-password-wrapper").find("input");"password"===i.attr("type")?(i.attr("type","text"),t.addClass("yith-password-eye-closed")):(i.attr("type","password"),t.removeClass("yith-password-eye-closed"))}),e(document).on("select2:open",function(t){e(t.target).closest(".yith-plugin-ui").length&&e(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var t={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var i=t;e(document).on("click",i.selectors.units.single,i.unitChange),e(document).on("click",i.selectors.linked.button,i.linkedChange),e(document).on("change keyup",i.selectors.dimensions.number,i.numberChange)},unitChange:function(i){var n=e(this).closest(t.selectors.units.single),a=n.closest(t.selectors.units.wrapper),l=a.find(t.selectors.units.single),o=a.find(t.selectors.units.value).first(),s=n.data("value");l.removeClass(t.selectors.units.selectedClass),n.addClass(t.selectors.units.selectedClass),o.val(s).trigger("change")},linkedChange:function(){var i=e(this).closest(t.selectors.linked.button),n=i.closest(t.selectors.wrapper),a=i.find(t.selectors.linked.value);"yes"===a.val()?(n.removeClass(t.selectors.linked.wrapperActiveClass),a.val("no")):(n.addClass(t.selectors.linked.wrapperActiveClass),a.val("yes"),n.find(t.selectors.dimensions.number).first().trigger("change"))},numberChange:function(i){var n=e(this).closest(t.selectors.dimensions.number),a=n.closest(t.selectors.wrapper);a.hasClass(t.selectors.linked.wrapperActiveClass)&&a.find(t.selectors.dimensions.number).val(n.val())}};t.init();e(document).on("click",".yith-plugin-fw-copy-to-clipboard__copy",function(){var t,i=e(this).closest(".yith-plugin-fw-copy-to-clipboard"),n=i.find(".yith-plugin-fw-copy-to-clipboard__field"),a=i.find(".yith-plugin-fw-copy-to-clipboard__tip"),l=i.data("tip-timeout");l&&clearTimeout(l),n.select(),document.execCommand("copy"),(t="getSelection"in window&&window.getSelection())?"empty"in t?t.empty():"removeAllRanges"in t&&t.removeAllRanges():"selection"in document&&document.selection.empty(),a.fadeIn(400),l=setTimeout(function(){a.fadeOut(400)},1500),i.data("tip-timeout",l)});var i={init:function(){e(document).on("click",".yith-plugin-fw__action-button--has-menu",i.open),e(document).on("click",".yith-plugin-fw__action-button__menu",i.stopPropagation),e(document).on("click",i.closeAll)},closeAll:function(){e(".yith-plugin-fw__action-button--opened").removeClass("yith-plugin-fw__action-button--opened")},open:function(t){var n=e(this).closest(".yith-plugin-fw__action-button"),a=n.hasClass("yith-plugin-fw__action-button--opened");t.preventDefault(),t.stopPropagation(),i.closeAll(),a||n.addClass("yith-plugin-fw__action-button--opened")},stopPropagation:function(e){e.stopPropagation()}};i.init(),e(document).on("click","a.yith-plugin-fw__require-confirmation-link",function(t){var i=e(this).closest("a.yith-plugin-fw__require-confirmation-link"),n=i.attr("href");if(n&&"#"!==n&&(t.preventDefault(),t.stopPropagation(),"yith"in window&&"ui"in yith)){var a,l=["title","message","confirmButtonType","cancelButton","confirmButton"],o={};for(a in l){var s=l[a],r=i.data(s);void 0!==r&&(o[s]=r)}o.onConfirm=function(){window.location.href=n},o.closeAfterConfirm=!1,yith.ui.confirm(o)}}),e(document).on("yith-plugin-fw-tips-init",function(){e(".yith-plugin-fw__tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200})}).trigger("yith-plugin-fw-tips-init")}(jQuery);
|
@@ -1 +1 @@
|
|
1 |
-
<?php return array('dependencies' => array('lodash', 'react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-url'), 'version' => '
|
1 |
+
<?php return array('dependencies' => array('lodash', 'react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-url'), 'version' => '2844b0e480878ce2f72473c4114265fe');
|
@@ -1 +1 @@
|
|
1 |
-
(window.webpackJsonp_yith_plugin_framewowrk=window.webpackJsonp_yith_plugin_framewowrk||[]).push([[1],{27:function(e,t,n){},28:function(e,t,n){}}]),function(e){function t(t){for(var r,c,i=t[0],l=t[1],s=t[2],f=0,p=[];f<i.length;f++)c=i[f],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&p.push(o[c][0]),o[c]=0;for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r]);for(u&&u(t);p.length;)p.shift()();return a.push.apply(a,s||[]),n()}function n(){for(var e,t=0;t<a.length;t++){for(var n=a[t],r=!0,i=1;i<n.length;i++){var l=n[i];0!==o[l]&&(r=!1)}r&&(a.splice(t--,1),e=c(c.s=n[0]))}return e}var r={},o={0:0},a=[];function c(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,c),n.l=!0,n.exports}c.m=e,c.c=r,c.d=function(e,t,n){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(c.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)c.d(n,r,function(t){return e[t]}.bind(null,r));return n},c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="";var i=window.webpackJsonp_yith_plugin_framewowrk=window.webpackJsonp_yith_plugin_framewowrk||[],l=i.push.bind(i);i.push=t,i=i.slice();for(var s=0;s<i.length;s++)t(i[s]);var u=l;a.push([29,1]),n()}([function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.wp.components},function(e,t){e.exports=window.React},function(e,t,n){var r=n(17),o=n(18),a=n(19),c=n(21);e.exports=function(e,t){return r(e)||o(e,t)||a(e,t)||c()}},function(e,t){e.exports=window.wp.hooks},function(e,t){e.exports=window.lodash},function(e,t,n){var r,o,a,c,i;r=n(22),o=n(10).utf8,a=n(23),c=n(10).bin,(i=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?c.stringToBytes(e):o.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=r.bytesToWords(e),l=8*e.length,s=1732584193,u=-271733879,f=-1732584194,p=271733878,h=0;h<n.length;h++)n[h]=16711935&(n[h]<<8|n[h]>>>24)|4278255360&(n[h]<<24|n[h]>>>8);n[l>>>5]|=128<<l%32,n[14+(l+64>>>9<<4)]=l;var d=i._ff,b=i._gg,y=i._hh,g=i._ii;for(h=0;h<n.length;h+=16){var m=s,v=u,_=f,j=p;s=d(s,u,f,p,n[h+0],7,-680876936),p=d(p,s,u,f,n[h+1],12,-389564586),f=d(f,p,s,u,n[h+2],17,606105819),u=d(u,f,p,s,n[h+3],22,-1044525330),s=d(s,u,f,p,n[h+4],7,-176418897),p=d(p,s,u,f,n[h+5],12,1200080426),f=d(f,p,s,u,n[h+6],17,-1473231341),u=d(u,f,p,s,n[h+7],22,-45705983),s=d(s,u,f,p,n[h+8],7,1770035416),p=d(p,s,u,f,n[h+9],12,-1958414417),f=d(f,p,s,u,n[h+10],17,-42063),u=d(u,f,p,s,n[h+11],22,-1990404162),s=d(s,u,f,p,n[h+12],7,1804603682),p=d(p,s,u,f,n[h+13],12,-40341101),f=d(f,p,s,u,n[h+14],17,-1502002290),s=b(s,u=d(u,f,p,s,n[h+15],22,1236535329),f,p,n[h+1],5,-165796510),p=b(p,s,u,f,n[h+6],9,-1069501632),f=b(f,p,s,u,n[h+11],14,643717713),u=b(u,f,p,s,n[h+0],20,-373897302),s=b(s,u,f,p,n[h+5],5,-701558691),p=b(p,s,u,f,n[h+10],9,38016083),f=b(f,p,s,u,n[h+15],14,-660478335),u=b(u,f,p,s,n[h+4],20,-405537848),s=b(s,u,f,p,n[h+9],5,568446438),p=b(p,s,u,f,n[h+14],9,-1019803690),f=b(f,p,s,u,n[h+3],14,-187363961),u=b(u,f,p,s,n[h+8],20,1163531501),s=b(s,u,f,p,n[h+13],5,-1444681467),p=b(p,s,u,f,n[h+2],9,-51403784),f=b(f,p,s,u,n[h+7],14,1735328473),s=y(s,u=b(u,f,p,s,n[h+12],20,-1926607734),f,p,n[h+5],4,-378558),p=y(p,s,u,f,n[h+8],11,-2022574463),f=y(f,p,s,u,n[h+11],16,1839030562),u=y(u,f,p,s,n[h+14],23,-35309556),s=y(s,u,f,p,n[h+1],4,-1530992060),p=y(p,s,u,f,n[h+4],11,1272893353),f=y(f,p,s,u,n[h+7],16,-155497632),u=y(u,f,p,s,n[h+10],23,-1094730640),s=y(s,u,f,p,n[h+13],4,681279174),p=y(p,s,u,f,n[h+0],11,-358537222),f=y(f,p,s,u,n[h+3],16,-722521979),u=y(u,f,p,s,n[h+6],23,76029189),s=y(s,u,f,p,n[h+9],4,-640364487),p=y(p,s,u,f,n[h+12],11,-421815835),f=y(f,p,s,u,n[h+15],16,530742520),s=g(s,u=y(u,f,p,s,n[h+2],23,-995338651),f,p,n[h+0],6,-198630844),p=g(p,s,u,f,n[h+7],10,1126891415),f=g(f,p,s,u,n[h+14],15,-1416354905),u=g(u,f,p,s,n[h+5],21,-57434055),s=g(s,u,f,p,n[h+12],6,1700485571),p=g(p,s,u,f,n[h+3],10,-1894986606),f=g(f,p,s,u,n[h+10],15,-1051523),u=g(u,f,p,s,n[h+1],21,-2054922799),s=g(s,u,f,p,n[h+8],6,1873313359),p=g(p,s,u,f,n[h+15],10,-30611744),f=g(f,p,s,u,n[h+6],15,-1560198380),u=g(u,f,p,s,n[h+13],21,1309151649),s=g(s,u,f,p,n[h+4],6,-145523070),p=g(p,s,u,f,n[h+11],10,-1120210379),f=g(f,p,s,u,n[h+2],15,718787259),u=g(u,f,p,s,n[h+9],21,-343485551),s=s+m>>>0,u=u+v>>>0,f=f+_>>>0,p=p+j>>>0}return r.endian([s,u,f,p])})._ff=function(e,t,n,r,o,a,c){var i=e+(t&n|~t&r)+(o>>>0)+c;return(i<<a|i>>>32-a)+t},i._gg=function(e,t,n,r,o,a,c){var i=e+(t&r|n&~r)+(o>>>0)+c;return(i<<a|i>>>32-a)+t},i._hh=function(e,t,n,r,o,a,c){var i=e+(t^n^r)+(o>>>0)+c;return(i<<a|i>>>32-a)+t},i._ii=function(e,t,n,r,o,a,c){var i=e+(n^(t|~r))+(o>>>0)+c;return(i<<a|i>>>32-a)+t},i._blocksize=16,i._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=r.wordsToBytes(i(e,t));return t&&t.asBytes?n:t&&t.asString?c.bytesToString(n):r.bytesToHex(n)}},function(e,t){e.exports=window.wp.blockEditor},function(e,t){e.exports=window.wp.compose},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t){var n={utf8:{stringToBytes:function(e){return n.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(n.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=n},function(e,t){e.exports=window.wp.blocks},function(e,t){e.exports=window.wp.url},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t,n){var r=n(24);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t,n){var r=n(25),o=n(26);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?o(e):t}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,a=void 0;try{for(var c,i=e[Symbol.iterator]();!(r=(c=i.next()).done)&&(n.push(c.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{r||null==i.return||i.return()}finally{if(o)throw a}}return n}}},function(e,t,n){var r=n(20);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},function(e,t){var n,r;n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var t=[],r=0;r<e.length;r+=3)for(var o=e[r]<<16|e[r+1]<<8|e[r+2],a=0;a<4;a++)8*r+6*a<=8*e.length?t.push(n.charAt(o>>>6*(3-a)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],r=0,o=0;r<e.length;o=++r%4)0!=o&&t.push((n.indexOf(e.charAt(r-1))&Math.pow(2,-2*o+8)-1)<<2*o|n.indexOf(e.charAt(r))>>>6-2*o);return t}},e.exports=r},function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=n=function(e){return typeof e}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(t)}e.exports=n},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},,,function(e,t,n){"use strict";n.r(t);var r=n(3),o=n.n(r),a=n(0),c=n(2),i=n(6),l=n.n(i),s=n(11),u=n(12);function f(e){if(e.status>=200&&e.status<300)return e;throw e}function p(e){return e.json?e.json():e.text()}var h=Object(a.createElement)("svg",{viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg",width:"22",height:"22",role:"img","aria-hidden":"true",focusable:"false"},Object(a.createElement)("path",{width:"22",height:"22",d:"M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"})),d=n(5),b=n.n(d),y=function(e,t,n){var r=!0;if(t&&t.id&&"value"in t){var o=t.value;["toggle","checkbox"].includes(n)&&(o=!0===o||"yes"===o||1===o),o=b.a.isArray(o)?o:[o],r=void 0!==e[t.id]&&o.includes(e[t.id])}return r},g=function(e,t){var n=e.controlType,r=!0;if(e.deps)if(b.a.isArray(e.deps))for(var o in e.deps){var a=e.deps[o];if(!(r=y(t,a,n)))break}else r=y(t,e.deps,n);return r},m=function(e,t){var n="",r=!1;if(void 0!==e.callback&&(jQuery&&e.callback in jQuery.fn?r=jQuery.fn[e.callback]:e.callback in window&&(r=window[e.callback])),"function"==typeof r)n=r(t,e);else{var a=e.attributes?Object.entries(e.attributes).map((function(e){var n=o()(e,2),r=n[0],a=n[1],c=g(a,t),i=t[r];if(c&&void 0!==i)return r+"="+(a.remove_quotes?i:'"'.concat(i,'"'))})):[],c=a.length?" "+a.join(" "):"";n="[".concat(e.shortcode_name).concat(c,"]")}return n},v=n(1),_=n(7),j=n(13),w=n.n(j),k=n(14),x=n.n(k),O=n(15),C=n.n(O),E=n(16),S=n.n(E),T=n(9),A=n.n(T),B=n(4);n(27);var N=function(e){C()(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=A()(t);if(n){var o=A()(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return S()(this,e)});function o(){var e;return w()(this,o),(e=r.apply(this,arguments)).state={html:"",shortcode:"",shortcodeHash:"",ajaxUpdated:!1,ajaxSuccess:!1,ajaxResponse:!1,loading:!1,firstLoading:!0},e.ajaxTimeout=!1,e}return x()(o,[{key:"componentDidMount",value:function(){this.updateShortcode()}},{key:"componentDidUpdate",value:function(e,t,n){var r=this.state,o=r.shortcode,a=r.shortcodeHash,c=r.ajaxSuccess,i=r.ajaxResponse,l=r.ajaxUpdated;Object(d.isEqual)(e,this.props)||this.updateShortcode(),this.props.blockArgs.do_shortcode&&l&&(c&&Object(B.doAction)("yith_plugin_fw_gutenberg_success_do_shortcode",o,a,i),Object(B.doAction)("yith_plugin_fw_gutenberg_after_do_shortcode",o,a,i),this.setState({ajaxUpdated:!1}))}},{key:"updateShortcode",value:function(){var e=this,t=this.props,n=t.attributes,r=t.blockArgs;this.setState({loading:!0,ajaxSuccess:!1,ajaxResponse:!1});var o=m(r,n),a=l()(o);r.do_shortcode?(this.ajaxTimeout&&clearTimeout(this.ajaxTimeout),Object(B.doAction)("yith_plugin_fw_gutenberg_before_do_shortcode",o,a),this.ajaxTimeout=setTimeout((function(){(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:yithGutenberg.ajaxurl;return t=Object(u.addQueryArgs)(t,e),fetch(t).then(f).then(p)})({action:"yith_plugin_fw_gutenberg_do_shortcode",shortcode:o}).then((function(t){e.setState({loading:!1,firstLoading:!1,html:t.html,shortcode:o,shortcodeHash:a,ajaxSuccess:!0,ajaxUpdated:!0,ajaxResponse:t})})).catch((function(e){console.log({error:e})}))}),300)):this.setState({loading:!1,firstLoading:!1,html:o,shortcode:o,shortcodeHash:a})}},{key:"render",value:function(){var e=this.state,t=e.html,n=e.loading,r=e.firstLoading,o=e.shortcode,c=e.shortcodeHash,i=this.props.blockArgs,l=i.do_shortcode,s=i.title,u=i.empty_message,f="block-editor-yith-plugin-fw-shortcode-block",p=[f],d=l?"html":"shortcode",b=t,y="";r&&n?d="first-loading":l&&!t&&(d="empty-html",b=o,!n&&u&&(y=u));var g=["first-loading","empty-html","shortcode"].includes(d),m=!["first-loading","empty-html"].includes(d),_=!!y;return p.push("".concat(f,"--").concat(d)),p.push("".concat(f,_?"--has-message":"--no-message")),p.push("yith_block_".concat(c)),Object(a.createElement)(a.Fragment,null,Object(a.createElement)("div",{className:p.join(" ")},n?Object(a.createElement)("div",{className:"".concat(f,"__spinner-wrap")},Object(a.createElement)(v.Spinner,null)):"",g&&Object(a.createElement)("div",{className:"".concat(f,"__title components-placeholder__label")},h,s),_&&Object(a.createElement)(a.RawHTML,{className:"".concat(f,"__message")},y),m&&Object(a.createElement)(a.RawHTML,{className:"".concat(f,"__content")},b)))}}]),o}(c.Component),R=n(8);function P(e){var t=e.className,n=e.label,r=e.onChange,o=e.value,c=e.help,i=e.disableAlpha,l=Object(R.useInstanceId)(P),s="inspector-yith-color-picker-control-".concat(l);return Object(a.createElement)(v.BaseControl,{id:s,label:n,className:"block-editor-yith-color-control ".concat(t),help:c},Object(a.createElement)(v.ColorPicker,{color:o,disableAlpha:i,onChangeComplete:r}))}function M(e){var t=e.label,n=e.colorValue;return Object(a.createElement)(a.Fragment,null,t,!!n&&Object(a.createElement)(v.ColorIndicator,{colorValue:n}))}function I(e){var t=e.className,n=e.label,r=e.onChange,o=e.value,c=e.help,i=e.palette,l=e.clearable;i=i||Object(_.__experimentalUseEditorFeature)("color.palette");var s=Object(R.useInstanceId)(I),u="inspector-yith-color-palette-control-".concat(s);return Object(a.createElement)(v.BaseControl,{id:u,className:"block-editor-yith-color-palette-control ".concat(t),help:c},Object(a.createElement)("fieldset",null,Object(a.createElement)("legend",null,Object(a.createElement)("div",{className:"block-editor-yith-color-palette-control__color-indicator"},Object(a.createElement)(v.BaseControl.VisualLabel,null,Object(a.createElement)(M,{colorValue:o,label:n})))),Object(a.createElement)(v.ColorPalette,{value:o,onChange:r,colors:i,clearable:l})))}n(28);for(var H=function(e,t){return function(n){var r=n.attributes,c=(n.className,n.setAttributes),i=function(e,t,n){["colorpicker","color"].includes(n)&&(e=e.color.getAlpha()<1?e.color.toRgbString():e.color.toHexString());var r={};r[t]=e,c(r)};return Object(a.createElement)(a.Fragment,null,!!t.attributes&&Object(a.createElement)(_.InspectorControls,null,Object(a.createElement)(v.PanelBody,null,Object.entries(t.attributes).map((function(t){var n=o()(t,2),c=function(t,n){var o=n.controlType,c=r[t],l=function(e,t){var n="";return e.helps&&e.helps.checked&&e.helps.unchecked?n=t?e.helps.checked:e.helps.unchecked:e.help&&(n=e.help),n}(n,c),s="".concat(e,"__").concat(t,"-field-wrapper"),u=g(n,r);n.wrapper_class&&(s+=" "+n.wrapper_class);var f=!1;if(u)switch(o){case"select":f=Object(a.createElement)(v.SelectControl,{className:s,key:t,value:c,label:n.label,options:n.options,selected:c,help:l,multiple:!!n.multiple,onChange:function(e){i(e,t,o)}});break;case"text":f=Object(a.createElement)(v.TextControl,{className:s,key:t,value:c,label:n.label,help:l,onChange:function(e){i(e,t,o)}});break;case"textarea":f=Object(a.createElement)(v.TextareaControl,{className:s,key:t,value:c,label:n.label,help:l,onChange:function(e){i(e,t,o)}});break;case"toggle":f=Object(a.createElement)(v.ToggleControl,{className:s,key:t,value:c,label:n.label,help:l,checked:c,onChange:function(e){i(e,t,o)}});break;case"checkbox":f=Object(a.createElement)(v.CheckboxControl,{className:s,key:t,value:c,label:n.label,help:l,checked:c,onChange:function(e){i(e,t,o)}});break;case"number":case"range":f=Object(a.createElement)(v.RangeControl,{className:s,key:t,value:c,label:n.label,help:l,min:n.min,max:n.max,onChange:function(e){i(e,t,o)}});break;case"color":case"colorpicker":f=Object(a.createElement)(P,{className:s,key:t,label:n.label,help:l,value:c,disableAlpha:n.disableAlpha,onChange:function(e){i(e,t,o)}});break;case"color-palette":f=Object(a.createElement)(I,{className:s,key:t,label:n.label,help:l,value:c,clearable:n.clearable||!1,onChange:function(e){i(e,t,o)}});break;case"radio":f=Object(a.createElement)(v.RadioControl,{key:t,value:c,label:n.label,options:n.options,selected:c,checked:c,help:l,onChange:function(e){i(e,t,o)}});break;default:f=!1}return f}(n[0],n[1]);if(c)return c})))),Object(a.createElement)(N,{attributes:r,blockArgs:t}))}},L=function(){var e=Q[U];Object(B.addAction)(e.key,"yith-plugin-fw/jquery-events",(function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];"jQuery"in window&&(e.delay?setTimeout((function(){jQuery(document).trigger(e.key,Object.values(n))}),e.delay):jQuery(document).trigger(e.key,Object.values(n)))}))},U=0,Q=[{key:"yith_plugin_fw_gutenberg_before_do_shortcode",delay:0},{key:"yith_plugin_fw_gutenberg_success_do_shortcode",delay:200},{key:"yith_plugin_fw_gutenberg_after_do_shortcode",delay:200}];U<Q.length;U++)L();for(var F=function(){var e=o()(J[D],2),t=e[0],n=e[1];Object(s.registerBlockType)("yith/"+t,{title:n.title,description:n.description,category:n.category,attributes:n.attributes,icon:void 0!==n.icon?n.icon:h,keywords:n.keywords,edit:H(t,n),save:function(e){var t=e.attributes;return m(n,t)},deprecated:[{attributes:n.attributes,save:function(e){var t=e.attributes,r=m(n,t),o='<span class="yith_block_'+l()(r)+'">'+r+"</span>";return Object(a.createElement)(a.RawHTML,null,o)}}]})},D=0,J=Object.entries(yithGutenbergBlocks);D<J.length;D++)F()}]);
|
1 |
+
(window.webpackJsonp_yith_plugin_framewowrk=window.webpackJsonp_yith_plugin_framewowrk||[]).push([[1],{27:function(e,t,o){},28:function(e,t,o){}}]),function(e){function t(t){for(var r,c,l=t[0],s=t[1],i=t[2],p=0,f=[];p<l.length;p++)c=l[p],Object.prototype.hasOwnProperty.call(n,c)&&n[c]&&f.push(n[c][0]),n[c]=0;for(r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=s[r]);for(u&&u(t);f.length;)f.shift()();return a.push.apply(a,i||[]),o()}function o(){for(var e,t=0;t<a.length;t++){for(var o=a[t],r=!0,l=1;l<o.length;l++){var s=o[l];0!==n[s]&&(r=!1)}r&&(a.splice(t--,1),e=c(c.s=o[0]))}return e}var r={},n={0:0},a=[];function c(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,c),o.l=!0,o.exports}c.m=e,c.c=r,c.d=function(e,t,o){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(c.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)c.d(o,r,function(t){return e[t]}.bind(null,r));return o},c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="";var l=window.webpackJsonp_yith_plugin_framewowrk=window.webpackJsonp_yith_plugin_framewowrk||[],s=l.push.bind(l);l.push=t,l=l.slice();for(var i=0;i<l.length;i++)t(l[i]);var u=s;a.push([29,1]),o()}([function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.wp.components},function(e,t){e.exports=window.React},function(e,t,o){var r=o(17),n=o(18),a=o(19),c=o(21);e.exports=function(e,t){return r(e)||n(e,t)||a(e,t)||c()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=window.wp.hooks},function(e,t){e.exports=window.lodash},function(e,t,o){var r,n,a,c,l;r=o(22),n=o(10).utf8,a=o(23),c=o(10).bin,(l=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?c.stringToBytes(e):n.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var o=r.bytesToWords(e),s=8*e.length,i=1732584193,u=-271733879,p=-1732584194,f=271733878,d=0;d<o.length;d++)o[d]=16711935&(o[d]<<8|o[d]>>>24)|4278255360&(o[d]<<24|o[d]>>>8);o[s>>>5]|=128<<s%32,o[14+(s+64>>>9<<4)]=s;var h=l._ff,b=l._gg,y=l._hh,g=l._ii;for(d=0;d<o.length;d+=16){var m=i,_=u,v=p,x=f;i=h(i,u,p,f,o[d+0],7,-680876936),f=h(f,i,u,p,o[d+1],12,-389564586),p=h(p,f,i,u,o[d+2],17,606105819),u=h(u,p,f,i,o[d+3],22,-1044525330),i=h(i,u,p,f,o[d+4],7,-176418897),f=h(f,i,u,p,o[d+5],12,1200080426),p=h(p,f,i,u,o[d+6],17,-1473231341),u=h(u,p,f,i,o[d+7],22,-45705983),i=h(i,u,p,f,o[d+8],7,1770035416),f=h(f,i,u,p,o[d+9],12,-1958414417),p=h(p,f,i,u,o[d+10],17,-42063),u=h(u,p,f,i,o[d+11],22,-1990404162),i=h(i,u,p,f,o[d+12],7,1804603682),f=h(f,i,u,p,o[d+13],12,-40341101),p=h(p,f,i,u,o[d+14],17,-1502002290),i=b(i,u=h(u,p,f,i,o[d+15],22,1236535329),p,f,o[d+1],5,-165796510),f=b(f,i,u,p,o[d+6],9,-1069501632),p=b(p,f,i,u,o[d+11],14,643717713),u=b(u,p,f,i,o[d+0],20,-373897302),i=b(i,u,p,f,o[d+5],5,-701558691),f=b(f,i,u,p,o[d+10],9,38016083),p=b(p,f,i,u,o[d+15],14,-660478335),u=b(u,p,f,i,o[d+4],20,-405537848),i=b(i,u,p,f,o[d+9],5,568446438),f=b(f,i,u,p,o[d+14],9,-1019803690),p=b(p,f,i,u,o[d+3],14,-187363961),u=b(u,p,f,i,o[d+8],20,1163531501),i=b(i,u,p,f,o[d+13],5,-1444681467),f=b(f,i,u,p,o[d+2],9,-51403784),p=b(p,f,i,u,o[d+7],14,1735328473),i=y(i,u=b(u,p,f,i,o[d+12],20,-1926607734),p,f,o[d+5],4,-378558),f=y(f,i,u,p,o[d+8],11,-2022574463),p=y(p,f,i,u,o[d+11],16,1839030562),u=y(u,p,f,i,o[d+14],23,-35309556),i=y(i,u,p,f,o[d+1],4,-1530992060),f=y(f,i,u,p,o[d+4],11,1272893353),p=y(p,f,i,u,o[d+7],16,-155497632),u=y(u,p,f,i,o[d+10],23,-1094730640),i=y(i,u,p,f,o[d+13],4,681279174),f=y(f,i,u,p,o[d+0],11,-358537222),p=y(p,f,i,u,o[d+3],16,-722521979),u=y(u,p,f,i,o[d+6],23,76029189),i=y(i,u,p,f,o[d+9],4,-640364487),f=y(f,i,u,p,o[d+12],11,-421815835),p=y(p,f,i,u,o[d+15],16,530742520),i=g(i,u=y(u,p,f,i,o[d+2],23,-995338651),p,f,o[d+0],6,-198630844),f=g(f,i,u,p,o[d+7],10,1126891415),p=g(p,f,i,u,o[d+14],15,-1416354905),u=g(u,p,f,i,o[d+5],21,-57434055),i=g(i,u,p,f,o[d+12],6,1700485571),f=g(f,i,u,p,o[d+3],10,-1894986606),p=g(p,f,i,u,o[d+10],15,-1051523),u=g(u,p,f,i,o[d+1],21,-2054922799),i=g(i,u,p,f,o[d+8],6,1873313359),f=g(f,i,u,p,o[d+15],10,-30611744),p=g(p,f,i,u,o[d+6],15,-1560198380),u=g(u,p,f,i,o[d+13],21,1309151649),i=g(i,u,p,f,o[d+4],6,-145523070),f=g(f,i,u,p,o[d+11],10,-1120210379),p=g(p,f,i,u,o[d+2],15,718787259),u=g(u,p,f,i,o[d+9],21,-343485551),i=i+m>>>0,u=u+_>>>0,p=p+v>>>0,f=f+x>>>0}return r.endian([i,u,p,f])})._ff=function(e,t,o,r,n,a,c){var l=e+(t&o|~t&r)+(n>>>0)+c;return(l<<a|l>>>32-a)+t},l._gg=function(e,t,o,r,n,a,c){var l=e+(t&r|o&~r)+(n>>>0)+c;return(l<<a|l>>>32-a)+t},l._hh=function(e,t,o,r,n,a,c){var l=e+(t^o^r)+(n>>>0)+c;return(l<<a|l>>>32-a)+t},l._ii=function(e,t,o,r,n,a,c){var l=e+(o^(t|~r))+(n>>>0)+c;return(l<<a|l>>>32-a)+t},l._blocksize=16,l._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var o=r.wordsToBytes(l(e,t));return t&&t.asBytes?o:t&&t.asString?c.bytesToString(o):r.bytesToHex(o)}},function(e,t){e.exports=window.wp.blockEditor},function(e,t){e.exports=window.wp.compose},function(e,t){function o(t){return e.exports=o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.default=e.exports,e.exports.__esModule=!0,o(t)}e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){var o={utf8:{stringToBytes:function(e){return o.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(o.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],o=0;o<e.length;o++)t.push(255&e.charCodeAt(o));return t},bytesToString:function(e){for(var t=[],o=0;o<e.length;o++)t.push(String.fromCharCode(e[o]));return t.join("")}}};e.exports=o},function(e,t){e.exports=window.wp.blocks},function(e,t){e.exports=window.wp.url},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function o(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&o(e.prototype,t),r&&o(e,r),e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,o){var r=o(24);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,o){var r=o(25).default,n=o(26);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?n(e):t},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){var o=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=o){var r,n,a=[],c=!0,l=!1;try{for(o=o.call(e);!(c=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);c=!0);}catch(e){l=!0,n=e}finally{try{c||null==o.return||o.return()}finally{if(l)throw n}}return a}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,o){var r=o(20);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=new Array(t);o<t;o++)r[o]=e[o];return r},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){var o,r;o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],o=0,r=0;o<e.length;o++,r+=8)t[r>>>5]|=e[o]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],o=0;o<32*e.length;o+=8)t.push(e[o>>>5]>>>24-o%32&255);return t},bytesToHex:function(e){for(var t=[],o=0;o<e.length;o++)t.push((e[o]>>>4).toString(16)),t.push((15&e[o]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],o=0;o<e.length;o+=2)t.push(parseInt(e.substr(o,2),16));return t},bytesToBase64:function(e){for(var t=[],r=0;r<e.length;r+=3)for(var n=e[r]<<16|e[r+1]<<8|e[r+2],a=0;a<4;a++)8*r+6*a<=8*e.length?t.push(o.charAt(n>>>6*(3-a)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],r=0,n=0;r<e.length;n=++r%4)0!=n&&t.push((o.indexOf(e.charAt(r-1))&Math.pow(2,-2*n+8)-1)<<2*n|o.indexOf(e.charAt(r))>>>6-2*n);return t}},e.exports=r},function(e,t){function o(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(o(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&o(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t){function o(t,r){return e.exports=o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,o(t,r)}e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function o(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=o=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=o=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),o(t)}e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.default=e.exports,e.exports.__esModule=!0},,,function(e,t,o){"use strict";o.r(t);var r=o(3),n=o.n(r),a=o(0),c=o(2),l=o(6),s=o.n(l),i=o(11),u=o(12);function p(e){if(e.status>=200&&e.status<300)return e;throw e}function f(e){return e.json?e.json():e.text()}var d=Object(a.createElement)("svg",{viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg",width:"22",height:"22",role:"img","aria-hidden":"true",focusable:"false"},Object(a.createElement)("path",{width:"22",height:"22",d:"M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"})),h=o(5),b=o.n(h),y=function(e,t,o){var r=!0;if(t&&t.id&&"value"in t){var n=t.value;["toggle","checkbox"].includes(o)&&(n=!0===n||"yes"===n||1===n),n=b.a.isArray(n)?n:[n],r=void 0!==e[t.id]&&n.includes(e[t.id])}return r},g=function(e,t){var o=e.controlType,r=!0;if(e.deps)if(b.a.isArray(e.deps))for(var n in e.deps){var a=e.deps[n];if(!(r=y(t,a,o)))break}else r=y(t,e.deps,o);return r},m=function(e,t){var o="",r=!1;if(void 0!==e.callback&&(jQuery&&e.callback in jQuery.fn?r=jQuery.fn[e.callback]:e.callback in window&&(r=window[e.callback])),"function"==typeof r)o=r(t,e);else{var a=e.attributes?Object.entries(e.attributes).map((function(e){var o=n()(e,2),r=o[0],a=o[1],c=g(a,t),l=t[r];if(c&&void 0!==l)return r+"="+(a.remove_quotes?l:'"'.concat(l,'"'))})):[],c=a.length?" "+a.join(" "):"";o="[".concat(e.shortcode_name).concat(c,"]")}return o},_=o(1),v=o(7),x=o(13),j=o.n(x),w=o(14),k=o.n(w),O=o(15),C=o.n(O),E=o(16),S=o.n(E),T=o(9),A=o.n(T),M=o(4);o(27);var B=function(e){C()(n,e);var t,o,r=(t=n,o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=A()(t);if(o){var n=A()(this).constructor;e=Reflect.construct(r,arguments,n)}else e=r.apply(this,arguments);return S()(this,e)});function n(){var e;return j()(this,n),(e=r.apply(this,arguments)).state={html:"",shortcode:"",shortcodeHash:"",ajaxUpdated:!1,ajaxSuccess:!1,ajaxResponse:!1,loading:!1,firstLoading:!0},e.ajaxTimeout=!1,e}return k()(n,[{key:"componentDidMount",value:function(){this.updateShortcode()}},{key:"componentDidUpdate",value:function(e,t,o){var r=this.state,n=r.shortcode,a=r.shortcodeHash,c=r.ajaxSuccess,l=r.ajaxResponse,s=r.ajaxUpdated;Object(h.isEqual)(e,this.props)||this.updateShortcode(),this.props.blockArgs.do_shortcode&&s&&(c&&Object(M.doAction)("yith_plugin_fw_gutenberg_success_do_shortcode",n,a,l),Object(M.doAction)("yith_plugin_fw_gutenberg_after_do_shortcode",n,a,l),this.setState({ajaxUpdated:!1}))}},{key:"updateShortcode",value:function(){var e=this,t=this.props,o=t.attributes,r=t.blockArgs;this.setState({loading:!0,ajaxSuccess:!1,ajaxResponse:!1});var n=m(r,o),a=s()(n);r.do_shortcode?(this.ajaxTimeout&&clearTimeout(this.ajaxTimeout),Object(M.doAction)("yith_plugin_fw_gutenberg_before_do_shortcode",n,a),this.ajaxTimeout=setTimeout((function(){(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:yithGutenberg.ajaxurl;return t=Object(u.addQueryArgs)(t,e),fetch(t).then(p).then(f)})({action:"yith_plugin_fw_gutenberg_do_shortcode",shortcode:n}).then((function(t){e.setState({loading:!1,firstLoading:!1,html:t.html,shortcode:n,shortcodeHash:a,ajaxSuccess:!0,ajaxUpdated:!0,ajaxResponse:t})})).catch((function(e){console.log({error:e})}))}),300)):this.setState({loading:!1,firstLoading:!1,html:n,shortcode:n,shortcodeHash:a})}},{key:"render",value:function(){var e=this.state,t=e.html,o=e.loading,r=e.firstLoading,n=e.shortcode,c=e.shortcodeHash,l=this.props.blockArgs,s=l.do_shortcode,i=l.title,u=l.empty_message,p="block-editor-yith-plugin-fw-shortcode-block",f=[p],h=s?"html":"shortcode",b=t,y="";r&&o?h="first-loading":s&&!t&&(h="empty-html",b=n,!o&&u&&(y=u));var g=["first-loading","empty-html","shortcode"].includes(h),m=!["first-loading","empty-html"].includes(h),v=!!y;return f.push("".concat(p,"--").concat(h)),f.push("".concat(p,v?"--has-message":"--no-message")),f.push("yith_block_".concat(c)),Object(a.createElement)(a.Fragment,null,Object(a.createElement)("div",{className:f.join(" ")},o?Object(a.createElement)("div",{className:"".concat(p,"__spinner-wrap")},Object(a.createElement)(_.Spinner,null)):"",g&&Object(a.createElement)("div",{className:"".concat(p,"__title components-placeholder__label")},d,i),v&&Object(a.createElement)(a.RawHTML,{className:"".concat(p,"__message")},y),m&&Object(a.createElement)(a.RawHTML,{className:"".concat(p,"__content")},b)))}}]),n}(c.Component),N=o(8);function R(e){var t=e.className,o=e.label,r=e.onChange,n=e.value,c=e.help,l=e.disableAlpha,s=Object(N.useInstanceId)(R),i="inspector-yith-color-picker-control-".concat(s);return Object(a.createElement)(_.BaseControl,{id:i,label:o,className:"block-editor-yith-color-control ".concat(t),help:c},Object(a.createElement)(_.ColorPicker,{color:n,disableAlpha:l,onChangeComplete:r}))}function P(e){var t=e.label,o=e.colorValue;return Object(a.createElement)(a.Fragment,null,t,!!o&&Object(a.createElement)(_.ColorIndicator,{colorValue:o}))}function I(e){var t=e.className,o=e.label,r=e.onChange,n=e.value,c=e.help,l=e.palette,s=e.clearable;l=l||Object(v.__experimentalUseEditorFeature)("color.palette");var i=Object(N.useInstanceId)(I),u="inspector-yith-color-palette-control-".concat(i);return Object(a.createElement)(_.BaseControl,{id:u,className:"block-editor-yith-color-palette-control ".concat(t),help:c},Object(a.createElement)("fieldset",null,Object(a.createElement)("legend",null,Object(a.createElement)("div",{className:"block-editor-yith-color-palette-control__color-indicator"},Object(a.createElement)(_.BaseControl.VisualLabel,null,Object(a.createElement)(P,{colorValue:n,label:o})))),Object(a.createElement)(_.ColorPalette,{value:n,onChange:r,colors:l,clearable:s})))}o(28);for(var H=function(e,t){return function(o){var r=o.attributes,c=(o.className,o.setAttributes),l=function(e,t,o){["colorpicker","color"].includes(o)&&(e=e.color.getAlpha()<1?e.color.toRgbString():e.color.toHexString());var r={};r[t]=e,c(r)};return Object(a.createElement)(a.Fragment,null,!!t.attributes&&Object(a.createElement)(v.InspectorControls,null,Object(a.createElement)(_.PanelBody,null,Object.entries(t.attributes).map((function(t){var o=n()(t,2),c=function(t,o){var n=o.controlType,c=r[t],s=function(e,t){var o="";return e.helps&&e.helps.checked&&e.helps.unchecked?o=t?e.helps.checked:e.helps.unchecked:e.help&&(o=e.help),o}(o,c),i="".concat(e,"__").concat(t,"-field-wrapper"),u=g(o,r);o.wrapper_class&&(i+=" "+o.wrapper_class);var p=!1;if(u)switch(n){case"select":p=Object(a.createElement)(_.SelectControl,{className:i,key:t,value:c,label:o.label,options:o.options,selected:c,help:s,multiple:!!o.multiple,onChange:function(e){l(e,t,n)}});break;case"text":p=Object(a.createElement)(_.TextControl,{className:i,key:t,value:c,label:o.label,help:s,onChange:function(e){l(e,t,n)}});break;case"textarea":p=Object(a.createElement)(_.TextareaControl,{className:i,key:t,value:c,label:o.label,help:s,onChange:function(e){l(e,t,n)}});break;case"toggle":p=Object(a.createElement)(_.ToggleControl,{className:i,key:t,value:c,label:o.label,help:s,checked:c,onChange:function(e){l(e,t,n)}});break;case"checkbox":p=Object(a.createElement)(_.CheckboxControl,{className:i,key:t,value:c,label:o.label,help:s,checked:c,onChange:function(e){l(e,t,n)}});break;case"number":case"range":p=Object(a.createElement)(_.RangeControl,{className:i,key:t,value:c,label:o.label,help:s,min:o.min,max:o.max,onChange:function(e){l(e,t,n)}});break;case"color":case"colorpicker":p=Object(a.createElement)(R,{className:i,key:t,label:o.label,help:s,value:c,disableAlpha:o.disableAlpha,onChange:function(e){l(e,t,n)}});break;case"color-palette":p=Object(a.createElement)(I,{className:i,key:t,label:o.label,help:s,value:c,clearable:o.clearable||!1,onChange:function(e){l(e,t,n)}});break;case"radio":p=Object(a.createElement)(_.RadioControl,{key:t,value:c,label:o.label,options:o.options,selected:c,checked:c,help:s,onChange:function(e){l(e,t,n)}});break;default:p=!1}return p}(o[0],o[1]);if(c)return c})))),Object(a.createElement)(B,{attributes:r,blockArgs:t}))}},L=function(){var e=Q[U];Object(M.addAction)(e.key,"yith-plugin-fw/jquery-events",(function(){for(var t=arguments.length,o=new Array(t),r=0;r<t;r++)o[r]=arguments[r];"jQuery"in window&&(e.delay?setTimeout((function(){jQuery(document).trigger(e.key,Object.values(o))}),e.delay):jQuery(document).trigger(e.key,Object.values(o)))}))},U=0,Q=[{key:"yith_plugin_fw_gutenberg_before_do_shortcode",delay:0},{key:"yith_plugin_fw_gutenberg_success_do_shortcode",delay:200},{key:"yith_plugin_fw_gutenberg_after_do_shortcode",delay:200}];U<Q.length;U++)L();for(var F=function(){var e=n()(V[J],2),t=e[0],o=e[1];Object(i.registerBlockType)("yith/"+t,{title:o.title,description:o.description,category:o.category,attributes:o.attributes,icon:void 0!==o.icon?o.icon:d,keywords:o.keywords,edit:H(t,o),save:function(e){var t=e.attributes;return m(o,t)},deprecated:[{attributes:o.attributes,save:function(e){var t=e.attributes,r=m(o,t),n='<span class="yith_block_'+s()(r)+'">'+r+"</span>";return Object(a.createElement)(a.RawHTML,null,n)}}]})},J=0,V=Object.entries(yithGutenbergBlocks);J<V.length;J++)F()}]);
|
@@ -63,9 +63,11 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
|
|
63 |
* Register styles and scripts
|
64 |
*/
|
65 |
public function register_styles_and_scripts() {
|
66 |
-
global $wp_scripts, $woocommerce, $wp_version;
|
67 |
|
68 |
-
$
|
|
|
|
|
69 |
|
70 |
// Register scripts.
|
71 |
wp_register_script( 'yith-ui', YIT_CORE_PLUGIN_URL . '/assets/js/yith-ui' . $suffix . '.js', array( 'jquery' ), $this->version, true );
|
@@ -111,6 +113,7 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
|
|
111 |
'search_posts_nonce' => wp_create_nonce( 'search-posts' ),
|
112 |
'search_terms_nonce' => wp_create_nonce( 'search-terms' ),
|
113 |
'search_customers_nonce' => wp_create_nonce( 'search-customers' ),
|
|
|
114 |
)
|
115 |
);
|
116 |
|
@@ -134,6 +137,22 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
|
|
134 |
)
|
135 |
);
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
// Localize color-picker to avoid issues with WordPress 5.5.
|
138 |
if ( version_compare( $wp_version, '5.5-RC', '>=' ) ) {
|
139 |
wp_localize_script(
|
63 |
* Register styles and scripts
|
64 |
*/
|
65 |
public function register_styles_and_scripts() {
|
66 |
+
global $wp_scripts, $woocommerce, $wp_version, $pagenow;
|
67 |
|
68 |
+
$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
|
69 |
+
$screen_id = $screen && is_a( $screen, 'WP_Screen' ) ? $screen->id : '';
|
70 |
+
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
|
71 |
|
72 |
// Register scripts.
|
73 |
wp_register_script( 'yith-ui', YIT_CORE_PLUGIN_URL . '/assets/js/yith-ui' . $suffix . '.js', array( 'jquery' ), $this->version, true );
|
113 |
'search_posts_nonce' => wp_create_nonce( 'search-posts' ),
|
114 |
'search_terms_nonce' => wp_create_nonce( 'search-terms' ),
|
115 |
'search_customers_nonce' => wp_create_nonce( 'search-customers' ),
|
116 |
+
'search_pages_nonce' => wp_create_nonce( 'search-pages' ),
|
117 |
)
|
118 |
);
|
119 |
|
137 |
)
|
138 |
);
|
139 |
|
140 |
+
wp_localize_script(
|
141 |
+
'yith-plugin-fw-wp-pages',
|
142 |
+
'yith_plugin_fw_wp_pages',
|
143 |
+
array(
|
144 |
+
'bulk_delete_confirmation_enabled' => ! ! apply_filters( "yith_plugin_fw_{$screen_id}_bulk_delete_confirmation_enabled", in_array( $pagenow, array( 'edit.php', 'edit-tags.php' ), true ) ),
|
145 |
+
'i18n' => array(
|
146 |
+
'bulk_trash_confirm_title' => __( 'Confirm trash', 'yith-plugin-fw' ),
|
147 |
+
'bulk_trash_confirm_message' => __( 'Are you sure you want to trash the selected items?', 'yith-plugin-fw' ),
|
148 |
+
'bulk_trash_confirm_button' => _x( 'Yes, move to trash', 'Trash confirmation action', 'yith-plugin-fw' ),
|
149 |
+
'bulk_delete_confirm_title' => __( 'Confirm delete', 'yith-plugin-fw' ),
|
150 |
+
'bulk_delete_confirm_message' => __( 'Are you sure you want to delete the selected items?', 'yith-plugin-fw' ) . '<br /><br />' . __( 'This action cannot be undone and you will not be able to recover this data.', 'yith-plugin-fw' ),
|
151 |
+
'bulk_delete_confirm_button' => _x( 'Yes, delete permanently', 'Delete confirmation action', 'yith-plugin-fw' ),
|
152 |
+
),
|
153 |
+
)
|
154 |
+
);
|
155 |
+
|
156 |
// Localize color-picker to avoid issues with WordPress 5.5.
|
157 |
if ( version_compare( $wp_version, '5.5-RC', '>=' ) ) {
|
158 |
wp_localize_script(
|
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* YITH Help Desk static Class.
|
4 |
+
*
|
5 |
+
* @class YIT_Plugin_Panel
|
6 |
+
* @package YITH\PluginFramework\Classes
|
7 |
+
*/
|
8 |
+
|
9 |
+
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
|
10 |
+
|
11 |
+
if ( ! class_exists( 'YIT_Help_Desk' ) ) {
|
12 |
+
/**
|
13 |
+
* Class YIT_Help_Desk
|
14 |
+
*
|
15 |
+
* Contains static utilities for help desk integrations
|
16 |
+
*/
|
17 |
+
class YIT_Help_Desk {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* URL to contact to query zendesk API
|
21 |
+
* It can be overridden, by defining YIT_HELP_CENTER_DEBUG_URL constant
|
22 |
+
*
|
23 |
+
* @const string API url.
|
24 |
+
*/
|
25 |
+
const PRODUCTION_URL = 'https://support.yithemes.com/api/v2/help_center/en-us/';
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Retrieves latest articles flagged with a give set of labels (and featured)
|
29 |
+
*
|
30 |
+
* @param array $labels Array of labest to search; default to empty array (all featured articles will be retrieved).
|
31 |
+
*
|
32 |
+
* @return array Array of articles, formatted as follows:
|
33 |
+
* [
|
34 |
+
* [
|
35 |
+
* 'title' => 'Lorem ipsum dolor sit amet',
|
36 |
+
* 'url' => 'https://example.com/lorem-ipsum-dolor-sit-amet'
|
37 |
+
* ],
|
38 |
+
* ...
|
39 |
+
* ]
|
40 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
41 |
+
*/
|
42 |
+
public static function get_latest_articles( $labels = array() ) {
|
43 |
+
$latest_articles = get_site_transient( 'yith-plugin-fw-latest-hc-articles' );
|
44 |
+
$latest_articles = $latest_articles ? $latest_articles : array();
|
45 |
+
|
46 |
+
$labels = (array) $labels;
|
47 |
+
|
48 |
+
// add featured label.
|
49 |
+
if ( ! in_array( 'featured', $labels, true ) ) {
|
50 |
+
$labels[] = 'featured';
|
51 |
+
}
|
52 |
+
|
53 |
+
// format labels to a valid query string param.
|
54 |
+
$labels = implode( ',', array_map( 'sanitize_text_field', $labels ) );
|
55 |
+
|
56 |
+
if ( ! empty( $latest_articles[ $labels ] ) && ! isset( $_GET['yith_plugin_fw_reset_hc_articles'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
57 |
+
// if we can find articles in cache, return them.
|
58 |
+
return $latest_articles[ $labels ];
|
59 |
+
} else {
|
60 |
+
// otherwise try to retrieve them.
|
61 |
+
try {
|
62 |
+
$response = self::call(
|
63 |
+
'articles.json',
|
64 |
+
'GET',
|
65 |
+
array(
|
66 |
+
'label_names' => $labels,
|
67 |
+
'sort_by' => 'created_at',
|
68 |
+
'sort_order' => 'desc',
|
69 |
+
'per_page' => 5,
|
70 |
+
)
|
71 |
+
);
|
72 |
+
} catch ( Exception $e ) {
|
73 |
+
return array();
|
74 |
+
}
|
75 |
+
|
76 |
+
// invalid answer from Zendesk server.
|
77 |
+
if ( ! isset( $response['articles'] ) || ! is_array( $response['articles'] ) ) {
|
78 |
+
return array();
|
79 |
+
}
|
80 |
+
|
81 |
+
$formatted_articles = array();
|
82 |
+
|
83 |
+
foreach ( $response['articles'] as $article ) {
|
84 |
+
// invalid article from Zendesk server.
|
85 |
+
if ( ! isset( $article['html_url'] ) || ! isset( $article['title'] ) ) {
|
86 |
+
continue;
|
87 |
+
}
|
88 |
+
|
89 |
+
// add valid articles.
|
90 |
+
$formatted_articles[] = array(
|
91 |
+
'title' => $article['title'],
|
92 |
+
'url' => esc_url( $article['html_url'] ),
|
93 |
+
);
|
94 |
+
}
|
95 |
+
|
96 |
+
$latest_articles[ $labels ] = $formatted_articles;
|
97 |
+
|
98 |
+
// update cache.
|
99 |
+
set_site_transient( 'yith-plugin-fw-latest-hc-articles', $latest_articles, 15 * DAY_IN_SECONDS );
|
100 |
+
|
101 |
+
return $formatted_articles;
|
102 |
+
}
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Performs any API request to HC API
|
107 |
+
*
|
108 |
+
* @param string $request Endpoint to call.
|
109 |
+
* @param string $method HTTP method for the call.
|
110 |
+
* @param array $query Query string parameters to include with the request.
|
111 |
+
* @param array $body Parameters to send as json_encoded content of the request.
|
112 |
+
* @param array $args Array of parameters to pass to {wp_remote_request}.
|
113 |
+
*
|
114 |
+
* @return string Parsed body of the answer; if content is valid JSON string, it will be decoded before return.
|
115 |
+
* @throws Exception When an error occurs with API call; error contains more details about the type of problem.
|
116 |
+
*
|
117 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
118 |
+
*/
|
119 |
+
public static function call( $request, $method = 'GET', $query = array(), $body = array(), $args = array() ) {
|
120 |
+
$destination_url = self::get_url( $request );
|
121 |
+
|
122 |
+
if ( ! empty( $query ) ) {
|
123 |
+
$destination_url = add_query_arg( $query, $destination_url );
|
124 |
+
}
|
125 |
+
|
126 |
+
$body = 'GET' === $method ? $body : wp_json_encode( $body );
|
127 |
+
|
128 |
+
$args = array_merge(
|
129 |
+
array(
|
130 |
+
'timeout' => apply_filters( 'yit_plugin_fw_help_desk_request_timeout', 2 ),
|
131 |
+
'reject_unsafe_urls' => true,
|
132 |
+
'blocking' => true,
|
133 |
+
'sslverify' => true,
|
134 |
+
'attempts' => 0,
|
135 |
+
),
|
136 |
+
$args,
|
137 |
+
array(
|
138 |
+
'method' => $method,
|
139 |
+
'body' => $body,
|
140 |
+
)
|
141 |
+
);
|
142 |
+
|
143 |
+
$response = wp_remote_request( $destination_url, $args );
|
144 |
+
|
145 |
+
if ( is_wp_error( $response ) ) {
|
146 |
+
throw new Exception( $response->get_error_message(), 400 );
|
147 |
+
} else {
|
148 |
+
$resp_body = isset( $response['body'] ) ? @json_decode( $response['body'], true ) : ''; // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
|
149 |
+
$status = isset( $response['response'] ) ? absint( $response['response']['code'] ) : false;
|
150 |
+
|
151 |
+
if ( ! in_array( $status, apply_filters( 'yit_plugin_fw_help_desk_valid_response_statuses', array( 200 ) ), true ) ) {
|
152 |
+
throw new Exception( __( 'There was an error with your request; please try again later.', 'yit-plugin-fw' ), $status );
|
153 |
+
} else {
|
154 |
+
return $resp_body;
|
155 |
+
}
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Get formatted url for API calls
|
161 |
+
*
|
162 |
+
* @param string $request Endpoint to call with url.
|
163 |
+
* @return string Formatted url.
|
164 |
+
*
|
165 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
166 |
+
*/
|
167 |
+
public static function get_url( $request = '' ) {
|
168 |
+
$base_url = self::PRODUCTION_URL;
|
169 |
+
|
170 |
+
if ( defined( 'YIT_HELP_CENTER_DEBUG_URL' ) ) {
|
171 |
+
$alternative_url = filter_var( YIT_HELP_CENTER_DEBUG_URL, FILTER_VALIDATE_URL );
|
172 |
+
$base_url = $alternative_url ? $alternative_url : $base_url;
|
173 |
+
}
|
174 |
+
|
175 |
+
if ( 0 !== strrpos( $base_url, '/' ) ) {
|
176 |
+
$base_url = trailingslashit( $base_url );
|
177 |
+
}
|
178 |
+
|
179 |
+
if ( $request ) {
|
180 |
+
$base_url .= $request;
|
181 |
+
}
|
182 |
+
|
183 |
+
return $base_url;
|
184 |
+
}
|
185 |
+
|
186 |
+
}
|
187 |
+
}
|
@@ -216,6 +216,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
|
|
216 |
|
217 |
if ( 'admin.php' === $pagenow && isset( $_REQUEST['tab'] ) && in_array( $_REQUEST['tab'], $tabs, true ) ) {
|
218 |
$tab = sanitize_key( wp_unslash( $_REQUEST['tab'] ) );
|
|
|
|
|
219 |
}
|
220 |
|
221 |
return apply_filters( 'yith_wc_plugin_panel_current_tab', $tab );
|
@@ -277,6 +279,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
|
|
277 |
|
278 |
if ( $custom_tab_options ) {
|
279 |
$this->print_custom_tab( $custom_tab_options );
|
|
|
|
|
280 |
} else {
|
281 |
include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-form.php';
|
282 |
}
|
216 |
|
217 |
if ( 'admin.php' === $pagenow && isset( $_REQUEST['tab'] ) && in_array( $_REQUEST['tab'], $tabs, true ) ) {
|
218 |
$tab = sanitize_key( wp_unslash( $_REQUEST['tab'] ) );
|
219 |
+
} elseif ( isset( $_REQUEST['tab'] ) && 'help' === $_REQUEST['tab'] && ! empty( $this->settings['help_tab'] ) ) {
|
220 |
+
$tab = 'help';
|
221 |
}
|
222 |
|
223 |
return apply_filters( 'yith_wc_plugin_panel_current_tab', $tab );
|
279 |
|
280 |
if ( $custom_tab_options ) {
|
281 |
$this->print_custom_tab( $custom_tab_options );
|
282 |
+
} elseif ( $this->is_help_tab() ) {
|
283 |
+
$this->print_help_tab();
|
284 |
} else {
|
285 |
include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-form.php';
|
286 |
}
|
@@ -475,37 +475,19 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
475 |
);
|
476 |
$args = wp_parse_args( $args, $defaults );
|
477 |
|
478 |
-
list ( $
|
479 |
|
480 |
$tabs = '<ul class="yith-plugin-fw-tabs">';
|
481 |
|
482 |
foreach ( $this->settings['admin-tabs'] as $tab => $tab_value ) {
|
483 |
-
$
|
484 |
-
|
485 |
-
$active_class .= ' ' . $premium_class;
|
486 |
-
}
|
487 |
-
$active_class = apply_filters( 'yith_plugin_fw_panel_active_tab_class', $active_class, $current_tab, $tab );
|
488 |
-
|
489 |
-
$first_sub_tab = $this->get_first_sub_tab_key( $tab );
|
490 |
-
$sub_tab = ! ! $first_sub_tab ? $first_sub_tab : '';
|
491 |
-
$sub_tabs = $this->get_sub_tabs( $tab );
|
492 |
-
$url = $this->get_nav_url( $page, $tab, $sub_tab, $parent_page );
|
493 |
-
$icon = ( $current_tab !== $tab && $sub_tabs ) ? '<i class="yith-icon yith-icon-arrow_down"></i>' : '';
|
494 |
-
|
495 |
-
$tabs .= '<li class="yith-plugin-fw-tab-element">';
|
496 |
-
$tabs .= '<a class="nav-tab' . esc_attr( $active_class ) . '" href="' . esc_url( $url ) . '">' . wp_kses_post( $tab_value ) . $icon . '</a>';
|
497 |
-
|
498 |
-
if ( $current_tab !== $tab && $sub_tabs ) {
|
499 |
-
$tabs .= '<div class="nav-subtab-wrap"><ul class="nav-subtab">';
|
500 |
-
foreach ( $sub_tabs as $_key => $_tab ) {
|
501 |
-
$url = $this->get_nav_url( $page, $tab, $_key );
|
502 |
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
}
|
507 |
-
$tabs .= '</li>';
|
508 |
}
|
|
|
509 |
$tabs .= '</ul>';
|
510 |
?>
|
511 |
<h2 class="<?php echo esc_attr( $wrapper_class ); ?>">
|
@@ -515,6 +497,52 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
515 |
$this->print_sub_tabs_nav( $args );
|
516 |
}
|
517 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
518 |
/**
|
519 |
* Retrieve the Nav URL.
|
520 |
*
|
@@ -600,6 +628,10 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
600 |
if ( $custom_tab_options ) {
|
601 |
$this->print_custom_tab( $custom_tab_options );
|
602 |
|
|
|
|
|
|
|
|
|
603 |
return;
|
604 |
}
|
605 |
|
@@ -725,6 +757,64 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
725 |
include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/custom-tab.php';
|
726 |
}
|
727 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
728 |
/**
|
729 |
* Add sections and fields to setting panel.
|
730 |
* Read all options and show sections and fields.
|
@@ -735,9 +825,10 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
735 |
$yit_options = $this->get_main_array_options();
|
736 |
$option_key = $this->get_current_option_key();
|
737 |
|
738 |
-
if ( ! $option_key ) {
|
739 |
return;
|
740 |
}
|
|
|
741 |
foreach ( $yit_options[ $option_key ] as $section => $data ) {
|
742 |
add_settings_section( "yit_settings_{$option_key}_{$section}", $this->get_section_title( $section ), $this->get_section_description( $section ), 'yit' );
|
743 |
foreach ( $data as $option ) {
|
475 |
);
|
476 |
$args = wp_parse_args( $args, $defaults );
|
477 |
|
478 |
+
list ( $wrapper_class ) = yith_plugin_fw_extract( $args, 'wrapper_class' );
|
479 |
|
480 |
$tabs = '<ul class="yith-plugin-fw-tabs">';
|
481 |
|
482 |
foreach ( $this->settings['admin-tabs'] as $tab => $tab_value ) {
|
483 |
+
$tabs .= $this->get_tab_nav( $tab, $tab_value, $args );
|
484 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
|
486 |
+
// help tab.
|
487 |
+
if ( $this->has_help_tab() ) {
|
488 |
+
$tabs .= $this->get_tab_nav( 'help', _x( 'Help', 'Help tab name', 'yith-plugin-fw' ), $args );
|
|
|
|
|
489 |
}
|
490 |
+
|
491 |
$tabs .= '</ul>';
|
492 |
?>
|
493 |
<h2 class="<?php echo esc_attr( $wrapper_class ); ?>">
|
497 |
$this->print_sub_tabs_nav( $args );
|
498 |
}
|
499 |
|
500 |
+
/**
|
501 |
+
* Get HTML for single tab in tabs navigation
|
502 |
+
*
|
503 |
+
* @param string $tab_slug Tab slug.
|
504 |
+
* @param string $tab_name Tab name.
|
505 |
+
* @param array $args Nav Arguments.
|
506 |
+
*
|
507 |
+
* @return string Tab HTML
|
508 |
+
*
|
509 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
510 |
+
* @since 3.4.0
|
511 |
+
*/
|
512 |
+
protected function get_tab_nav( $tab_slug, $tab_name, $args = array() ) {
|
513 |
+
list ( $current_tab, $premium_class, $page, $parent_page ) = yith_plugin_fw_extract( $args, 'current_tab', 'premium_class', 'page', 'parent_page' );
|
514 |
+
|
515 |
+
$active_class = $current_tab === $tab_slug ? ' nav-tab-active' : '';
|
516 |
+
|
517 |
+
if ( 'premium' === $tab_slug ) {
|
518 |
+
$active_class .= ' ' . $premium_class;
|
519 |
+
}
|
520 |
+
$active_class = apply_filters( 'yith_plugin_fw_panel_active_tab_class', $active_class, $current_tab, $tab_slug );
|
521 |
+
|
522 |
+
$first_sub_tab = $this->get_first_sub_tab_key( $tab_slug );
|
523 |
+
$sub_tab = ! ! $first_sub_tab ? $first_sub_tab : '';
|
524 |
+
$sub_tabs = $this->get_sub_tabs( $tab_slug );
|
525 |
+
$url = $this->get_nav_url( $page, $tab_slug, $sub_tab, $parent_page );
|
526 |
+
$icon = ( $current_tab !== $tab_slug && $sub_tabs ) ? '<i class="yith-icon yith-icon-arrow_down"></i>' : '';
|
527 |
+
|
528 |
+
$tab = '<li class="yith-plugin-fw-tab-element">';
|
529 |
+
|
530 |
+
$tab .= '<a class="nav-tab' . esc_attr( $active_class ) . '" href="' . esc_url( $url ) . '">' . wp_kses_post( $tab_name ) . $icon . '</a>';
|
531 |
+
|
532 |
+
if ( $current_tab !== $tab_slug && $sub_tabs ) {
|
533 |
+
$tab .= '<div class="nav-subtab-wrap"><ul class="nav-subtab">';
|
534 |
+
foreach ( $sub_tabs as $_key => $_tab ) {
|
535 |
+
$url = $this->get_nav_url( $page, $tab_slug, $_key );
|
536 |
+
|
537 |
+
$tab .= '<li class="nav-subtab-item"><a href="' . esc_url( $url ) . '">' . wp_kses_post( $_tab['title'] ) . '</a></li>';
|
538 |
+
}
|
539 |
+
$tab .= '</ul></div>';
|
540 |
+
}
|
541 |
+
$tab .= '</li>';
|
542 |
+
|
543 |
+
return $tab;
|
544 |
+
}
|
545 |
+
|
546 |
/**
|
547 |
* Retrieve the Nav URL.
|
548 |
*
|
628 |
if ( $custom_tab_options ) {
|
629 |
$this->print_custom_tab( $custom_tab_options );
|
630 |
|
631 |
+
return;
|
632 |
+
} elseif ( $this->is_help_tab() ) {
|
633 |
+
$this->print_help_tab();
|
634 |
+
|
635 |
return;
|
636 |
}
|
637 |
|
757 |
include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/custom-tab.php';
|
758 |
}
|
759 |
|
760 |
+
/**
|
761 |
+
* Check if panel has help tab
|
762 |
+
*
|
763 |
+
* @return bool Whether panel has help tab or no.
|
764 |
+
*/
|
765 |
+
public function has_help_tab() {
|
766 |
+
return ! empty( $this->settings['help_tab'] ) && ( ! $this->is_free() || ! empty( $this->settings['help_tab']['show_on_free'] ) );
|
767 |
+
}
|
768 |
+
|
769 |
+
/**
|
770 |
+
* Checks whether current tab is special Help Tab
|
771 |
+
*
|
772 |
+
* @return bool Whether current tab is Help Tab
|
773 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
774 |
+
*/
|
775 |
+
public function is_help_tab() {
|
776 |
+
return 'help' === $this->get_current_tab();
|
777 |
+
}
|
778 |
+
|
779 |
+
/**
|
780 |
+
* Prints special Help Tab
|
781 |
+
*
|
782 |
+
* @return void
|
783 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
784 |
+
*/
|
785 |
+
public function print_help_tab() {
|
786 |
+
$options = isset( $this->settings['help_tab'] ) ? $this->settings['help_tab'] : array();
|
787 |
+
$plugin_title = isset( $this->settings['plugin_title'] ) ? $this->settings['plugin_title'] : $this->settings['page_title'];
|
788 |
+
|
789 |
+
if ( 0 !== strpos( $plugin_title, 'YITH' ) ) {
|
790 |
+
$plugin_title = "YITH {$plugin_title}";
|
791 |
+
}
|
792 |
+
|
793 |
+
// parse options.
|
794 |
+
$options = wp_parse_args(
|
795 |
+
$options,
|
796 |
+
array(
|
797 |
+
// translators: 1. Plugin name.
|
798 |
+
'title' => sprintf( _x( 'Thank you for purchasing %s!', 'Help tab default title', 'yith-plugin-fw' ), $plugin_title ),
|
799 |
+
'description' => _x( 'We want to help you to enjoy a wonderful experience with all our products.', 'Help tab default description', 'yith-plugin-fw' ),
|
800 |
+
'main_video' => false,
|
801 |
+
'playlists' => array(),
|
802 |
+
'hc_url' => 'https://support.yithemes.com/hc/',
|
803 |
+
'doc_url' => $this->settings['plugin_slug'] ? 'https://docs.yithemes.com/' . $this->settings['plugin_slug'] : '',
|
804 |
+
'submit_ticket_url' => 'https://yithemes.com/my-account/support/submit-a-ticket/',
|
805 |
+
'show_hc_articles' => true,
|
806 |
+
'show_submit_ticket' => true,
|
807 |
+
)
|
808 |
+
);
|
809 |
+
|
810 |
+
// set template variables.
|
811 |
+
$current_tab = $this->get_current_tab();
|
812 |
+
$current_sub_tab = $this->get_current_sub_tab();
|
813 |
+
$latest_articles = $this->settings['plugin_slug'] ? YIT_Help_Desk::get_latest_articles( $this->settings['plugin_slug'] ) : array();
|
814 |
+
|
815 |
+
include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/help-tab.php';
|
816 |
+
}
|
817 |
+
|
818 |
/**
|
819 |
* Add sections and fields to setting panel.
|
820 |
* Read all options and show sections and fields.
|
825 |
$yit_options = $this->get_main_array_options();
|
826 |
$option_key = $this->get_current_option_key();
|
827 |
|
828 |
+
if ( ! $option_key || ! isset( $yit_options[ $option_key ] ) ) {
|
829 |
return;
|
830 |
}
|
831 |
+
|
832 |
foreach ( $yit_options[ $option_key ] as $section => $data ) {
|
833 |
add_settings_section( "yit_settings_{$option_key}_{$section}", $this->get_section_title( $section ), $this->get_section_description( $section ), 'yit' );
|
834 |
foreach ( $data as $option ) {
|
@@ -1,13 +1,13 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Framework Name: YIT Plugin Framework
|
4 |
-
* Version: 3.7.
|
5 |
* Author: YITH
|
6 |
* Text Domain: yith-plugin-fw
|
7 |
* Domain Path: /languages/
|
8 |
*
|
9 |
* @author YITH
|
10 |
-
* @version 3.7.
|
11 |
* @package YITH\PluginFramework
|
12 |
*/
|
13 |
|
1 |
<?php
|
2 |
/**
|
3 |
* Framework Name: YIT Plugin Framework
|
4 |
+
* Version: 3.7.1
|
5 |
* Author: YITH
|
6 |
* Text Domain: yith-plugin-fw
|
7 |
* Domain Path: /languages/
|
8 |
*
|
9 |
* @author YITH
|
10 |
+
* @version 3.7.1
|
11 |
* @package YITH\PluginFramework
|
12 |
*/
|
13 |
|
Binary file
|
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
"PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
|
9 |
"Language: el_GR\n"
|
10 |
"MIME-Version: 1.0\n"
|
@@ -13,31 +13,58 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
msgid "Clear"
|
18 |
msgstr "Καθαρισμός"
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Clear color"
|
22 |
msgstr "Καθαρισμός χρώματος"
|
23 |
|
24 |
-
#: includes/class-yit-assets.php:
|
25 |
msgid "Default"
|
26 |
msgstr "Προεπιλεγμένο"
|
27 |
|
28 |
-
#: includes/class-yit-assets.php:
|
29 |
msgid "Select default color"
|
30 |
msgstr "Επιλογή προεπιλεγμένου χρώματος"
|
31 |
|
32 |
-
#: includes/class-yit-assets.php:
|
33 |
msgid "Select Color"
|
34 |
msgstr "Επιλογή Χρώματος"
|
35 |
|
36 |
-
#: includes/class-yit-assets.php:
|
37 |
msgid "Color value"
|
38 |
msgstr "Αξία χρώματος"
|
39 |
|
40 |
-
#: includes/class-yit-
|
|
|
|
|
|
|
|
|
41 |
msgid "The changes you have made will be lost if you leave this page."
|
42 |
msgstr ""
|
43 |
"Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
|
@@ -55,12 +82,12 @@ msgstr "Ρυθμίσεις"
|
|
55 |
msgid "How to install premium version"
|
56 |
msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
|
57 |
|
58 |
-
#: includes/class-yit-plugin-panel.php:
|
59 |
#: includes/class-yit-plugin-subpanel.php:132
|
60 |
msgid "Save Changes"
|
61 |
msgstr "Αποθήκευση Αλλαγών"
|
62 |
|
63 |
-
#: includes/class-yit-plugin-panel.php:
|
64 |
#: includes/class-yit-plugin-subpanel.php:136
|
65 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
66 |
msgid ""
|
@@ -69,73 +96,73 @@ msgstr ""
|
|
69 |
"Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
|
70 |
"σελίδα."
|
71 |
|
72 |
-
#: includes/class-yit-plugin-panel.php:
|
73 |
#: includes/class-yit-plugin-subpanel.php:136
|
74 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
75 |
msgid "Are you sure?"
|
76 |
msgstr "Είστε σίγουρος;"
|
77 |
|
78 |
-
#: includes/class-yit-plugin-panel.php:
|
79 |
#: includes/class-yit-plugin-subpanel.php:139
|
80 |
msgid "Reset to default"
|
81 |
msgstr "Επαναφορά σε προεπιλεγμένο"
|
82 |
|
83 |
-
#: includes/class-yit-plugin-panel.php:
|
84 |
msgid ""
|
85 |
"The element you have entered already exists. Please, enter another name."
|
86 |
msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
|
87 |
|
88 |
-
#: includes/class-yit-plugin-panel.php:
|
89 |
msgid "Settings saved"
|
90 |
msgstr "Ρυθμίσεις αποθηκεύτηκαν"
|
91 |
|
92 |
-
#: includes/class-yit-plugin-panel.php:
|
93 |
msgid "Settings reset"
|
94 |
msgstr "Επαναφορά ρυθμίσεων"
|
95 |
|
96 |
-
#: includes/class-yit-plugin-panel.php:
|
97 |
msgid "Element deleted correctly."
|
98 |
msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
|
99 |
|
100 |
-
#: includes/class-yit-plugin-panel.php:
|
101 |
-
#: includes/class-yit-plugin-panel.php:
|
102 |
msgid "Element updated correctly."
|
103 |
msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
|
104 |
|
105 |
-
#: includes/class-yit-plugin-panel.php:
|
106 |
msgid "Database imported correctly."
|
107 |
msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
|
108 |
|
109 |
-
#: includes/class-yit-plugin-panel.php:
|
110 |
msgid "An error has occurred during import. Please try again."
|
111 |
msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
|
112 |
|
113 |
-
#: includes/class-yit-plugin-panel.php:
|
114 |
msgid "The added file is not valid."
|
115 |
msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
|
116 |
|
117 |
-
#: includes/class-yit-plugin-panel.php:
|
118 |
msgid "Sorry, import is disabled."
|
119 |
msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
|
120 |
|
121 |
-
#: includes/class-yit-plugin-panel.php:
|
122 |
msgid "Sorting successful."
|
123 |
msgstr "Διαλογή επιτυχής."
|
124 |
|
125 |
-
#: includes/class-yit-plugin-panel.php:
|
126 |
msgid "We need your support"
|
127 |
msgstr "Χρειαζόμαστε την υποστήριξή σας"
|
128 |
|
129 |
-
#: includes/class-yit-plugin-panel.php:
|
130 |
msgid "to keep updating and improving the plugin. Please,"
|
131 |
msgstr ""
|
132 |
"για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
|
133 |
|
134 |
-
#: includes/class-yit-plugin-panel.php:
|
135 |
msgid "help us by leaving a good review"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: includes/class-yit-plugin-panel.php:
|
139 |
msgid ":) Thanks!"
|
140 |
msgstr ":) Ευχαριστώ!"
|
141 |
|
@@ -588,33 +615,20 @@ msgid "Plugins Requirements"
|
|
588 |
msgstr "Προϋποθέσεις Πρόσθετων"
|
589 |
|
590 |
#. translators: %s is the title of the post object.
|
591 |
-
#: yit-functions.php:
|
592 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
593 |
msgstr ""
|
594 |
|
595 |
#. translators: %s is the title of the post object.
|
596 |
-
#: yit-functions.php:
|
597 |
msgid "Are you sure you want to delete \"%s\"?"
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: yit-functions.php:
|
601 |
-
msgid ""
|
602 |
-
"This action cannot be undone and you will be not able to recover this data."
|
603 |
-
msgstr ""
|
604 |
-
|
605 |
-
#: yit-functions.php:1891
|
606 |
-
msgid "Confirm trash"
|
607 |
-
msgstr ""
|
608 |
-
|
609 |
-
#: yit-functions.php:1908 yit-functions.php:2035
|
610 |
-
msgid "Confirm delete"
|
611 |
-
msgstr ""
|
612 |
-
|
613 |
-
#: yit-functions.php:1921 yit-functions.php:1929 yit-functions.php:2046
|
614 |
msgid "Further actions"
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: yit-plugin.php:
|
618 |
msgid "License"
|
619 |
msgstr "Άδεια χρήσης προϊόντος"
|
620 |
|
@@ -633,16 +647,48 @@ msgctxt "[gutenberg]: Category Name"
|
|
633 |
msgid "YITH"
|
634 |
msgstr "YITH"
|
635 |
|
636 |
-
#: includes/class-yit-assets.php:
|
637 |
msgctxt "Button text"
|
638 |
msgid "Confirm"
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: includes/class-yit-assets.php:
|
642 |
msgctxt "Button text"
|
643 |
msgid "Cancel"
|
644 |
msgstr ""
|
645 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
646 |
#: includes/class-yith-dashboard.php:96
|
647 |
msgctxt "Plugin FW"
|
648 |
msgid "View Changelog"
|
@@ -747,92 +793,152 @@ msgctxt "YES/NO button: use MAX 4 characters!"
|
|
747 |
msgid "NO"
|
748 |
msgstr "ΟΧΙ"
|
749 |
|
750 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
751 |
msgctxt "Post action"
|
752 |
msgid "Preview"
|
753 |
msgstr ""
|
754 |
|
755 |
-
#: yit-functions.php:
|
756 |
msgctxt "Post action"
|
757 |
msgid "View"
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: yit-functions.php:
|
761 |
msgctxt "Post action"
|
762 |
msgid "Edit"
|
763 |
msgstr ""
|
764 |
|
765 |
-
#: yit-functions.php:
|
766 |
msgctxt "Post action"
|
767 |
msgid "Duplicate"
|
768 |
msgstr ""
|
769 |
|
770 |
-
#: yit-functions.php:
|
771 |
msgctxt "Post action"
|
772 |
msgid "Restore"
|
773 |
msgstr ""
|
774 |
|
775 |
-
#: yit-functions.php:
|
776 |
msgctxt "Post action"
|
777 |
msgid "Trash"
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: yit-functions.php:
|
781 |
msgctxt "Post action"
|
782 |
msgid "Delete Permanently"
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: yit-functions.php:
|
786 |
-
msgctxt "Trash confirmation action"
|
787 |
-
msgid "Yes, trash"
|
788 |
-
msgstr ""
|
789 |
-
|
790 |
-
#: yit-functions.php:1910 yit-functions.php:2037
|
791 |
-
msgctxt "Delete confirmation action"
|
792 |
-
msgid "Yes, delete"
|
793 |
-
msgstr ""
|
794 |
-
|
795 |
-
#: yit-functions.php:1997
|
796 |
msgctxt "Term action"
|
797 |
msgid "View"
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: yit-functions.php:
|
801 |
msgctxt "Term action"
|
802 |
msgid "Edit"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: yit-functions.php:
|
806 |
msgctxt "Term action"
|
807 |
msgid "Duplicate"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: yit-functions.php:
|
811 |
msgctxt "Term action"
|
812 |
msgid "Delete"
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: yit-plugin.php:
|
816 |
msgctxt "Plugin Row Meta"
|
817 |
msgid "Live Demo"
|
818 |
msgstr "Live Demo"
|
819 |
|
820 |
-
#: yit-plugin.php:
|
821 |
msgctxt "Plugin Row Meta"
|
822 |
msgid "Documentation"
|
823 |
msgstr "Εγχειρίδιο χρήσης"
|
824 |
|
825 |
-
#: yit-plugin.php:
|
826 |
msgctxt "Plugin Row Meta"
|
827 |
msgid "Support"
|
828 |
msgstr "Υποστήριξη"
|
829 |
|
830 |
-
#: yit-plugin.php:
|
831 |
msgctxt "Plugin Row Meta"
|
832 |
msgid "Premium version"
|
833 |
msgstr "Premium έκδοση"
|
834 |
|
835 |
-
#: yit-plugin.php:
|
836 |
msgctxt "Action links"
|
837 |
msgid "Settings"
|
838 |
msgstr "Ρυθμίσεις"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2021-06-08 13:48:44+00:00\n"
|
8 |
"PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
|
9 |
"Language: el_GR\n"
|
10 |
"MIME-Version: 1.0\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:145 yit-functions.php:1925
|
17 |
+
msgid "Confirm trash"
|
18 |
+
msgstr ""
|
19 |
+
|
20 |
+
#: includes/class-yit-assets.php:146
|
21 |
+
msgid "Are you sure you want to trash the selected items?"
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:1942
|
25 |
+
#: yit-functions.php:2069
|
26 |
+
msgid "Confirm delete"
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#: includes/class-yit-assets.php:149
|
30 |
+
msgid "Are you sure you want to delete the selected items?"
|
31 |
+
msgstr ""
|
32 |
+
|
33 |
+
#: includes/class-yit-assets.php:149 yit-functions.php:1859
|
34 |
+
#: yit-functions.php:2017
|
35 |
+
msgid ""
|
36 |
+
"This action cannot be undone and you will not be able to recover this data."
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: includes/class-yit-assets.php:161
|
40 |
msgid "Clear"
|
41 |
msgstr "Καθαρισμός"
|
42 |
|
43 |
+
#: includes/class-yit-assets.php:162
|
44 |
msgid "Clear color"
|
45 |
msgstr "Καθαρισμός χρώματος"
|
46 |
|
47 |
+
#: includes/class-yit-assets.php:163
|
48 |
msgid "Default"
|
49 |
msgstr "Προεπιλεγμένο"
|
50 |
|
51 |
+
#: includes/class-yit-assets.php:164
|
52 |
msgid "Select default color"
|
53 |
msgstr "Επιλογή προεπιλεγμένου χρώματος"
|
54 |
|
55 |
+
#: includes/class-yit-assets.php:165
|
56 |
msgid "Select Color"
|
57 |
msgstr "Επιλογή Χρώματος"
|
58 |
|
59 |
+
#: includes/class-yit-assets.php:166
|
60 |
msgid "Color value"
|
61 |
msgstr "Αξία χρώματος"
|
62 |
|
63 |
+
#: includes/class-yit-help-desk.php:152
|
64 |
+
msgid "There was an error with your request; please try again later."
|
65 |
+
msgstr ""
|
66 |
+
|
67 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:423
|
68 |
msgid "The changes you have made will be lost if you leave this page."
|
69 |
msgstr ""
|
70 |
"Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
|
82 |
msgid "How to install premium version"
|
83 |
msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
|
84 |
|
85 |
+
#: includes/class-yit-plugin-panel.php:651
|
86 |
#: includes/class-yit-plugin-subpanel.php:132
|
87 |
msgid "Save Changes"
|
88 |
msgstr "Αποθήκευση Αλλαγών"
|
89 |
|
90 |
+
#: includes/class-yit-plugin-panel.php:656
|
91 |
#: includes/class-yit-plugin-subpanel.php:136
|
92 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
93 |
msgid ""
|
96 |
"Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
|
97 |
"σελίδα."
|
98 |
|
99 |
+
#: includes/class-yit-plugin-panel.php:656
|
100 |
#: includes/class-yit-plugin-subpanel.php:136
|
101 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
102 |
msgid "Are you sure?"
|
103 |
msgstr "Είστε σίγουρος;"
|
104 |
|
105 |
+
#: includes/class-yit-plugin-panel.php:660
|
106 |
#: includes/class-yit-plugin-subpanel.php:139
|
107 |
msgid "Reset to default"
|
108 |
msgstr "Επαναφορά σε προεπιλεγμένο"
|
109 |
|
110 |
+
#: includes/class-yit-plugin-panel.php:958
|
111 |
msgid ""
|
112 |
"The element you have entered already exists. Please, enter another name."
|
113 |
msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
|
114 |
|
115 |
+
#: includes/class-yit-plugin-panel.php:959
|
116 |
msgid "Settings saved"
|
117 |
msgstr "Ρυθμίσεις αποθηκεύτηκαν"
|
118 |
|
119 |
+
#: includes/class-yit-plugin-panel.php:960
|
120 |
msgid "Settings reset"
|
121 |
msgstr "Επαναφορά ρυθμίσεων"
|
122 |
|
123 |
+
#: includes/class-yit-plugin-panel.php:961
|
124 |
msgid "Element deleted correctly."
|
125 |
msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
|
126 |
|
127 |
+
#: includes/class-yit-plugin-panel.php:962
|
128 |
+
#: includes/class-yit-plugin-panel.php:963
|
129 |
msgid "Element updated correctly."
|
130 |
msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
|
131 |
|
132 |
+
#: includes/class-yit-plugin-panel.php:964
|
133 |
msgid "Database imported correctly."
|
134 |
msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
|
135 |
|
136 |
+
#: includes/class-yit-plugin-panel.php:965
|
137 |
msgid "An error has occurred during import. Please try again."
|
138 |
msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
|
139 |
|
140 |
+
#: includes/class-yit-plugin-panel.php:966
|
141 |
msgid "The added file is not valid."
|
142 |
msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
|
143 |
|
144 |
+
#: includes/class-yit-plugin-panel.php:967
|
145 |
msgid "Sorry, import is disabled."
|
146 |
msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
|
147 |
|
148 |
+
#: includes/class-yit-plugin-panel.php:968
|
149 |
msgid "Sorting successful."
|
150 |
msgstr "Διαλογή επιτυχής."
|
151 |
|
152 |
+
#: includes/class-yit-plugin-panel.php:1436
|
153 |
msgid "We need your support"
|
154 |
msgstr "Χρειαζόμαστε την υποστήριξή σας"
|
155 |
|
156 |
+
#: includes/class-yit-plugin-panel.php:1437
|
157 |
msgid "to keep updating and improving the plugin. Please,"
|
158 |
msgstr ""
|
159 |
"για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
|
160 |
|
161 |
+
#: includes/class-yit-plugin-panel.php:1439
|
162 |
msgid "help us by leaving a good review"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: includes/class-yit-plugin-panel.php:1440
|
166 |
msgid ":) Thanks!"
|
167 |
msgstr ":) Ευχαριστώ!"
|
168 |
|
615 |
msgstr "Προϋποθέσεις Πρόσθετων"
|
616 |
|
617 |
#. translators: %s is the title of the post object.
|
618 |
+
#: yit-functions.php:1857
|
619 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
620 |
msgstr ""
|
621 |
|
622 |
#. translators: %s is the title of the post object.
|
623 |
+
#: yit-functions.php:1859 yit-functions.php:2017
|
624 |
msgid "Are you sure you want to delete \"%s\"?"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: yit-functions.php:1955 yit-functions.php:1963 yit-functions.php:2080
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
628 |
msgid "Further actions"
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: yit-plugin.php:204
|
632 |
msgid "License"
|
633 |
msgstr "Άδεια χρήσης προϊόντος"
|
634 |
|
647 |
msgid "YITH"
|
648 |
msgstr "YITH"
|
649 |
|
650 |
+
#: includes/class-yit-assets.php:133
|
651 |
msgctxt "Button text"
|
652 |
msgid "Confirm"
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: includes/class-yit-assets.php:134
|
656 |
msgctxt "Button text"
|
657 |
msgid "Cancel"
|
658 |
msgstr ""
|
659 |
|
660 |
+
#: includes/class-yit-assets.php:147 yit-functions.php:1927
|
661 |
+
msgctxt "Trash confirmation action"
|
662 |
+
msgid "Yes, move to trash"
|
663 |
+
msgstr ""
|
664 |
+
|
665 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:1944
|
666 |
+
msgctxt "Delete confirmation action"
|
667 |
+
msgid "Yes, delete permanently"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: yit-functions.php:2071
|
671 |
+
msgctxt "Delete confirmation action"
|
672 |
+
msgid "Yes, delete"
|
673 |
+
msgstr ""
|
674 |
+
|
675 |
+
#: includes/class-yit-plugin-panel.php:488
|
676 |
+
msgctxt "Help tab name"
|
677 |
+
msgid "Help"
|
678 |
+
msgstr ""
|
679 |
+
|
680 |
+
#. translators: 1. Plugin name.
|
681 |
+
#: includes/class-yit-plugin-panel.php:797
|
682 |
+
msgctxt "Help tab default title"
|
683 |
+
msgid "Thank you for purchasing %s!"
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: includes/class-yit-plugin-panel.php:798
|
687 |
+
msgctxt "Help tab default description"
|
688 |
+
msgid ""
|
689 |
+
"We want to help you to enjoy a wonderful experience with all our products."
|
690 |
+
msgstr ""
|
691 |
+
|
692 |
#: includes/class-yith-dashboard.php:96
|
693 |
msgctxt "Plugin FW"
|
694 |
msgid "View Changelog"
|
793 |
msgid "NO"
|
794 |
msgstr "ΟΧΙ"
|
795 |
|
796 |
+
#. translators: 1. Url to EN playlist.
|
797 |
+
#: templates/panel/help-tab.php:87
|
798 |
+
msgctxt "Help tab view all video link"
|
799 |
+
msgid ""
|
800 |
+
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
|
801 |
+
"learn more >"
|
802 |
+
msgstr ""
|
803 |
+
|
804 |
+
#: templates/panel/help-tab.php:94
|
805 |
+
msgctxt "Help tab Watch Videotutorials link"
|
806 |
+
msgid "Videos are also available in:"
|
807 |
+
msgstr ""
|
808 |
+
|
809 |
+
#: templates/panel/help-tab.php:137
|
810 |
+
msgctxt "Help tab Watch Videotutorials link"
|
811 |
+
msgid "Watch our videotutorials"
|
812 |
+
msgstr ""
|
813 |
+
|
814 |
+
#: templates/panel/help-tab.php:140
|
815 |
+
msgctxt "Help tab Watch Videotutorials link"
|
816 |
+
msgid "We show you some use cases"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: templates/panel/help-tab.php:124
|
820 |
+
msgctxt "Help tab Read Documentation link"
|
821 |
+
msgid "Read the documentation"
|
822 |
+
msgstr ""
|
823 |
+
|
824 |
+
#: templates/panel/help-tab.php:127
|
825 |
+
msgctxt "Help tab Read Documentation link"
|
826 |
+
msgid "to learn from basics how it works"
|
827 |
+
msgstr ""
|
828 |
+
|
829 |
+
#: templates/panel/help-tab.php:150
|
830 |
+
msgctxt "Help tab view FAQs link"
|
831 |
+
msgid "Check the FAQs"
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: templates/panel/help-tab.php:153
|
835 |
+
msgctxt "Help tab view FAQs link"
|
836 |
+
msgid "to find answers to your doubts"
|
837 |
+
msgstr ""
|
838 |
+
|
839 |
+
#: templates/panel/help-tab.php:169
|
840 |
+
msgctxt "Help tab FAQ title"
|
841 |
+
msgid "Last FAQs in our Help Center"
|
842 |
+
msgstr ""
|
843 |
+
|
844 |
+
#: templates/panel/help-tab.php:183
|
845 |
+
msgctxt "Help tab FAQ link"
|
846 |
+
msgid "View all FAQs >"
|
847 |
+
msgstr ""
|
848 |
+
|
849 |
+
#: templates/panel/help-tab.php:192
|
850 |
+
msgctxt "Help tab submit ticket title"
|
851 |
+
msgid "Need help?"
|
852 |
+
msgstr ""
|
853 |
+
|
854 |
+
#: templates/panel/help-tab.php:195
|
855 |
+
msgctxt "Help tab submit ticket description"
|
856 |
+
msgid ""
|
857 |
+
"If you are experiencing some technical issue ask help to our developers. "
|
858 |
+
"Submit a ticket in our support desk and we will help you as soon as possible."
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: templates/panel/help-tab.php:203
|
862 |
+
msgctxt "Help tab submit ticket button"
|
863 |
+
msgid "Submit a ticket"
|
864 |
+
msgstr ""
|
865 |
+
|
866 |
+
#: yit-functions.php:1871
|
867 |
msgctxt "Post action"
|
868 |
msgid "Preview"
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: yit-functions.php:1880
|
872 |
msgctxt "Post action"
|
873 |
msgid "View"
|
874 |
msgstr ""
|
875 |
|
876 |
+
#: yit-functions.php:1891
|
877 |
msgctxt "Post action"
|
878 |
msgid "Edit"
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: yit-functions.php:1899
|
882 |
msgctxt "Post action"
|
883 |
msgid "Duplicate"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: yit-functions.php:1911
|
887 |
msgctxt "Post action"
|
888 |
msgid "Restore"
|
889 |
msgstr ""
|
890 |
|
891 |
+
#: yit-functions.php:1919
|
892 |
msgctxt "Post action"
|
893 |
msgid "Trash"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: yit-functions.php:1935
|
897 |
msgctxt "Post action"
|
898 |
msgid "Delete Permanently"
|
899 |
msgstr ""
|
900 |
|
901 |
+
#: yit-functions.php:2031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
902 |
msgctxt "Term action"
|
903 |
msgid "View"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: yit-functions.php:2041
|
907 |
msgctxt "Term action"
|
908 |
msgid "Edit"
|
909 |
msgstr ""
|
910 |
|
911 |
+
#: yit-functions.php:2049
|
912 |
msgctxt "Term action"
|
913 |
msgid "Duplicate"
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: yit-functions.php:2062
|
917 |
msgctxt "Term action"
|
918 |
msgid "Delete"
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: yit-plugin.php:85
|
922 |
msgctxt "Plugin Row Meta"
|
923 |
msgid "Live Demo"
|
924 |
msgstr "Live Demo"
|
925 |
|
926 |
+
#: yit-plugin.php:89
|
927 |
msgctxt "Plugin Row Meta"
|
928 |
msgid "Documentation"
|
929 |
msgstr "Εγχειρίδιο χρήσης"
|
930 |
|
931 |
+
#: yit-plugin.php:93
|
932 |
msgctxt "Plugin Row Meta"
|
933 |
msgid "Support"
|
934 |
msgstr "Υποστήριξη"
|
935 |
|
936 |
+
#: yit-plugin.php:97
|
937 |
msgctxt "Plugin Row Meta"
|
938 |
msgid "Premium version"
|
939 |
msgstr "Premium έκδοση"
|
940 |
|
941 |
+
#: yit-plugin.php:200
|
942 |
msgctxt "Action links"
|
943 |
msgid "Settings"
|
944 |
msgstr "Ρυθμίσεις"
|
Binary file
|
@@ -4,8 +4,8 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
-
"PO-Revision-Date: 2021-
|
9 |
"Language: es\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -13,31 +13,60 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
msgid "Clear"
|
18 |
msgstr "Borrar"
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Clear color"
|
22 |
msgstr "Borrar color"
|
23 |
|
24 |
-
#: includes/class-yit-assets.php:
|
25 |
msgid "Default"
|
26 |
msgstr "Predeterminado"
|
27 |
|
28 |
-
#: includes/class-yit-assets.php:
|
29 |
msgid "Select default color"
|
30 |
msgstr "Seleccionar color predeterminado"
|
31 |
|
32 |
-
#: includes/class-yit-assets.php:
|
33 |
msgid "Select Color"
|
34 |
msgstr "Seleccionar color"
|
35 |
|
36 |
-
#: includes/class-yit-assets.php:
|
37 |
msgid "Color value"
|
38 |
msgstr "Valor del color"
|
39 |
|
40 |
-
#: includes/class-yit-
|
|
|
|
|
|
|
|
|
|
|
41 |
msgid "The changes you have made will be lost if you leave this page."
|
42 |
msgstr "Los cambios que has hecho se perderán si abandonas esta página."
|
43 |
|
@@ -54,12 +83,12 @@ msgstr "Ajustes"
|
|
54 |
msgid "How to install premium version"
|
55 |
msgstr "Cómo instalar la versión premium"
|
56 |
|
57 |
-
#: includes/class-yit-plugin-panel.php:
|
58 |
#: includes/class-yit-plugin-subpanel.php:132
|
59 |
msgid "Save Changes"
|
60 |
msgstr "Guardar cambios"
|
61 |
|
62 |
-
#: includes/class-yit-plugin-panel.php:
|
63 |
#: includes/class-yit-plugin-subpanel.php:136
|
64 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
65 |
msgid ""
|
@@ -68,74 +97,74 @@ msgstr ""
|
|
68 |
"Si continúas con esta acción, restablecerás todas las opciones en esta "
|
69 |
"página."
|
70 |
|
71 |
-
#: includes/class-yit-plugin-panel.php:
|
72 |
#: includes/class-yit-plugin-subpanel.php:136
|
73 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
74 |
msgid "Are you sure?"
|
75 |
msgstr "¿Estás seguro?"
|
76 |
|
77 |
-
#: includes/class-yit-plugin-panel.php:
|
78 |
#: includes/class-yit-plugin-subpanel.php:139
|
79 |
msgid "Reset to default"
|
80 |
msgstr "Restablecer valores predeterminados"
|
81 |
|
82 |
-
#: includes/class-yit-plugin-panel.php:
|
83 |
msgid ""
|
84 |
"The element you have entered already exists. Please, enter another name."
|
85 |
msgstr ""
|
86 |
"El elemento que has introducido ya existe. Por favor, introduce otro nombre."
|
87 |
|
88 |
-
#: includes/class-yit-plugin-panel.php:
|
89 |
msgid "Settings saved"
|
90 |
msgstr "Ajustes guardados"
|
91 |
|
92 |
-
#: includes/class-yit-plugin-panel.php:
|
93 |
msgid "Settings reset"
|
94 |
msgstr "Restablecer ajustes"
|
95 |
|
96 |
-
#: includes/class-yit-plugin-panel.php:
|
97 |
msgid "Element deleted correctly."
|
98 |
msgstr "Elemento eliminado correctamente."
|
99 |
|
100 |
-
#: includes/class-yit-plugin-panel.php:
|
101 |
-
#: includes/class-yit-plugin-panel.php:
|
102 |
msgid "Element updated correctly."
|
103 |
msgstr "Elemento actualizado correctamente."
|
104 |
|
105 |
-
#: includes/class-yit-plugin-panel.php:
|
106 |
msgid "Database imported correctly."
|
107 |
msgstr "Base de datos importada correctamente."
|
108 |
|
109 |
-
#: includes/class-yit-plugin-panel.php:
|
110 |
msgid "An error has occurred during import. Please try again."
|
111 |
msgstr ""
|
112 |
"Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
|
113 |
|
114 |
-
#: includes/class-yit-plugin-panel.php:
|
115 |
msgid "The added file is not valid."
|
116 |
msgstr "El archivo añadido no es válido."
|
117 |
|
118 |
-
#: includes/class-yit-plugin-panel.php:
|
119 |
msgid "Sorry, import is disabled."
|
120 |
msgstr "Lo siento, la importación está desactivada."
|
121 |
|
122 |
-
#: includes/class-yit-plugin-panel.php:
|
123 |
msgid "Sorting successful."
|
124 |
msgstr "Clasificación realizada con éxito"
|
125 |
|
126 |
-
#: includes/class-yit-plugin-panel.php:
|
127 |
msgid "We need your support"
|
128 |
msgstr "Necesitamos tu apoyo"
|
129 |
|
130 |
-
#: includes/class-yit-plugin-panel.php:
|
131 |
msgid "to keep updating and improving the plugin. Please,"
|
132 |
msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"
|
133 |
|
134 |
-
#: includes/class-yit-plugin-panel.php:
|
135 |
msgid "help us by leaving a good review"
|
136 |
msgstr "ayúdanos dejando una buena valoración"
|
137 |
|
138 |
-
#: includes/class-yit-plugin-panel.php:
|
139 |
msgid ":) Thanks!"
|
140 |
msgstr ":) ¡Gracias!"
|
141 |
|
@@ -551,7 +580,7 @@ msgid ""
|
|
551 |
"file of your installation"
|
552 |
msgstr ""
|
553 |
"No hay archivo de registro disponible. Activa la depuración de WordPress "
|
554 |
-
"añadiendo
|
555 |
|
556 |
#: templates/sysinfo/tabs/error-log.php:105
|
557 |
msgid "Copied!"
|
@@ -594,33 +623,20 @@ msgid "Plugins Requirements"
|
|
594 |
msgstr "Requerimientos de los plugins"
|
595 |
|
596 |
#. translators: %s is the title of the post object.
|
597 |
-
#: yit-functions.php:
|
598 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
599 |
msgstr "¿Estás seguro de que quieres mover \"%s\" a la papelera?"
|
600 |
|
601 |
#. translators: %s is the title of the post object.
|
602 |
-
#: yit-functions.php:
|
603 |
msgid "Are you sure you want to delete \"%s\"?"
|
604 |
msgstr "¿Estás seguro de que quieres borrar \"%s\"?"
|
605 |
|
606 |
-
#: yit-functions.php:
|
607 |
-
msgid ""
|
608 |
-
"This action cannot be undone and you will be not able to recover this data."
|
609 |
-
msgstr "Esta acción no se puede revertir y no podrá recuperar estos datos."
|
610 |
-
|
611 |
-
#: yit-functions.php:1891
|
612 |
-
msgid "Confirm trash"
|
613 |
-
msgstr "Confirmar el traslado a la papelera"
|
614 |
-
|
615 |
-
#: yit-functions.php:1908 yit-functions.php:2035
|
616 |
-
msgid "Confirm delete"
|
617 |
-
msgstr "Confirmar el borrado"
|
618 |
-
|
619 |
-
#: yit-functions.php:1921 yit-functions.php:1929 yit-functions.php:2046
|
620 |
msgid "Further actions"
|
621 |
msgstr "Otras acciones"
|
622 |
|
623 |
-
#: yit-plugin.php:
|
624 |
msgid "License"
|
625 |
msgstr "Licencia"
|
626 |
|
@@ -639,16 +655,50 @@ msgctxt "[gutenberg]: Category Name"
|
|
639 |
msgid "YITH"
|
640 |
msgstr "YITH"
|
641 |
|
642 |
-
#: includes/class-yit-assets.php:
|
643 |
msgctxt "Button text"
|
644 |
msgid "Confirm"
|
645 |
msgstr "Confirmar"
|
646 |
|
647 |
-
#: includes/class-yit-assets.php:
|
648 |
msgctxt "Button text"
|
649 |
msgid "Cancel"
|
650 |
msgstr "Cancelar"
|
651 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
652 |
#: includes/class-yith-dashboard.php:96
|
653 |
msgctxt "Plugin FW"
|
654 |
msgid "View Changelog"
|
@@ -751,92 +801,156 @@ msgctxt "YES/NO button: use MAX 4 characters!"
|
|
751 |
msgid "NO"
|
752 |
msgstr "NO"
|
753 |
|
754 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
755 |
msgctxt "Post action"
|
756 |
msgid "Preview"
|
757 |
msgstr "Previsualizar"
|
758 |
|
759 |
-
#: yit-functions.php:
|
760 |
msgctxt "Post action"
|
761 |
msgid "View"
|
762 |
msgstr "Ver"
|
763 |
|
764 |
-
#: yit-functions.php:
|
765 |
msgctxt "Post action"
|
766 |
msgid "Edit"
|
767 |
msgstr "Editar"
|
768 |
|
769 |
-
#: yit-functions.php:
|
770 |
msgctxt "Post action"
|
771 |
msgid "Duplicate"
|
772 |
msgstr "Duplicar"
|
773 |
|
774 |
-
#: yit-functions.php:
|
775 |
msgctxt "Post action"
|
776 |
msgid "Restore"
|
777 |
msgstr "Restaurar"
|
778 |
|
779 |
-
#: yit-functions.php:
|
780 |
msgctxt "Post action"
|
781 |
msgid "Trash"
|
782 |
msgstr "A la papelera"
|
783 |
|
784 |
-
#: yit-functions.php:
|
785 |
msgctxt "Post action"
|
786 |
msgid "Delete Permanently"
|
787 |
msgstr "Borrar permanentemente"
|
788 |
|
789 |
-
#: yit-functions.php:
|
790 |
-
msgctxt "Trash confirmation action"
|
791 |
-
msgid "Yes, trash"
|
792 |
-
msgstr "Si, a la papelera"
|
793 |
-
|
794 |
-
#: yit-functions.php:1910 yit-functions.php:2037
|
795 |
-
msgctxt "Delete confirmation action"
|
796 |
-
msgid "Yes, delete"
|
797 |
-
msgstr "Si, borrar"
|
798 |
-
|
799 |
-
#: yit-functions.php:1997
|
800 |
msgctxt "Term action"
|
801 |
msgid "View"
|
802 |
msgstr "Ver"
|
803 |
|
804 |
-
#: yit-functions.php:
|
805 |
msgctxt "Term action"
|
806 |
msgid "Edit"
|
807 |
msgstr "Editar"
|
808 |
|
809 |
-
#: yit-functions.php:
|
810 |
msgctxt "Term action"
|
811 |
msgid "Duplicate"
|
812 |
msgstr "Duplicar"
|
813 |
|
814 |
-
#: yit-functions.php:
|
815 |
msgctxt "Term action"
|
816 |
msgid "Delete"
|
817 |
msgstr "Borrar"
|
818 |
|
819 |
-
#: yit-plugin.php:
|
820 |
msgctxt "Plugin Row Meta"
|
821 |
msgid "Live Demo"
|
822 |
msgstr "Demostración en vivo"
|
823 |
|
824 |
-
#: yit-plugin.php:
|
825 |
msgctxt "Plugin Row Meta"
|
826 |
msgid "Documentation"
|
827 |
msgstr "Documentación"
|
828 |
|
829 |
-
#: yit-plugin.php:
|
830 |
msgctxt "Plugin Row Meta"
|
831 |
msgid "Support"
|
832 |
msgstr "Soporte"
|
833 |
|
834 |
-
#: yit-plugin.php:
|
835 |
msgctxt "Plugin Row Meta"
|
836 |
msgid "Premium version"
|
837 |
msgstr "Versión premium"
|
838 |
|
839 |
-
#: yit-plugin.php:
|
840 |
msgctxt "Action links"
|
841 |
msgid "Settings"
|
842 |
msgstr "Ajustes"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2021-06-08 13:48:44+00:00\n"
|
8 |
+
"PO-Revision-Date: 2021-06-08 11:44:05+0000\n"
|
9 |
"Language: es\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:145 yit-functions.php:1925
|
17 |
+
msgid "Confirm trash"
|
18 |
+
msgstr "Confirmar el traslado a la papelera"
|
19 |
+
|
20 |
+
#: includes/class-yit-assets.php:146
|
21 |
+
msgid "Are you sure you want to trash the selected items?"
|
22 |
+
msgstr ""
|
23 |
+
"¿Estás seguro de que quieres mover a la papelera los elementos seleccionados?"
|
24 |
+
|
25 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:1942
|
26 |
+
#: yit-functions.php:2069
|
27 |
+
msgid "Confirm delete"
|
28 |
+
msgstr "Confirmar el borrado"
|
29 |
+
|
30 |
+
#: includes/class-yit-assets.php:149
|
31 |
+
msgid "Are you sure you want to delete the selected items?"
|
32 |
+
msgstr "¿Estás seguro de que quieres borrar los elementos seleccionados?"
|
33 |
+
|
34 |
+
#: includes/class-yit-assets.php:149 yit-functions.php:1859
|
35 |
+
#: yit-functions.php:2017
|
36 |
+
msgid ""
|
37 |
+
"This action cannot be undone and you will not be able to recover this data."
|
38 |
+
msgstr "Esta acción no se puede revertir y no podrá recuperar estos datos."
|
39 |
+
|
40 |
+
#: includes/class-yit-assets.php:161
|
41 |
msgid "Clear"
|
42 |
msgstr "Borrar"
|
43 |
|
44 |
+
#: includes/class-yit-assets.php:162
|
45 |
msgid "Clear color"
|
46 |
msgstr "Borrar color"
|
47 |
|
48 |
+
#: includes/class-yit-assets.php:163
|
49 |
msgid "Default"
|
50 |
msgstr "Predeterminado"
|
51 |
|
52 |
+
#: includes/class-yit-assets.php:164
|
53 |
msgid "Select default color"
|
54 |
msgstr "Seleccionar color predeterminado"
|
55 |
|
56 |
+
#: includes/class-yit-assets.php:165
|
57 |
msgid "Select Color"
|
58 |
msgstr "Seleccionar color"
|
59 |
|
60 |
+
#: includes/class-yit-assets.php:166
|
61 |
msgid "Color value"
|
62 |
msgstr "Valor del color"
|
63 |
|
64 |
+
#: includes/class-yit-help-desk.php:152
|
65 |
+
msgid "There was an error with your request; please try again later."
|
66 |
+
msgstr ""
|
67 |
+
"Se ha producido un error en tu solicitud; inténtalo de nuevo más tarde."
|
68 |
+
|
69 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:423
|
70 |
msgid "The changes you have made will be lost if you leave this page."
|
71 |
msgstr "Los cambios que has hecho se perderán si abandonas esta página."
|
72 |
|
83 |
msgid "How to install premium version"
|
84 |
msgstr "Cómo instalar la versión premium"
|
85 |
|
86 |
+
#: includes/class-yit-plugin-panel.php:651
|
87 |
#: includes/class-yit-plugin-subpanel.php:132
|
88 |
msgid "Save Changes"
|
89 |
msgstr "Guardar cambios"
|
90 |
|
91 |
+
#: includes/class-yit-plugin-panel.php:656
|
92 |
#: includes/class-yit-plugin-subpanel.php:136
|
93 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
94 |
msgid ""
|
97 |
"Si continúas con esta acción, restablecerás todas las opciones en esta "
|
98 |
"página."
|
99 |
|
100 |
+
#: includes/class-yit-plugin-panel.php:656
|
101 |
#: includes/class-yit-plugin-subpanel.php:136
|
102 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
103 |
msgid "Are you sure?"
|
104 |
msgstr "¿Estás seguro?"
|
105 |
|
106 |
+
#: includes/class-yit-plugin-panel.php:660
|
107 |
#: includes/class-yit-plugin-subpanel.php:139
|
108 |
msgid "Reset to default"
|
109 |
msgstr "Restablecer valores predeterminados"
|
110 |
|
111 |
+
#: includes/class-yit-plugin-panel.php:958
|
112 |
msgid ""
|
113 |
"The element you have entered already exists. Please, enter another name."
|
114 |
msgstr ""
|
115 |
"El elemento que has introducido ya existe. Por favor, introduce otro nombre."
|
116 |
|
117 |
+
#: includes/class-yit-plugin-panel.php:959
|
118 |
msgid "Settings saved"
|
119 |
msgstr "Ajustes guardados"
|
120 |
|
121 |
+
#: includes/class-yit-plugin-panel.php:960
|
122 |
msgid "Settings reset"
|
123 |
msgstr "Restablecer ajustes"
|
124 |
|
125 |
+
#: includes/class-yit-plugin-panel.php:961
|
126 |
msgid "Element deleted correctly."
|
127 |
msgstr "Elemento eliminado correctamente."
|
128 |
|
129 |
+
#: includes/class-yit-plugin-panel.php:962
|
130 |
+
#: includes/class-yit-plugin-panel.php:963
|
131 |
msgid "Element updated correctly."
|
132 |
msgstr "Elemento actualizado correctamente."
|
133 |
|
134 |
+
#: includes/class-yit-plugin-panel.php:964
|
135 |
msgid "Database imported correctly."
|
136 |
msgstr "Base de datos importada correctamente."
|
137 |
|
138 |
+
#: includes/class-yit-plugin-panel.php:965
|
139 |
msgid "An error has occurred during import. Please try again."
|
140 |
msgstr ""
|
141 |
"Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
|
142 |
|
143 |
+
#: includes/class-yit-plugin-panel.php:966
|
144 |
msgid "The added file is not valid."
|
145 |
msgstr "El archivo añadido no es válido."
|
146 |
|
147 |
+
#: includes/class-yit-plugin-panel.php:967
|
148 |
msgid "Sorry, import is disabled."
|
149 |
msgstr "Lo siento, la importación está desactivada."
|
150 |
|
151 |
+
#: includes/class-yit-plugin-panel.php:968
|
152 |
msgid "Sorting successful."
|
153 |
msgstr "Clasificación realizada con éxito"
|
154 |
|
155 |
+
#: includes/class-yit-plugin-panel.php:1436
|
156 |
msgid "We need your support"
|
157 |
msgstr "Necesitamos tu apoyo"
|
158 |
|
159 |
+
#: includes/class-yit-plugin-panel.php:1437
|
160 |
msgid "to keep updating and improving the plugin. Please,"
|
161 |
msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"
|
162 |
|
163 |
+
#: includes/class-yit-plugin-panel.php:1439
|
164 |
msgid "help us by leaving a good review"
|
165 |
msgstr "ayúdanos dejando una buena valoración"
|
166 |
|
167 |
+
#: includes/class-yit-plugin-panel.php:1440
|
168 |
msgid ":) Thanks!"
|
169 |
msgstr ":) ¡Gracias!"
|
170 |
|
580 |
"file of your installation"
|
581 |
msgstr ""
|
582 |
"No hay archivo de registro disponible. Activa la depuración de WordPress "
|
583 |
+
"añadiendo este código en el archivo %s de tu instalación"
|
584 |
|
585 |
#: templates/sysinfo/tabs/error-log.php:105
|
586 |
msgid "Copied!"
|
623 |
msgstr "Requerimientos de los plugins"
|
624 |
|
625 |
#. translators: %s is the title of the post object.
|
626 |
+
#: yit-functions.php:1857
|
627 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
628 |
msgstr "¿Estás seguro de que quieres mover \"%s\" a la papelera?"
|
629 |
|
630 |
#. translators: %s is the title of the post object.
|
631 |
+
#: yit-functions.php:1859 yit-functions.php:2017
|
632 |
msgid "Are you sure you want to delete \"%s\"?"
|
633 |
msgstr "¿Estás seguro de que quieres borrar \"%s\"?"
|
634 |
|
635 |
+
#: yit-functions.php:1955 yit-functions.php:1963 yit-functions.php:2080
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
636 |
msgid "Further actions"
|
637 |
msgstr "Otras acciones"
|
638 |
|
639 |
+
#: yit-plugin.php:204
|
640 |
msgid "License"
|
641 |
msgstr "Licencia"
|
642 |
|
655 |
msgid "YITH"
|
656 |
msgstr "YITH"
|
657 |
|
658 |
+
#: includes/class-yit-assets.php:133
|
659 |
msgctxt "Button text"
|
660 |
msgid "Confirm"
|
661 |
msgstr "Confirmar"
|
662 |
|
663 |
+
#: includes/class-yit-assets.php:134
|
664 |
msgctxt "Button text"
|
665 |
msgid "Cancel"
|
666 |
msgstr "Cancelar"
|
667 |
|
668 |
+
#: includes/class-yit-assets.php:147 yit-functions.php:1927
|
669 |
+
msgctxt "Trash confirmation action"
|
670 |
+
msgid "Yes, move to trash"
|
671 |
+
msgstr "Sí, mover a la papelera"
|
672 |
+
|
673 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:1944
|
674 |
+
msgctxt "Delete confirmation action"
|
675 |
+
msgid "Yes, delete permanently"
|
676 |
+
msgstr "Sí, borrar permanentemente"
|
677 |
+
|
678 |
+
#: yit-functions.php:2071
|
679 |
+
msgctxt "Delete confirmation action"
|
680 |
+
msgid "Yes, delete"
|
681 |
+
msgstr "Si, borrar"
|
682 |
+
|
683 |
+
#: includes/class-yit-plugin-panel.php:488
|
684 |
+
msgctxt "Help tab name"
|
685 |
+
msgid "Help"
|
686 |
+
msgstr "Ayuda"
|
687 |
+
|
688 |
+
#. translators: 1. Plugin name.
|
689 |
+
#: includes/class-yit-plugin-panel.php:797
|
690 |
+
msgctxt "Help tab default title"
|
691 |
+
msgid "Thank you for purchasing %s!"
|
692 |
+
msgstr "¡Gracias por comprar %s!"
|
693 |
+
|
694 |
+
#: includes/class-yit-plugin-panel.php:798
|
695 |
+
msgctxt "Help tab default description"
|
696 |
+
msgid ""
|
697 |
+
"We want to help you to enjoy a wonderful experience with all our products."
|
698 |
+
msgstr ""
|
699 |
+
"Queremos ayudarte a disfrutar de una experiencia maravillosa con todos "
|
700 |
+
"nuestros productos."
|
701 |
+
|
702 |
#: includes/class-yith-dashboard.php:96
|
703 |
msgctxt "Plugin FW"
|
704 |
msgid "View Changelog"
|
801 |
msgid "NO"
|
802 |
msgstr "NO"
|
803 |
|
804 |
+
#. translators: 1. Url to EN playlist.
|
805 |
+
#: templates/panel/help-tab.php:87
|
806 |
+
msgctxt "Help tab view all video link"
|
807 |
+
msgid ""
|
808 |
+
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
|
809 |
+
"learn more >"
|
810 |
+
msgstr ""
|
811 |
+
"Consulta la <a href=\"%s\" target=\"_blank\">Lista de reproducción en "
|
812 |
+
"Youtube</a> para saber más >"
|
813 |
+
|
814 |
+
#: templates/panel/help-tab.php:94
|
815 |
+
msgctxt "Help tab Watch Videotutorials link"
|
816 |
+
msgid "Videos are also available in:"
|
817 |
+
msgstr "Los vídeos también están disponibles en:"
|
818 |
+
|
819 |
+
#: templates/panel/help-tab.php:137
|
820 |
+
msgctxt "Help tab Watch Videotutorials link"
|
821 |
+
msgid "Watch our videotutorials"
|
822 |
+
msgstr "Vea nuestros videotutoriales"
|
823 |
+
|
824 |
+
#: templates/panel/help-tab.php:140
|
825 |
+
msgctxt "Help tab Watch Videotutorials link"
|
826 |
+
msgid "We show you some use cases"
|
827 |
+
msgstr "Te mostramos algunos ejemplos de uso"
|
828 |
+
|
829 |
+
#: templates/panel/help-tab.php:124
|
830 |
+
msgctxt "Help tab Read Documentation link"
|
831 |
+
msgid "Read the documentation"
|
832 |
+
msgstr "Lee la documentación"
|
833 |
+
|
834 |
+
#: templates/panel/help-tab.php:127
|
835 |
+
msgctxt "Help tab Read Documentation link"
|
836 |
+
msgid "to learn from basics how it works"
|
837 |
+
msgstr "para aprender desde lo más básico cómo funciona"
|
838 |
+
|
839 |
+
#: templates/panel/help-tab.php:150
|
840 |
+
msgctxt "Help tab view FAQs link"
|
841 |
+
msgid "Check the FAQs"
|
842 |
+
msgstr "Comprueba los FAQ"
|
843 |
+
|
844 |
+
#: templates/panel/help-tab.php:153
|
845 |
+
msgctxt "Help tab view FAQs link"
|
846 |
+
msgid "to find answers to your doubts"
|
847 |
+
msgstr "para encontrar respuestas a tus dudas"
|
848 |
+
|
849 |
+
#: templates/panel/help-tab.php:169
|
850 |
+
msgctxt "Help tab FAQ title"
|
851 |
+
msgid "Last FAQs in our Help Center"
|
852 |
+
msgstr "Últimos FAQs en nuestro Centro de Ayuda"
|
853 |
+
|
854 |
+
#: templates/panel/help-tab.php:183
|
855 |
+
msgctxt "Help tab FAQ link"
|
856 |
+
msgid "View all FAQs >"
|
857 |
+
msgstr "Ver todos los FAQs >"
|
858 |
+
|
859 |
+
#: templates/panel/help-tab.php:192
|
860 |
+
msgctxt "Help tab submit ticket title"
|
861 |
+
msgid "Need help?"
|
862 |
+
msgstr "¿Necesitas ayuda?"
|
863 |
+
|
864 |
+
#: templates/panel/help-tab.php:195
|
865 |
+
msgctxt "Help tab submit ticket description"
|
866 |
+
msgid ""
|
867 |
+
"If you are experiencing some technical issue ask help to our developers. "
|
868 |
+
"Submit a ticket in our support desk and we will help you as soon as possible."
|
869 |
+
msgstr ""
|
870 |
+
"Si tienes algún problema técnico, pide ayuda a nuestros desarrolladores. "
|
871 |
+
"Envía un ticket en nuestro panel de soporte y te ayudaremos lo antes posible."
|
872 |
+
|
873 |
+
#: templates/panel/help-tab.php:203
|
874 |
+
msgctxt "Help tab submit ticket button"
|
875 |
+
msgid "Submit a ticket"
|
876 |
+
msgstr "Enviar ticket"
|
877 |
+
|
878 |
+
#: yit-functions.php:1871
|
879 |
msgctxt "Post action"
|
880 |
msgid "Preview"
|
881 |
msgstr "Previsualizar"
|
882 |
|
883 |
+
#: yit-functions.php:1880
|
884 |
msgctxt "Post action"
|
885 |
msgid "View"
|
886 |
msgstr "Ver"
|
887 |
|
888 |
+
#: yit-functions.php:1891
|
889 |
msgctxt "Post action"
|
890 |
msgid "Edit"
|
891 |
msgstr "Editar"
|
892 |
|
893 |
+
#: yit-functions.php:1899
|
894 |
msgctxt "Post action"
|
895 |
msgid "Duplicate"
|
896 |
msgstr "Duplicar"
|
897 |
|
898 |
+
#: yit-functions.php:1911
|
899 |
msgctxt "Post action"
|
900 |
msgid "Restore"
|
901 |
msgstr "Restaurar"
|
902 |
|
903 |
+
#: yit-functions.php:1919
|
904 |
msgctxt "Post action"
|
905 |
msgid "Trash"
|
906 |
msgstr "A la papelera"
|
907 |
|
908 |
+
#: yit-functions.php:1935
|
909 |
msgctxt "Post action"
|
910 |
msgid "Delete Permanently"
|
911 |
msgstr "Borrar permanentemente"
|
912 |
|
913 |
+
#: yit-functions.php:2031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
914 |
msgctxt "Term action"
|
915 |
msgid "View"
|
916 |
msgstr "Ver"
|
917 |
|
918 |
+
#: yit-functions.php:2041
|
919 |
msgctxt "Term action"
|
920 |
msgid "Edit"
|
921 |
msgstr "Editar"
|
922 |
|
923 |
+
#: yit-functions.php:2049
|
924 |
msgctxt "Term action"
|
925 |
msgid "Duplicate"
|
926 |
msgstr "Duplicar"
|
927 |
|
928 |
+
#: yit-functions.php:2062
|
929 |
msgctxt "Term action"
|
930 |
msgid "Delete"
|
931 |
msgstr "Borrar"
|
932 |
|
933 |
+
#: yit-plugin.php:85
|
934 |
msgctxt "Plugin Row Meta"
|
935 |
msgid "Live Demo"
|
936 |
msgstr "Demostración en vivo"
|
937 |
|
938 |
+
#: yit-plugin.php:89
|
939 |
msgctxt "Plugin Row Meta"
|
940 |
msgid "Documentation"
|
941 |
msgstr "Documentación"
|
942 |
|
943 |
+
#: yit-plugin.php:93
|
944 |
msgctxt "Plugin Row Meta"
|
945 |
msgid "Support"
|
946 |
msgstr "Soporte"
|
947 |
|
948 |
+
#: yit-plugin.php:97
|
949 |
msgctxt "Plugin Row Meta"
|
950 |
msgid "Premium version"
|
951 |
msgstr "Versión premium"
|
952 |
|
953 |
+
#: yit-plugin.php:200
|
954 |
msgctxt "Action links"
|
955 |
msgid "Settings"
|
956 |
msgstr "Ajustes"
|
Binary file
|
@@ -4,8 +4,8 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
-
"PO-Revision-Date: 2021-
|
9 |
"Language: it\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -13,31 +13,60 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
msgid "Clear"
|
18 |
msgstr "Rimuovi"
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Clear color"
|
22 |
msgstr "Rimuovi colore"
|
23 |
|
24 |
-
#: includes/class-yit-assets.php:
|
25 |
msgid "Default"
|
26 |
msgstr "Predefinito"
|
27 |
|
28 |
-
#: includes/class-yit-assets.php:
|
29 |
msgid "Select default color"
|
30 |
msgstr "Seleziona il colore predefinito"
|
31 |
|
32 |
-
#: includes/class-yit-assets.php:
|
33 |
msgid "Select Color"
|
34 |
msgstr "Seleziona il colore"
|
35 |
|
36 |
-
#: includes/class-yit-assets.php:
|
37 |
msgid "Color value"
|
38 |
msgstr "Valore del colore"
|
39 |
|
40 |
-
#: includes/class-yit-
|
|
|
|
|
|
|
|
|
41 |
msgid "The changes you have made will be lost if you leave this page."
|
42 |
msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
|
43 |
|
@@ -54,12 +83,12 @@ msgstr "Impostazioni"
|
|
54 |
msgid "How to install premium version"
|
55 |
msgstr "Come installare la versione premium"
|
56 |
|
57 |
-
#: includes/class-yit-plugin-panel.php:
|
58 |
#: includes/class-yit-plugin-subpanel.php:132
|
59 |
msgid "Save Changes"
|
60 |
msgstr "Salva modifiche"
|
61 |
|
62 |
-
#: includes/class-yit-plugin-panel.php:
|
63 |
#: includes/class-yit-plugin-subpanel.php:136
|
64 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
65 |
msgid ""
|
@@ -68,72 +97,72 @@ msgstr ""
|
|
68 |
"Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
|
69 |
"reimpostate."
|
70 |
|
71 |
-
#: includes/class-yit-plugin-panel.php:
|
72 |
#: includes/class-yit-plugin-subpanel.php:136
|
73 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
74 |
msgid "Are you sure?"
|
75 |
msgstr "Sei sicuro?"
|
76 |
|
77 |
-
#: includes/class-yit-plugin-panel.php:
|
78 |
#: includes/class-yit-plugin-subpanel.php:139
|
79 |
msgid "Reset to default"
|
80 |
msgstr "Ripristina configurazione predefinita"
|
81 |
|
82 |
-
#: includes/class-yit-plugin-panel.php:
|
83 |
msgid ""
|
84 |
"The element you have entered already exists. Please, enter another name."
|
85 |
msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
|
86 |
|
87 |
-
#: includes/class-yit-plugin-panel.php:
|
88 |
msgid "Settings saved"
|
89 |
msgstr "Impostazioni salvate"
|
90 |
|
91 |
-
#: includes/class-yit-plugin-panel.php:
|
92 |
msgid "Settings reset"
|
93 |
msgstr "Impostazioni azzerate"
|
94 |
|
95 |
-
#: includes/class-yit-plugin-panel.php:
|
96 |
msgid "Element deleted correctly."
|
97 |
msgstr "Elemento rimosso correttamente."
|
98 |
|
99 |
-
#: includes/class-yit-plugin-panel.php:
|
100 |
-
#: includes/class-yit-plugin-panel.php:
|
101 |
msgid "Element updated correctly."
|
102 |
msgstr "Elemento aggiornato correttamente."
|
103 |
|
104 |
-
#: includes/class-yit-plugin-panel.php:
|
105 |
msgid "Database imported correctly."
|
106 |
msgstr "Database importato correttamente."
|
107 |
|
108 |
-
#: includes/class-yit-plugin-panel.php:
|
109 |
msgid "An error has occurred during import. Please try again."
|
110 |
msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
|
111 |
|
112 |
-
#: includes/class-yit-plugin-panel.php:
|
113 |
msgid "The added file is not valid."
|
114 |
msgstr "Il file aggiunto non è valido."
|
115 |
|
116 |
-
#: includes/class-yit-plugin-panel.php:
|
117 |
msgid "Sorry, import is disabled."
|
118 |
msgstr "Ci dispiace, l'importazione è disabilitata."
|
119 |
|
120 |
-
#: includes/class-yit-plugin-panel.php:
|
121 |
msgid "Sorting successful."
|
122 |
msgstr "Ordinamento effettuato con successo."
|
123 |
|
124 |
-
#: includes/class-yit-plugin-panel.php:
|
125 |
msgid "We need your support"
|
126 |
msgstr "Abbiamo bisogno del tuo sostegno"
|
127 |
|
128 |
-
#: includes/class-yit-plugin-panel.php:
|
129 |
msgid "to keep updating and improving the plugin. Please,"
|
130 |
msgstr "per poter continuare ad aggiornare e migliorare il plugin."
|
131 |
|
132 |
-
#: includes/class-yit-plugin-panel.php:
|
133 |
msgid "help us by leaving a good review"
|
134 |
msgstr "Puoi darci una mano lasciando una recensione positiva"
|
135 |
|
136 |
-
#: includes/class-yit-plugin-panel.php:
|
137 |
msgid ":) Thanks!"
|
138 |
msgstr ":) Grazie!"
|
139 |
|
@@ -594,35 +623,20 @@ msgid "Plugins Requirements"
|
|
594 |
msgstr "Requisiti plugin"
|
595 |
|
596 |
#. translators: %s is the title of the post object.
|
597 |
-
#: yit-functions.php:
|
598 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
599 |
msgstr "Sei sicuro di voler spostare \"%s\" nel cestino?"
|
600 |
|
601 |
#. translators: %s is the title of the post object.
|
602 |
-
#: yit-functions.php:
|
603 |
msgid "Are you sure you want to delete \"%s\"?"
|
604 |
msgstr "Sei sicuro di voler eliminare \"%s\"?"
|
605 |
|
606 |
-
#: yit-functions.php:
|
607 |
-
msgid ""
|
608 |
-
"This action cannot be undone and you will be not able to recover this data."
|
609 |
-
msgstr ""
|
610 |
-
"Quest'azione non può essere annullata e non sarà possibile recuperare questi "
|
611 |
-
"dati."
|
612 |
-
|
613 |
-
#: yit-functions.php:1891
|
614 |
-
msgid "Confirm trash"
|
615 |
-
msgstr "Conferma eliminazione"
|
616 |
-
|
617 |
-
#: yit-functions.php:1908 yit-functions.php:2035
|
618 |
-
msgid "Confirm delete"
|
619 |
-
msgstr "Conferma eliminazione"
|
620 |
-
|
621 |
-
#: yit-functions.php:1921 yit-functions.php:1929 yit-functions.php:2046
|
622 |
msgid "Further actions"
|
623 |
msgstr "Altre azioni"
|
624 |
|
625 |
-
#: yit-plugin.php:
|
626 |
msgid "License"
|
627 |
msgstr "Chiave di licenza"
|
628 |
|
@@ -641,16 +655,50 @@ msgctxt "[gutenberg]: Category Name"
|
|
641 |
msgid "YITH"
|
642 |
msgstr "YITH"
|
643 |
|
644 |
-
#: includes/class-yit-assets.php:
|
645 |
msgctxt "Button text"
|
646 |
msgid "Confirm"
|
647 |
msgstr "Conferma"
|
648 |
|
649 |
-
#: includes/class-yit-assets.php:
|
650 |
msgctxt "Button text"
|
651 |
msgid "Cancel"
|
652 |
msgstr "Annulla"
|
653 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
654 |
#: includes/class-yith-dashboard.php:96
|
655 |
msgctxt "Plugin FW"
|
656 |
msgid "View Changelog"
|
@@ -754,92 +802,157 @@ msgctxt "YES/NO button: use MAX 4 characters!"
|
|
754 |
msgid "NO"
|
755 |
msgstr "NO"
|
756 |
|
757 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
758 |
msgctxt "Post action"
|
759 |
msgid "Preview"
|
760 |
msgstr "Anteprima"
|
761 |
|
762 |
-
#: yit-functions.php:
|
763 |
msgctxt "Post action"
|
764 |
msgid "View"
|
765 |
msgstr "Visualizza"
|
766 |
|
767 |
-
#: yit-functions.php:
|
768 |
msgctxt "Post action"
|
769 |
msgid "Edit"
|
770 |
msgstr "Modifica"
|
771 |
|
772 |
-
#: yit-functions.php:
|
773 |
msgctxt "Post action"
|
774 |
msgid "Duplicate"
|
775 |
msgstr "Duplica"
|
776 |
|
777 |
-
#: yit-functions.php:
|
778 |
msgctxt "Post action"
|
779 |
msgid "Restore"
|
780 |
msgstr "Ripristina"
|
781 |
|
782 |
-
#: yit-functions.php:
|
783 |
msgctxt "Post action"
|
784 |
msgid "Trash"
|
785 |
msgstr "Cestina"
|
786 |
|
787 |
-
#: yit-functions.php:
|
788 |
msgctxt "Post action"
|
789 |
msgid "Delete Permanently"
|
790 |
msgstr "Cancella definitivamente"
|
791 |
|
792 |
-
#: yit-functions.php:
|
793 |
-
msgctxt "Trash confirmation action"
|
794 |
-
msgid "Yes, trash"
|
795 |
-
msgstr "Sì, cestina"
|
796 |
-
|
797 |
-
#: yit-functions.php:1910 yit-functions.php:2037
|
798 |
-
msgctxt "Delete confirmation action"
|
799 |
-
msgid "Yes, delete"
|
800 |
-
msgstr "Sì, elimina"
|
801 |
-
|
802 |
-
#: yit-functions.php:1997
|
803 |
msgctxt "Term action"
|
804 |
msgid "View"
|
805 |
msgstr "Visualizza"
|
806 |
|
807 |
-
#: yit-functions.php:
|
808 |
msgctxt "Term action"
|
809 |
msgid "Edit"
|
810 |
msgstr "Modifica"
|
811 |
|
812 |
-
#: yit-functions.php:
|
813 |
msgctxt "Term action"
|
814 |
msgid "Duplicate"
|
815 |
msgstr "Duplica"
|
816 |
|
817 |
-
#: yit-functions.php:
|
818 |
msgctxt "Term action"
|
819 |
msgid "Delete"
|
820 |
msgstr "Elimina"
|
821 |
|
822 |
-
#: yit-plugin.php:
|
823 |
msgctxt "Plugin Row Meta"
|
824 |
msgid "Live Demo"
|
825 |
msgstr "Live Demo"
|
826 |
|
827 |
-
#: yit-plugin.php:
|
828 |
msgctxt "Plugin Row Meta"
|
829 |
msgid "Documentation"
|
830 |
msgstr "Documentazione"
|
831 |
|
832 |
-
#: yit-plugin.php:
|
833 |
msgctxt "Plugin Row Meta"
|
834 |
msgid "Support"
|
835 |
msgstr "Assistenza"
|
836 |
|
837 |
-
#: yit-plugin.php:
|
838 |
msgctxt "Plugin Row Meta"
|
839 |
msgid "Premium version"
|
840 |
msgstr "Versione premium"
|
841 |
|
842 |
-
#: yit-plugin.php:
|
843 |
msgctxt "Action links"
|
844 |
msgid "Settings"
|
845 |
msgstr "Impostazioni"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2021-06-08 13:48:44+00:00\n"
|
8 |
+
"PO-Revision-Date: 2021-06-08 08:19:01+0000\n"
|
9 |
"Language: it\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:145 yit-functions.php:1925
|
17 |
+
msgid "Confirm trash"
|
18 |
+
msgstr "Conferma eliminazione"
|
19 |
+
|
20 |
+
#: includes/class-yit-assets.php:146
|
21 |
+
msgid "Are you sure you want to trash the selected items?"
|
22 |
+
msgstr "Se sicuro di voler spostare nel cestino gli elementi selezionati?"
|
23 |
+
|
24 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:1942
|
25 |
+
#: yit-functions.php:2069
|
26 |
+
msgid "Confirm delete"
|
27 |
+
msgstr "Conferma eliminazione"
|
28 |
+
|
29 |
+
#: includes/class-yit-assets.php:149
|
30 |
+
msgid "Are you sure you want to delete the selected items?"
|
31 |
+
msgstr "Se sicuro di voler eliminare gli elementi selezionati?"
|
32 |
+
|
33 |
+
#: includes/class-yit-assets.php:149 yit-functions.php:1859
|
34 |
+
#: yit-functions.php:2017
|
35 |
+
msgid ""
|
36 |
+
"This action cannot be undone and you will not be able to recover this data."
|
37 |
+
msgstr ""
|
38 |
+
"Quest'azione non può essere annullata e non sarà possibile recuperare questi "
|
39 |
+
"dati."
|
40 |
+
|
41 |
+
#: includes/class-yit-assets.php:161
|
42 |
msgid "Clear"
|
43 |
msgstr "Rimuovi"
|
44 |
|
45 |
+
#: includes/class-yit-assets.php:162
|
46 |
msgid "Clear color"
|
47 |
msgstr "Rimuovi colore"
|
48 |
|
49 |
+
#: includes/class-yit-assets.php:163
|
50 |
msgid "Default"
|
51 |
msgstr "Predefinito"
|
52 |
|
53 |
+
#: includes/class-yit-assets.php:164
|
54 |
msgid "Select default color"
|
55 |
msgstr "Seleziona il colore predefinito"
|
56 |
|
57 |
+
#: includes/class-yit-assets.php:165
|
58 |
msgid "Select Color"
|
59 |
msgstr "Seleziona il colore"
|
60 |
|
61 |
+
#: includes/class-yit-assets.php:166
|
62 |
msgid "Color value"
|
63 |
msgstr "Valore del colore"
|
64 |
|
65 |
+
#: includes/class-yit-help-desk.php:152
|
66 |
+
msgid "There was an error with your request; please try again later."
|
67 |
+
msgstr "Si è verificato un errore con la tua richiesta. Riprova più tardi."
|
68 |
+
|
69 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:423
|
70 |
msgid "The changes you have made will be lost if you leave this page."
|
71 |
msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
|
72 |
|
83 |
msgid "How to install premium version"
|
84 |
msgstr "Come installare la versione premium"
|
85 |
|
86 |
+
#: includes/class-yit-plugin-panel.php:651
|
87 |
#: includes/class-yit-plugin-subpanel.php:132
|
88 |
msgid "Save Changes"
|
89 |
msgstr "Salva modifiche"
|
90 |
|
91 |
+
#: includes/class-yit-plugin-panel.php:656
|
92 |
#: includes/class-yit-plugin-subpanel.php:136
|
93 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
94 |
msgid ""
|
97 |
"Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
|
98 |
"reimpostate."
|
99 |
|
100 |
+
#: includes/class-yit-plugin-panel.php:656
|
101 |
#: includes/class-yit-plugin-subpanel.php:136
|
102 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
103 |
msgid "Are you sure?"
|
104 |
msgstr "Sei sicuro?"
|
105 |
|
106 |
+
#: includes/class-yit-plugin-panel.php:660
|
107 |
#: includes/class-yit-plugin-subpanel.php:139
|
108 |
msgid "Reset to default"
|
109 |
msgstr "Ripristina configurazione predefinita"
|
110 |
|
111 |
+
#: includes/class-yit-plugin-panel.php:958
|
112 |
msgid ""
|
113 |
"The element you have entered already exists. Please, enter another name."
|
114 |
msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
|
115 |
|
116 |
+
#: includes/class-yit-plugin-panel.php:959
|
117 |
msgid "Settings saved"
|
118 |
msgstr "Impostazioni salvate"
|
119 |
|
120 |
+
#: includes/class-yit-plugin-panel.php:960
|
121 |
msgid "Settings reset"
|
122 |
msgstr "Impostazioni azzerate"
|
123 |
|
124 |
+
#: includes/class-yit-plugin-panel.php:961
|
125 |
msgid "Element deleted correctly."
|
126 |
msgstr "Elemento rimosso correttamente."
|
127 |
|
128 |
+
#: includes/class-yit-plugin-panel.php:962
|
129 |
+
#: includes/class-yit-plugin-panel.php:963
|
130 |
msgid "Element updated correctly."
|
131 |
msgstr "Elemento aggiornato correttamente."
|
132 |
|
133 |
+
#: includes/class-yit-plugin-panel.php:964
|
134 |
msgid "Database imported correctly."
|
135 |
msgstr "Database importato correttamente."
|
136 |
|
137 |
+
#: includes/class-yit-plugin-panel.php:965
|
138 |
msgid "An error has occurred during import. Please try again."
|
139 |
msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
|
140 |
|
141 |
+
#: includes/class-yit-plugin-panel.php:966
|
142 |
msgid "The added file is not valid."
|
143 |
msgstr "Il file aggiunto non è valido."
|
144 |
|
145 |
+
#: includes/class-yit-plugin-panel.php:967
|
146 |
msgid "Sorry, import is disabled."
|
147 |
msgstr "Ci dispiace, l'importazione è disabilitata."
|
148 |
|
149 |
+
#: includes/class-yit-plugin-panel.php:968
|
150 |
msgid "Sorting successful."
|
151 |
msgstr "Ordinamento effettuato con successo."
|
152 |
|
153 |
+
#: includes/class-yit-plugin-panel.php:1436
|
154 |
msgid "We need your support"
|
155 |
msgstr "Abbiamo bisogno del tuo sostegno"
|
156 |
|
157 |
+
#: includes/class-yit-plugin-panel.php:1437
|
158 |
msgid "to keep updating and improving the plugin. Please,"
|
159 |
msgstr "per poter continuare ad aggiornare e migliorare il plugin."
|
160 |
|
161 |
+
#: includes/class-yit-plugin-panel.php:1439
|
162 |
msgid "help us by leaving a good review"
|
163 |
msgstr "Puoi darci una mano lasciando una recensione positiva"
|
164 |
|
165 |
+
#: includes/class-yit-plugin-panel.php:1440
|
166 |
msgid ":) Thanks!"
|
167 |
msgstr ":) Grazie!"
|
168 |
|
623 |
msgstr "Requisiti plugin"
|
624 |
|
625 |
#. translators: %s is the title of the post object.
|
626 |
+
#: yit-functions.php:1857
|
627 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
628 |
msgstr "Sei sicuro di voler spostare \"%s\" nel cestino?"
|
629 |
|
630 |
#. translators: %s is the title of the post object.
|
631 |
+
#: yit-functions.php:1859 yit-functions.php:2017
|
632 |
msgid "Are you sure you want to delete \"%s\"?"
|
633 |
msgstr "Sei sicuro di voler eliminare \"%s\"?"
|
634 |
|
635 |
+
#: yit-functions.php:1955 yit-functions.php:1963 yit-functions.php:2080
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
636 |
msgid "Further actions"
|
637 |
msgstr "Altre azioni"
|
638 |
|
639 |
+
#: yit-plugin.php:204
|
640 |
msgid "License"
|
641 |
msgstr "Chiave di licenza"
|
642 |
|
655 |
msgid "YITH"
|
656 |
msgstr "YITH"
|
657 |
|
658 |
+
#: includes/class-yit-assets.php:133
|
659 |
msgctxt "Button text"
|
660 |
msgid "Confirm"
|
661 |
msgstr "Conferma"
|
662 |
|
663 |
+
#: includes/class-yit-assets.php:134
|
664 |
msgctxt "Button text"
|
665 |
msgid "Cancel"
|
666 |
msgstr "Annulla"
|
667 |
|
668 |
+
#: includes/class-yit-assets.php:147 yit-functions.php:1927
|
669 |
+
msgctxt "Trash confirmation action"
|
670 |
+
msgid "Yes, move to trash"
|
671 |
+
msgstr "Sì, sposta nel cestino"
|
672 |
+
|
673 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:1944
|
674 |
+
msgctxt "Delete confirmation action"
|
675 |
+
msgid "Yes, delete permanently"
|
676 |
+
msgstr "Sì, elimina definitivamente"
|
677 |
+
|
678 |
+
#: yit-functions.php:2071
|
679 |
+
msgctxt "Delete confirmation action"
|
680 |
+
msgid "Yes, delete"
|
681 |
+
msgstr "Sì, elimina"
|
682 |
+
|
683 |
+
#: includes/class-yit-plugin-panel.php:488
|
684 |
+
msgctxt "Help tab name"
|
685 |
+
msgid "Help"
|
686 |
+
msgstr "Help"
|
687 |
+
|
688 |
+
#. translators: 1. Plugin name.
|
689 |
+
#: includes/class-yit-plugin-panel.php:797
|
690 |
+
msgctxt "Help tab default title"
|
691 |
+
msgid "Thank you for purchasing %s!"
|
692 |
+
msgstr "Grazie per aver acquistato %s!"
|
693 |
+
|
694 |
+
#: includes/class-yit-plugin-panel.php:798
|
695 |
+
msgctxt "Help tab default description"
|
696 |
+
msgid ""
|
697 |
+
"We want to help you to enjoy a wonderful experience with all our products."
|
698 |
+
msgstr ""
|
699 |
+
"Vogliamo aiutarti ad avere un'esperienza fantastica con tutti i nostri "
|
700 |
+
"prodotti."
|
701 |
+
|
702 |
#: includes/class-yith-dashboard.php:96
|
703 |
msgctxt "Plugin FW"
|
704 |
msgid "View Changelog"
|
802 |
msgid "NO"
|
803 |
msgstr "NO"
|
804 |
|
805 |
+
#. translators: 1. Url to EN playlist.
|
806 |
+
#: templates/panel/help-tab.php:87
|
807 |
+
msgctxt "Help tab view all video link"
|
808 |
+
msgid ""
|
809 |
+
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
|
810 |
+
"learn more >"
|
811 |
+
msgstr ""
|
812 |
+
"Per saperne di più, vedi la <a href=\"%s\" target=\"_blank\">Playlist "
|
813 |
+
"completa su Youtube</a>>"
|
814 |
+
|
815 |
+
#: templates/panel/help-tab.php:94
|
816 |
+
msgctxt "Help tab Watch Videotutorials link"
|
817 |
+
msgid "Videos are also available in:"
|
818 |
+
msgstr "I video sono disponibili anche in:"
|
819 |
+
|
820 |
+
#: templates/panel/help-tab.php:137
|
821 |
+
msgctxt "Help tab Watch Videotutorials link"
|
822 |
+
msgid "Watch our videotutorials"
|
823 |
+
msgstr "Guarda i nostri video tutorial"
|
824 |
+
|
825 |
+
#: templates/panel/help-tab.php:140
|
826 |
+
msgctxt "Help tab Watch Videotutorials link"
|
827 |
+
msgid "We show you some use cases"
|
828 |
+
msgstr "Ti mostriamo alcuni casi d'uso"
|
829 |
+
|
830 |
+
#: templates/panel/help-tab.php:124
|
831 |
+
msgctxt "Help tab Read Documentation link"
|
832 |
+
msgid "Read the documentation"
|
833 |
+
msgstr "Consulta la documentazione"
|
834 |
+
|
835 |
+
#: templates/panel/help-tab.php:127
|
836 |
+
msgctxt "Help tab Read Documentation link"
|
837 |
+
msgid "to learn from basics how it works"
|
838 |
+
msgstr "per imparare dalle basi come funziona"
|
839 |
+
|
840 |
+
#: templates/panel/help-tab.php:150
|
841 |
+
msgctxt "Help tab view FAQs link"
|
842 |
+
msgid "Check the FAQs"
|
843 |
+
msgstr "Controlla le FAQ"
|
844 |
+
|
845 |
+
#: templates/panel/help-tab.php:153
|
846 |
+
msgctxt "Help tab view FAQs link"
|
847 |
+
msgid "to find answers to your doubts"
|
848 |
+
msgstr "per trovare le risposte ai tuoi dubbi"
|
849 |
+
|
850 |
+
#: templates/panel/help-tab.php:169
|
851 |
+
msgctxt "Help tab FAQ title"
|
852 |
+
msgid "Last FAQs in our Help Center"
|
853 |
+
msgstr "Ultime FAQ nel nostro Centro Assistenza"
|
854 |
+
|
855 |
+
#: templates/panel/help-tab.php:183
|
856 |
+
msgctxt "Help tab FAQ link"
|
857 |
+
msgid "View all FAQs >"
|
858 |
+
msgstr "Vedi tutte le FAQ"
|
859 |
+
|
860 |
+
#: templates/panel/help-tab.php:192
|
861 |
+
msgctxt "Help tab submit ticket title"
|
862 |
+
msgid "Need help?"
|
863 |
+
msgstr "Ti serve aiuto?"
|
864 |
+
|
865 |
+
#: templates/panel/help-tab.php:195
|
866 |
+
msgctxt "Help tab submit ticket description"
|
867 |
+
msgid ""
|
868 |
+
"If you are experiencing some technical issue ask help to our developers. "
|
869 |
+
"Submit a ticket in our support desk and we will help you as soon as possible."
|
870 |
+
msgstr ""
|
871 |
+
"Se stai riscontrando problemi tecnici chiedi aiuto ai nostri sviluppatori. "
|
872 |
+
"Invia un ticket dalla nostra piattaforma di supporto e ti daremo assistenza "
|
873 |
+
"il più presto possibile."
|
874 |
+
|
875 |
+
#: templates/panel/help-tab.php:203
|
876 |
+
msgctxt "Help tab submit ticket button"
|
877 |
+
msgid "Submit a ticket"
|
878 |
+
msgstr "Invia un ticket"
|
879 |
+
|
880 |
+
#: yit-functions.php:1871
|
881 |
msgctxt "Post action"
|
882 |
msgid "Preview"
|
883 |
msgstr "Anteprima"
|
884 |
|
885 |
+
#: yit-functions.php:1880
|
886 |
msgctxt "Post action"
|
887 |
msgid "View"
|
888 |
msgstr "Visualizza"
|
889 |
|
890 |
+
#: yit-functions.php:1891
|
891 |
msgctxt "Post action"
|
892 |
msgid "Edit"
|
893 |
msgstr "Modifica"
|
894 |
|
895 |
+
#: yit-functions.php:1899
|
896 |
msgctxt "Post action"
|
897 |
msgid "Duplicate"
|
898 |
msgstr "Duplica"
|
899 |
|
900 |
+
#: yit-functions.php:1911
|
901 |
msgctxt "Post action"
|
902 |
msgid "Restore"
|
903 |
msgstr "Ripristina"
|
904 |
|
905 |
+
#: yit-functions.php:1919
|
906 |
msgctxt "Post action"
|
907 |
msgid "Trash"
|
908 |
msgstr "Cestina"
|
909 |
|
910 |
+
#: yit-functions.php:1935
|
911 |
msgctxt "Post action"
|
912 |
msgid "Delete Permanently"
|
913 |
msgstr "Cancella definitivamente"
|
914 |
|
915 |
+
#: yit-functions.php:2031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
916 |
msgctxt "Term action"
|
917 |
msgid "View"
|
918 |
msgstr "Visualizza"
|
919 |
|
920 |
+
#: yit-functions.php:2041
|
921 |
msgctxt "Term action"
|
922 |
msgid "Edit"
|
923 |
msgstr "Modifica"
|
924 |
|
925 |
+
#: yit-functions.php:2049
|
926 |
msgctxt "Term action"
|
927 |
msgid "Duplicate"
|
928 |
msgstr "Duplica"
|
929 |
|
930 |
+
#: yit-functions.php:2062
|
931 |
msgctxt "Term action"
|
932 |
msgid "Delete"
|
933 |
msgstr "Elimina"
|
934 |
|
935 |
+
#: yit-plugin.php:85
|
936 |
msgctxt "Plugin Row Meta"
|
937 |
msgid "Live Demo"
|
938 |
msgstr "Live Demo"
|
939 |
|
940 |
+
#: yit-plugin.php:89
|
941 |
msgctxt "Plugin Row Meta"
|
942 |
msgid "Documentation"
|
943 |
msgstr "Documentazione"
|
944 |
|
945 |
+
#: yit-plugin.php:93
|
946 |
msgctxt "Plugin Row Meta"
|
947 |
msgid "Support"
|
948 |
msgstr "Assistenza"
|
949 |
|
950 |
+
#: yit-plugin.php:97
|
951 |
msgctxt "Plugin Row Meta"
|
952 |
msgid "Premium version"
|
953 |
msgstr "Versione premium"
|
954 |
|
955 |
+
#: yit-plugin.php:200
|
956 |
msgctxt "Action links"
|
957 |
msgid "Settings"
|
958 |
msgstr "Impostazioni"
|
Binary file
|
@@ -4,8 +4,8 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
-
"PO-Revision-Date: 2021-
|
9 |
"Language: nl\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -13,31 +13,63 @@ msgstr ""
|
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
-
#: includes/class-yit-assets.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
msgid "Clear"
|
18 |
msgstr "Wissen"
|
19 |
|
20 |
-
#: includes/class-yit-assets.php:
|
21 |
msgid "Clear color"
|
22 |
msgstr "Kleur wissen"
|
23 |
|
24 |
-
#: includes/class-yit-assets.php:
|
25 |
msgid "Default"
|
26 |
msgstr "Standaard"
|
27 |
|
28 |
-
#: includes/class-yit-assets.php:
|
29 |
msgid "Select default color"
|
30 |
msgstr "Standaardkleur selecteren"
|
31 |
|
32 |
-
#: includes/class-yit-assets.php:
|
33 |
msgid "Select Color"
|
34 |
msgstr "Kleur selecteren"
|
35 |
|
36 |
-
#: includes/class-yit-assets.php:
|
37 |
msgid "Color value"
|
38 |
msgstr "Kleurwaarde"
|
39 |
|
40 |
-
#: includes/class-yit-
|
|
|
|
|
|
|
|
|
|
|
41 |
msgid "The changes you have made will be lost if you leave this page."
|
42 |
msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
|
43 |
|
@@ -54,12 +86,12 @@ msgstr "Instellingen"
|
|
54 |
msgid "How to install premium version"
|
55 |
msgstr "Hoe installeer ik de premium versie"
|
56 |
|
57 |
-
#: includes/class-yit-plugin-panel.php:
|
58 |
#: includes/class-yit-plugin-subpanel.php:132
|
59 |
msgid "Save Changes"
|
60 |
msgstr "Wijzigingen opslaan"
|
61 |
|
62 |
-
#: includes/class-yit-plugin-panel.php:
|
63 |
#: includes/class-yit-plugin-subpanel.php:136
|
64 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
65 |
msgid ""
|
@@ -67,72 +99,72 @@ msgid ""
|
|
67 |
msgstr ""
|
68 |
"Als je doorgaat met deze actie, zal je alle opties op deze pagina resetten."
|
69 |
|
70 |
-
#: includes/class-yit-plugin-panel.php:
|
71 |
#: includes/class-yit-plugin-subpanel.php:136
|
72 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
73 |
msgid "Are you sure?"
|
74 |
msgstr "Weet je het zeker?"
|
75 |
|
76 |
-
#: includes/class-yit-plugin-panel.php:
|
77 |
#: includes/class-yit-plugin-subpanel.php:139
|
78 |
msgid "Reset to default"
|
79 |
msgstr "Resetten naar standaard"
|
80 |
|
81 |
-
#: includes/class-yit-plugin-panel.php:
|
82 |
msgid ""
|
83 |
"The element you have entered already exists. Please, enter another name."
|
84 |
msgstr "Het element dat je hebt ingevoerd bestaat al. Voer een andere naam in."
|
85 |
|
86 |
-
#: includes/class-yit-plugin-panel.php:
|
87 |
msgid "Settings saved"
|
88 |
msgstr "Instellingen opgeslagen"
|
89 |
|
90 |
-
#: includes/class-yit-plugin-panel.php:
|
91 |
msgid "Settings reset"
|
92 |
msgstr "Instellingen resetten"
|
93 |
|
94 |
-
#: includes/class-yit-plugin-panel.php:
|
95 |
msgid "Element deleted correctly."
|
96 |
msgstr "Element juist verwijderd."
|
97 |
|
98 |
-
#: includes/class-yit-plugin-panel.php:
|
99 |
-
#: includes/class-yit-plugin-panel.php:
|
100 |
msgid "Element updated correctly."
|
101 |
msgstr "Element juist geüpdatet."
|
102 |
|
103 |
-
#: includes/class-yit-plugin-panel.php:
|
104 |
msgid "Database imported correctly."
|
105 |
msgstr "Database juist geïmporteerd."
|
106 |
|
107 |
-
#: includes/class-yit-plugin-panel.php:
|
108 |
msgid "An error has occurred during import. Please try again."
|
109 |
msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."
|
110 |
|
111 |
-
#: includes/class-yit-plugin-panel.php:
|
112 |
msgid "The added file is not valid."
|
113 |
msgstr "Het toegevoegde bestand is niet geldig."
|
114 |
|
115 |
-
#: includes/class-yit-plugin-panel.php:
|
116 |
msgid "Sorry, import is disabled."
|
117 |
msgstr "Sorry, importeren is uitgeschakeld."
|
118 |
|
119 |
-
#: includes/class-yit-plugin-panel.php:
|
120 |
msgid "Sorting successful."
|
121 |
msgstr "Succesvol gesorteerd."
|
122 |
|
123 |
-
#: includes/class-yit-plugin-panel.php:
|
124 |
msgid "We need your support"
|
125 |
msgstr "We hebben je hulp nodig"
|
126 |
|
127 |
-
#: includes/class-yit-plugin-panel.php:
|
128 |
msgid "to keep updating and improving the plugin. Please,"
|
129 |
msgstr "om de plugin te blijven bijwerken en verbeteren. A.u.b.,"
|
130 |
|
131 |
-
#: includes/class-yit-plugin-panel.php:
|
132 |
msgid "help us by leaving a good review"
|
133 |
msgstr "help ons door een goede beoordeling achter te laten"
|
134 |
|
135 |
-
#: includes/class-yit-plugin-panel.php:
|
136 |
msgid ":) Thanks!"
|
137 |
msgstr ":) Bedankt!"
|
138 |
|
@@ -591,35 +623,20 @@ msgid "Plugins Requirements"
|
|
591 |
msgstr "Plugin benodigdheden"
|
592 |
|
593 |
#. translators: %s is the title of the post object.
|
594 |
-
#: yit-functions.php:
|
595 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
596 |
msgstr "Weet je zeker dat je \"%s\" naar de prullenbak wilt verplaatsen?"
|
597 |
|
598 |
#. translators: %s is the title of the post object.
|
599 |
-
#: yit-functions.php:
|
600 |
msgid "Are you sure you want to delete \"%s\"?"
|
601 |
msgstr "Weet je zeker dat je \"%s\" wilt verwijderen?"
|
602 |
|
603 |
-
#: yit-functions.php:
|
604 |
-
msgid ""
|
605 |
-
"This action cannot be undone and you will be not able to recover this data."
|
606 |
-
msgstr ""
|
607 |
-
"Deze actie kan niet ongedaan gemaakt worden and je zult deze gegevens niet "
|
608 |
-
"kunnen herstellen."
|
609 |
-
|
610 |
-
#: yit-functions.php:1891
|
611 |
-
msgid "Confirm trash"
|
612 |
-
msgstr "Verplaatsen naar prullenbak bevestigen"
|
613 |
-
|
614 |
-
#: yit-functions.php:1908 yit-functions.php:2035
|
615 |
-
msgid "Confirm delete"
|
616 |
-
msgstr "Verwijderen bevestigen"
|
617 |
-
|
618 |
-
#: yit-functions.php:1921 yit-functions.php:1929 yit-functions.php:2046
|
619 |
msgid "Further actions"
|
620 |
msgstr "Verdere acties"
|
621 |
|
622 |
-
#: yit-plugin.php:
|
623 |
msgid "License"
|
624 |
msgstr "Licentie"
|
625 |
|
@@ -638,16 +655,50 @@ msgctxt "[gutenberg]: Category Name"
|
|
638 |
msgid "YITH"
|
639 |
msgstr "YITH"
|
640 |
|
641 |
-
#: includes/class-yit-assets.php:
|
642 |
msgctxt "Button text"
|
643 |
msgid "Confirm"
|
644 |
msgstr "Bevestigen"
|
645 |
|
646 |
-
#: includes/class-yit-assets.php:
|
647 |
msgctxt "Button text"
|
648 |
msgid "Cancel"
|
649 |
msgstr "Annuleren"
|
650 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
651 |
#: includes/class-yith-dashboard.php:96
|
652 |
msgctxt "Plugin FW"
|
653 |
msgid "View Changelog"
|
@@ -750,92 +801,157 @@ msgctxt "YES/NO button: use MAX 4 characters!"
|
|
750 |
msgid "NO"
|
751 |
msgstr "NEE"
|
752 |
|
753 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
754 |
msgctxt "Post action"
|
755 |
msgid "Preview"
|
756 |
msgstr "Voorbeeld"
|
757 |
|
758 |
-
#: yit-functions.php:
|
759 |
msgctxt "Post action"
|
760 |
msgid "View"
|
761 |
msgstr "Bekijken"
|
762 |
|
763 |
-
#: yit-functions.php:
|
764 |
msgctxt "Post action"
|
765 |
msgid "Edit"
|
766 |
msgstr "Bewerken"
|
767 |
|
768 |
-
#: yit-functions.php:
|
769 |
msgctxt "Post action"
|
770 |
msgid "Duplicate"
|
771 |
msgstr "Dupliceren"
|
772 |
|
773 |
-
#: yit-functions.php:
|
774 |
msgctxt "Post action"
|
775 |
msgid "Restore"
|
776 |
msgstr "Herstellen"
|
777 |
|
778 |
-
#: yit-functions.php:
|
779 |
msgctxt "Post action"
|
780 |
msgid "Trash"
|
781 |
msgstr "Prullenbak"
|
782 |
|
783 |
-
#: yit-functions.php:
|
784 |
msgctxt "Post action"
|
785 |
msgid "Delete Permanently"
|
786 |
msgstr "Permanent verijwderen"
|
787 |
|
788 |
-
#: yit-functions.php:
|
789 |
-
msgctxt "Trash confirmation action"
|
790 |
-
msgid "Yes, trash"
|
791 |
-
msgstr "Ja, verplaatsen naar prullenbak"
|
792 |
-
|
793 |
-
#: yit-functions.php:1910 yit-functions.php:2037
|
794 |
-
msgctxt "Delete confirmation action"
|
795 |
-
msgid "Yes, delete"
|
796 |
-
msgstr "Ja, verwijderen"
|
797 |
-
|
798 |
-
#: yit-functions.php:1997
|
799 |
msgctxt "Term action"
|
800 |
msgid "View"
|
801 |
msgstr "Bekijken"
|
802 |
|
803 |
-
#: yit-functions.php:
|
804 |
msgctxt "Term action"
|
805 |
msgid "Edit"
|
806 |
msgstr "Bewerken"
|
807 |
|
808 |
-
#: yit-functions.php:
|
809 |
msgctxt "Term action"
|
810 |
msgid "Duplicate"
|
811 |
msgstr "Dupliceren"
|
812 |
|
813 |
-
#: yit-functions.php:
|
814 |
msgctxt "Term action"
|
815 |
msgid "Delete"
|
816 |
msgstr "Verwijderen"
|
817 |
|
818 |
-
#: yit-plugin.php:
|
819 |
msgctxt "Plugin Row Meta"
|
820 |
msgid "Live Demo"
|
821 |
msgstr "Live Demo"
|
822 |
|
823 |
-
#: yit-plugin.php:
|
824 |
msgctxt "Plugin Row Meta"
|
825 |
msgid "Documentation"
|
826 |
msgstr "Documentatie"
|
827 |
|
828 |
-
#: yit-plugin.php:
|
829 |
msgctxt "Plugin Row Meta"
|
830 |
msgid "Support"
|
831 |
msgstr "Ondersteuning"
|
832 |
|
833 |
-
#: yit-plugin.php:
|
834 |
msgctxt "Plugin Row Meta"
|
835 |
msgid "Premium version"
|
836 |
msgstr "Premium versie"
|
837 |
|
838 |
-
#: yit-plugin.php:
|
839 |
msgctxt "Action links"
|
840 |
msgid "Settings"
|
841 |
msgstr "Instellingen"
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: YITH Framework\n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2021-06-08 13:48:44+00:00\n"
|
8 |
+
"PO-Revision-Date: 2021-06-08 08:45:36+0000\n"
|
9 |
"Language: nl\n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
"X-Generator: GlotPress/3.0.0-alpha.2\n"
|
15 |
|
16 |
+
#: includes/class-yit-assets.php:145 yit-functions.php:1925
|
17 |
+
msgid "Confirm trash"
|
18 |
+
msgstr "Verplaatsen naar prullenbak bevestigen"
|
19 |
+
|
20 |
+
#: includes/class-yit-assets.php:146
|
21 |
+
msgid "Are you sure you want to trash the selected items?"
|
22 |
+
msgstr ""
|
23 |
+
"Weet je zeker dat je het geselecteerde item naar de prullenbak wilt "
|
24 |
+
"verplaatsen?"
|
25 |
+
|
26 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:1942
|
27 |
+
#: yit-functions.php:2069
|
28 |
+
msgid "Confirm delete"
|
29 |
+
msgstr "Verwijderen bevestigen"
|
30 |
+
|
31 |
+
#: includes/class-yit-assets.php:149
|
32 |
+
msgid "Are you sure you want to delete the selected items?"
|
33 |
+
msgstr "Weet je zeker dat je de geselecteerde items wilt verwijderen?"
|
34 |
+
|
35 |
+
#: includes/class-yit-assets.php:149 yit-functions.php:1859
|
36 |
+
#: yit-functions.php:2017
|
37 |
+
msgid ""
|
38 |
+
"This action cannot be undone and you will not be able to recover this data."
|
39 |
+
msgstr ""
|
40 |
+
"Deze actie kan niet ongedaan gemaakt worden en je zult deze gegevens niet "
|
41 |
+
"kunnen herstellen."
|
42 |
+
|
43 |
+
#: includes/class-yit-assets.php:161
|
44 |
msgid "Clear"
|
45 |
msgstr "Wissen"
|
46 |
|
47 |
+
#: includes/class-yit-assets.php:162
|
48 |
msgid "Clear color"
|
49 |
msgstr "Kleur wissen"
|
50 |
|
51 |
+
#: includes/class-yit-assets.php:163
|
52 |
msgid "Default"
|
53 |
msgstr "Standaard"
|
54 |
|
55 |
+
#: includes/class-yit-assets.php:164
|
56 |
msgid "Select default color"
|
57 |
msgstr "Standaardkleur selecteren"
|
58 |
|
59 |
+
#: includes/class-yit-assets.php:165
|
60 |
msgid "Select Color"
|
61 |
msgstr "Kleur selecteren"
|
62 |
|
63 |
+
#: includes/class-yit-assets.php:166
|
64 |
msgid "Color value"
|
65 |
msgstr "Kleurwaarde"
|
66 |
|
67 |
+
#: includes/class-yit-help-desk.php:152
|
68 |
+
msgid "There was an error with your request; please try again later."
|
69 |
+
msgstr ""
|
70 |
+
"Er is een fout opgetreden met je verzoek, probeer het later opnieuw a.u.b."
|
71 |
+
|
72 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:423
|
73 |
msgid "The changes you have made will be lost if you leave this page."
|
74 |
msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
|
75 |
|
86 |
msgid "How to install premium version"
|
87 |
msgstr "Hoe installeer ik de premium versie"
|
88 |
|
89 |
+
#: includes/class-yit-plugin-panel.php:651
|
90 |
#: includes/class-yit-plugin-subpanel.php:132
|
91 |
msgid "Save Changes"
|
92 |
msgstr "Wijzigingen opslaan"
|
93 |
|
94 |
+
#: includes/class-yit-plugin-panel.php:656
|
95 |
#: includes/class-yit-plugin-subpanel.php:136
|
96 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
97 |
msgid ""
|
99 |
msgstr ""
|
100 |
"Als je doorgaat met deze actie, zal je alle opties op deze pagina resetten."
|
101 |
|
102 |
+
#: includes/class-yit-plugin-panel.php:656
|
103 |
#: includes/class-yit-plugin-subpanel.php:136
|
104 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
105 |
msgid "Are you sure?"
|
106 |
msgstr "Weet je het zeker?"
|
107 |
|
108 |
+
#: includes/class-yit-plugin-panel.php:660
|
109 |
#: includes/class-yit-plugin-subpanel.php:139
|
110 |
msgid "Reset to default"
|
111 |
msgstr "Resetten naar standaard"
|
112 |
|
113 |
+
#: includes/class-yit-plugin-panel.php:958
|
114 |
msgid ""
|
115 |
"The element you have entered already exists. Please, enter another name."
|
116 |
msgstr "Het element dat je hebt ingevoerd bestaat al. Voer een andere naam in."
|
117 |
|
118 |
+
#: includes/class-yit-plugin-panel.php:959
|
119 |
msgid "Settings saved"
|
120 |
msgstr "Instellingen opgeslagen"
|
121 |
|
122 |
+
#: includes/class-yit-plugin-panel.php:960
|
123 |
msgid "Settings reset"
|
124 |
msgstr "Instellingen resetten"
|
125 |
|
126 |
+
#: includes/class-yit-plugin-panel.php:961
|
127 |
msgid "Element deleted correctly."
|
128 |
msgstr "Element juist verwijderd."
|
129 |
|
130 |
+
#: includes/class-yit-plugin-panel.php:962
|
131 |
+
#: includes/class-yit-plugin-panel.php:963
|
132 |
msgid "Element updated correctly."
|
133 |
msgstr "Element juist geüpdatet."
|
134 |
|
135 |
+
#: includes/class-yit-plugin-panel.php:964
|
136 |
msgid "Database imported correctly."
|
137 |
msgstr "Database juist geïmporteerd."
|
138 |
|
139 |
+
#: includes/class-yit-plugin-panel.php:965
|
140 |
msgid "An error has occurred during import. Please try again."
|
141 |
msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."
|
142 |
|
143 |
+
#: includes/class-yit-plugin-panel.php:966
|
144 |
msgid "The added file is not valid."
|
145 |
msgstr "Het toegevoegde bestand is niet geldig."
|
146 |
|
147 |
+
#: includes/class-yit-plugin-panel.php:967
|
148 |
msgid "Sorry, import is disabled."
|
149 |
msgstr "Sorry, importeren is uitgeschakeld."
|
150 |
|
151 |
+
#: includes/class-yit-plugin-panel.php:968
|
152 |
msgid "Sorting successful."
|
153 |
msgstr "Succesvol gesorteerd."
|
154 |
|
155 |
+
#: includes/class-yit-plugin-panel.php:1436
|
156 |
msgid "We need your support"
|
157 |
msgstr "We hebben je hulp nodig"
|
158 |
|
159 |
+
#: includes/class-yit-plugin-panel.php:1437
|
160 |
msgid "to keep updating and improving the plugin. Please,"
|
161 |
msgstr "om de plugin te blijven bijwerken en verbeteren. A.u.b.,"
|
162 |
|
163 |
+
#: includes/class-yit-plugin-panel.php:1439
|
164 |
msgid "help us by leaving a good review"
|
165 |
msgstr "help ons door een goede beoordeling achter te laten"
|
166 |
|
167 |
+
#: includes/class-yit-plugin-panel.php:1440
|
168 |
msgid ":) Thanks!"
|
169 |
msgstr ":) Bedankt!"
|
170 |
|
623 |
msgstr "Plugin benodigdheden"
|
624 |
|
625 |
#. translators: %s is the title of the post object.
|
626 |
+
#: yit-functions.php:1857
|
627 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
628 |
msgstr "Weet je zeker dat je \"%s\" naar de prullenbak wilt verplaatsen?"
|
629 |
|
630 |
#. translators: %s is the title of the post object.
|
631 |
+
#: yit-functions.php:1859 yit-functions.php:2017
|
632 |
msgid "Are you sure you want to delete \"%s\"?"
|
633 |
msgstr "Weet je zeker dat je \"%s\" wilt verwijderen?"
|
634 |
|
635 |
+
#: yit-functions.php:1955 yit-functions.php:1963 yit-functions.php:2080
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
636 |
msgid "Further actions"
|
637 |
msgstr "Verdere acties"
|
638 |
|
639 |
+
#: yit-plugin.php:204
|
640 |
msgid "License"
|
641 |
msgstr "Licentie"
|
642 |
|
655 |
msgid "YITH"
|
656 |
msgstr "YITH"
|
657 |
|
658 |
+
#: includes/class-yit-assets.php:133
|
659 |
msgctxt "Button text"
|
660 |
msgid "Confirm"
|
661 |
msgstr "Bevestigen"
|
662 |
|
663 |
+
#: includes/class-yit-assets.php:134
|
664 |
msgctxt "Button text"
|
665 |
msgid "Cancel"
|
666 |
msgstr "Annuleren"
|
667 |
|
668 |
+
#: includes/class-yit-assets.php:147 yit-functions.php:1927
|
669 |
+
msgctxt "Trash confirmation action"
|
670 |
+
msgid "Yes, move to trash"
|
671 |
+
msgstr "Ja, verplaatsen naar prullenbak"
|
672 |
+
|
673 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:1944
|
674 |
+
msgctxt "Delete confirmation action"
|
675 |
+
msgid "Yes, delete permanently"
|
676 |
+
msgstr "Ja, permanent verwijderen"
|
677 |
+
|
678 |
+
#: yit-functions.php:2071
|
679 |
+
msgctxt "Delete confirmation action"
|
680 |
+
msgid "Yes, delete"
|
681 |
+
msgstr "Ja, verwijderen"
|
682 |
+
|
683 |
+
#: includes/class-yit-plugin-panel.php:488
|
684 |
+
msgctxt "Help tab name"
|
685 |
+
msgid "Help"
|
686 |
+
msgstr "Help"
|
687 |
+
|
688 |
+
#. translators: 1. Plugin name.
|
689 |
+
#: includes/class-yit-plugin-panel.php:797
|
690 |
+
msgctxt "Help tab default title"
|
691 |
+
msgid "Thank you for purchasing %s!"
|
692 |
+
msgstr "Bedankt voor het kopen van %s!"
|
693 |
+
|
694 |
+
#: includes/class-yit-plugin-panel.php:798
|
695 |
+
msgctxt "Help tab default description"
|
696 |
+
msgid ""
|
697 |
+
"We want to help you to enjoy a wonderful experience with all our products."
|
698 |
+
msgstr ""
|
699 |
+
"We willen je helpen om te genieten van de geweldige ervaringen met al onze "
|
700 |
+
"producten."
|
701 |
+
|
702 |
#: includes/class-yith-dashboard.php:96
|
703 |
msgctxt "Plugin FW"
|
704 |
msgid "View Changelog"
|
801 |
msgid "NO"
|
802 |
msgstr "NEE"
|
803 |
|
804 |
+
#. translators: 1. Url to EN playlist.
|
805 |
+
#: templates/panel/help-tab.php:87
|
806 |
+
msgctxt "Help tab view all video link"
|
807 |
+
msgid ""
|
808 |
+
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
|
809 |
+
"learn more >"
|
810 |
+
msgstr ""
|
811 |
+
"Bekijk de volledige <a href=\"%s\" target=\"_blank\">Playlist op Youtube</a> "
|
812 |
+
"om meer te weten te komen >"
|
813 |
+
|
814 |
+
#: templates/panel/help-tab.php:94
|
815 |
+
msgctxt "Help tab Watch Videotutorials link"
|
816 |
+
msgid "Videos are also available in:"
|
817 |
+
msgstr "Videos zijn ook beschikbaar in:"
|
818 |
+
|
819 |
+
#: templates/panel/help-tab.php:137
|
820 |
+
msgctxt "Help tab Watch Videotutorials link"
|
821 |
+
msgid "Watch our videotutorials"
|
822 |
+
msgstr "Bekijk onze video uitleg"
|
823 |
+
|
824 |
+
#: templates/panel/help-tab.php:140
|
825 |
+
msgctxt "Help tab Watch Videotutorials link"
|
826 |
+
msgid "We show you some use cases"
|
827 |
+
msgstr "We tonen je enkele gebruikscasussen"
|
828 |
+
|
829 |
+
#: templates/panel/help-tab.php:124
|
830 |
+
msgctxt "Help tab Read Documentation link"
|
831 |
+
msgid "Read the documentation"
|
832 |
+
msgstr "Lees de documentatie"
|
833 |
+
|
834 |
+
#: templates/panel/help-tab.php:127
|
835 |
+
msgctxt "Help tab Read Documentation link"
|
836 |
+
msgid "to learn from basics how it works"
|
837 |
+
msgstr "om vanaf de basis te leren hoe het werkt"
|
838 |
+
|
839 |
+
#: templates/panel/help-tab.php:150
|
840 |
+
msgctxt "Help tab view FAQs link"
|
841 |
+
msgid "Check the FAQs"
|
842 |
+
msgstr "Check de FAQs"
|
843 |
+
|
844 |
+
#: templates/panel/help-tab.php:153
|
845 |
+
msgctxt "Help tab view FAQs link"
|
846 |
+
msgid "to find answers to your doubts"
|
847 |
+
msgstr "om je twijfels te beantwoorden"
|
848 |
+
|
849 |
+
#: templates/panel/help-tab.php:169
|
850 |
+
msgctxt "Help tab FAQ title"
|
851 |
+
msgid "Last FAQs in our Help Center"
|
852 |
+
msgstr "Laatste FAQs in ons Help Center"
|
853 |
+
|
854 |
+
#: templates/panel/help-tab.php:183
|
855 |
+
msgctxt "Help tab FAQ link"
|
856 |
+
msgid "View all FAQs >"
|
857 |
+
msgstr "Bekijk alle FAQs >"
|
858 |
+
|
859 |
+
#: templates/panel/help-tab.php:192
|
860 |
+
msgctxt "Help tab submit ticket title"
|
861 |
+
msgid "Need help?"
|
862 |
+
msgstr "Hulp nodig?"
|
863 |
+
|
864 |
+
#: templates/panel/help-tab.php:195
|
865 |
+
msgctxt "Help tab submit ticket description"
|
866 |
+
msgid ""
|
867 |
+
"If you are experiencing some technical issue ask help to our developers. "
|
868 |
+
"Submit a ticket in our support desk and we will help you as soon as possible."
|
869 |
+
msgstr ""
|
870 |
+
"Als je een technisch probleem ondervindt, vraag dan hulp aan onze "
|
871 |
+
"developers. Je kunt een ticket indienen bij onze supportdesk en we helpen je "
|
872 |
+
"zo snel mogelijk verder."
|
873 |
+
|
874 |
+
#: templates/panel/help-tab.php:203
|
875 |
+
msgctxt "Help tab submit ticket button"
|
876 |
+
msgid "Submit a ticket"
|
877 |
+
msgstr "Verstuur een ticket"
|
878 |
+
|
879 |
+
#: yit-functions.php:1871
|
880 |
msgctxt "Post action"
|
881 |
msgid "Preview"
|
882 |
msgstr "Voorbeeld"
|
883 |
|
884 |
+
#: yit-functions.php:1880
|
885 |
msgctxt "Post action"
|
886 |
msgid "View"
|
887 |
msgstr "Bekijken"
|
888 |
|
889 |
+
#: yit-functions.php:1891
|
890 |
msgctxt "Post action"
|
891 |
msgid "Edit"
|
892 |
msgstr "Bewerken"
|
893 |
|
894 |
+
#: yit-functions.php:1899
|
895 |
msgctxt "Post action"
|
896 |
msgid "Duplicate"
|
897 |
msgstr "Dupliceren"
|
898 |
|
899 |
+
#: yit-functions.php:1911
|
900 |
msgctxt "Post action"
|
901 |
msgid "Restore"
|
902 |
msgstr "Herstellen"
|
903 |
|
904 |
+
#: yit-functions.php:1919
|
905 |
msgctxt "Post action"
|
906 |
msgid "Trash"
|
907 |
msgstr "Prullenbak"
|
908 |
|
909 |
+
#: yit-functions.php:1935
|
910 |
msgctxt "Post action"
|
911 |
msgid "Delete Permanently"
|
912 |
msgstr "Permanent verijwderen"
|
913 |
|
914 |
+
#: yit-functions.php:2031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
915 |
msgctxt "Term action"
|
916 |
msgid "View"
|
917 |
msgstr "Bekijken"
|
918 |
|
919 |
+
#: yit-functions.php:2041
|
920 |
msgctxt "Term action"
|
921 |
msgid "Edit"
|
922 |
msgstr "Bewerken"
|
923 |
|
924 |
+
#: yit-functions.php:2049
|
925 |
msgctxt "Term action"
|
926 |
msgid "Duplicate"
|
927 |
msgstr "Dupliceren"
|
928 |
|
929 |
+
#: yit-functions.php:2062
|
930 |
msgctxt "Term action"
|
931 |
msgid "Delete"
|
932 |
msgstr "Verwijderen"
|
933 |
|
934 |
+
#: yit-plugin.php:85
|
935 |
msgctxt "Plugin Row Meta"
|
936 |
msgid "Live Demo"
|
937 |
msgstr "Live Demo"
|
938 |
|
939 |
+
#: yit-plugin.php:89
|
940 |
msgctxt "Plugin Row Meta"
|
941 |
msgid "Documentation"
|
942 |
msgstr "Documentatie"
|
943 |
|
944 |
+
#: yit-plugin.php:93
|
945 |
msgctxt "Plugin Row Meta"
|
946 |
msgid "Support"
|
947 |
msgstr "Ondersteuning"
|
948 |
|
949 |
+
#: yit-plugin.php:97
|
950 |
msgctxt "Plugin Row Meta"
|
951 |
msgid "Premium version"
|
952 |
msgstr "Premium versie"
|
953 |
|
954 |
+
#: yit-plugin.php:200
|
955 |
msgctxt "Action links"
|
956 |
msgid "Settings"
|
957 |
msgstr "Instellingen"
|
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: \n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -24,31 +24,57 @@ msgstr ""
|
|
24 |
"X-Textdomain-Support: yes\n"
|
25 |
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
26 |
|
27 |
-
#: includes/class-yit-assets.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
msgid "Clear"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: includes/class-yit-assets.php:
|
32 |
msgid "Clear color"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: includes/class-yit-assets.php:
|
36 |
msgid "Default"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: includes/class-yit-assets.php:
|
40 |
msgid "Select default color"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: includes/class-yit-assets.php:
|
44 |
msgid "Select Color"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: includes/class-yit-assets.php:
|
48 |
msgid "Color value"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: includes/class-yit-
|
|
|
|
|
|
|
|
|
52 |
msgid "The changes you have made will be lost if you leave this page."
|
53 |
msgstr ""
|
54 |
|
@@ -65,82 +91,82 @@ msgstr ""
|
|
65 |
msgid "How to install premium version"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: includes/class-yit-plugin-panel.php:
|
69 |
#: includes/class-yit-plugin-subpanel.php:132
|
70 |
msgid "Save Changes"
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: includes/class-yit-plugin-panel.php:
|
74 |
#: includes/class-yit-plugin-subpanel.php:136
|
75 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
76 |
msgid "If you continue with this action, you will reset all options in this page."
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: includes/class-yit-plugin-panel.php:
|
80 |
#: includes/class-yit-plugin-subpanel.php:136
|
81 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
82 |
msgid "Are you sure?"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: includes/class-yit-plugin-panel.php:
|
86 |
#: includes/class-yit-plugin-subpanel.php:139
|
87 |
msgid "Reset to default"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: includes/class-yit-plugin-panel.php:
|
91 |
msgid "The element you have entered already exists. Please, enter another name."
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: includes/class-yit-plugin-panel.php:
|
95 |
msgid "Settings saved"
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: includes/class-yit-plugin-panel.php:
|
99 |
msgid "Settings reset"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: includes/class-yit-plugin-panel.php:
|
103 |
msgid "Element deleted correctly."
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: includes/class-yit-plugin-panel.php:
|
107 |
-
#: includes/class-yit-plugin-panel.php:
|
108 |
msgid "Element updated correctly."
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: includes/class-yit-plugin-panel.php:
|
112 |
msgid "Database imported correctly."
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: includes/class-yit-plugin-panel.php:
|
116 |
msgid "An error has occurred during import. Please try again."
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: includes/class-yit-plugin-panel.php:
|
120 |
msgid "The added file is not valid."
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: includes/class-yit-plugin-panel.php:
|
124 |
msgid "Sorry, import is disabled."
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: includes/class-yit-plugin-panel.php:
|
128 |
msgid "Sorting successful."
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: includes/class-yit-plugin-panel.php:
|
132 |
msgid "We need your support"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: includes/class-yit-plugin-panel.php:
|
136 |
msgid "to keep updating and improving the plugin. Please,"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: includes/class-yit-plugin-panel.php:
|
140 |
msgid "help us by leaving a good review"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: includes/class-yit-plugin-panel.php:
|
144 |
msgid ":) Thanks!"
|
145 |
msgstr ""
|
146 |
|
@@ -573,33 +599,21 @@ msgstr ""
|
|
573 |
msgid "Plugins Requirements"
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: yit-functions.php:
|
577 |
#. translators: %s is the title of the post object.
|
578 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: yit-functions.php:
|
582 |
#. translators: %s is the title of the post object.
|
583 |
msgid "Are you sure you want to delete \"%s\"?"
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: yit-functions.php:
|
587 |
-
msgid "This action cannot be undone and you will be not able to recover this data."
|
588 |
-
msgstr ""
|
589 |
-
|
590 |
-
#: yit-functions.php:1891
|
591 |
-
msgid "Confirm trash"
|
592 |
-
msgstr ""
|
593 |
-
|
594 |
-
#: yit-functions.php:1908 yit-functions.php:2035
|
595 |
-
msgid "Confirm delete"
|
596 |
-
msgstr ""
|
597 |
-
|
598 |
-
#: yit-functions.php:1921 yit-functions.php:1929 yit-functions.php:2046
|
599 |
msgid "Further actions"
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: yit-plugin.php:
|
603 |
msgid "License"
|
604 |
msgstr ""
|
605 |
|
@@ -618,16 +632,47 @@ msgctxt "[gutenberg]: Category Name"
|
|
618 |
msgid "YITH"
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: includes/class-yit-assets.php:
|
622 |
msgctxt "Button text"
|
623 |
msgid "Confirm"
|
624 |
msgstr ""
|
625 |
|
626 |
-
#: includes/class-yit-assets.php:
|
627 |
msgctxt "Button text"
|
628 |
msgid "Cancel"
|
629 |
msgstr ""
|
630 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
631 |
#: includes/class-yith-dashboard.php:96
|
632 |
msgctxt "Plugin FW"
|
633 |
msgid "View Changelog"
|
@@ -724,92 +769,153 @@ msgctxt "YES/NO button: use MAX 4 characters!"
|
|
724 |
msgid "NO"
|
725 |
msgstr ""
|
726 |
|
727 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
728 |
msgctxt "Post action"
|
729 |
msgid "Preview"
|
730 |
msgstr ""
|
731 |
|
732 |
-
#: yit-functions.php:
|
733 |
msgctxt "Post action"
|
734 |
msgid "View"
|
735 |
msgstr ""
|
736 |
|
737 |
-
#: yit-functions.php:
|
738 |
msgctxt "Post action"
|
739 |
msgid "Edit"
|
740 |
msgstr ""
|
741 |
|
742 |
-
#: yit-functions.php:
|
743 |
msgctxt "Post action"
|
744 |
msgid "Duplicate"
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: yit-functions.php:
|
748 |
msgctxt "Post action"
|
749 |
msgid "Restore"
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: yit-functions.php:
|
753 |
msgctxt "Post action"
|
754 |
msgid "Trash"
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: yit-functions.php:
|
758 |
msgctxt "Post action"
|
759 |
msgid "Delete Permanently"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: yit-functions.php:
|
763 |
-
msgctxt "Trash confirmation action"
|
764 |
-
msgid "Yes, trash"
|
765 |
-
msgstr ""
|
766 |
-
|
767 |
-
#: yit-functions.php:1910 yit-functions.php:2037
|
768 |
-
msgctxt "Delete confirmation action"
|
769 |
-
msgid "Yes, delete"
|
770 |
-
msgstr ""
|
771 |
-
|
772 |
-
#: yit-functions.php:1997
|
773 |
msgctxt "Term action"
|
774 |
msgid "View"
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: yit-functions.php:
|
778 |
msgctxt "Term action"
|
779 |
msgid "Edit"
|
780 |
msgstr ""
|
781 |
|
782 |
-
#: yit-functions.php:
|
783 |
msgctxt "Term action"
|
784 |
msgid "Duplicate"
|
785 |
msgstr ""
|
786 |
|
787 |
-
#: yit-functions.php:
|
788 |
msgctxt "Term action"
|
789 |
msgid "Delete"
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: yit-plugin.php:
|
793 |
msgctxt "Plugin Row Meta"
|
794 |
msgid "Live Demo"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: yit-plugin.php:
|
798 |
msgctxt "Plugin Row Meta"
|
799 |
msgid "Documentation"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: yit-plugin.php:
|
803 |
msgctxt "Plugin Row Meta"
|
804 |
msgid "Support"
|
805 |
msgstr ""
|
806 |
|
807 |
-
#: yit-plugin.php:
|
808 |
msgctxt "Plugin Row Meta"
|
809 |
msgid "Premium version"
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: yit-plugin.php:
|
813 |
msgctxt "Action links"
|
814 |
msgid "Settings"
|
815 |
msgstr ""
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: \n"
|
6 |
"Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
|
7 |
+
"POT-Creation-Date: 2021-06-08 13:48:44+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
24 |
"X-Textdomain-Support: yes\n"
|
25 |
"X-Generator: grunt-wp-i18n 1.0.3\n"
|
26 |
|
27 |
+
#: includes/class-yit-assets.php:145 yit-functions.php:1925
|
28 |
+
msgid "Confirm trash"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: includes/class-yit-assets.php:146
|
32 |
+
msgid "Are you sure you want to trash the selected items?"
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: includes/class-yit-assets.php:148 yit-functions.php:1942
|
36 |
+
#: yit-functions.php:2069
|
37 |
+
msgid "Confirm delete"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: includes/class-yit-assets.php:149
|
41 |
+
msgid "Are you sure you want to delete the selected items?"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: includes/class-yit-assets.php:149 yit-functions.php:1859
|
45 |
+
#: yit-functions.php:2017
|
46 |
+
msgid "This action cannot be undone and you will not be able to recover this data."
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
#: includes/class-yit-assets.php:161
|
50 |
msgid "Clear"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: includes/class-yit-assets.php:162
|
54 |
msgid "Clear color"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: includes/class-yit-assets.php:163
|
58 |
msgid "Default"
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: includes/class-yit-assets.php:164
|
62 |
msgid "Select default color"
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: includes/class-yit-assets.php:165
|
66 |
msgid "Select Color"
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: includes/class-yit-assets.php:166
|
70 |
msgid "Color value"
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: includes/class-yit-help-desk.php:152
|
74 |
+
msgid "There was an error with your request; please try again later."
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: includes/class-yit-plugin-panel-woocommerce.php:423
|
78 |
msgid "The changes you have made will be lost if you leave this page."
|
79 |
msgstr ""
|
80 |
|
91 |
msgid "How to install premium version"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: includes/class-yit-plugin-panel.php:651
|
95 |
#: includes/class-yit-plugin-subpanel.php:132
|
96 |
msgid "Save Changes"
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: includes/class-yit-plugin-panel.php:656
|
100 |
#: includes/class-yit-plugin-subpanel.php:136
|
101 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
102 |
msgid "If you continue with this action, you will reset all options in this page."
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: includes/class-yit-plugin-panel.php:656
|
106 |
#: includes/class-yit-plugin-subpanel.php:136
|
107 |
#: templates/panel/woocommerce/woocommerce-form.php:14
|
108 |
msgid "Are you sure?"
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: includes/class-yit-plugin-panel.php:660
|
112 |
#: includes/class-yit-plugin-subpanel.php:139
|
113 |
msgid "Reset to default"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: includes/class-yit-plugin-panel.php:958
|
117 |
msgid "The element you have entered already exists. Please, enter another name."
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: includes/class-yit-plugin-panel.php:959
|
121 |
msgid "Settings saved"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: includes/class-yit-plugin-panel.php:960
|
125 |
msgid "Settings reset"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: includes/class-yit-plugin-panel.php:961
|
129 |
msgid "Element deleted correctly."
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: includes/class-yit-plugin-panel.php:962
|
133 |
+
#: includes/class-yit-plugin-panel.php:963
|
134 |
msgid "Element updated correctly."
|
135 |
msgstr ""
|
136 |
|
137 |
+
#: includes/class-yit-plugin-panel.php:964
|
138 |
msgid "Database imported correctly."
|
139 |
msgstr ""
|
140 |
|
141 |
+
#: includes/class-yit-plugin-panel.php:965
|
142 |
msgid "An error has occurred during import. Please try again."
|
143 |
msgstr ""
|
144 |
|
145 |
+
#: includes/class-yit-plugin-panel.php:966
|
146 |
msgid "The added file is not valid."
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: includes/class-yit-plugin-panel.php:967
|
150 |
msgid "Sorry, import is disabled."
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: includes/class-yit-plugin-panel.php:968
|
154 |
msgid "Sorting successful."
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: includes/class-yit-plugin-panel.php:1436
|
158 |
msgid "We need your support"
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: includes/class-yit-plugin-panel.php:1437
|
162 |
msgid "to keep updating and improving the plugin. Please,"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: includes/class-yit-plugin-panel.php:1439
|
166 |
msgid "help us by leaving a good review"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: includes/class-yit-plugin-panel.php:1440
|
170 |
msgid ":) Thanks!"
|
171 |
msgstr ""
|
172 |
|
599 |
msgid "Plugins Requirements"
|
600 |
msgstr ""
|
601 |
|
602 |
+
#: yit-functions.php:1857
|
603 |
#. translators: %s is the title of the post object.
|
604 |
msgid "Are you sure you want to move \"%s\" to trash?"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: yit-functions.php:1859 yit-functions.php:2017
|
608 |
#. translators: %s is the title of the post object.
|
609 |
msgid "Are you sure you want to delete \"%s\"?"
|
610 |
msgstr ""
|
611 |
|
612 |
+
#: yit-functions.php:1955 yit-functions.php:1963 yit-functions.php:2080
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
613 |
msgid "Further actions"
|
614 |
msgstr ""
|
615 |
|
616 |
+
#: yit-plugin.php:204
|
617 |
msgid "License"
|
618 |
msgstr ""
|
619 |
|
632 |
msgid "YITH"
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: includes/class-yit-assets.php:133
|
636 |
msgctxt "Button text"
|
637 |
msgid "Confirm"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: includes/class-yit-assets.php:134
|
641 |
msgctxt "Button text"
|
642 |
msgid "Cancel"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: includes/class-yit-assets.php:147 yit-functions.php:1927
|
646 |
+
msgctxt "Trash confirmation action"
|
647 |
+
msgid "Yes, move to trash"
|
648 |
+
msgstr ""
|
649 |
+
|
650 |
+
#: includes/class-yit-assets.php:150 yit-functions.php:1944
|
651 |
+
msgctxt "Delete confirmation action"
|
652 |
+
msgid "Yes, delete permanently"
|
653 |
+
msgstr ""
|
654 |
+
|
655 |
+
#: yit-functions.php:2071
|
656 |
+
msgctxt "Delete confirmation action"
|
657 |
+
msgid "Yes, delete"
|
658 |
+
msgstr ""
|
659 |
+
|
660 |
+
#: includes/class-yit-plugin-panel.php:488
|
661 |
+
msgctxt "Help tab name"
|
662 |
+
msgid "Help"
|
663 |
+
msgstr ""
|
664 |
+
|
665 |
+
#: includes/class-yit-plugin-panel.php:797
|
666 |
+
#. translators: 1. Plugin name.
|
667 |
+
msgctxt "Help tab default title"
|
668 |
+
msgid "Thank you for purchasing %s!"
|
669 |
+
msgstr ""
|
670 |
+
|
671 |
+
#: includes/class-yit-plugin-panel.php:798
|
672 |
+
msgctxt "Help tab default description"
|
673 |
+
msgid "We want to help you to enjoy a wonderful experience with all our products."
|
674 |
+
msgstr ""
|
675 |
+
|
676 |
#: includes/class-yith-dashboard.php:96
|
677 |
msgctxt "Plugin FW"
|
678 |
msgid "View Changelog"
|
769 |
msgid "NO"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: templates/panel/help-tab.php:87
|
773 |
+
#. translators: 1. Url to EN playlist.
|
774 |
+
msgctxt "Help tab view all video link"
|
775 |
+
msgid ""
|
776 |
+
"Check the full <a href=\"%s\" target=\"_blank\">Playlist on Youtube</a> to "
|
777 |
+
"learn more >"
|
778 |
+
msgstr ""
|
779 |
+
|
780 |
+
#: templates/panel/help-tab.php:94
|
781 |
+
msgctxt "Help tab Watch Videotutorials link"
|
782 |
+
msgid "Videos are also available in:"
|
783 |
+
msgstr ""
|
784 |
+
|
785 |
+
#: templates/panel/help-tab.php:137
|
786 |
+
msgctxt "Help tab Watch Videotutorials link"
|
787 |
+
msgid "Watch our videotutorials"
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: templates/panel/help-tab.php:140
|
791 |
+
msgctxt "Help tab Watch Videotutorials link"
|
792 |
+
msgid "We show you some use cases"
|
793 |
+
msgstr ""
|
794 |
+
|
795 |
+
#: templates/panel/help-tab.php:124
|
796 |
+
msgctxt "Help tab Read Documentation link"
|
797 |
+
msgid "Read the documentation"
|
798 |
+
msgstr ""
|
799 |
+
|
800 |
+
#: templates/panel/help-tab.php:127
|
801 |
+
msgctxt "Help tab Read Documentation link"
|
802 |
+
msgid "to learn from basics how it works"
|
803 |
+
msgstr ""
|
804 |
+
|
805 |
+
#: templates/panel/help-tab.php:150
|
806 |
+
msgctxt "Help tab view FAQs link"
|
807 |
+
msgid "Check the FAQs"
|
808 |
+
msgstr ""
|
809 |
+
|
810 |
+
#: templates/panel/help-tab.php:153
|
811 |
+
msgctxt "Help tab view FAQs link"
|
812 |
+
msgid "to find answers to your doubts"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: templates/panel/help-tab.php:169
|
816 |
+
msgctxt "Help tab FAQ title"
|
817 |
+
msgid "Last FAQs in our Help Center"
|
818 |
+
msgstr ""
|
819 |
+
|
820 |
+
#: templates/panel/help-tab.php:183
|
821 |
+
msgctxt "Help tab FAQ link"
|
822 |
+
msgid "View all FAQs >"
|
823 |
+
msgstr ""
|
824 |
+
|
825 |
+
#: templates/panel/help-tab.php:192
|
826 |
+
msgctxt "Help tab submit ticket title"
|
827 |
+
msgid "Need help?"
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: templates/panel/help-tab.php:195
|
831 |
+
msgctxt "Help tab submit ticket description"
|
832 |
+
msgid ""
|
833 |
+
"If you are experiencing some technical issue ask help to our developers. "
|
834 |
+
"Submit a ticket in our support desk and we will help you as soon as "
|
835 |
+
"possible."
|
836 |
+
msgstr ""
|
837 |
+
|
838 |
+
#: templates/panel/help-tab.php:203
|
839 |
+
msgctxt "Help tab submit ticket button"
|
840 |
+
msgid "Submit a ticket"
|
841 |
+
msgstr ""
|
842 |
+
|
843 |
+
#: yit-functions.php:1871
|
844 |
msgctxt "Post action"
|
845 |
msgid "Preview"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: yit-functions.php:1880
|
849 |
msgctxt "Post action"
|
850 |
msgid "View"
|
851 |
msgstr ""
|
852 |
|
853 |
+
#: yit-functions.php:1891
|
854 |
msgctxt "Post action"
|
855 |
msgid "Edit"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: yit-functions.php:1899
|
859 |
msgctxt "Post action"
|
860 |
msgid "Duplicate"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: yit-functions.php:1911
|
864 |
msgctxt "Post action"
|
865 |
msgid "Restore"
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: yit-functions.php:1919
|
869 |
msgctxt "Post action"
|
870 |
msgid "Trash"
|
871 |
msgstr ""
|
872 |
|
873 |
+
#: yit-functions.php:1935
|
874 |
msgctxt "Post action"
|
875 |
msgid "Delete Permanently"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: yit-functions.php:2031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
879 |
msgctxt "Term action"
|
880 |
msgid "View"
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: yit-functions.php:2041
|
884 |
msgctxt "Term action"
|
885 |
msgid "Edit"
|
886 |
msgstr ""
|
887 |
|
888 |
+
#: yit-functions.php:2049
|
889 |
msgctxt "Term action"
|
890 |
msgid "Duplicate"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: yit-functions.php:2062
|
894 |
msgctxt "Term action"
|
895 |
msgid "Delete"
|
896 |
msgstr ""
|
897 |
|
898 |
+
#: yit-plugin.php:85
|
899 |
msgctxt "Plugin Row Meta"
|
900 |
msgid "Live Demo"
|
901 |
msgstr ""
|
902 |
|
903 |
+
#: yit-plugin.php:89
|
904 |
msgctxt "Plugin Row Meta"
|
905 |
msgid "Documentation"
|
906 |
msgstr ""
|
907 |
|
908 |
+
#: yit-plugin.php:93
|
909 |
msgctxt "Plugin Row Meta"
|
910 |
msgid "Support"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: yit-plugin.php:97
|
914 |
msgctxt "Plugin Row Meta"
|
915 |
msgid "Premium version"
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: yit-plugin.php:200
|
919 |
msgctxt "Action links"
|
920 |
msgid "Settings"
|
921 |
msgstr ""
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for displaying the ajax-pages field
|
4 |
+
* Note: the stored value is an array if WooCommerce >= 3.0; string otherwise
|
5 |
+
*
|
6 |
+
* @var array $field The field.
|
7 |
+
* @package YITH\PluginFramework\Templates\Fields
|
8 |
+
*/
|
9 |
+
|
10 |
+
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
|
11 |
+
|
12 |
+
yith_plugin_fw_enqueue_enhanced_select();
|
13 |
+
|
14 |
+
$default_field = array(
|
15 |
+
'id' => '',
|
16 |
+
'name' => '',
|
17 |
+
'class' => 'yith-page-search',
|
18 |
+
'no_value' => false,
|
19 |
+
'multiple' => false,
|
20 |
+
'data' => array(),
|
21 |
+
'style' => 'width:400px',
|
22 |
+
'value' => '',
|
23 |
+
);
|
24 |
+
|
25 |
+
foreach ( $default_field as $field_key => $field_value ) {
|
26 |
+
if ( empty( $field[ $field_key ] ) ) {
|
27 |
+
$field[ $field_key ] = $field_value;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
unset( $field_key );
|
31 |
+
unset( $field_value );
|
32 |
+
|
33 |
+
list ( $field_id, $class, $no_value, $multiple, $data, $name, $style, $value ) = yith_plugin_fw_extract( $field, 'id', 'class', 'no_value', 'multiple', 'data', 'name', 'style', 'value' );
|
34 |
+
|
35 |
+
if ( $no_value ) {
|
36 |
+
$value = array();
|
37 |
+
}
|
38 |
+
|
39 |
+
$default_data = array(
|
40 |
+
'action' => 'woocommerce_json_search_pages',
|
41 |
+
'placeholder' => __( 'Search Pages', 'yith-plugin-fw' ),
|
42 |
+
'allow_clear' => false,
|
43 |
+
);
|
44 |
+
$data = wp_parse_args( $data, $default_data );
|
45 |
+
$show_id = isset( $data['show_id'] ) && $data['show_id'];
|
46 |
+
|
47 |
+
// Separate select2 needed data and other data.
|
48 |
+
$select2_custom_attributes = array();
|
49 |
+
$select2_data = array();
|
50 |
+
$select2_data_keys = array( 'placeholder', 'allow_clear', 'action' );
|
51 |
+
foreach ( $data as $d_key => $d_value ) {
|
52 |
+
if ( in_array( $d_key, $select2_data_keys, true ) ) {
|
53 |
+
$select2_data[ $d_key ] = $d_value;
|
54 |
+
} else {
|
55 |
+
$select2_custom_attributes[ 'data-' . $d_key ] = $d_value;
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
// Populate data-selected by value.
|
60 |
+
$data_selected = array();
|
61 |
+
if ( ! empty( $value ) ) {
|
62 |
+
if ( $multiple ) {
|
63 |
+
$value = is_array( $value ) ? $value : explode( ',', $value );
|
64 |
+
foreach ( $value as $page_id ) {
|
65 |
+
$data_selected[ $page_id ] = get_the_title( $page_id );
|
66 |
+
}
|
67 |
+
} else {
|
68 |
+
$page_id = absint( $value );
|
69 |
+
$data_selected[ $page_id ] = get_the_title( $page_id );
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
// Parse $value to string to prevent issue with wc2.6.
|
74 |
+
$value = is_array( $value ) ? implode( ',', $value ) : $value;
|
75 |
+
?>
|
76 |
+
<div class="yith-plugin-fw-select2-wrapper">
|
77 |
+
<?php
|
78 |
+
if ( function_exists( 'yit_add_select2_fields' ) ) {
|
79 |
+
yit_add_select2_fields(
|
80 |
+
array(
|
81 |
+
'id' => $field_id,
|
82 |
+
'name' => $name,
|
83 |
+
'class' => $class,
|
84 |
+
'data-multiple' => $multiple,
|
85 |
+
'data-placeholder' => $select2_data['placeholder'],
|
86 |
+
'data-allow_clear' => $select2_data['allow_clear'],
|
87 |
+
'data-action' => $select2_data['action'],
|
88 |
+
'custom-attributes' => $select2_custom_attributes,
|
89 |
+
'style' => $style,
|
90 |
+
'value' => $value,
|
91 |
+
'data-selected' => $data_selected,
|
92 |
+
)
|
93 |
+
);
|
94 |
+
}
|
95 |
+
?>
|
96 |
+
</div>
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for displaying the image-dimensions field
|
4 |
+
*
|
5 |
+
* @var array $field The field.
|
6 |
+
* @package YITH\PluginFramework\Templates\Fields
|
7 |
+
*/
|
8 |
+
|
9 |
+
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
|
10 |
+
|
11 |
+
list ( $field_id, $class, $name, $value ) = yith_plugin_fw_extract( $field, 'id', 'class', 'name', 'value' );
|
12 |
+
|
13 |
+
$value = isset( $value ) && is_array( $value ) ? $value : array();
|
14 |
+
|
15 |
+
?>
|
16 |
+
<div class="yith-plugin-fw-image-dimensions" id="<?php echo esc_attr( $field_id ); ?>">
|
17 |
+
<div class="yith-image-width">
|
18 |
+
<label for="<?php echo esc_attr( $name . '_width' ); ?>"><?php echo esc_html_x( 'Width', 'Image width field label', 'yith-plugin-fw' ); ?></label>
|
19 |
+
<input type="number" id="<?php echo esc_attr( $name . '_width' ); ?>" name="<?php echo esc_attr( $name . '[width]' ); ?>"
|
20 |
+
value="<?php echo isset( $value['width'] ) ? absint( $value['width'] ) : 0; ?>" step="1" min="0" />
|
21 |
+
</div>
|
22 |
+
<div class="yith-image-height">
|
23 |
+
<label for="<?php echo esc_attr( $name . '_height' ); ?>"><?php echo esc_html_x( 'Height', 'Image height field label', 'yith-plugin-fw' ); ?></label>
|
24 |
+
<input type="number" id="<?php echo esc_attr( $name . '_height' ); ?>" name="<?php echo esc_attr( $name . '[height]' ); ?>"
|
25 |
+
value="<?php echo isset( $value['height'] ) ? absint( $value['height'] ) : 0; ?>" step="1" min="0" />
|
26 |
+
</div>
|
27 |
+
</div>
|
@@ -8,28 +8,58 @@
|
|
8 |
|
9 |
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
|
10 |
|
11 |
-
list ( $field_id, $name, $value, $fields, $size ) = yith_plugin_fw_extract( $field, 'id', 'name', 'value', 'fields', 'size' );
|
|
|
|
|
|
|
|
|
12 |
|
13 |
$value = isset( $value ) && is_array( $value ) ? $value : array();
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
/>
|
32 |
-
</
|
33 |
-
|
34 |
-
|
35 |
-
|
|
8 |
|
9 |
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
|
10 |
|
11 |
+
list ( $field_id, $name, $value, $fields, $size, $inline ) = yith_plugin_fw_extract( $field, 'id', 'name', 'value', 'fields', 'size', 'inline' );
|
12 |
+
|
13 |
+
if ( empty( $fields ) ) {
|
14 |
+
return;
|
15 |
+
}
|
16 |
|
17 |
$value = isset( $value ) && is_array( $value ) ? $value : array();
|
18 |
+
|
19 |
+
// Let's build the text array!
|
20 |
+
$text_array = array();
|
21 |
+
foreach ( $fields as $field_name => $single_field ) {
|
22 |
+
$text_array[ $field_name ]['label'] = $single_field;
|
23 |
+
$text_array[ $field_name ]['name'] = "{$name}[{$field_name}]";
|
24 |
+
$text_array[ $field_name ]['id'] = "{$field_id}_{$field_name}";
|
25 |
+
$text_array[ $field_name ]['value'] = isset( $value[ $field_name ] ) ? $value[ $field_name ] : '';
|
26 |
+
}
|
27 |
+
|
28 |
+
if ( empty( $inline ) ) : ?>
|
29 |
+
|
30 |
+
<table class="yith-plugin-fw-text-array-table">
|
31 |
+
<?php foreach ( $text_array as $id => $single ) : ?>
|
32 |
+
<tr>
|
33 |
+
<td><?php echo esc_html( $single['label'] ); ?></td>
|
34 |
+
<td>
|
35 |
+
<input type="text" id="<?php echo esc_attr( $single['id'] ); ?>"
|
36 |
+
name="<?php echo esc_attr( $single['name'] ); ?>"
|
37 |
+
value="<?php echo esc_attr( $single['value'] ); ?>"
|
38 |
+
<?php if ( isset( $size ) ) : ?>
|
39 |
+
style="width: <?php echo absint( $size ); ?>px"
|
40 |
+
<?php endif; ?>
|
41 |
+
/>
|
42 |
+
</td>
|
43 |
+
</tr>
|
44 |
+
<?php endforeach ?>
|
45 |
+
</table>
|
46 |
+
|
47 |
+
<?php else : ?>
|
48 |
+
|
49 |
+
<div class="yith-plugin-fw-text-array-inline">
|
50 |
+
<?php foreach ( $text_array as $id => $single ) : ?>
|
51 |
+
<div class="yith-single-text"
|
52 |
+
<?php if ( isset( $size ) ) : ?>
|
53 |
+
style="width: <?php echo absint( $size ); ?>px"
|
54 |
+
<?php endif; ?>
|
55 |
+
>
|
56 |
+
<label for="<?php echo esc_attr( $single['id'] ); ?>"><?php echo esc_html( $single['label'] ); ?></label>
|
57 |
+
<input type="text" id="<?php echo esc_attr( $single['id'] ); ?>"
|
58 |
+
name="<?php echo esc_attr( $single['name'] ); ?>"
|
59 |
+
value="<?php echo esc_attr( $single['value'] ); ?>"
|
60 |
/>
|
61 |
+
</div>
|
62 |
+
<?php endforeach ?>
|
63 |
+
</div>
|
64 |
+
|
65 |
+
<?php endif;
|
@@ -0,0 +1,211 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Template for displaying the Help tab.
|
4 |
+
*
|
5 |
+
* @var array $options Array of options.
|
6 |
+
* @var string $current_tab The current tab.
|
7 |
+
* @var string $current_sub_tab The current sub-tab.
|
8 |
+
* @var array $latest_articles Latest HC articles.
|
9 |
+
*
|
10 |
+
* @package YITH\PluginFramework\Templates
|
11 |
+
*/
|
12 |
+
|
13 |
+
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
|
14 |
+
|
15 |
+
$current_locale = substr( get_user_locale(), 0, 2 );
|
16 |
+
$the_title = $options['title'];
|
17 |
+
$the_description = $options['description'];
|
18 |
+
$show_articles = $options['show_hc_articles'] && ! empty( $latest_articles );
|
19 |
+
$show_submit_ticket = $options['show_submit_ticket'] && $options['submit_ticket_url'];
|
20 |
+
$has_video = $options['main_video'] && ! empty( $options['main_video']['url'] );
|
21 |
+
$show_view_all_faq = ! ! $options['hc_url'];
|
22 |
+
$has_any_playlist = ! ! $options['playlists'];
|
23 |
+
$has_additional_links = $has_any_playlist || ! ! $options['doc_url'] || $show_view_all_faq;
|
24 |
+
$has_default_playlist = $options['playlists'] && ! empty( $options['playlists'] );
|
25 |
+
|
26 |
+
// search for correct video url.
|
27 |
+
$video_url = false;
|
28 |
+
|
29 |
+
if ( $has_video ) {
|
30 |
+
if ( is_array( $options['main_video']['url'] ) ) {
|
31 |
+
if ( ! empty( $options['main_video']['url'][ $current_locale ] ) ) {
|
32 |
+
$video_url = $options['main_video']['url'][ $current_locale ];
|
33 |
+
} elseif ( ! empty( $options['main_video']['url']['en'] ) ) {
|
34 |
+
$video_url = $options['main_video']['url']['en'];
|
35 |
+
}
|
36 |
+
} else {
|
37 |
+
$video_url = $options['main_video']['url'];
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
// search for correct playlist.
|
42 |
+
$default_playlist = false;
|
43 |
+
|
44 |
+
if ( $has_default_playlist ) {
|
45 |
+
if ( is_array( $options['playlists'] ) ) {
|
46 |
+
if ( ! empty( $options['playlists'][ $current_locale ] ) ) {
|
47 |
+
$default_playlist = $options['playlists'][ $current_locale ];
|
48 |
+
} elseif ( ! empty( $options['playlists']['en'] ) ) {
|
49 |
+
$default_playlist = $options['playlists']['en'];
|
50 |
+
}
|
51 |
+
} else {
|
52 |
+
$default_playlist = $options['playlists'];
|
53 |
+
}
|
54 |
+
}
|
55 |
+
?>
|
56 |
+
|
57 |
+
<div id='yith_plugin_fw_panel_help_tab' class='yith-plugin-fw-panel-help-tab-container'>
|
58 |
+
<div class="yith-plugin-fw-panel-help-tab-content">
|
59 |
+
<?php if ( $the_title ) : ?>
|
60 |
+
<h2 class="yith-plugin-fw-panel-help-tab-title"><?php echo wp_kses_post( $the_title ); ?></h2>
|
61 |
+
<?php endif; ?>
|
62 |
+
|
63 |
+
<?php if ( $the_description ) : ?>
|
64 |
+
<p class="yith-plugin-fw-panel-tab-description">
|
65 |
+
<?php echo wp_kses_post( $the_description ); ?>
|
66 |
+
</p>
|
67 |
+
<?php endif; ?>
|
68 |
+
|
69 |
+
<?php if ( $has_video || $has_additional_links ) : ?>
|
70 |
+
<div class="row">
|
71 |
+
<?php if ( $video_url ) : ?>
|
72 |
+
<div class="yith-plugin-fw-help-tab-video <?php echo $has_additional_links ? 'column-left' : 'full-width'; ?>">
|
73 |
+
<?php if ( isset( $options['main_video']['desc'] ) ) : ?>
|
74 |
+
<p class="video-description"><?php echo wp_kses_post( $options['main_video']['desc'] ); ?></p>
|
75 |
+
<?php endif; ?>
|
76 |
+
|
77 |
+
<div class="video-container">
|
78 |
+
<iframe src="<?php echo esc_url( $video_url ); ?>"></iframe>
|
79 |
+
</div>
|
80 |
+
|
81 |
+
<?php if ( $has_any_playlist ) : ?>
|
82 |
+
<div class="video-caption">
|
83 |
+
<?php if ( $default_playlist ) : ?>
|
84 |
+
<p>
|
85 |
+
<?php
|
86 |
+
// translators: 1. Url to EN playlist.
|
87 |
+
echo wp_kses_post( sprintf( _x( 'Check the full <a href="%s" target="_blank">Playlist on Youtube</a> to learn more >', 'Help tab view all video link', 'yit-plugin-fw' ), $default_playlist ) );
|
88 |
+
?>
|
89 |
+
</p>
|
90 |
+
<?php endif; ?>
|
91 |
+
|
92 |
+
<p>
|
93 |
+
<b>
|
94 |
+
<?php echo esc_html_x( 'Videos are also available in:', 'Help tab Watch Videotutorials link', 'yit-plugin-fw' ); ?>
|
95 |
+
</b>
|
96 |
+
<?php $first = true; ?>
|
97 |
+
<?php foreach ( $options['playlists'] as $lang => $url ) : ?>
|
98 |
+
<?php
|
99 |
+
if ( $url === $default_playlist ) {
|
100 |
+
continue;
|
101 |
+
}
|
102 |
+
?>
|
103 |
+
<?php if ( ! $first ) : ?>
|
104 |
+
<span class="separator">|</span>
|
105 |
+
<?php endif; ?>
|
106 |
+
|
107 |
+
<a target="_blank" href="<?php echo esc_url( $url ); ?>"><?php echo esc_html( yit_get_language_from_locale( $lang, true ) ); ?></a>
|
108 |
+
|
109 |
+
<?php $first = false; ?>
|
110 |
+
<?php endforeach; ?>
|
111 |
+
</p>
|
112 |
+
</div>
|
113 |
+
<?php endif; ?>
|
114 |
+
</div>
|
115 |
+
<?php endif; ?>
|
116 |
+
|
117 |
+
<?php if ( $has_additional_links ) : ?>
|
118 |
+
<ul class="yith-plugin-fw-help-tab-actions <?php echo $video_url ? 'column-right' : 'full-width'; ?>">
|
119 |
+
|
120 |
+
<?php if ( $options['doc_url'] ) : ?>
|
121 |
+
<li class="read-documentation box-with-shadow">
|
122 |
+
<a target="_blank" href="<?php echo esc_url( $options['doc_url'] ); ?>">
|
123 |
+
<h4>
|
124 |
+
<?php echo esc_html_x( 'Read the documentation', 'Help tab Read Documentation link', 'yit-plugin-fw' ); ?>
|
125 |
+
</h4>
|
126 |
+
<p class="description">
|
127 |
+
<?php echo esc_html_x( 'to learn from basics how it works', 'Help tab Read Documentation link', 'yit-plugin-fw' ); ?>
|
128 |
+
</p>
|
129 |
+
</a>
|
130 |
+
</li>
|
131 |
+
<?php endif; ?>
|
132 |
+
|
133 |
+
<?php if ( $default_playlist ) : ?>
|
134 |
+
<li class="watch-videotutorials box-with-shadow">
|
135 |
+
<a target="_blank" href="<?php echo esc_url( $default_playlist ); ?>">
|
136 |
+
<h4>
|
137 |
+
<?php echo esc_html_x( 'Watch our videotutorials', 'Help tab Watch Videotutorials link', 'yit-plugin-fw' ); ?>
|
138 |
+
</h4>
|
139 |
+
<p class="description">
|
140 |
+
<?php echo esc_html_x( 'We show you some use cases', 'Help tab Watch Videotutorials link', 'yit-plugin-fw' ); ?>
|
141 |
+
</p>
|
142 |
+
</a>
|
143 |
+
</li>
|
144 |
+
<?php endif; ?>
|
145 |
+
|
146 |
+
<?php if ( $show_view_all_faq ) : ?>
|
147 |
+
<li class="check-faqs box-with-shadow">
|
148 |
+
<a target="_blank" href="<?php echo esc_url( $options['hc_url'] ); ?>">
|
149 |
+
<h4>
|
150 |
+
<?php echo esc_html_x( 'Check the FAQs', 'Help tab view FAQs link', 'yit-plugin-fw' ); ?>
|
151 |
+
</h4>
|
152 |
+
<p class="description">
|
153 |
+
<?php echo esc_html_x( 'to find answers to your doubts', 'Help tab view FAQs link', 'yit-plugin-fw' ); ?>
|
154 |
+
</p>
|
155 |
+
</a>
|
156 |
+
</li>
|
157 |
+
<?php endif; ?>
|
158 |
+
|
159 |
+
</ul>
|
160 |
+
<?php endif; ?>
|
161 |
+
</div>
|
162 |
+
<?php endif; ?>
|
163 |
+
|
164 |
+
|
165 |
+
<?php if ( $show_articles || $show_submit_ticket ) : ?>
|
166 |
+
<div class="row">
|
167 |
+
<?php if ( $show_articles ) : ?>
|
168 |
+
<div class="yith-plugin-fw-hc-articles <?php echo $show_submit_ticket ? 'column-left' : 'full-width'; ?>">
|
169 |
+
<h3 class="yith-plugin-fw-hc-articles-title"><?php echo esc_html_x( 'Last FAQs in our Help Center', 'Help tab FAQ title', 'yit-plugin-fw' ); ?></h3>
|
170 |
+
|
171 |
+
<ul class="yith-plugin-fw-hc-articles-list">
|
172 |
+
<?php foreach ( $latest_articles as $article ) : ?>
|
173 |
+
<li>
|
174 |
+
<a target="_blank" href="<?php echo esc_url( $article['url'] ); ?>">
|
175 |
+
<?php echo esc_html( $article['title'] ); ?>
|
176 |
+
</a>
|
177 |
+
</li>
|
178 |
+
<?php endforeach; ?>
|
179 |
+
</ul>
|
180 |
+
|
181 |
+
<?php if ( $show_view_all_faq ) : ?>
|
182 |
+
<a target="_blank" class="button button-secondary" href="<?php echo esc_url( $options['hc_url'] ); ?>">
|
183 |
+
<?php echo esc_html_x( 'View all FAQs >', 'Help tab FAQ link', 'yit-plugin-fw' ); ?>
|
184 |
+
</a>
|
185 |
+
<?php endif; ?>
|
186 |
+
</div>
|
187 |
+
<?php endif; ?>
|
188 |
+
|
189 |
+
<?php if ( $show_submit_ticket ) : ?>
|
190 |
+
<div class="yith-plugin-fw-submit-ticket <?php echo $show_articles ? 'column-right' : 'full-width'; ?>">
|
191 |
+
<div class="box-with-shadow">
|
192 |
+
<h3><?php echo esc_html_x( 'Need help?', 'Help tab submit ticket title', 'yit-plugin-fw' ); ?></h3>
|
193 |
+
<p>
|
194 |
+
<?php
|
195 |
+
echo esc_html_x(
|
196 |
+
'If you are experiencing some technical issue ask help to our developers. Submit a ticket in our support desk and we will help you as soon as possible.',
|
197 |
+
'Help tab submit ticket description',
|
198 |
+
'yit-plugin-fw'
|
199 |
+
);
|
200 |
+
?>
|
201 |
+
</p>
|
202 |
+
<a target="_blank" href="<?php echo esc_url( $options['submit_ticket_url'] ); ?>" class="yit-plugin-fw-submit-ticket-button button button-primary">
|
203 |
+
<?php echo esc_html_x( 'Submit a ticket', 'Help tab submit ticket button', 'yit-plugin-fw' ); ?>
|
204 |
+
</a>
|
205 |
+
</div>
|
206 |
+
</div>
|
207 |
+
<?php endif; ?>
|
208 |
+
<?php endif; ?>
|
209 |
+
</div>
|
210 |
+
</div>
|
211 |
+
</div>
|
@@ -29,7 +29,7 @@ $reset_warning = __( 'If you continue with this action, you will reset all optio
|
|
29 |
</p>
|
30 |
|
31 |
<?php if ( apply_filters( 'yit_framework_show_float_save_button', true ) ) : ?>
|
32 |
-
<button id="yith-plugin-fw-float-save-button" class="
|
33 |
<?php endif; ?>
|
34 |
</form>
|
35 |
<form id="plugin-fw-wc-reset" method="post">
|
29 |
</p>
|
30 |
|
31 |
<?php if ( apply_filters( 'yit_framework_show_float_save_button', true ) ) : ?>
|
32 |
+
<button id="yith-plugin-fw-float-save-button" class="yith-plugin-fw__button--primary yith-plugin-fw-animate__appear-from-bottom" data-default-label="<?php esc_attr_e( 'Save Options', 'yith-plugin-fw' ); ?>" data-saved-label="<?php esc_attr_e( 'Options Saved', 'yith-plugin-fw' ); ?>"><i class="yith-icon yith-icon-save"></i> <?php esc_html_e( 'Save Options', 'yith-plugin-fw' ); ?></button>
|
33 |
<?php endif; ?>
|
34 |
</form>
|
35 |
<form id="plugin-fw-wc-reset" method="post">
|
@@ -905,6 +905,76 @@ if ( ! function_exists( 'yit_wpml_object_id' ) ) {
|
|
905 |
}
|
906 |
}
|
907 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
908 |
if ( ! function_exists( 'yith_get_formatted_price' ) ) {
|
909 |
/**
|
910 |
* Format the price with a currency symbol.
|
@@ -1822,7 +1892,7 @@ if ( ! function_exists( 'yith_plugin_fw_get_default_post_actions' ) ) {
|
|
1822 |
// translators: %s is the title of the post object.
|
1823 |
'confirm-trash-message' => sprintf( __( 'Are you sure you want to move "%s" to trash?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ),
|
1824 |
// translators: %s is the title of the post object.
|
1825 |
-
'confirm-delete-message' => sprintf( __( 'Are you sure you want to delete "%s"?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ) . '<br /><br />' . __( 'This action cannot be undone and you will be
|
1826 |
);
|
1827 |
|
1828 |
$args = wp_parse_args( $args, $defaults );
|
@@ -1890,7 +1960,7 @@ if ( ! function_exists( 'yith_plugin_fw_get_default_post_actions' ) ) {
|
|
1890 |
$actions['trash']['confirm_data'] = array(
|
1891 |
'title' => __( 'Confirm trash', 'yith-plugin-fw' ),
|
1892 |
'message' => $args['confirm-trash-message'],
|
1893 |
-
'confirm-button' => _x( 'Yes, trash', 'Trash confirmation action', 'yith-plugin-fw' ),
|
1894 |
'confirm-button-type' => 'delete',
|
1895 |
);
|
1896 |
}
|
@@ -1907,7 +1977,7 @@ if ( ! function_exists( 'yith_plugin_fw_get_default_post_actions' ) ) {
|
|
1907 |
$actions['delete']['confirm_data'] = array(
|
1908 |
'title' => __( 'Confirm delete', 'yith-plugin-fw' ),
|
1909 |
'message' => $args['confirm-delete-message'],
|
1910 |
-
'confirm-button' => _x( 'Yes, delete', 'Delete confirmation action', 'yith-plugin-fw' ),
|
1911 |
'confirm-button-type' => 'delete',
|
1912 |
);
|
1913 |
}
|
@@ -1980,7 +2050,7 @@ if ( ! function_exists( 'yith_plugin_fw_get_default_term_actions' ) ) {
|
|
1980 |
'more-menu' => array(),
|
1981 |
'duplicate-url' => false,
|
1982 |
// translators: %s is the title of the post object.
|
1983 |
-
'confirm-delete-message' => sprintf( __( 'Are you sure you want to delete "%s"?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ) . '<br /><br />' . __( 'This action cannot be undone and you will be
|
1984 |
);
|
1985 |
|
1986 |
$args = wp_parse_args( $args, $defaults );
|
905 |
}
|
906 |
}
|
907 |
|
908 |
+
if ( ! function_exists( 'yit_get_language_from_locale' ) ) {
|
909 |
+
/**
|
910 |
+
* Returns language name from locale code
|
911 |
+
*
|
912 |
+
* @param string $locale Locale to search for.
|
913 |
+
* @param bool $show_native Whether to return native language instead of english one.
|
914 |
+
* @return string Language name for passed locale; if can't find any, local itself is returned.
|
915 |
+
* @since 3.7.1
|
916 |
+
* @author Antonio La Rocca <antonio.larocca@yithemes.com>
|
917 |
+
*/
|
918 |
+
function yit_get_language_from_locale( $locale, $show_native = false ) {
|
919 |
+
require_once ABSPATH . 'wp-admin/includes/translation-install.php';
|
920 |
+
$translations = wp_get_available_translations();
|
921 |
+
|
922 |
+
if ( in_array( $locale, array( 'en', 'en_US' ), true ) ) {
|
923 |
+
/**
|
924 |
+
* English (United States) is not included in translations array
|
925 |
+
* We return fixed, non-localized string, as WordPress does
|
926 |
+
*
|
927 |
+
* @see {wp_dropdown_languages}
|
928 |
+
*/
|
929 |
+
return 'English';
|
930 |
+
}
|
931 |
+
|
932 |
+
if ( empty( $translations ) ) {
|
933 |
+
return $locale;
|
934 |
+
}
|
935 |
+
|
936 |
+
// perfect match.
|
937 |
+
$translation = isset( $translations[ $locale ] ) ? $translations[ $locale ] : false;
|
938 |
+
|
939 |
+
// check for no-dialect.
|
940 |
+
if ( 2 === strlen( $locale ) ) {
|
941 |
+
|
942 |
+
// first check for common occurrences.
|
943 |
+
if ( 'it' === $locale && isset( $translations['it_IT'] ) ) {
|
944 |
+
$translation = $translations['it_IT'];
|
945 |
+
} elseif ( 'es' === $locale && isset( $translations['es_ES'] ) ) {
|
946 |
+
$translation = $translations['es_ES'];
|
947 |
+
} elseif ( 'de' === $locale && isset( $translations['de_DE'] ) ) {
|
948 |
+
$translation = $translations['de_DE'];
|
949 |
+
} else {
|
950 |
+
foreach ( $translations as $translation_locale => $translation_details ) {
|
951 |
+
$no_dialect_locale = isset( $translation_details['iso'][1] ) ? $translation_details['iso'][1] : substr( $translation_locale, 0, 2 );
|
952 |
+
|
953 |
+
if ( $locale !== $no_dialect_locale ) {
|
954 |
+
continue;
|
955 |
+
}
|
956 |
+
|
957 |
+
$translation = $translation_details;
|
958 |
+
|
959 |
+
// remove dialect from names.
|
960 |
+
$translation['english_name'] = preg_replace( '/(.+) \(.*\)/', '$1', $translation['english_name'] );
|
961 |
+
|
962 |
+
// we found what we were looking for; break.
|
963 |
+
break;
|
964 |
+
}
|
965 |
+
}
|
966 |
+
}
|
967 |
+
|
968 |
+
if ( ! $translation ) {
|
969 |
+
return $locale;
|
970 |
+
}
|
971 |
+
|
972 |
+
$language_name = $show_native ? $translation['native_name'] : $translation['english_name'];
|
973 |
+
|
974 |
+
return $language_name;
|
975 |
+
}
|
976 |
+
}
|
977 |
+
|
978 |
if ( ! function_exists( 'yith_get_formatted_price' ) ) {
|
979 |
/**
|
980 |
* Format the price with a currency symbol.
|
1892 |
// translators: %s is the title of the post object.
|
1893 |
'confirm-trash-message' => sprintf( __( 'Are you sure you want to move "%s" to trash?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ),
|
1894 |
// translators: %s is the title of the post object.
|
1895 |
+
'confirm-delete-message' => sprintf( __( 'Are you sure you want to delete "%s"?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ) . '<br /><br />' . __( 'This action cannot be undone and you will not be able to recover this data.', 'yith-plugin-fw' ),
|
1896 |
);
|
1897 |
|
1898 |
$args = wp_parse_args( $args, $defaults );
|
1960 |
$actions['trash']['confirm_data'] = array(
|
1961 |
'title' => __( 'Confirm trash', 'yith-plugin-fw' ),
|
1962 |
'message' => $args['confirm-trash-message'],
|
1963 |
+
'confirm-button' => _x( 'Yes, move to trash', 'Trash confirmation action', 'yith-plugin-fw' ),
|
1964 |
'confirm-button-type' => 'delete',
|
1965 |
);
|
1966 |
}
|
1977 |
$actions['delete']['confirm_data'] = array(
|
1978 |
'title' => __( 'Confirm delete', 'yith-plugin-fw' ),
|
1979 |
'message' => $args['confirm-delete-message'],
|
1980 |
+
'confirm-button' => _x( 'Yes, delete permanently', 'Delete confirmation action', 'yith-plugin-fw' ),
|
1981 |
'confirm-button-type' => 'delete',
|
1982 |
);
|
1983 |
}
|
2050 |
'more-menu' => array(),
|
2051 |
'duplicate-url' => false,
|
2052 |
// translators: %s is the title of the post object.
|
2053 |
+
'confirm-delete-message' => sprintf( __( 'Are you sure you want to delete "%s"?', 'yith-plugin-fw' ), '<strong>' . $title . '</strong>' ) . '<br /><br />' . __( 'This action cannot be undone and you will not be able to recover this data.', 'yith-plugin-fw' ),
|
2054 |
);
|
2055 |
|
2056 |
$args = wp_parse_args( $args, $defaults );
|
@@ -25,6 +25,7 @@ require_once 'includes/class-yit-plugin-common.php';
|
|
25 |
require_once 'includes/class-yit-gradients.php';
|
26 |
require_once 'includes/class-yit-plugin-licence.php';
|
27 |
require_once 'includes/class-yit-theme-licence.php';
|
|
|
28 |
require_once 'includes/class-yit-video.php';
|
29 |
require_once 'includes/class-yit-upgrade.php';
|
30 |
require_once 'includes/class-yit-pointers.php';
|
25 |
require_once 'includes/class-yit-gradients.php';
|
26 |
require_once 'includes/class-yit-plugin-licence.php';
|
27 |
require_once 'includes/class-yit-theme-licence.php';
|
28 |
+
require_once 'includes/class-yit-help-desk.php';
|
29 |
require_once 'includes/class-yit-video.php';
|
30 |
require_once 'includes/class-yit-upgrade.php';
|
31 |
require_once 'includes/class-yit-pointers.php';
|
@@ -9,12 +9,16 @@
|
|
9 |
|
10 |
$supported_taxonomies = YITH_WCAN_Query()->get_supported_taxonomies();
|
11 |
$taxonomy_options = array();
|
12 |
-
$
|
13 |
|
14 |
if ( ! empty( $supported_taxonomies ) ) {
|
15 |
foreach ( $supported_taxonomies as $taxonomy_slug => $taxonomy_obj ) {
|
16 |
$taxonomy_options[ $taxonomy_slug ] = $taxonomy_obj->label;
|
17 |
-
$
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
}
|
20 |
|
@@ -27,7 +31,7 @@ return apply_filters(
|
|
27 |
'title' => array(
|
28 |
'label' => _x( 'Filter name', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
29 |
'type' => 'text',
|
30 |
-
'class' => 'heading-field',
|
31 |
'desc' => _x( 'Enter a name to identify this filter', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
32 |
),
|
33 |
),
|
@@ -36,7 +40,7 @@ return apply_filters(
|
|
36 |
'type' => array(
|
37 |
'label' => _x( 'Filter for', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
38 |
'type' => 'select',
|
39 |
-
'class' => 'wc-enhanced-select',
|
40 |
'options' => YITH_WCAN_Filter_Factory::get_supported_types(),
|
41 |
'desc' => _x( 'Select the parameters you wish to filter for', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
42 |
),
|
@@ -49,10 +53,21 @@ return apply_filters(
|
|
49 |
'class' => 'wc-enhanced-select taxonomy',
|
50 |
'options' => $taxonomy_options,
|
51 |
'desc' => _x( 'Select which taxonomy to use for this filter', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
52 |
-
'custom_attributes' => 'data-
|
53 |
),
|
54 |
|
55 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
'label' => _x( 'Choose terms', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
57 |
'type' => 'select-buttons',
|
58 |
'multiple' => true,
|
@@ -64,20 +79,22 @@ return apply_filters(
|
|
64 |
'filter_design' => array(
|
65 |
'label' => _x( 'Filter type', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
66 |
'type' => 'select',
|
67 |
-
'class' => 'wc-enhanced-select',
|
68 |
-
'options' =>
|
69 |
-
'yith_wcan_supported_filter_designs',
|
70 |
-
array(
|
71 |
-
'checkbox' => _x( 'Checkbox', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
72 |
-
'select' => _x( 'Select', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
73 |
-
'text' => _x( 'Text', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
74 |
-
'color' => _x( 'Color Swatches', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
75 |
-
'label' => _x( 'Label', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
76 |
-
)
|
77 |
-
),
|
78 |
'desc' => _x( 'Select the filter type for this filter', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
79 |
),
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
'column_number' => array(
|
82 |
'label' => _x( 'Columns number', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
83 |
'type' => 'number',
|
@@ -87,8 +104,21 @@ return apply_filters(
|
|
87 |
'desc' => _x( 'Set the number of items per row you want to show for this design', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
88 |
),
|
89 |
|
90 |
-
'
|
91 |
'label' => _x( 'Customize terms', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
'type' => 'custom',
|
93 |
'action' => 'yith_wcan_terms_options',
|
94 |
),
|
9 |
|
10 |
$supported_taxonomies = YITH_WCAN_Query()->get_supported_taxonomies();
|
11 |
$taxonomy_options = array();
|
12 |
+
$taxonomy_details = array();
|
13 |
|
14 |
if ( ! empty( $supported_taxonomies ) ) {
|
15 |
foreach ( $supported_taxonomies as $taxonomy_slug => $taxonomy_obj ) {
|
16 |
$taxonomy_options[ $taxonomy_slug ] = $taxonomy_obj->label;
|
17 |
+
$taxonomy_details[ $taxonomy_slug ] = array(
|
18 |
+
'terms_count' => wp_count_terms( $taxonomy_slug ),
|
19 |
+
'is_attribute' => 0 === strpos( $taxonomy_slug, 'pa_' ),
|
20 |
+
'supports_images' => apply_filters( 'yith_wcan_taxonomy_supports_images', 'product_cat' === $taxonomy_slug, $taxonomy_slug ),
|
21 |
+
);
|
22 |
}
|
23 |
}
|
24 |
|
31 |
'title' => array(
|
32 |
'label' => _x( 'Filter name', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
33 |
'type' => 'text',
|
34 |
+
'class' => 'filter-title heading-field',
|
35 |
'desc' => _x( 'Enter a name to identify this filter', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
36 |
),
|
37 |
),
|
40 |
'type' => array(
|
41 |
'label' => _x( 'Filter for', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
42 |
'type' => 'select',
|
43 |
+
'class' => 'wc-enhanced-select filter-type',
|
44 |
'options' => YITH_WCAN_Filter_Factory::get_supported_types(),
|
45 |
'desc' => _x( 'Select the parameters you wish to filter for', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
46 |
),
|
53 |
'class' => 'wc-enhanced-select taxonomy',
|
54 |
'options' => $taxonomy_options,
|
55 |
'desc' => _x( 'Select which taxonomy to use for this filter', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
56 |
+
'custom_attributes' => 'data-taxonomies="' . wc_esc_json( wp_json_encode( $taxonomy_details ) ) . '"',
|
57 |
),
|
58 |
|
59 |
+
'use_all_terms' => array(
|
60 |
+
'label' => _x( 'Auto-populate with all terms', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
61 |
+
'type' => 'onoff',
|
62 |
+
'desc' => _x(
|
63 |
+
'Populate this filter with all existing terms of the selected taxonomy.
|
64 |
+
<span class="future-terms-notice"><b>Notice:</b> if you enable this option, all terms created in the future will be added to this filter as well.</span>',
|
65 |
+
'[Admin] Filter edit form',
|
66 |
+
'yith-woocommerce-ajax-navigation'
|
67 |
+
),
|
68 |
+
),
|
69 |
+
|
70 |
+
'term_ids' => array(
|
71 |
'label' => _x( 'Choose terms', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
72 |
'type' => 'select-buttons',
|
73 |
'multiple' => true,
|
79 |
'filter_design' => array(
|
80 |
'label' => _x( 'Filter type', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
81 |
'type' => 'select',
|
82 |
+
'class' => 'wc-enhanced-select filter-design',
|
83 |
+
'options' => YITH_WCAN_Filter_Factory::get_supported_designs(),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
'desc' => _x( 'Select the filter type for this filter', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
85 |
),
|
86 |
|
87 |
+
'label_position' => array(
|
88 |
+
'label' => _x( 'Labels', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
89 |
+
'type' => 'radio',
|
90 |
+
'options' => array(
|
91 |
+
'below' => _x( 'Show below', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
92 |
+
'right' => _x( 'Show on the right', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
93 |
+
'hide' => _x( 'Hide', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
94 |
+
),
|
95 |
+
'desc' => _x( 'Choose if and where to show the label inside your filter', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
96 |
+
),
|
97 |
+
|
98 |
'column_number' => array(
|
99 |
'label' => _x( 'Columns number', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
100 |
'type' => 'number',
|
104 |
'desc' => _x( 'Set the number of items per row you want to show for this design', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
105 |
),
|
106 |
|
107 |
+
'customize_terms' => array(
|
108 |
'label' => _x( 'Customize terms', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
109 |
+
'class' => 'customize-terms',
|
110 |
+
'type' => 'onoff',
|
111 |
+
'desc' => _x(
|
112 |
+
'Configure your terms individually; system will otherwise use default labels/images for terms.
|
113 |
+
<span class="wccl-notice"><b>Notice:</b> optionally, you can configure labels/images/colors for your attributes using YITH WooCommerce Color and Label Variations options, in the term\'s edit page. Otherwise, just enable this option and use boxes below.</span>
|
114 |
+
<span class="images-notice"><b>Notice:</b> optionally, you can configure the images in ‘edit page’ for the terms. Otherwise, just enable this option and use the boxes below</span>',
|
115 |
+
'[Admin] Filter edit form',
|
116 |
+
'yith-woocommerce-ajax-navigation'
|
117 |
+
),
|
118 |
+
),
|
119 |
+
|
120 |
+
'terms_options' => array(
|
121 |
+
'label' => _x( 'Terms options', '[Admin] Filter edit form', 'yith-woocommerce-ajax-navigation' ),
|
122 |
'type' => 'custom',
|
123 |
'action' => 'yith_wcan_terms_options',
|
124 |
),
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Preset options
|
4 |
+
*
|
5 |
+
* @author YITH
|
6 |
+
* @package YITH WooCommerce Ajax Product Filter
|
7 |
+
* @version 4.0.0
|
8 |
+
*/
|
9 |
+
|
10 |
+
return apply_filters(
|
11 |
+
'yith_wcan_panel_preset_options',
|
12 |
+
array(
|
13 |
+
'preset_title' => array(
|
14 |
+
'label' => _x( 'Preset name', '[Admin] Label in new preset page', 'yith-woocommerce-ajax-navigation' ),
|
15 |
+
'type' => 'text',
|
16 |
+
'desc' => _x( 'Enter a name to identify this filter preset', '[Admin] Label in new preset page', 'yith-woocommerce-ajax-navigation' ),
|
17 |
+
),
|
18 |
+
)
|
19 |
+
);
|
@@ -18,16 +18,18 @@ if ( ! defined( 'YITH_WCAN' ) ) {
|
|
18 |
|
19 |
<?php
|
20 |
$preset_id = $preset ? $preset->get_id() : false;
|
|
|
21 |
?>
|
22 |
|
23 |
<div id="yith_wcan_panel_filter-preset-edit" class="yith-plugin-fw yit-admin-panel-container">
|
24 |
<div class="yit-admin-panel-content-wrap">
|
25 |
<form id="plugin-fw-wc" method="post" action="admin.php?action=yith_wcan_save_preset">
|
26 |
<span class="view-all-presets">
|
27 |
-
<a href="<?php echo $this->get_panel_url( 'filter-preset' ); ?>">
|
28 |
<?php echo esc_html_x( '< back to preset list', '[Admin] Back link in new preset page', 'yith-woocommerce-ajax-navigation' ); ?>
|
29 |
</a>
|
30 |
</span>
|
|
|
31 |
<h2>
|
32 |
<?php
|
33 |
if ( $preset ) {
|
@@ -38,25 +40,45 @@ $preset_id = $preset ? $preset->get_id() : false;
|
|
38 |
?>
|
39 |
</h2>
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
<?php do_action( 'yith_wcan_preset_edit_before_title', $preset_id, $preset ); ?>
|
42 |
|
43 |
-
|
44 |
-
<
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
</tbody>
|
59 |
</table>
|
|
|
60 |
|
61 |
<?php do_action( 'yith_wcan_preset_edit_before_filters', $preset_id, $preset ); ?>
|
62 |
|
18 |
|
19 |
<?php
|
20 |
$preset_id = $preset ? $preset->get_id() : false;
|
21 |
+
$fields = YITH_WCAN_Preset::get_fields();
|
22 |
?>
|
23 |
|
24 |
<div id="yith_wcan_panel_filter-preset-edit" class="yith-plugin-fw yit-admin-panel-container">
|
25 |
<div class="yit-admin-panel-content-wrap">
|
26 |
<form id="plugin-fw-wc" method="post" action="admin.php?action=yith_wcan_save_preset">
|
27 |
<span class="view-all-presets">
|
28 |
+
<a href="<?php echo esc_url( $this->get_panel_url( 'filter-preset' ) ); ?>">
|
29 |
<?php echo esc_html_x( '< back to preset list', '[Admin] Back link in new preset page', 'yith-woocommerce-ajax-navigation' ); ?>
|
30 |
</a>
|
31 |
</span>
|
32 |
+
|
33 |
<h2>
|
34 |
<?php
|
35 |
if ( $preset ) {
|
40 |
?>
|
41 |
</h2>
|
42 |
|
43 |
+
<?php if ( isset( $_GET['status'] ) && 'success' === $_GET['status'] ) : ?>
|
44 |
+
<div class="preset-saved">
|
45 |
+
<p><?php echo esc_html_x( 'Preset saved correctly', '[ADMIN] Preset save message', 'yith-woocommerce-ajax-navigation' ); ?></p>
|
46 |
+
</div>
|
47 |
+
<?php endif; ?>
|
48 |
+
|
49 |
<?php do_action( 'yith_wcan_preset_edit_before_title', $preset_id, $preset ); ?>
|
50 |
|
51 |
+
<?php if ( ! empty( $fields ) ) : ?>
|
52 |
+
<table class="form-table">
|
53 |
+
<tbody>
|
54 |
+
<?php foreach ( $fields as $field_slug => $field ) : ?>
|
55 |
+
<tr valign="top" class="yith-plugin-fw-panel-wc-row <?php echo esc_attr( $field['type'] ); ?>">
|
56 |
+
<th scope="row" class="titledesc">
|
57 |
+
<label for="<?php echo esc_attr( $field_slug ); ?>>"><?php echo esc_html( $field['label'] ); ?></label>
|
58 |
+
</th>
|
59 |
+
<td class="forminp forminp-<?php echo esc_attr( $field['type'] ); ?>">
|
60 |
+
<?php
|
61 |
+
$field_name = str_replace( 'preset_', '', $field_slug );
|
62 |
+
$field_args = array_merge(
|
63 |
+
$field,
|
64 |
+
array(
|
65 |
+
'id' => $field_slug,
|
66 |
+
'name' => $field_slug,
|
67 |
+
'preset' => $preset,
|
68 |
+
'value' => method_exists( $preset, "get_{$field_name}" ) ? $preset->{"get_{$field_name}"}() : '',
|
69 |
+
)
|
70 |
+
);
|
71 |
+
yith_plugin_fw_get_field( $field_args, true );
|
72 |
+
?>
|
73 |
+
<span class="description">
|
74 |
+
<?php echo wp_kses_post( $field['desc'] ); ?>
|
75 |
+
</span>
|
76 |
+
</td>
|
77 |
+
</tr>
|
78 |
+
<?php endforeach; ?>
|
79 |
</tbody>
|
80 |
</table>
|
81 |
+
<?php endif; ?>
|
82 |
|
83 |
<?php do_action( 'yith_wcan_preset_edit_before_filters', $preset_id, $preset ); ?>
|
84 |
|
@@ -43,12 +43,12 @@ if ( ! defined( 'YITH_WCAN' ) ) {
|
|
43 |
true
|
44 |
);
|
45 |
?>
|
46 |
-
<span class="show-on-hover delete
|
47 |
-
<span class="show-on-hover clone
|
48 |
</div>
|
49 |
<div class="yith-toggle-content">
|
50 |
<?php
|
51 |
-
$fields =
|
52 |
|
53 |
if ( ! empty( $fields ) ) :
|
54 |
foreach ( $fields as $field_slug => $field ) :
|
@@ -67,7 +67,7 @@ if ( ! defined( 'YITH_WCAN' ) ) {
|
|
67 |
);
|
68 |
|
69 |
// special case for terms.
|
70 |
-
if ( '
|
71 |
$field_args['options'] = $filter->get_terms( 'id=>name' );
|
72 |
}
|
73 |
|
@@ -77,7 +77,7 @@ if ( ! defined( 'YITH_WCAN' ) ) {
|
|
77 |
<?php yith_plugin_fw_get_field( $field_args, true ); ?>
|
78 |
|
79 |
<?php if ( ! empty( $field['desc'] ) ) : ?>
|
80 |
-
<span class="description"><?php echo
|
81 |
<?php endif; ?>
|
82 |
</div>
|
83 |
<?php
|
43 |
true
|
44 |
);
|
45 |
?>
|
46 |
+
<span class="show-on-hover delete yith-icon-trash"></span>
|
47 |
+
<span class="show-on-hover clone yith-icon-edit"></span>
|
48 |
</div>
|
49 |
<div class="yith-toggle-content">
|
50 |
<?php
|
51 |
+
$fields = YITH_WCAN_Filter::get_fields();
|
52 |
|
53 |
if ( ! empty( $fields ) ) :
|
54 |
foreach ( $fields as $field_slug => $field ) :
|
67 |
);
|
68 |
|
69 |
// special case for terms.
|
70 |
+
if ( 'term_ids' === $field_slug ) {
|
71 |
$field_args['options'] = $filter->get_terms( 'id=>name' );
|
72 |
}
|
73 |
|
77 |
<?php yith_plugin_fw_get_field( $field_args, true ); ?>
|
78 |
|
79 |
<?php if ( ! empty( $field['desc'] ) ) : ?>
|
80 |
+
<span class="description"><?php echo wp_kses_post( $field['desc'] ); ?></span>
|
81 |
<?php endif; ?>
|
82 |
</div>
|
83 |
<?php
|
@@ -39,13 +39,13 @@ if ( ! defined( 'YITH_WCAN' ) ) {
|
|
39 |
</span>
|
40 |
<?php endif; ?>
|
41 |
|
42 |
-
<?php if ( 'color' === $mode ) : ?>
|
43 |
<span class="term-color <?php echo ! empty( $color_2 ) ? 'bi-color' : 'single-color'; ?>">
|
44 |
<span class="color-swatch" style="background-color: <?php echo esc_attr( $color_1 ); ?>; border-color: <?php echo esc_attr( ! empty( $color_2 ) ? $color_2 : $color_1 ); ?>"></span>
|
45 |
</span>
|
46 |
<?php endif; ?>
|
47 |
|
48 |
-
<?php if( ! empty( $label ) ): ?>
|
49 |
<span class="term-label">
|
50 |
<?php echo esc_html( $label ); ?>
|
51 |
<?php echo $filter->render_term_count( $term, $count ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
39 |
</span>
|
40 |
<?php endif; ?>
|
41 |
|
42 |
+
<?php if ( 'color' === $mode && ! empty( $color_1 ) ) : ?>
|
43 |
<span class="term-color <?php echo ! empty( $color_2 ) ? 'bi-color' : 'single-color'; ?>">
|
44 |
<span class="color-swatch" style="background-color: <?php echo esc_attr( $color_1 ); ?>; border-color: <?php echo esc_attr( ! empty( $color_2 ) ? $color_2 : $color_1 ); ?>"></span>
|
45 |
</span>
|
46 |
<?php endif; ?>
|
47 |
|
48 |
+
<?php if ( ! empty( $label ) ) : ?>
|
49 |
<span class="term-label">
|
50 |
<?php echo esc_html( $label ); ?>
|
51 |
<?php echo $filter->render_term_count( $term, $count ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|