YITH WooCommerce Wishlist - Version 2.0.14

Version Description

  • Released: Mar, 21 - 2016 =

  • Added: Dutch translation (thanks to w.vankuipers)

  • Added: Danish translation (thanks to Morten)

  • Added: yith_wcwl_is_wishlist_page function to identify if current page is wishlist page

  • Added: filter yith_wcwl_settings_panel_capability for panel capability

  • Added: filter yith_wcwl_current_wishlist_view_params for shortcode view params

  • Added: "defined YITH_WCWL" check before every template

  • Added: check over existance of $.prettyPhoto.close before using it

  • Added: method count_add_to_wishlist to YITH_WCWL class

  • Added: function yith_wcwl_count_add_to_wishlist

  • Twaek: Changed ajax url to "relative"

  • Twaek: Removed yit-common (old plugin-fw) deprecated since 2.0

  • Tweak: Removed deprecated WC functions

  • Tweak: Skipped removed_from_wishlist query arg adding, when external product

  • Tweak: Added transients for wishist counts

  • Tweak: Removed DOM structure dependencies from js for wishlist table handling

  • Tweak: All methods/functions that prints/counts products in wishlist now skip trashed or not visible products

  • Fixed: shortcode callback setting global product in some conditions

  • Fixed: typo in hook yith_wccl_table_after_product_name (now set to yith_wcwl_table_after_product_name)

  • Fixed: notice appearing when wishlist page slug is empty

Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Wishlist
Version 2.0.14
Comparing to
See all releases

Code changes from version 2.0.13 to 2.0.14

Files changed (111) hide show
  1. README.txt +89 -51
  2. assets/js/jquery.yith-wcwl.js +17 -16
  3. assets/js/unminified/jquery.yith-wcwl.js +8 -8
  4. includes/class.yith-wcwl-admin-init.php +7 -2
  5. includes/class.yith-wcwl-init.php +3 -3
  6. includes/class.yith-wcwl-shortcode.php +14 -7
  7. includes/class.yith-wcwl-ui.php +2 -0
  8. includes/class.yith-wcwl.php +148 -28
  9. includes/functions.yith-wcwl.php +31 -1
  10. init.php +2 -9
  11. languages/yith-woocommerce-wishlist-da_DK.mo +0 -0
  12. languages/yith-woocommerce-wishlist-da_DK.po +1558 -0
  13. languages/yith-woocommerce-wishlist-de_DE.mo +0 -0
  14. languages/yith-woocommerce-wishlist-de_DE.po +169 -229
  15. languages/yith-woocommerce-wishlist-es_AR.mo +0 -0
  16. languages/yith-woocommerce-wishlist-es_AR.po +181 -223
  17. languages/yith-woocommerce-wishlist-es_ES.mo +0 -0
  18. languages/yith-woocommerce-wishlist-es_ES.po +199 -214
  19. languages/yith-woocommerce-wishlist-es_MX.mo +0 -0
  20. languages/yith-woocommerce-wishlist-es_MX.po +185 -221
  21. languages/yith-woocommerce-wishlist-fa_IR.mo +0 -0
  22. languages/yith-woocommerce-wishlist-fa_IR.po +199 -214
  23. languages/yith-woocommerce-wishlist-fr_FR.mo +0 -0
  24. languages/yith-woocommerce-wishlist-fr_FR.po +199 -214
  25. languages/yith-woocommerce-wishlist-he_IL.mo +0 -0
  26. languages/yith-woocommerce-wishlist-he_IL.po +169 -229
  27. languages/yith-woocommerce-wishlist-it_IT.mo +0 -0
  28. languages/yith-woocommerce-wishlist-it_IT.po +199 -214
  29. languages/yith-woocommerce-wishlist-nl_NL.mo +0 -0
  30. languages/yith-woocommerce-wishlist-nl_NL.po +1071 -0
  31. languages/yith-woocommerce-wishlist-pl_PL.mo +0 -0
  32. languages/yith-woocommerce-wishlist-pl_PL.po +195 -216
  33. languages/yith-woocommerce-wishlist-pt_BR.mo +0 -0
  34. languages/yith-woocommerce-wishlist-pt_BR.po +169 -229
  35. languages/yith-woocommerce-wishlist-pt_PT.mo +0 -0
  36. languages/yith-woocommerce-wishlist-pt_PT.po +169 -229
  37. languages/yith-woocommerce-wishlist-ru_RU.mo +0 -0
  38. languages/yith-woocommerce-wishlist-ru_RU.po +168 -228
  39. languages/yith-woocommerce-wishlist-sv_SE.mo +0 -0
  40. languages/yith-woocommerce-wishlist-sv_SE.po +198 -213
  41. languages/yith-woocommerce-wishlist-tr_TR.mo +0 -0
  42. languages/yith-woocommerce-wishlist-tr_TR.po +199 -214
  43. languages/yith-woocommerce-wishlist-uk_UA.mo +0 -0
  44. languages/yith-woocommerce-wishlist-uk_UA.po +169 -229
  45. languages/yith-woocommerce-wishlist-zh_CN.mo +0 -0
  46. languages/yith-woocommerce-wishlist-zh_CN.po +177 -225
  47. languages/yith-woocommerce-wishlist-zh_TW.mo +0 -0
  48. languages/yith-woocommerce-wishlist-zh_TW.po +177 -225
  49. languages/yith-woocommerce-wishlist.pot +168 -228
  50. plugin-fw/assets/css/colorbox.css +66 -0
  51. plugin-fw/assets/css/metaboxes.css +34 -0
  52. plugin-fw/assets/css/overcast/images/jquery_ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  53. plugin-fw/assets/css/overcast/images/jquery_ui/ui-bg_flat_10_000000_40x100.png +0 -0
  54. plugin-fw/assets/css/overcast/images/jquery_ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  55. plugin-fw/assets/css/overcast/images/jquery_ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  56. plugin-fw/assets/css/overcast/images/jquery_ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  57. plugin-fw/assets/css/overcast/images/jquery_ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  58. plugin-fw/assets/css/overcast/images/jquery_ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  59. plugin-fw/assets/css/overcast/images/jquery_ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  60. plugin-fw/assets/css/overcast/images/jquery_ui/ui-icons_222222_256x240.png +0 -0
  61. plugin-fw/assets/css/overcast/images/jquery_ui/ui-icons_228ef1_256x240.png +0 -0
  62. plugin-fw/assets/css/overcast/images/jquery_ui/ui-icons_ef8c08_256x240.png +0 -0
  63. plugin-fw/assets/css/overcast/images/jquery_ui/ui-icons_ffd27a_256x240.png +0 -0
  64. plugin-fw/assets/css/overcast/images/jquery_ui/ui-icons_ffffff_256x240.png +0 -0
  65. plugin-fw/assets/css/overcast/jquery-ui-custom/jquery-ui-1.8.9.custom.css +578 -0
  66. plugin-fw/assets/css/yit-plugin-panel.css +1 -1
  67. plugin-fw/assets/css/yit-upgrade-to-pro.css +77 -0
  68. plugin-fw/assets/images/colorbox/border1.png +0 -0
  69. plugin-fw/assets/images/colorbox/border2.png +0 -0
  70. plugin-fw/assets/images/colorbox/loading.gif +0 -0
  71. plugin-fw/assets/images/upgrade-page/01.jpg +0 -0
  72. plugin-fw/assets/images/upgrade-page/02.jpg +0 -0
  73. plugin-fw/assets/images/upgrade-page/03.jpg +0 -0
  74. plugin-fw/assets/images/upgrade-page/04.jpg +0 -0
  75. plugin-fw/assets/images/upgrade-page/05.jpg +0 -0
  76. plugin-fw/assets/images/upgrade-page/06.jpg +0 -0
  77. plugin-fw/assets/images/upgrade-page/07.jpg +0 -0
  78. plugin-fw/assets/images/upgrade-page/08.jpg +0 -0
  79. plugin-fw/assets/images/upgrade-page/09.jpg +0 -0
  80. plugin-fw/assets/js/jquery.colorbox.js +1105 -0
  81. plugin-fw/assets/js/metabox.js +16 -15
  82. plugin-fw/assets/js/metabox.min.js +8 -8
  83. plugin-fw/assets/js/yit-plugin-panel.js +1 -1
  84. plugin-fw/assets/js/yit-plugin-panel.min.js +2 -2
  85. plugin-fw/init.php +1 -1
  86. plugin-fw/languages/yith-plugin-fw-it_IT.mo +0 -0
  87. plugin-fw/languages/yith-plugin-fw-it_IT.po +235 -89
  88. plugin-fw/languages/yith-plugin-fw.pot +96 -86
  89. plugin-fw/lib/yit-metabox.php +1 -1
  90. plugin-fw/lib/yit-plugin-panel-wc.php +19 -5
  91. plugin-fw/lib/yit-plugin-panel.php +40 -6
  92. plugin-fw/lib/yit-plugin-subpanel.php +1 -1
  93. plugin-fw/lib/yit-upgrade.php +25 -16
  94. plugin-fw/licence/assets/js/yit-licence.min.js +7 -4
  95. plugin-fw/licence/lib/yit-plugin-licence.php +1 -1
  96. plugin-fw/licence/lib/yit-theme-licence.php +1 -1
  97. plugin-fw/licence/templates/panel/activation/activation-panel.php +0 -2
  98. plugin-fw/templates/metaboxes/types/onoff.php +2 -19
  99. plugin-fw/templates/panel/types/on-off.php +1 -1
  100. plugin-fw/templates/upgrade/upgrade-to-pro-version.php +75 -0
  101. templates/add-to-wishlist-button.php +4 -0
  102. templates/add-to-wishlist.php +4 -0
  103. templates/share.php +4 -0
  104. templates/wishlist-view.php +11 -7
  105. templates/wishlist.php +4 -0
  106. yit-common/assets/css/yith-panel.css +0 -78
  107. yit-common/assets/js/google_fonts.json +0 -1
  108. yit-common/assets/js/yith-panel.js +0 -302
  109. yit-common/google_fonts.php +0 -68
  110. yit-common/yit-functions.php +0 -233
  111. yit-common/yith-panel.php +0 -509
README.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: yithemes
4
  Tags: wishlist, woocommerce, products, themes, yit, e-commerce, shop, ecommerce wishlist, yith, woocommerce wishlist, woocommerce 2.3 ready, shop wishlist
5
  Requires at least: 4.0
6
  Tested up to: 4.4
7
- Stable tag: 2.0.13
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -34,6 +34,7 @@ This plugin is 100% compatible with [WPML](http://wpml.org/?aid=24889&affiliate_
34
 
35
  * Chinese - CHINA
36
  * Chinese - TAIWAN
 
37
  * English - UNITED KINGDOM (Default)
38
  * French - FRANCE
39
  * German - GERMANY
@@ -105,24 +106,46 @@ you should ask theme developers to update custom templates and replace the old t
105
 
106
  == Changelog ==
107
 
108
- = 2.0.13 =
109
-
110
- * Added check over adding_to_cart event data existance in js procedures
111
- * Added 'yith_wcwl_added_to_cart_message' filter, to customize added to cart message in wishlist page
112
- * Added nofollow to "Add to Wishlist" links, where missing
113
- * Added 'yith_wcwl_email_share_subject' filter to customize share by email subject
114
- * Added 'yith_wcwl_email_share_body' filter to customize share by email body
115
- * Added function "yith_wcwl_count_all_products"
116
- * Fixed plugin-fw loading
117
-
118
- = 2.0.12 =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
  * Added: method to count all products in wishlist
121
  * Tweak: Added wishlist js handling on 'yith_wcwl_init' triggered on document
122
  * Tweak: Performance improved with new plugin core 2.0
123
  * Fixed: occasional fatal error for users with outdated version of plugin-fw on their theme
124
 
125
- = 2.0.11 =
126
 
127
  * Added: spanish translation (thanks to Arman S.)
128
  * Added: polish translation (thanks to Roan)
@@ -130,7 +153,7 @@ you should ask theme developers to update custom templates and replace the old t
130
  * Updated: changed text domain from yit to yith-woocommerce-wishlist
131
  * Updated: changed all language file for the new text domain
132
 
133
- = 2.0.10 =
134
 
135
  * Added: Compatibility with WC 2.4.2
136
  * Tweak: added nonce field to wishlist-view form
@@ -138,7 +161,7 @@ you should ask theme developers to update custom templates and replace the old t
138
  * Tweak: added check for presence of required function in wishlist script
139
  * Fixed: admin colorpicker field (for WC 2.4.x compatibility)
140
 
141
- = 2.0.9 =
142
 
143
  * Added: russian translation
144
  * Added: WooCommerce class to wishlist view form
@@ -154,7 +177,7 @@ you should ask theme developers to update custom templates and replace the old t
154
  * Fixed: usage of product_id for add_to_wishlist shortcode, when global $product is not defined
155
  * Fixed: icon attribute for yith_wcwl_add_to_wishlist shortcode
156
 
157
- = 2.0.8 =
158
 
159
  * Added: support WP 4.2.2
160
  * Added: Persian translation
@@ -164,7 +187,7 @@ you should ask theme developers to update custom templates and replace the old t
164
  * Updated: Italian translation
165
  * Removed: login_redirect_url variable
166
 
167
- = 2.0.7 =
168
 
169
  * Added: WP 4.2.1 support
170
  * Added: WC 2.3.8 support
@@ -175,7 +198,7 @@ you should ask theme developers to update custom templates and replace the old t
175
  * Fixed: Escaped add_query_arg() and remove_query_arg()
176
  * Removed: use of pretty permalinks if WPML enabled
177
 
178
- = 2.0.6 =
179
 
180
  * Added: system to overwrite wishlist js
181
  * Added: trailingslashit() to wishlist permalink
@@ -186,7 +209,7 @@ you should ask theme developers to update custom templates and replace the old t
186
  * Fixed: remove from wishlist for not logged user
187
  * Fixed: twitter share summary
188
 
189
- = 2.0.5 =
190
 
191
  * Added: icl_object_id to wishlist page id, to translate pages
192
  * Tweak: updated rewrite rules, to include child pages as wishlist pages
@@ -194,7 +217,7 @@ you should ask theme developers to update custom templates and replace the old t
194
  * Tweak: added wishlist table id to .load(), to update only that part of template
195
  * Fixed: yith_wcwl_locate_template causing 500 Internal Server Error
196
 
197
- = 2.0.4 =
198
 
199
  * Added: Options for browse wishlist/already in wishlist/product added strings
200
  * Added: rel nofollow to add to wishlist button
@@ -202,7 +225,7 @@ you should ask theme developers to update custom templates and replace the old t
202
  * Updated: WPML xml configuration
203
  * Updated: string revision
204
 
205
- = 2.0.3 =
206
 
207
  * Tweak: set correct protocol for admin-ajax requests
208
  * Tweak: used wc core function to set cookie
@@ -210,18 +233,18 @@ you should ask theme developers to update custom templates and replace the old t
210
  * Fixed: show add to cart column when stock status disabled
211
  * Fixed: product existing in wishlist
212
 
213
- = 2.0.2 =
214
 
215
  * Updated: font-awesome library
216
  * Fixed: option with old font-awesome classes
217
 
218
- = 2.0.1 =
219
 
220
  * Added: spinner image on loading
221
  * Added: flush rewrite rules on database upgrade
222
  * Fixed: wc_add_to_cart_params not defined issue
223
 
224
- = 2.0.0 =
225
 
226
  * Added: Support to woocommerce 2.3
227
  * Added: New color options
@@ -232,50 +255,50 @@ you should ask theme developers to update custom templates and replace the old t
232
  * Updated: Plugin core framework
233
 
234
 
235
- = 1.1.7 =
236
 
237
  * Added: Support to WooCommerce Endpoints (@use yit_wcwl_add_to_cart_redirect_url filter)
238
  * Added: Filter to shortcode html
239
  * Added: Title to share
240
 
241
- = 1.1.6 =
242
 
243
  * Updated: Plugin Core Framework
244
  * Updated: Languages file
245
  * Tweek: WPML Support Improved
246
 
247
- = 1.1.5 =
248
 
249
  * Added: Share wishlist by email
250
 
251
- = 1.1.4 =
252
 
253
  * Fixed: wrong string for inline js on remove link
254
  * Fixed: wrong string for inline js on add to cart link
255
 
256
- = 1.1.3 =
257
 
258
  * Added: Options Tabs Filter
259
  * Fixed: Various Bugs
260
 
261
- = 1.1.2 =
262
 
263
  * Fixed: Warnings when Show Stock Status is disabled
264
  * Fixed: Restored page options on WooCommerce 2.1.x
265
 
266
- = 1.1.1 =
267
 
268
  * Fixed: Inability to unistall plugin
269
  * Fixed: Redirect to cart page from wishlist page
270
 
271
- = 1.1.0 =
272
 
273
  * Added: Support to WooCommerce 2.1.x
274
  * Added: Spanish (Mexico) translation by Gabriel Dzul
275
  * Added: French translation by Virginie Garcin
276
  * Fixed: Revision Italian Language po/mo files
277
 
278
- = 1.0.6 =
279
 
280
  * Added: Spanish (Argentina) partial translation by Sebastian Jeremias
281
  * Added: Portuguese (Brazil) translation by Lincoln Lemos
@@ -285,34 +308,34 @@ you should ask theme developers to update custom templates and replace the old t
285
  * Fixed: Price shows "Free!" if the product is without price
286
  * Fixed: DB Table creation on plugin activation
287
 
288
- = 1.0.5 =
289
 
290
  * Added: Shared wishlists can be seens also by not logged in users
291
  * Added: Support for WPML String translation
292
  * Updated: German translation by Stephanie Schlieske
293
  * Fixed: Add to cart button does not appear if the product is out of stock
294
 
295
- = 1.0.4 =
296
 
297
  * Added: partial Ukrainian translation
298
  * Added: complete German translation. Thanks to Stephanie Schliesk
299
  * Added: options to show/hide button add to cart, unit price and stock status in the wishlist page
300
  * Added: Hebrew language (thanks to Gery Grinvald)
301
 
302
- = 1.0.3 =
303
 
304
  * Fixed: Minor bugs fixes
305
 
306
- = 1.0.2 =
307
 
308
  * Fixed: Fatal error to yit_debug with yit themes
309
 
310
- = 1.0.1 =
311
 
312
  * Tweak: Optimized images
313
  * Updated: internal framework
314
 
315
- = 1.0.0 =
316
 
317
  * Initial release
318
 
@@ -325,18 +348,22 @@ If you have suggestions about how to improve YITH WooCommerce Wishlist, you can
325
  = Available Languages =
326
  * Chinese - CHINA
327
  * Chinese - TAIWAN
 
 
328
  * English - UNITED KINGDOM (Default)
329
  * German - GERMANY
330
- * Spanish - ARGENTINA
331
- * Spanish - SPAIN
332
- * Spanish - MEXICO
333
  * French - FRANCE
334
  * Hebrew - ISRAEL
335
  * Italian - ITALY
336
  * Persian - IRAN, ISLAMIC REPUBLIC OF
 
337
  * Portuguese - BRAZIL
338
  * Portuguese - PORTUGAL
339
  * Russian - RUSSIAN FEDERATION
 
 
 
 
340
  * Turkish - TURKEY
341
  * Ukrainian - UKRAINE
342
 
@@ -350,12 +377,23 @@ Full documentation is available [here](http://yithemes.com/docs-plugins/yith-woo
350
 
351
  == Upgrade notice ==
352
 
353
- = 2.0.13 =
354
-
355
- * Added check over adding_to_cart event data existance in js procedures
356
- * Added 'yith_wcwl_added_to_cart_message' filter, to customize added to cart message in wishlist page
357
- * Added nofollow to "Add to Wishlist" links, where missing
358
- * Added 'yith_wcwl_email_share_subject' filter to customize share by email subject
359
- * Added 'yith_wcwl_email_share_body' filter to customize share by email body
360
- * Added function "yith_wcwl_count_all_products"
361
- * Fixed plugin-fw loading
 
 
 
 
 
 
 
 
 
 
 
4
  Tags: wishlist, woocommerce, products, themes, yit, e-commerce, shop, ecommerce wishlist, yith, woocommerce wishlist, woocommerce 2.3 ready, shop wishlist
5
  Requires at least: 4.0
6
  Tested up to: 4.4
7
+ Stable tag: 2.0.14
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
34
 
35
  * Chinese - CHINA
36
  * Chinese - TAIWAN
37
+ * Danish - DENMARK
38
  * English - UNITED KINGDOM (Default)
39
  * French - FRANCE
40
  * German - GERMANY
106
 
107
  == Changelog ==
108
 
109
+ = 2.0.14 - Released: Mar, 21 - 2016 =
110
+
111
+ * Added: Dutch translation (thanks to w.vankuipers)
112
+ * Added: Danish translation (thanks to Morten)
113
+ * Added: yith_wcwl_is_wishlist_page function to identify if current page is wishlist page
114
+ * Added: filter yith_wcwl_settings_panel_capability for panel capability
115
+ * Added: filter yith_wcwl_current_wishlist_view_params for shortcode view params
116
+ * Added: "defined YITH_WCWL" check before every template
117
+ * Added: check over existance of $.prettyPhoto.close before using it
118
+ * Added: method count_add_to_wishlist to YITH_WCWL class
119
+ * Added: function yith_wcwl_count_add_to_wishlist
120
+ * Twaek: Changed ajax url to "relative"
121
+ * Twaek: Removed yit-common (old plugin-fw) deprecated since 2.0
122
+ * Tweak: Removed deprecated WC functions
123
+ * Tweak: Skipped removed_from_wishlist query arg adding, when external product
124
+ * Tweak: Added transients for wishist counts
125
+ * Tweak: Removed DOM structure dependencies from js for wishlist table handling
126
+ * Tweak: All methods/functions that prints/counts products in wishlist now skip trashed or not visible products
127
+ * Fixed: shortcode callback setting global product in some conditions
128
+ * Fixed: typo in hook yith_wccl_table_after_product_name (now set to yith_wcwl_table_after_product_name)
129
+ * Fixed: notice appearing when wishlist page slug is empty
130
+
131
+ = 2.0.13 - Released: Dec, 17 - 2015 =
132
+
133
+ * Added: check over adding_to_cart event data existance in js procedures
134
+ * Added: 'yith_wcwl_added_to_cart_message' filter, to customize added to cart message in wishlist page
135
+ * Added: nofollow to "Add to Wishlist" links, where missing
136
+ * Added: 'yith_wcwl_email_share_subject' filter to customize share by email subject
137
+ * Added: 'yith_wcwl_email_share_body' filter to customize share by email body
138
+ * Added: function "yith_wcwl_count_all_products"
139
+ * Fixed: plugin-fw loading
140
+
141
+ = 2.0.12 - Released: Oct, 23 - 2015 =
142
 
143
  * Added: method to count all products in wishlist
144
  * Tweak: Added wishlist js handling on 'yith_wcwl_init' triggered on document
145
  * Tweak: Performance improved with new plugin core 2.0
146
  * Fixed: occasional fatal error for users with outdated version of plugin-fw on their theme
147
 
148
+ = 2.0.11 - Released: Sept, 21 - 2015 =
149
 
150
  * Added: spanish translation (thanks to Arman S.)
151
  * Added: polish translation (thanks to Roan)
153
  * Updated: changed text domain from yit to yith-woocommerce-wishlist
154
  * Updated: changed all language file for the new text domain
155
 
156
+ = 2.0.10 - Released: Aug, 12 - 2015 =
157
 
158
  * Added: Compatibility with WC 2.4.2
159
  * Tweak: added nonce field to wishlist-view form
161
  * Tweak: added check for presence of required function in wishlist script
162
  * Fixed: admin colorpicker field (for WC 2.4.x compatibility)
163
 
164
+ = 2.0.9 - Released: Jul, 24 - 2015 =
165
 
166
  * Added: russian translation
167
  * Added: WooCommerce class to wishlist view form
177
  * Fixed: usage of product_id for add_to_wishlist shortcode, when global $product is not defined
178
  * Fixed: icon attribute for yith_wcwl_add_to_wishlist shortcode
179
 
180
+ = 2.0.8 - Released: May, 29 - 2015 =
181
 
182
  * Added: support WP 4.2.2
183
  * Added: Persian translation
187
  * Updated: Italian translation
188
  * Removed: login_redirect_url variable
189
 
190
+ = 2.0.7 - Released: Apr, 30 - 2015 =
191
 
192
  * Added: WP 4.2.1 support
193
  * Added: WC 2.3.8 support
198
  * Fixed: Escaped add_query_arg() and remove_query_arg()
199
  * Removed: use of pretty permalinks if WPML enabled
200
 
201
+ = 2.0.6 - Released: Apr, 08 - 2015 =
202
 
203
  * Added: system to overwrite wishlist js
204
  * Added: trailingslashit() to wishlist permalink
209
  * Fixed: remove from wishlist for not logged user
210
  * Fixed: twitter share summary
211
 
212
+ = 2.0.5 - Released: Mar, 19 - 2015 =
213
 
214
  * Added: icl_object_id to wishlist page id, to translate pages
215
  * Tweak: updated rewrite rules, to include child pages as wishlist pages
217
  * Tweak: added wishlist table id to .load(), to update only that part of template
218
  * Fixed: yith_wcwl_locate_template causing 500 Internal Server Error
219
 
220
+ = 2.0.4 - Released: Mar, 04 - 2015 =
221
 
222
  * Added: Options for browse wishlist/already in wishlist/product added strings
223
  * Added: rel nofollow to add to wishlist button
225
  * Updated: WPML xml configuration
226
  * Updated: string revision
227
 
228
+ = 2.0.3 - Released: Feb, 19 - 2015 =
229
 
230
  * Tweak: set correct protocol for admin-ajax requests
231
  * Tweak: used wc core function to set cookie
233
  * Fixed: show add to cart column when stock status disabled
234
  * Fixed: product existing in wishlist
235
 
236
+ = 2.0.2 - Released: Feb, 17 - 2015 =
237
 
238
  * Updated: font-awesome library
239
  * Fixed: option with old font-awesome classes
240
 
241
+ = 2.0.1 - Released: Feb, 13 - 2015 =
242
 
243
  * Added: spinner image on loading
244
  * Added: flush rewrite rules on database upgrade
245
  * Fixed: wc_add_to_cart_params not defined issue
246
 
247
+ = 2.0.0 - Released: Feb, 12 - 2015 =
248
 
249
  * Added: Support to woocommerce 2.3
250
  * Added: New color options
255
  * Updated: Plugin core framework
256
 
257
 
258
+ = 1.1.7 - Released: Dec, 03 - 2014 =
259
 
260
  * Added: Support to WooCommerce Endpoints (@use yit_wcwl_add_to_cart_redirect_url filter)
261
  * Added: Filter to shortcode html
262
  * Added: Title to share
263
 
264
+ = 1.1.6 - Released: Set, 16 - 2014 =
265
 
266
  * Updated: Plugin Core Framework
267
  * Updated: Languages file
268
  * Tweek: WPML Support Improved
269
 
270
+ = 1.1.5 - Released: Jun, 30 - 2014 =
271
 
272
  * Added: Share wishlist by email
273
 
274
+ = 1.1.4 - Released: Jun, 26 - 2014 =
275
 
276
  * Fixed: wrong string for inline js on remove link
277
  * Fixed: wrong string for inline js on add to cart link
278
 
279
+ = 1.1.3 - Released: Jun, 05 - 2014 =
280
 
281
  * Added: Options Tabs Filter
282
  * Fixed: Various Bugs
283
 
284
+ = 1.1.2 - Released: Mar, 21 - 2014 =
285
 
286
  * Fixed: Warnings when Show Stock Status is disabled
287
  * Fixed: Restored page options on WooCommerce 2.1.x
288
 
289
+ = 1.1.1 - Released: Feb, 26 - 2014 =
290
 
291
  * Fixed: Inability to unistall plugin
292
  * Fixed: Redirect to cart page from wishlist page
293
 
294
+ = 1.1.0 - Released: Feb, 13 - 2014 =
295
 
296
  * Added: Support to WooCommerce 2.1.x
297
  * Added: Spanish (Mexico) translation by Gabriel Dzul
298
  * Added: French translation by Virginie Garcin
299
  * Fixed: Revision Italian Language po/mo files
300
 
301
+ = 1.0.6 - Released: Nov, 18 - 2013 =
302
 
303
  * Added: Spanish (Argentina) partial translation by Sebastian Jeremias
304
  * Added: Portuguese (Brazil) translation by Lincoln Lemos
308
  * Fixed: Price shows "Free!" if the product is without price
309
  * Fixed: DB Table creation on plugin activation
310
 
311
+ = 1.0.5 - Released: 14, Oct - 2013 =
312
 
313
  * Added: Shared wishlists can be seens also by not logged in users
314
  * Added: Support for WPML String translation
315
  * Updated: German translation by Stephanie Schlieske
316
  * Fixed: Add to cart button does not appear if the product is out of stock
317
 
318
+ = 1.0.4 - Released: Sept, 04 - 2013 =
319
 
320
  * Added: partial Ukrainian translation
321
  * Added: complete German translation. Thanks to Stephanie Schliesk
322
  * Added: options to show/hide button add to cart, unit price and stock status in the wishlist page
323
  * Added: Hebrew language (thanks to Gery Grinvald)
324
 
325
+ = 1.0.3 - Released: Jul, 31 - 2013 =
326
 
327
  * Fixed: Minor bugs fixes
328
 
329
+ = 1.0.2 - Released: Jun, 24 - 2013 =
330
 
331
  * Fixed: Fatal error to yit_debug with yit themes
332
 
333
+ = 1.0.1 - Released: May, 30 - 2013 =
334
 
335
  * Tweak: Optimized images
336
  * Updated: internal framework
337
 
338
+ = 1.0.0 - Released: May, 23 - 2013 =
339
 
340
  * Initial release
341
 
348
  = Available Languages =
349
  * Chinese - CHINA
350
  * Chinese - TAIWAN
351
+ * Danish - DENMARK
352
+ * Dutch - NETHERLANDS
353
  * English - UNITED KINGDOM (Default)
354
  * German - GERMANY
 
 
 
355
  * French - FRANCE
356
  * Hebrew - ISRAEL
357
  * Italian - ITALY
358
  * Persian - IRAN, ISLAMIC REPUBLIC OF
359
+ * Polish - POLAND
360
  * Portuguese - BRAZIL
361
  * Portuguese - PORTUGAL
362
  * Russian - RUSSIAN FEDERATION
363
+ * Spanish - ARGENTINA
364
+ * Spanish - SPAIN
365
+ * Spanish - MEXICO
366
+ * Swedish - SWEDEN
367
  * Turkish - TURKEY
368
  * Ukrainian - UKRAINE
369
 
377
 
378
  == Upgrade notice ==
379
 
380
+ = 2.0.14 - Released: Mar, 18 - 2016 =
381
+
382
+ * Added: Dutch translation (thanks to w.vankuipers)
383
+ * Added: Danish translation (thanks to Morten)
384
+ * Added: yith_wcwl_is_wishlist_page function to identify if current page is wishlist page
385
+ * Added: filter yith_wcwl_settings_panel_capability for panel capability
386
+ * Added: filter yith_wcwl_current_wishlist_view_params for shortcode view params
387
+ * Added: "defined YITH_WCWL" check before every template
388
+ * Added: check over existance of $.prettyPhoto.close before using it
389
+ * Added: method count_add_to_wishlist to YITH_WCWL class Added function yith_wcwl_count_add_to_wishlist
390
+ * Twaek: Changed ajax url to "relative"
391
+ * Twaek: Removed yit-common (old plugin-fw) deprecated since 2.0
392
+ * Tweak: Removed deprecated WC functions
393
+ * Tweak: Skipped removed_from_wishlist query arg adding, when external product
394
+ * Tweak: Added transients for wishist counts
395
+ * Tweak: Removed DOM structure dependencies from js for wishlist table handling
396
+ * Tweak: All methods/functions that prints/counts products in wishlist now skip trashed or not visible products
397
+ * Fixed: shortcode callback setting global product in some conditions
398
+ * Fixed: typo in hook yith_wccl_table_after_product_name (now set to yith_wcwl_table_after_product_name)
399
+ * Fixed: notice appearing when wishlist page slug is empty
assets/js/jquery.yith-wcwl.js CHANGED
@@ -1,19 +1,20 @@
1
  jQuery(document).ready(function(b){function l(){"undefined"!=typeof b.prettyPhoto&&b('a[data-rel="prettyPhoto[ask_an_estimate]"]').prettyPhoto({hook:"data-rel",social_tools:!1,theme:"pp_woocommerce",horizontal_padding:20,opacity:.8,deeplinking:!1});h.off("change");h=b('.wishlist_table tbody input[type="checkbox"]');"undefined"!=typeof b.fn.selectBox&&b("select.selectBox").selectBox();k()}function r(){var a=b(".woocommerce-message");0==a.length?b("#yith-wcwl-form").prepend(yith_wcwl_l10n.labels.added_to_cart_message):
2
  a.fadeOut(300,function(){b(this).replaceWith(yith_wcwl_l10n.labels.added_to_cart_message).fadeIn()})}function t(a){var c=a.data("product-id"),d=b(".add-to-wishlist-"+c),c={add_to_wishlist:c,product_type:a.data("product-type"),action:yith_wcwl_l10n.actions.add_to_wishlist_action};if(yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.is_user_logged_in){var e=a.parents(".yith-wcwl-popup-footer").prev(".yith-wcwl-popup-content"),f=e.find(".wishlist-select"),g=e.find(".wishlist-name"),e=e.find(".wishlist-visibility");
3
  c.wishlist_id=f.val();c.wishlist_name=g.val();c.wishlist_visibility=e.val()}p()?b.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:c,dataType:"json",beforeSend:function(){a.siblings(".ajax-loading").css("visibility","visible")},complete:function(){a.siblings(".ajax-loading").css("visibility","hidden")},success:function(a){var c=b("#yith-wcwl-popup-message"),e=a.result,f=a.message;if(yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.is_user_logged_in){var g=b("select.wishlist-select");"undefined"!=typeof b.prettyPhoto&&
4
- b.prettyPhoto.close();g.each(function(d){d=b(this);var c=d.find("option"),c=c.slice(1,c.length-1);c.remove();if("undefined"!=typeof a.user_wishlists)for(c in c=0,a.user_wishlists)"1"!=a.user_wishlists[c].is_default&&b("<option>").val(a.user_wishlists[c].ID).html(a.user_wishlists[c].wishlist_name).insertBefore(d.find("option:last-child"))})}b("#yith-wcwl-message").html(f);c.css("margin-left","-"+b(c).width()+"px").fadeIn();window.setTimeout(function(){c.fadeOut()},2E3);"true"==e?((!yith_wcwl_l10n.multi_wishlist||
5
- !yith_wcwl_l10n.is_user_logged_in||yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.is_user_logged_in&&yith_wcwl_l10n.hide_add_button)&&d.find(".yith-wcwl-add-button").hide().removeClass("show").addClass("hide"),d.find(".yith-wcwl-wishlistexistsbrowse").hide().removeClass("show").addClass("hide").find("a").attr("href",a.wishlist_url),d.find(".yith-wcwl-wishlistaddedbrowse").show().removeClass("hide").addClass("show").find("a").attr("href",a.wishlist_url)):"exists"==e?((!yith_wcwl_l10n.multi_wishlist||
6
- !yith_wcwl_l10n.is_user_logged_in||yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.is_user_logged_in&&yith_wcwl_l10n.hide_add_button)&&d.find(".yith-wcwl-add-button").hide().removeClass("show").addClass("hide"),d.find(".yith-wcwl-wishlistexistsbrowse").show().removeClass("hide").addClass("show").find("a").attr("href",a.wishlist_url),d.find(".yith-wcwl-wishlistaddedbrowse").hide().removeClass("show").addClass("hide").find("a").attr("href",a.wishlist_url)):(d.find(".yith-wcwl-add-button").show().removeClass("hide").addClass("show"),
7
- d.find(".yith-wcwl-wishlistexistsbrowse").hide().removeClass("show").addClass("hide"),d.find(".yith-wcwl-wishlistaddedbrowse").hide().removeClass("show").addClass("hide"));b("body").trigger("added_to_wishlist")}}):alert(yith_wcwl_l10n.labels.cookie_disabled)}function u(a){var c=a.parents(".cart.wishlist_table"),d=c.data("pagination"),e=c.data("per-page"),f=c.data("page");a=a.parents("tr");c.find(".pagination-row");a=a.data("row-id");var g=c.data("id"),m=c.data("token"),d={action:yith_wcwl_l10n.actions.remove_from_wishlist_action,
8
- remove_from_wishlist:a,pagination:d,per_page:e,current_page:f,wishlist_id:g,wishlist_token:m};b("#yith-wcwl-message").html("&nbsp;");"undefined"!=typeof b.fn.block&&c.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}});b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url+" #yith-wcwl-form",d,function(){"undefined"!=typeof b.fn.unblock&&c.stop(!0).css("opacity","1").unblock();l();
9
- b("body").trigger("removed_from_wishlist")})}function v(a,c){var d=a.data("product-id"),e=b(document).find(".cart.wishlist_table"),f=e.data("pagination"),g=e.data("per-page"),m=e.data("id"),h=e.data("token"),d={action:yith_wcwl_l10n.actions.reload_wishlist_and_adding_elem_action,pagination:f,per_page:g,wishlist_id:m,wishlist_token:h,add_to_wishlist:d,product_type:a.data("product-type")};p()?b.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:d,dataType:"html",beforeSend:function(){"undefined"!=typeof b.fn.block&&
10
- e.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}})},success:function(a){a=b(a).find("#yith-wcwl-form");c.replaceWith(a);l()}}):alert(yith_wcwl_l10n.labels.cookie_disabled)}function w(a){var c=a.parents(".cart.wishlist_table"),d=c.data("token"),e=c.data("id"),f=a.parents("tr").data("row-id");a=a.val();var g=c.data("pagination"),h=c.data("per-page"),k=c.data("page"),d={action:yith_wcwl_l10n.actions.move_to_another_wishlist_action,
11
- wishlist_token:d,wishlist_id:e,destination_wishlist_token:a,item_id:f,pagination:g,per_page:h,current_page:k};""!=a&&("undefined"!=typeof b.fn.block&&c.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}}),b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url+" #yith-wcwl-form",d,function(){"undefined"!=typeof b.fn.unblock&&c.stop(!0).css("opacity","1").unblock();l();b("body").trigger("moved_to_another_wishlist")}))}
12
- function q(a){var c=b(this);a.preventDefault();c.parents(".wishlist-title").next().show();c.parents(".wishlist-title").hide()}function x(a){var c=b(this);a.preventDefault();c.parents(".hidden-title-form").hide();c.parents(".hidden-title-form").prev().show()}function p(){if(navigator.cookieEnabled)return!0;document.cookie="cookietest=1";var a=-1!=document.cookie.indexOf("cookietest=");document.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";return a}function y(){if(0!=b(".yith-wcwl-add-to-wishlist").length&&
13
- 0==b("#yith-wcwl-popup-message").length){var a=b("<div>").attr("id","yith-wcwl-message"),a=b("<div>").attr("id","yith-wcwl-popup-message").html(a).hide();b("body").prepend(a)}}function k(){h.on("change",function(){var a="",c=b(this).parents(".cart.wishlist_table"),d=c.data("id"),c=c.data("token"),e=document.URL;h.filter(":checked").each(function(){var c=b(this);a+=0!=a.length?",":"";a+=c.parents("tr").data("row-id")});e=n(e,"wishlist_products_to_add_to_cart",a);e=n(e,"wishlist_token",c);e=n(e,"wishlist_id",
14
- d);b("#custom_add_to_cart").attr("href",e)})}function n(a,b,d){d=b+"="+d;a=a.replace(new RegExp("(&|\\?)"+b+"=[^&]*"),"$1"+d);-1<a.indexOf(b+"=")||(a=-1<a.indexOf("?")?a+("&"+d):a+("?"+d));return a}var z="undefined"!==typeof wc_add_to_cart_params?wc_add_to_cart_params.cart_redirect_after_add:"",h=b('.wishlist_table tbody input[type="checkbox"]:not(:disabled)');b(document).on("yith_wcwl_init",function(){var a=b(this),c=b('.wishlist_table tbody input[type="checkbox"]:not(:disabled)');a.on("click",".add_to_wishlist",
15
- function(a){var c=b(this);a.preventDefault();t(c);return!1});a.on("click",".remove_from_wishlist",function(a){var c=b(this);a.preventDefault();u(c);return!1});a.on("adding_to_cart","body",function(a,b,c){"undefined"!=typeof b&&"undefined"!=typeof c&&0!=b.closest(".wishlist_table").length&&(c.remove_from_wishlist_after_add_to_cart=b.closest("tr").data("row-id"),c.wishlist_id=b.closest("table").data("id"),wc_add_to_cart_params.cart_redirect_after_add=yith_wcwl_l10n.redirect_to_cart)});a.on("added_to_cart",
16
- "body",function(a){wc_add_to_cart_params.cart_redirect_after_add=z;a=b(".wishlist_table");a.find(".added").removeClass("added");a.find(".added_to_cart").remove()});a.on("added_to_cart","body",r);a.on("cart_page_refreshed","body",l);a.on("click",".show-title-form",q);a.on("click",".wishlist-title-with-form h2",q);a.on("click",".hide-title-form",x);a.on("change",".change-wishlist",function(a){a=b(this);w(a);return!1});a.on("change",".yith-wcwl-popup-content .wishlist-select",function(a){a=b(this);"new"==
17
- a.val()?a.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").css("display","table-row"):a.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").hide()});a.on("change","#bulk_add_to_cart",function(){b(this).is(":checked")?c.attr("checked","checked").change():c.removeAttr("checked").change()});a.on("click","#custom_add_to_cart",function(a){var e=b(this),f=e.parents(".cart.wishlist_table");yith_wcwl_l10n.ajax_add_to_cart_enabled&&(a.preventDefault(),"undefined"!=typeof b.fn.block&&
18
- f.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}}),b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url+e.attr("href")+" #yith-wcwl-form",{action:yith_wcwl_l10n.actions.bulk_add_to_cart_action},function(){"undefined"!=typeof b.fn.unblock&&f.stop(!0).css("opacity","1").unblock();"undefined"!=typeof b.prettyPhoto&&b('a[data-rel="prettyPhoto[ask_an_estimate]"]').prettyPhoto({hook:"data-rel",
19
- social_tools:!1,theme:"pp_woocommerce",horizontal_padding:20,opacity:.8,deeplinking:!1});c.off("change");c=b('.wishlist_table tbody input[type="checkbox"]');"undefined"!=typeof b.fn.selectBox&&b("select.selectBox").selectBox();k()}))});a.on("click",".yith-wfbt-add-wishlist",function(a){a.preventDefault();a=b(this);var c=b("#yith-wcwl-form");b("html, body").animate({scrollTop:c.offset().top},500);v(a,c)});y();k()}).trigger("yith_wcwl_init");"undefined"!=typeof b.fn.selectBox&&b("select.selectBox").selectBox()});
 
1
  jQuery(document).ready(function(b){function l(){"undefined"!=typeof b.prettyPhoto&&b('a[data-rel="prettyPhoto[ask_an_estimate]"]').prettyPhoto({hook:"data-rel",social_tools:!1,theme:"pp_woocommerce",horizontal_padding:20,opacity:.8,deeplinking:!1});h.off("change");h=b('.wishlist_table tbody input[type="checkbox"]');"undefined"!=typeof b.fn.selectBox&&b("select.selectBox").selectBox();k()}function r(){var a=b(".woocommerce-message");0==a.length?b("#yith-wcwl-form").prepend(yith_wcwl_l10n.labels.added_to_cart_message):
2
  a.fadeOut(300,function(){b(this).replaceWith(yith_wcwl_l10n.labels.added_to_cart_message).fadeIn()})}function t(a){var c=a.data("product-id"),d=b(".add-to-wishlist-"+c),c={add_to_wishlist:c,product_type:a.data("product-type"),action:yith_wcwl_l10n.actions.add_to_wishlist_action};if(yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.is_user_logged_in){var e=a.parents(".yith-wcwl-popup-footer").prev(".yith-wcwl-popup-content"),f=e.find(".wishlist-select"),g=e.find(".wishlist-name"),e=e.find(".wishlist-visibility");
3
  c.wishlist_id=f.val();c.wishlist_name=g.val();c.wishlist_visibility=e.val()}p()?b.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:c,dataType:"json",beforeSend:function(){a.siblings(".ajax-loading").css("visibility","visible")},complete:function(){a.siblings(".ajax-loading").css("visibility","hidden")},success:function(a){var c=b("#yith-wcwl-popup-message"),e=a.result,f=a.message;if(yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.is_user_logged_in){var g=b("select.wishlist-select");"undefined"!=typeof b.prettyPhoto&&
4
+ "undefined"!=typeof b.prettyPhoto.close&&b.prettyPhoto.close();g.each(function(d){d=b(this);var c=d.find("option"),c=c.slice(1,c.length-1);c.remove();if("undefined"!=typeof a.user_wishlists)for(c in c=0,a.user_wishlists)"1"!=a.user_wishlists[c].is_default&&b("<option>").val(a.user_wishlists[c].ID).html(a.user_wishlists[c].wishlist_name).insertBefore(d.find("option:last-child"))})}b("#yith-wcwl-message").html(f);c.css("margin-left","-"+b(c).width()+"px").fadeIn();window.setTimeout(function(){c.fadeOut()},
5
+ 2E3);"true"==e?((!yith_wcwl_l10n.multi_wishlist||!yith_wcwl_l10n.is_user_logged_in||yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.is_user_logged_in&&yith_wcwl_l10n.hide_add_button)&&d.find(".yith-wcwl-add-button").hide().removeClass("show").addClass("hide"),d.find(".yith-wcwl-wishlistexistsbrowse").hide().removeClass("show").addClass("hide").find("a").attr("href",a.wishlist_url),d.find(".yith-wcwl-wishlistaddedbrowse").show().removeClass("hide").addClass("show").find("a").attr("href",a.wishlist_url)):
6
+ "exists"==e?((!yith_wcwl_l10n.multi_wishlist||!yith_wcwl_l10n.is_user_logged_in||yith_wcwl_l10n.multi_wishlist&&yith_wcwl_l10n.is_user_logged_in&&yith_wcwl_l10n.hide_add_button)&&d.find(".yith-wcwl-add-button").hide().removeClass("show").addClass("hide"),d.find(".yith-wcwl-wishlistexistsbrowse").show().removeClass("hide").addClass("show").find("a").attr("href",a.wishlist_url),d.find(".yith-wcwl-wishlistaddedbrowse").hide().removeClass("show").addClass("hide").find("a").attr("href",a.wishlist_url)):
7
+ (d.find(".yith-wcwl-add-button").show().removeClass("hide").addClass("show"),d.find(".yith-wcwl-wishlistexistsbrowse").hide().removeClass("show").addClass("hide"),d.find(".yith-wcwl-wishlistaddedbrowse").hide().removeClass("show").addClass("hide"));b("body").trigger("added_to_wishlist")}}):alert(yith_wcwl_l10n.labels.cookie_disabled)}function u(a){var c=a.parents(".cart.wishlist_table"),d=c.data("pagination"),e=c.data("per-page"),f=c.data("page");a=a.parents("[data-row-id]");c.find(".pagination-row");
8
+ a=a.data("row-id");var g=c.data("id"),m=c.data("token"),d={action:yith_wcwl_l10n.actions.remove_from_wishlist_action,remove_from_wishlist:a,pagination:d,per_page:e,current_page:f,wishlist_id:g,wishlist_token:m};b("#yith-wcwl-message").html("&nbsp;");"undefined"!=typeof b.fn.block&&c.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}});b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url+
9
+ " #yith-wcwl-form",d,function(){"undefined"!=typeof b.fn.unblock&&c.stop(!0).css("opacity","1").unblock();l();b("body").trigger("removed_from_wishlist")})}function v(a,c){var d=a.data("product-id"),e=b(document).find(".cart.wishlist_table"),f=e.data("pagination"),g=e.data("per-page"),m=e.data("id"),h=e.data("token"),d={action:yith_wcwl_l10n.actions.reload_wishlist_and_adding_elem_action,pagination:f,per_page:g,wishlist_id:m,wishlist_token:h,add_to_wishlist:d,product_type:a.data("product-type")};p()?
10
+ b.ajax({type:"POST",url:yith_wcwl_l10n.ajax_url,data:d,dataType:"html",beforeSend:function(){"undefined"!=typeof b.fn.block&&e.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}})},success:function(a){a=b(a).find("#yith-wcwl-form");c.replaceWith(a);l()}}):alert(yith_wcwl_l10n.labels.cookie_disabled)}function w(a){var c=a.parents(".cart.wishlist_table"),d=c.data("token"),e=c.data("id"),
11
+ f=a.parents("[data-row-id]").data("row-id");a=a.val();var g=c.data("pagination"),h=c.data("per-page"),k=c.data("page"),d={action:yith_wcwl_l10n.actions.move_to_another_wishlist_action,wishlist_token:d,wishlist_id:e,destination_wishlist_token:a,item_id:f,pagination:g,per_page:h,current_page:k};""!=a&&("undefined"!=typeof b.fn.block&&c.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}}),
12
+ b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url+" #yith-wcwl-form",d,function(){"undefined"!=typeof b.fn.unblock&&c.stop(!0).css("opacity","1").unblock();l();b("body").trigger("moved_to_another_wishlist")}))}function q(a){var c=b(this);a.preventDefault();c.parents(".wishlist-title").next().show();c.parents(".wishlist-title").hide()}function x(a){var c=b(this);a.preventDefault();c.parents(".hidden-title-form").hide();c.parents(".hidden-title-form").prev().show()}function p(){if(navigator.cookieEnabled)return!0;
13
+ document.cookie="cookietest=1";var a=-1!=document.cookie.indexOf("cookietest=");document.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";return a}function y(){if(0!=b(".yith-wcwl-add-to-wishlist").length&&0==b("#yith-wcwl-popup-message").length){var a=b("<div>").attr("id","yith-wcwl-message"),a=b("<div>").attr("id","yith-wcwl-popup-message").html(a).hide();b("body").prepend(a)}}function k(){h.on("change",function(){var a="",c=b(this).parents(".cart.wishlist_table"),d=c.data("id"),c=c.data("token"),
14
+ e=document.URL;h.filter(":checked").each(function(){var c=b(this);a+=0!=a.length?",":"";a+=c.parents("[data-row-id]").data("row-id")});e=n(e,"wishlist_products_to_add_to_cart",a);e=n(e,"wishlist_token",c);e=n(e,"wishlist_id",d);b("#custom_add_to_cart").attr("href",e)})}function n(a,b,d){d=b+"="+d;a=a.replace(new RegExp("(&|\\?)"+b+"=[^&]*"),"$1"+d);-1<a.indexOf(b+"=")||(a=-1<a.indexOf("?")?a+("&"+d):a+("?"+d));return a}var z="undefined"!==typeof wc_add_to_cart_params?wc_add_to_cart_params.cart_redirect_after_add:
15
+ "",h=b('.wishlist_table tbody input[type="checkbox"]:not(:disabled)');b(document).on("yith_wcwl_init",function(){var a=b(this),c=b('.wishlist_table tbody input[type="checkbox"]:not(:disabled)');a.on("click",".add_to_wishlist",function(a){var c=b(this);a.preventDefault();t(c);return!1});a.on("click",".remove_from_wishlist",function(a){var c=b(this);a.preventDefault();u(c);return!1});a.on("adding_to_cart","body",function(a,b,c){"undefined"!=typeof b&&"undefined"!=typeof c&&0!=b.closest(".wishlist_table").length&&
16
+ (c.remove_from_wishlist_after_add_to_cart=b.closest("[data-row-id]").data("row-id"),c.wishlist_id=b.closest(".wishlist_table").data("id"),wc_add_to_cart_params.cart_redirect_after_add=yith_wcwl_l10n.redirect_to_cart)});a.on("added_to_cart","body",function(a){wc_add_to_cart_params.cart_redirect_after_add=z;a=b(".wishlist_table");a.find(".added").removeClass("added");a.find(".added_to_cart").remove()});a.on("added_to_cart","body",r);a.on("cart_page_refreshed","body",l);a.on("click",".show-title-form",
17
+ q);a.on("click",".wishlist-title-with-form h2",q);a.on("click",".hide-title-form",x);a.on("change",".change-wishlist",function(a){a=b(this);w(a);return!1});a.on("change",".yith-wcwl-popup-content .wishlist-select",function(a){a=b(this);"new"==a.val()?a.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").css("display","table-row"):a.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").hide()});a.on("change","#bulk_add_to_cart",function(){b(this).is(":checked")?c.attr("checked","checked").change():
18
+ c.removeAttr("checked").change()});a.on("click","#custom_add_to_cart",function(a){var e=b(this),f=e.parents(".cart.wishlist_table");yith_wcwl_l10n.ajax_add_to_cart_enabled&&(a.preventDefault(),"undefined"!=typeof b.fn.block&&f.fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+yith_wcwl_l10n.ajax_loader_url+") no-repeat center",backgroundSize:"16px 16px",opacity:.6}}),b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url+e.attr("href")+" #yith-wcwl-form",{action:yith_wcwl_l10n.actions.bulk_add_to_cart_action},
19
+ function(){"undefined"!=typeof b.fn.unblock&&f.stop(!0).css("opacity","1").unblock();"undefined"!=typeof b.prettyPhoto&&b('a[data-rel="prettyPhoto[ask_an_estimate]"]').prettyPhoto({hook:"data-rel",social_tools:!1,theme:"pp_woocommerce",horizontal_padding:20,opacity:.8,deeplinking:!1});c.off("change");c=b('.wishlist_table tbody input[type="checkbox"]');"undefined"!=typeof b.fn.selectBox&&b("select.selectBox").selectBox();k()}))});a.on("click",".yith-wfbt-add-wishlist",function(a){a.preventDefault();
20
+ a=b(this);var c=b("#yith-wcwl-form");b("html, body").animate({scrollTop:c.offset().top},500);v(a,c)});y();k()}).trigger("yith_wcwl_init");"undefined"!=typeof b.fn.selectBox&&b("select.selectBox").selectBox()});
assets/js/unminified/jquery.yith-wcwl.js CHANGED
@@ -4,7 +4,7 @@ jQuery( document ).ready( function( $ ){
4
  this_page = window.location.toString(),
5
  checkboxes = $( '.wishlist_table tbody input[type="checkbox"]:not(:disabled)');
6
 
7
- $(document).on( 'yith_wcwl_init', function(){
8
  var t = $(this),
9
  checkboxes = $( '.wishlist_table tbody input[type="checkbox"]:not(:disabled)');
10
 
@@ -30,8 +30,8 @@ jQuery( document ).ready( function( $ ){
30
 
31
  t.on( 'adding_to_cart', 'body', function( ev, button, data ){
32
  if( typeof button != 'undefined' && typeof data != 'undefined' && button.closest( '.wishlist_table' ).length != 0 ){
33
- data.remove_from_wishlist_after_add_to_cart = button.closest( 'tr' ).data( 'row-id' );
34
- data.wishlist_id = button.closest( 'table' ).data( 'id' );
35
  wc_add_to_cart_params.cart_redirect_after_add = yith_wcwl_l10n.redirect_to_cart;
36
  }
37
  } );
@@ -256,7 +256,7 @@ jQuery( document ).ready( function( $ ){
256
 
257
  if( yith_wcwl_l10n.multi_wishlist && yith_wcwl_l10n.is_user_logged_in ) {
258
  var wishlist_select = $( 'select.wishlist-select' );
259
- if( typeof $.prettyPhoto != 'undefined' ) {
260
  $.prettyPhoto.close();
261
  }
262
 
@@ -325,7 +325,7 @@ jQuery( document ).ready( function( $ ){
325
  pagination = table.data( 'pagination' ),
326
  per_page = table.data( 'per-page' ),
327
  current_page = table.data( 'page' ),
328
- row = el.parents( 'tr' ),
329
  pagination_row = table.find( '.pagination-row'),
330
  data_row_id = row.data( 'row-id'),
331
  wishlist_id = table.data( 'id' ),
@@ -431,7 +431,7 @@ jQuery( document ).ready( function( $ ){
431
  var table = el.parents( '.cart.wishlist_table'),
432
  wishlist_token = table.data( 'token'),
433
  wishlist_id = table.data( 'id' ),
434
- item = el.parents( 'tr'),
435
  item_id = item.data( 'row-id'),
436
  to_token = el.val(),
437
  pagination = table.data( 'pagination' ),
@@ -532,7 +532,7 @@ jQuery( document ).ready( function( $ ){
532
  function add_wishlist_popup() {
533
  if( $('.yith-wcwl-add-to-wishlist').length != 0 && $( '#yith-wcwl-popup-message' ).length == 0 ) {
534
  var message_div = $( '<div>' )
535
- .attr( 'id', 'yith-wcwl-message' ),
536
  popup_div = $( '<div>' )
537
  .attr( 'id', 'yith-wcwl-popup-message' )
538
  .html( message_div )
@@ -559,7 +559,7 @@ jQuery( document ).ready( function( $ ){
559
  checkboxes.filter(':checked').each( function(){
560
  var t = $(this);
561
  ids += ( ids.length != 0 ) ? ',' : '';
562
- ids += t.parents('tr').data( 'row-id' );
563
  } );
564
 
565
  url = add_query_arg( url, 'wishlist_products_to_add_to_cart', ids );
4
  this_page = window.location.toString(),
5
  checkboxes = $( '.wishlist_table tbody input[type="checkbox"]:not(:disabled)');
6
 
7
+ $(document).on( 'yith_wcwl_init', function(){
8
  var t = $(this),
9
  checkboxes = $( '.wishlist_table tbody input[type="checkbox"]:not(:disabled)');
10
 
30
 
31
  t.on( 'adding_to_cart', 'body', function( ev, button, data ){
32
  if( typeof button != 'undefined' && typeof data != 'undefined' && button.closest( '.wishlist_table' ).length != 0 ){
33
+ data.remove_from_wishlist_after_add_to_cart = button.closest( '[data-row-id]' ).data( 'row-id' );
34
+ data.wishlist_id = button.closest( '.wishlist_table' ).data( 'id' );
35
  wc_add_to_cart_params.cart_redirect_after_add = yith_wcwl_l10n.redirect_to_cart;
36
  }
37
  } );
256
 
257
  if( yith_wcwl_l10n.multi_wishlist && yith_wcwl_l10n.is_user_logged_in ) {
258
  var wishlist_select = $( 'select.wishlist-select' );
259
+ if( typeof $.prettyPhoto != 'undefined' && typeof $.prettyPhoto.close != 'undefined' ) {
260
  $.prettyPhoto.close();
261
  }
262
 
325
  pagination = table.data( 'pagination' ),
326
  per_page = table.data( 'per-page' ),
327
  current_page = table.data( 'page' ),
328
+ row = el.parents( '[data-row-id]' ),
329
  pagination_row = table.find( '.pagination-row'),
330
  data_row_id = row.data( 'row-id'),
331
  wishlist_id = table.data( 'id' ),
431
  var table = el.parents( '.cart.wishlist_table'),
432
  wishlist_token = table.data( 'token'),
433
  wishlist_id = table.data( 'id' ),
434
+ item = el.parents( '[data-row-id]'),
435
  item_id = item.data( 'row-id'),
436
  to_token = el.val(),
437
  pagination = table.data( 'pagination' ),
532
  function add_wishlist_popup() {
533
  if( $('.yith-wcwl-add-to-wishlist').length != 0 && $( '#yith-wcwl-popup-message' ).length == 0 ) {
534
  var message_div = $( '<div>' )
535
+ .attr( 'id', 'yith-wcwl-message' ),
536
  popup_div = $( '<div>' )
537
  .attr( 'id', 'yith-wcwl-popup-message' )
538
  .html( message_div )
559
  checkboxes.filter(':checked').each( function(){
560
  var t = $(this);
561
  ids += ( ids.length != 0 ) ? ',' : '';
562
+ ids += t.parents('[data-row-id]').data( 'row-id' );
563
  } );
564
 
565
  url = add_query_arg( url, 'wishlist_products_to_add_to_cart', ids );
includes/class.yith-wcwl-admin-init.php CHANGED
@@ -226,7 +226,12 @@ if ( ! class_exists( 'YITH_WCWL_Admin_Init' ) ) {
226
  foreach ( YITH_WCWL_Init()->colors_options as $name => $option ) {
227
  foreach ( $option as $id => $color ) {
228
  $default_value = isset( $colors_options[$name][$id] ) ? $colors_options[$name][$id] : '';
229
- $colors_options[$name][$id] = isset( $_POST['yith_wcwl_color_' . $name . '_' . $id] ) && ! empty( $_POST['yith_wcwl_color_' . $name . '_' . $id] ) ? woocommerce_format_hex( $_POST['yith_wcwl_color_' . $name . '_' . $id] ) : $default_value;
 
 
 
 
 
230
  }
231
  }
232
 
@@ -1396,7 +1401,7 @@ of YITH WOOCOMMERCE WISHLIST to benefit from all features!', 'yith-woocommerce-w
1396
  'parent_slug' => '',
1397
  'page_title' => __( 'Wishlist', 'yith-woocommerce-wishlist' ),
1398
  'menu_title' => __( 'Wishlist', 'yith-woocommerce-wishlist' ),
1399
- 'capability' => 'manage_options',
1400
  'parent' => '',
1401
  'parent_page' => 'yit_plugin_panel',
1402
  'page' => 'yith_wcwl_panel',
226
  foreach ( YITH_WCWL_Init()->colors_options as $name => $option ) {
227
  foreach ( $option as $id => $color ) {
228
  $default_value = isset( $colors_options[$name][$id] ) ? $colors_options[$name][$id] : '';
229
+ if( isset( $_POST['yith_wcwl_color_' . $name . '_' . $id] ) && ! empty( $_POST['yith_wcwl_color_' . $name . '_' . $id] ) ){
230
+ $colors_options[$name][$id] = function_exists( 'wc_format_hex' ) ? wc_format_hex( $_POST['yith_wcwl_color_' . $name . '_' . $id] ) : woocommerce_format_hex( $_POST['yith_wcwl_color_' . $name . '_' . $id] );
231
+ }
232
+ else{
233
+ $colors_options[$name][$id] = $default_value;
234
+ }
235
  }
236
  }
237
 
1401
  'parent_slug' => '',
1402
  'page_title' => __( 'Wishlist', 'yith-woocommerce-wishlist' ),
1403
  'menu_title' => __( 'Wishlist', 'yith-woocommerce-wishlist' ),
1404
+ 'capability' => apply_filters( 'yith_wcwl_settings_panel_capability', 'manage_options' ),
1405
  'parent' => '',
1406
  'parent_page' => 'yit_plugin_panel',
1407
  'page' => 'yith_wcwl_panel',
includes/class.yith-wcwl-init.php CHANGED
@@ -49,7 +49,7 @@ if ( ! class_exists( 'YITH_WCWL_Init' ) ) {
49
  * @var string
50
  * @since 1.0.0
51
  */
52
- public $version = '2.0.13';
53
 
54
  /**
55
  * Plugin database version
@@ -333,7 +333,7 @@ if ( ! class_exists( 'YITH_WCWL_Init' ) ) {
333
  ?>
334
  </style>
335
  <script type="text/javascript">
336
- var yith_wcwl_plugin_ajax_web_url = '<?php echo admin_url('admin-ajax.php') ?>';
337
  </script>
338
  <?php
339
  }
@@ -369,7 +369,7 @@ if ( ! class_exists( 'YITH_WCWL_Init' ) ) {
369
  wp_register_script( 'jquery-yith-wcwl-user', str_replace( get_template_directory(), get_template_directory_uri(), $located ), array( 'jquery', 'jquery-selectBox' ), $this->version, true );
370
 
371
  $yith_wcwl_l10n = array(
372
- 'ajax_url' => admin_url( 'admin-ajax.php', is_ssl() ? 'https' : 'http' ),
373
  'redirect_to_cart' => get_option( 'yith_wcwl_redirect_cart' ),
374
  'multi_wishlist' => get_option( 'yith_wcwl_multi_wishlist_enable' ) == 'yes' ? true : false,
375
  'hide_add_button' => apply_filters( 'yith_wcwl_hide_add_button', true ),
49
  * @var string
50
  * @since 1.0.0
51
  */
52
+ public $version = '2.0.14';
53
 
54
  /**
55
  * Plugin database version
333
  ?>
334
  </style>
335
  <script type="text/javascript">
336
+ var yith_wcwl_plugin_ajax_web_url = '<?php echo admin_url('admin-ajax.php', 'relative') ?>';
337
  </script>
338
  <?php
339
  }
369
  wp_register_script( 'jquery-yith-wcwl-user', str_replace( get_template_directory(), get_template_directory_uri(), $located ), array( 'jquery', 'jquery-selectBox' ), $this->version, true );
370
 
371
  $yith_wcwl_l10n = array(
372
+ 'ajax_url' => admin_url( 'admin-ajax.php', 'relative' ),
373
  'redirect_to_cart' => get_option( 'yith_wcwl_redirect_cart' ),
374
  'multi_wishlist' => get_option( 'yith_wcwl_multi_wishlist_enable' ) == 'yes' ? true : false,
375
  'hide_add_button' => apply_filters( 'yith_wcwl_hide_add_button', true ),
includes/class.yith-wcwl-shortcode.php CHANGED
@@ -35,7 +35,7 @@ if( ! class_exists( 'YITH_WCWL_Shortcode' ) ) {
35
 
36
  // retrieve options from query string
37
  $action_params = get_query_var( 'wishlist-action', false );
38
- $action_params = explode( '/', $action_params );
39
  $action = ( isset( $action_params[0] ) ) ? $action_params[0] : 'view';
40
 
41
  $user_id = isset( $_GET['user_id'] ) ? $_GET['user_id'] : false;
@@ -301,12 +301,13 @@ if( ! class_exists( 'YITH_WCWL_Shortcode' ) ) {
301
  public static function add_to_wishlist( $atts, $content = null ) {
302
  global $product;
303
 
304
- if( ! isset( $product ) ){
305
- $product = ( isset( $atts['product_id'] ) ) ? wc_get_product( $atts['product_id'] ) : false;
306
- }
307
 
308
  $template_part = 'button';
309
 
 
310
  $label_option = get_option( 'yith_wcwl_add_to_wishlist_text' );
311
  $icon_option = get_option( 'yith_wcwl_add_to_wishlist_icon' ) != 'none' ? get_option( 'yith_wcwl_add_to_wishlist_icon' ) : '';
312
 
@@ -319,8 +320,10 @@ if( ! class_exists( 'YITH_WCWL_Shortcode' ) ) {
319
 
320
  $product_added = get_option( 'yith_wcwl_product_added_text' );
321
 
 
322
  $classes = apply_filters( 'yith_wcwl_add_to_wishlist_button_classes', get_option( 'yith_wcwl_use_button' ) == 'yes' ? 'add_to_wishlist single_add_to_wishlist button alt' : 'add_to_wishlist' );
323
 
 
324
  $default_wishlists = is_user_logged_in() ? YITH_WCWL()->get_wishlists( array( 'is_default' => true ) ) : false;
325
 
326
  if( ! empty( $default_wishlists ) ){
@@ -330,15 +333,19 @@ if( ! class_exists( 'YITH_WCWL_Shortcode' ) ) {
330
  $default_wishlist = false;
331
  }
332
 
333
- $exists = YITH_WCWL()->is_product_in_wishlist( $product->id, $default_wishlist );
 
334
 
 
335
  $wishlist_url = YITH_WCWL()->get_wishlist_url();
336
- $product_type = $product->product_type;
 
 
337
 
338
  $additional_params = array(
339
  'wishlist_url' => $wishlist_url,
340
  'exists' => $exists,
341
- 'product_id' => $product->id,
342
  'product_type' => $product_type,
343
  'label' => $label,
344
  'browse_wishlist_text' => $browse_wishlist,
35
 
36
  // retrieve options from query string
37
  $action_params = get_query_var( 'wishlist-action', false );
38
+ $action_params = explode( '/', apply_filters( 'yith_wcwl_current_wishlist_view_params', $action_params ) );
39
  $action = ( isset( $action_params[0] ) ) ? $action_params[0] : 'view';
40
 
41
  $user_id = isset( $_GET['user_id'] ) ? $_GET['user_id'] : false;
301
  public static function add_to_wishlist( $atts, $content = null ) {
302
  global $product;
303
 
304
+ // product object
305
+ $current_product = ( isset( $atts['product_id'] ) ) ? wc_get_product( $atts['product_id'] ) : false;
306
+ $current_product = $current_product ? $current_product : $product;
307
 
308
  $template_part = 'button';
309
 
310
+ // labels & icons settings
311
  $label_option = get_option( 'yith_wcwl_add_to_wishlist_text' );
312
  $icon_option = get_option( 'yith_wcwl_add_to_wishlist_icon' ) != 'none' ? get_option( 'yith_wcwl_add_to_wishlist_icon' ) : '';
313
 
320
 
321
  $product_added = get_option( 'yith_wcwl_product_added_text' );
322
 
323
+ // button class
324
  $classes = apply_filters( 'yith_wcwl_add_to_wishlist_button_classes', get_option( 'yith_wcwl_use_button' ) == 'yes' ? 'add_to_wishlist single_add_to_wishlist button alt' : 'add_to_wishlist' );
325
 
326
+ // default wishlist id
327
  $default_wishlists = is_user_logged_in() ? YITH_WCWL()->get_wishlists( array( 'is_default' => true ) ) : false;
328
 
329
  if( ! empty( $default_wishlists ) ){
333
  $default_wishlist = false;
334
  }
335
 
336
+ // exists in default wishlist
337
+ $exists = YITH_WCWL()->is_product_in_wishlist( $current_product->id, $default_wishlist );
338
 
339
+ // get wishlist url
340
  $wishlist_url = YITH_WCWL()->get_wishlist_url();
341
+
342
+ // get product type
343
+ $product_type = $current_product->product_type;
344
 
345
  $additional_params = array(
346
  'wishlist_url' => $wishlist_url,
347
  'exists' => $exists,
348
+ 'product_id' => $current_product->id,
349
  'product_type' => $product_type,
350
  'label' => $label,
351
  'browse_wishlist_text' => $browse_wishlist,
includes/class.yith-wcwl-ui.php CHANGED
@@ -91,6 +91,7 @@ if( ! class_exists( 'YITH_WCWL_UI' ) ) {
91
  /**
92
  * Build the "Add to cart" HTML.
93
  *
 
94
  * @param string $url
95
  * @param string $stock_status
96
  * @param string $type
@@ -142,6 +143,7 @@ if( ! class_exists( 'YITH_WCWL_UI' ) ) {
142
  /**
143
  * Build share HTML.
144
  *
 
145
  * @param string $url
146
  * @return string $string
147
  * @static
91
  /**
92
  * Build the "Add to cart" HTML.
93
  *
94
+ * @deprecated
95
  * @param string $url
96
  * @param string $stock_status
97
  * @param string $type
143
  /**
144
  * Build share HTML.
145
  *
146
+ * @deprecated
147
  * @param string $url
148
  * @return string $string
149
  * @static
includes/class.yith-wcwl.php CHANGED
@@ -268,6 +268,17 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
268
  }
269
 
270
  $result = $wpdb->insert( $wpdb->yith_wcwl_items, $insert_args );
 
 
 
 
 
 
 
 
 
 
 
271
  }
272
  else {
273
  $cookie = array(
@@ -339,6 +350,15 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
339
  $result = $wpdb->query( $wpdb->prepare( $sql, $sql_args ) );
340
 
341
  if ( $result ) {
 
 
 
 
 
 
 
 
 
342
  return true;
343
  }
344
  else {
@@ -371,26 +391,60 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
371
  global $wpdb;
372
 
373
  if( is_user_logged_in() || $wishlist_token != false ) {
374
- $sql = "SELECT COUNT(*) AS `cnt`
375
- FROM `{$wpdb->yith_wcwl_items}` AS i
376
- LEFT JOIN `{$wpdb->yith_wcwl_wishlists}` AS l ON l.ID = i.wishlist_id";
377
-
378
- if( ! empty( $wishlist_token ) ){
379
- $sql .= " WHERE l.`wishlist_token` = %s";
380
- $query = $wpdb->prepare( $sql, $wishlist_token );
381
  }
382
  else{
383
- $sql .= " WHERE l.`is_default` = %d AND l.`user_id` = %d";
384
- $query = $wpdb->prepare( $sql, array( 1, get_current_user_id() ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
385
  }
386
 
387
- $results = $wpdb->get_var( $query );
388
- return $results;
389
  }
390
  else {
391
  $cookie = yith_getcookie( 'yith_wcwl_products' );
392
 
393
- return count( $cookie );
 
 
 
 
 
 
 
 
 
 
 
394
  }
395
  }
396
 
@@ -404,22 +458,68 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
404
  global $wpdb;
405
 
406
  if( is_user_logged_in() ) {
407
- $sql = "SELECT COUNT(*) AS `cnt`
408
- FROM `{$wpdb->yith_wcwl_items}` AS i
409
- WHERE i.`user_id` = %d";
410
 
411
- $query = $wpdb->prepare( $sql, get_current_user_id() );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
412
 
413
- $results = $wpdb->get_var( $query );
414
- return $results;
415
  }
416
  else {
417
  $cookie = yith_getcookie( 'yith_wcwl_products' );
418
 
419
- return count( $cookie );
 
 
 
 
 
 
 
 
 
 
 
420
  }
421
  }
422
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
423
  /**
424
  * Retrieve elements of the wishlist for a specific user
425
  *
@@ -447,11 +547,21 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
447
  if( ! empty( $user_id ) || ! empty( $wishlist_token ) ) {
448
  $sql = "SELECT *
449
  FROM `{$wpdb->yith_wcwl_items}` AS i
450
- LEFT JOIN {$wpdb->yith_wcwl_wishlists} AS l ON l.`ID` = i.`wishlist_id` WHERE 1";
 
 
 
 
 
 
 
 
 
 
451
 
452
  if( ! empty( $user_id ) ){
453
  $sql .= " AND i.`user_id` = %d";
454
- $sql_args = array( $user_id );
455
  }
456
 
457
  if( ! empty( $product_id ) ){
@@ -522,6 +632,12 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
522
  $wishlist = yith_getcookie( 'yith_wcwl_products' );
523
 
524
  foreach( $wishlist as $key => $cookie ){
 
 
 
 
 
 
525
  if( ! empty( $product_id ) && $cookie['prod_id'] != $product_id ){
526
  unset( $wishlist[ $key ] );
527
  }
@@ -563,8 +679,6 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
563
  * @since 1.0.0
564
  */
565
  public function get_product_details( $product_id, $wishlist_id = false ) {
566
- global $wpdb;
567
-
568
  return $this->get_products(
569
  array(
570
  'prod_id' => $product_id,
@@ -950,7 +1064,11 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
950
  }
951
 
952
  $wishlist_page = get_post( $wishlist_page_id );
953
- $wishlist_page_slug = $wishlist_page->post_name;
 
 
 
 
954
 
955
  add_rewrite_rule( '(([^/]+/)*' . $wishlist_page_slug . ')(/(.*))?/page/([0-9]{1,})/?$', 'index.php?pagename=$matches[1]&wishlist-action=$matches[4]&paged=$matches[5]', 'top' );
956
  add_rewrite_rule( '(([^/]+/)*' . $wishlist_page_slug . ')(/(.*))?/?$', 'index.php?pagename=$matches[1]&wishlist-action=$matches[4]', 'top' );
@@ -1287,11 +1405,11 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
1287
 
1288
  if( $product->is_type( 'simple' ) && get_option( 'yith_wcwl_redirect_cart' ) == 'yes' ){
1289
  if( ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && yith_wcwl_is_wishlist() ){
1290
- $url = add_query_arg( 'add-to-cart', $product->id, WC()->cart->get_cart_url() );
1291
  }
1292
  }
1293
 
1294
- if( get_option( 'yith_wcwl_remove_after_add_to_cart' ) == 'yes' ){
1295
  if( ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && yith_wcwl_is_wishlist() ) {
1296
  $url = add_query_arg(
1297
  array(
@@ -1351,7 +1469,7 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
1351
  */
1352
  public function remove_from_wishlist_ajax() {
1353
  $wishlist_token = isset( $this->details['wishlist_token'] ) ? $this->details['wishlist_token'] : false;
1354
- $count = yith_wcwl_count_products( $wishlist_token );
1355
  $message = '';
1356
 
1357
  if( $count != 0 ) {
@@ -1442,7 +1560,9 @@ if ( ! class_exists( 'YITH_WCWL' ) ) {
1442
  return $url;
1443
  }
1444
 
1445
- return get_option( 'yith_wcwl_redirect_cart' ) == 'yes' ? WC()->cart->get_cart_url() : $this->get_wishlist_url();
 
 
1446
  }
1447
  }
1448
  }
268
  }
269
 
270
  $result = $wpdb->insert( $wpdb->yith_wcwl_items, $insert_args );
271
+
272
+ if( $result ){
273
+ if( $this->last_operation_token ) {
274
+ delete_transient( 'yith_wcwl_wishlist_count_' . $this->last_operation_token );
275
+ }
276
+
277
+ if( $user_id ) {
278
+ delete_transient( 'yith_wcwl_user_default_count_' . $user_id );
279
+ delete_transient( 'yith_wcwl_user_total_count_' . $user_id );
280
+ }
281
+ }
282
  }
283
  else {
284
  $cookie = array(
350
  $result = $wpdb->query( $wpdb->prepare( $sql, $sql_args ) );
351
 
352
  if ( $result ) {
353
+ if( $this->last_operation_token ) {
354
+ delete_transient( 'yith_wcwl_wishlist_count_' . $this->last_operation_token );
355
+ }
356
+
357
+ if( $user_id ) {
358
+ delete_transient( 'yith_wcwl_user_default_count_' . $user_id );
359
+ delete_transient( 'yith_wcwl_user_total_count_' . $user_id );
360
+ }
361
+
362
  return true;
363
  }
364
  else {
391
  global $wpdb;
392
 
393
  if( is_user_logged_in() || $wishlist_token != false ) {
394
+ if( ! empty( $wishlist_token ) ) {
395
+ $count = get_transient( 'yith_wcwl_wishlist_count_' . $wishlist_token );
 
 
 
 
 
396
  }
397
  else{
398
+ $count = get_transient( 'yith_wcwl_user_default_count_' . get_current_user_id() );
399
+ }
400
+
401
+ if( false === $count ){
402
+ $sql = "SELECT COUNT( i.`prod_id` ) AS `cnt`
403
+ FROM `{$wpdb->yith_wcwl_items}` AS i
404
+ LEFT JOIN `{$wpdb->yith_wcwl_wishlists}` AS l ON l.ID = i.wishlist_id
405
+ INNER JOIN `{$wpdb->posts}` AS p ON i.`prod_id` = p.`ID`
406
+ INNER JOIN `{$wpdb->postmeta}` AS pm ON p.`ID` = pm.`post_id`
407
+ WHERE p.`post_type` = %s AND p.`post_status` = %s AND pm.`meta_key` = %s AND pm.`meta_value` = %s";
408
+ $args = array(
409
+ 'product',
410
+ 'publish',
411
+ '_visibility',
412
+ 'visible '
413
+ );
414
+
415
+ if ( ! empty( $wishlist_token ) ) {
416
+ $sql .= " AND l.`wishlist_token` = %s";
417
+ $args[] = $wishlist_token;
418
+ } else {
419
+ $sql .= " AND l.`is_default` = %d AND l.`user_id` = %d";
420
+ $args[] = 1;
421
+ $args[] = get_current_user_id();
422
+ }
423
+
424
+ $query = $wpdb->prepare( $sql, $args );
425
+ $count = $wpdb->get_var( $query );
426
+
427
+ $transient_name = ! empty( $wishlist_token ) ? ( 'yith_wcwl_wishlist_count_' . $wishlist_token ) : ( 'yith_wcwl_user_default_count_' . get_current_user_id() );
428
+ set_transient( $transient_name, $count, WEEK_IN_SECONDS );
429
  }
430
 
431
+ return $count;
 
432
  }
433
  else {
434
  $cookie = yith_getcookie( 'yith_wcwl_products' );
435
 
436
+ $existing_products = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} AS p LEFT JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id WHERE post_type = %s AND post_status = %s AND pm.meta_key = %s AND pm.meta_value = %s", array( 'product', 'publish', '_visibility', 'visible' ) ) );
437
+ $wishlist_products = array();
438
+
439
+ if( ! empty( $cookie ) ){
440
+ foreach( $cookie as $elem ){
441
+ $wishlist_products[] = $elem['prod_id'];
442
+ }
443
+ }
444
+
445
+ $wishlist_products = array_intersect( $wishlist_products, $existing_products );
446
+
447
+ return count( $wishlist_products );
448
  }
449
  }
450
 
458
  global $wpdb;
459
 
460
  if( is_user_logged_in() ) {
461
+ $user_id = get_current_user_id();
 
 
462
 
463
+ if( false === $count = get_transient( 'yith_wcwl_user_total_count_' . $user_id ) ) {
464
+ $sql = "SELECT COUNT( i.`prod_id` ) AS `cnt`
465
+ FROM `{$wpdb->yith_wcwl_items}` AS i
466
+ INNER JOIN `{$wpdb->posts}` AS p ON i.`prod_id` = p.`ID`
467
+ INNER JOIN `{$wpdb->postmeta}` AS pm ON p.`ID` = pm.`post_id`
468
+ WHERE i.`user_id` = %d AND i.`prod_id` IN (
469
+ SELECT ID
470
+ FROM {$wpdb->posts} AS p
471
+ WHERE p.`post_type` = %s AND p.`post_status` = %s
472
+ )";
473
+
474
+ $query = $wpdb->prepare( $sql, array( $user_id, 'product', 'publish' ) );
475
+ $count = $wpdb->get_var( $query );
476
+
477
+ set_transient( 'yith_wcwl_user_total_count_' . $user_id, $count, WEEK_IN_SECONDS );
478
+ }
479
 
480
+ return $count;
 
481
  }
482
  else {
483
  $cookie = yith_getcookie( 'yith_wcwl_products' );
484
 
485
+ $existing_products = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} AS p LEFT JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id WHERE post_type = %s AND post_status = %s AND pm.meta_key = %s AND pm.meta_value = %s", array( 'product', 'publish', '_visibility', 'visible' ) ) );
486
+ $wishlist_products = array();
487
+
488
+ if( ! empty( $cookie ) ){
489
+ foreach( $cookie as $elem ){
490
+ $wishlist_products[] = $elem['prod_id'];
491
+ }
492
+ }
493
+
494
+ $wishlist_products = array_intersect( $wishlist_products, $existing_products );
495
+
496
+ return count( $wishlist_products );
497
  }
498
  }
499
 
500
+ /**
501
+ * Count number of times a product was added to users wishlists
502
+ *
503
+ * @param $product_id int|bool Product id; false will force method to use global product
504
+ *
505
+ * @return int Number of times the product was added to wishlist
506
+ * @since 2.0.13
507
+ */
508
+ public function count_add_to_wishlist( $product_id = false ) {
509
+ global $product, $wpdb;
510
+
511
+ $product_id = ! ( $product_id ) ? $product->id : $product_id;
512
+
513
+ if( ! $product_id ){
514
+ return 0;
515
+ }
516
+
517
+ $query = "SELECT COUNT( DISTINCT( user_id ) ) FROM {$wpdb->yith_wcwl_items} WHERE prod_id = %d";
518
+ $res = $wpdb->get_var( $wpdb->prepare( $query, $product_id ) );
519
+
520
+ return $res;
521
+ }
522
+
523
  /**
524
  * Retrieve elements of the wishlist for a specific user
525
  *
547
  if( ! empty( $user_id ) || ! empty( $wishlist_token ) ) {
548
  $sql = "SELECT *
549
  FROM `{$wpdb->yith_wcwl_items}` AS i
550
+ LEFT JOIN {$wpdb->yith_wcwl_wishlists} AS l ON l.`ID` = i.`wishlist_id`
551
+ INNER JOIN {$wpdb->posts} AS p ON p.ID = i.prod_id
552
+ INNER JOIN {$wpdb->postmeta} AS pm ON pm.post_id = p.ID
553
+ WHERE 1 AND p.post_type = %s AND p.post_status = %s AND pm.meta_key = %s AND pm.meta_value = %s";
554
+
555
+ $sql_args = array(
556
+ 'product',
557
+ 'publish',
558
+ '_visibility',
559
+ 'visible'
560
+ );
561
 
562
  if( ! empty( $user_id ) ){
563
  $sql .= " AND i.`user_id` = %d";
564
+ $sql_args[] = $user_id;
565
  }
566
 
567
  if( ! empty( $product_id ) ){
632
  $wishlist = yith_getcookie( 'yith_wcwl_products' );
633
 
634
  foreach( $wishlist as $key => $cookie ){
635
+ $existing_products = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} AS p LEFT JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id WHERE post_type = %s AND post_status = %s AND pm.meta_key = %s AND pm.meta_value = %s", array( 'product', 'publish', '_visibility', 'visible' ) ) );
636
+
637
+ if( ! in_array( $cookie['prod_id'], $existing_products ) ){
638
+ unset( $wishlist[ $key ] );
639
+ }
640
+
641
  if( ! empty( $product_id ) && $cookie['prod_id'] != $product_id ){
642
  unset( $wishlist[ $key ] );
643
  }
679
  * @since 1.0.0
680
  */
681
  public function get_product_details( $product_id, $wishlist_id = false ) {
 
 
682
  return $this->get_products(
683
  array(
684
  'prod_id' => $product_id,
1064
  }
1065
 
1066
  $wishlist_page = get_post( $wishlist_page_id );
1067
+ $wishlist_page_slug = $wishlist_page ? $wishlist_page->post_name : false;
1068
+
1069
+ if ( empty( $wishlist_page_slug ) ){
1070
+ return;
1071
+ }
1072
 
1073
  add_rewrite_rule( '(([^/]+/)*' . $wishlist_page_slug . ')(/(.*))?/page/([0-9]{1,})/?$', 'index.php?pagename=$matches[1]&wishlist-action=$matches[4]&paged=$matches[5]', 'top' );
1074
  add_rewrite_rule( '(([^/]+/)*' . $wishlist_page_slug . ')(/(.*))?/?$', 'index.php?pagename=$matches[1]&wishlist-action=$matches[4]', 'top' );
1405
 
1406
  if( $product->is_type( 'simple' ) && get_option( 'yith_wcwl_redirect_cart' ) == 'yes' ){
1407
  if( ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && yith_wcwl_is_wishlist() ){
1408
+ $url = add_query_arg( 'add-to-cart', $product->id, function_exists( 'wc_get_cart_url' ) ? wc_get_cart_url() : WC()->cart->get_cart_url() );
1409
  }
1410
  }
1411
 
1412
+ if( ! $product->is_type( 'external' ) && get_option( 'yith_wcwl_remove_after_add_to_cart' ) == 'yes' ){
1413
  if( ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && yith_wcwl_is_wishlist() ) {
1414
  $url = add_query_arg(
1415
  array(
1469
  */
1470
  public function remove_from_wishlist_ajax() {
1471
  $wishlist_token = isset( $this->details['wishlist_token'] ) ? $this->details['wishlist_token'] : false;
1472
+ $count = $this->count_products( $wishlist_token );
1473
  $message = '';
1474
 
1475
  if( $count != 0 ) {
1560
  return $url;
1561
  }
1562
 
1563
+ $cart_url = function_exists( 'wc_get_cart_url' ) ? wc_get_cart_url() : WC()->cart->get_cart_url();
1564
+
1565
+ return get_option( 'yith_wcwl_redirect_cart' ) == 'yes' ? $cart_url : $this->get_wishlist_url();
1566
  }
1567
  }
1568
  }
includes/functions.yith-wcwl.php CHANGED
@@ -11,7 +11,7 @@ if ( !defined( 'YITH_WCWL' ) ) { exit; } // Exit if accessed directly
11
 
12
  if( !function_exists( 'yith_wcwl_is_wishlist' ) ){
13
  /**
14
- * Check if current page is wishlist
15
  *
16
  * @param string $path
17
  * @param array $var
@@ -25,6 +25,24 @@ if( !function_exists( 'yith_wcwl_is_wishlist' ) ){
25
  }
26
  }
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  if( !function_exists( 'yith_wcwl_locate_template' ) ) {
29
  /**
30
  * Locate the templates and return the path of the file found
@@ -117,6 +135,18 @@ if( !function_exists( 'yith_wcwl_count_all_products' ) ) {
117
  }
118
  }
119
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  if( !function_exists( 'yith_frontend_css_color_picker' ) ) {
121
  /**
122
  * Output a colour picker input box.
11
 
12
  if( !function_exists( 'yith_wcwl_is_wishlist' ) ){
13
  /**
14
+ * Check if we're printing wishlist shortcode
15
  *
16
  * @param string $path
17
  * @param array $var
25
  }
26
  }
27
 
28
+ if( !function_exists( 'yith_wcwl_is_wishlist_page' ) ){
29
+ /**
30
+ * Check if current page is wishlist
31
+ *
32
+ * @return bool
33
+ * @since 2.0.13
34
+ */
35
+ function yith_wcwl_is_wishlist_page(){
36
+ $wishlist_page_id = yith_wcwl_object_id( get_option( 'yith_wcwl_wishlist_page_id' ) );
37
+
38
+ if( ! $wishlist_page_id ){
39
+ return false;
40
+ }
41
+
42
+ return is_page( $wishlist_page_id );
43
+ }
44
+ }
45
+
46
  if( !function_exists( 'yith_wcwl_locate_template' ) ) {
47
  /**
48
  * Locate the templates and return the path of the file found
135
  }
136
  }
137
 
138
+ if( !function_exists( 'yith_wcwl_count_add_to_wishlist' ) ){
139
+ /**
140
+ * Count number of times a product was added to users wishlists
141
+ *
142
+ * @return int Number of times the product was added to wishlists
143
+ * @since 2.0.13
144
+ */
145
+ function yith_wcwl_count_add_to_wishlist( $product_id = false ){
146
+ return YITH_WCWL()->count_add_to_wishlist( $product_id );
147
+ }
148
+ }
149
+
150
  if( !function_exists( 'yith_frontend_css_color_picker' ) ) {
151
  /**
152
  * Output a colour picker input box.
init.php CHANGED
@@ -3,13 +3,13 @@
3
  * Plugin Name: YITH WooCommerce Wishlist
4
  * Plugin URI: http://yithemes.com/themes/plugins/yith-woocommerce-wishlist/
5
  * Description: YITH WooCommerce Wishlist allows you to add Wishlist functionality to your e-commerce.
6
- * Version: 2.0.13
7
  * Author: Yithemes
8
  * Author URI: http://yithemes.com/
9
  * Text Domain: yith-woocommerce-wishlist
10
  * Domain Path: /languages/
11
  *
12
- * @author Your Inspiration Themes
13
  * @package YITH WooCommerce Wishlist
14
  * @version 2.0.0
15
  */
@@ -34,13 +34,6 @@ if ( ! defined( 'ABSPATH' ) ) {
34
  exit;
35
  } // Exit if accessed directly
36
 
37
- /**
38
- * Required functions
39
- */
40
- if( ! defined( 'YITH_FUNCTIONS' ) ) {
41
- require_once( 'yit-common/yit-functions.php' );
42
- }
43
-
44
  if ( ! function_exists( 'yith_plugin_registration_hook' ) ) {
45
  require_once 'plugin-fw/yit-plugin-registration-hook.php';
46
  }
3
  * Plugin Name: YITH WooCommerce Wishlist
4
  * Plugin URI: http://yithemes.com/themes/plugins/yith-woocommerce-wishlist/
5
  * Description: YITH WooCommerce Wishlist allows you to add Wishlist functionality to your e-commerce.
6
+ * Version: 2.0.14
7
  * Author: Yithemes
8
  * Author URI: http://yithemes.com/
9
  * Text Domain: yith-woocommerce-wishlist
10
  * Domain Path: /languages/
11
  *
12
+ * @author YITHEMES
13
  * @package YITH WooCommerce Wishlist
14
  * @version 2.0.0
15
  */
34
  exit;
35
  } // Exit if accessed directly
36
 
 
 
 
 
 
 
 
37
  if ( ! function_exists( 'yith_plugin_registration_hook' ) ) {
38
  require_once 'plugin-fw/yit-plugin-registration-hook.php';
39
  }
languages/yith-woocommerce-wishlist-da_DK.mo ADDED
Binary file
languages/yith-woocommerce-wishlist-da_DK.po ADDED
@@ -0,0 +1,1558 @@