WooCommerce Wishlist Plugin - Version 1.9.18

Version Description

Release Date - 4 April 2019

  • Fixed an issue with removing products from wishlist when added to cart for WooCommerce prior 3.x versions.
  • Fixed an issue when the wizard add multiple shortcodes to an exists page
Download this release

Release Info

Developer templateinvaders
Plugin Icon 128x128 WooCommerce Wishlist Plugin
Version 1.9.18
Comparing to
See all releases

Code changes from version 1.9.17 to 1.9.18

admin/tinvwl.class.php CHANGED
@@ -191,43 +191,52 @@ class TInvWL_Admin_TInvWL extends TInvWL_Admin_Base {
191
 
192
  if ( ! tinv_get_option( 'chat', 'disabled' ) ) {
193
 
194
- $user_id = get_current_user_id();
195
- $user_info = get_userdata( $user_id );
196
- $current_theme = wp_get_theme();
197
-
198
- $parent_theme = $current_theme->parent();
199
-
200
- wp_add_inline_script( $this->_name, 'window.intercomSettings = {
201
- app_id: "wj7rirzi",
202
- "Website": "' . get_site_url() . '",
203
- "Plugin name": "WooCommerce Wishlist Plugin",
204
- "Plugin version":"' . TINVWL_FVERSION . '",
205
- "Theme name":"' . $current_theme->get( 'Name' ) . '",
206
- "Theme version":"' . $current_theme->get( 'Version' ) . '",
207
- "Theme URI":"' . $current_theme->get( 'ThemeURI' ) . '",
208
- "Theme author":"' . $current_theme->get( 'Author' ) . '",
209
- "Theme author URI":"' . $current_theme->get( 'AuthorURI' ) . '",
210
- "Parent theme name":"' . ( ( $parent_theme ) ? $parent_theme->get( 'Name' ) : '' ) . '",
211
- "Parent theme version":"' . ( ( $parent_theme ) ? $parent_theme->get( 'Version' ) : '' ) . '",
212
- "Parent theme URI":"' . ( ( $parent_theme ) ? $parent_theme->get( 'ThemeURI' ) : '' ) . '",
213
- "Parent theme author":"' . ( ( $parent_theme ) ? $parent_theme->get( 'Author' ) : '' ) . '",
214
- "Parent theme author URI":"' . ( ( $parent_theme ) ? $parent_theme->get( 'AuthorURI' ) : '' ) . '",
215
- };
216
- (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic("reattach_activator");ic("update",intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement("script");s.type="text/javascript";s.async=true;s.src="https://widget.intercom.io/widget/zyh6v0pc";var x=d.getElementsByTagName("script")[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent("onload",l);}else{w.addEventListener("load",l,false);}}})();
217
- Intercom("trackEvent", "wishlist-free-install", {
218
- theme_name:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Name' ) : $current_theme->get( 'Name' ) ) . '",
219
- theme_uri:"' . ( ( $parent_theme ) ? $parent_theme->get( 'ThemeURI' ) : $current_theme->get( 'ThemeURI' ) ) . '",
220
- theme_author:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Author' ) : $current_theme->get( 'Author' ) ) . '",
221
- theme_author_uri:"' . ( ( $parent_theme ) ? $parent_theme->get( 'AuthorURI' ) : $current_theme->get( 'AuthorURI' ) ) . '",
222
- theme_version:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Version' ) : $current_theme->get( 'Version' ) ) . '",
223
- website:"' . get_site_url() . '",
224
- user:"' . $user_info->user_email . '",
225
- user_name:"' . $user_info->user_nicename . '",
226
- plugin_name:"WooCommerce Wishlist Plugin",
227
- plugin_version:"' . TINVWL_FVERSION . '",
228
- partner:"' . TINVWL_UTM_SOURCE . '"
229
- });
 
 
 
 
 
 
 
 
230
  ' );
 
231
  }
232
  }
233
 
191
 
192
  if ( ! tinv_get_option( 'chat', 'disabled' ) ) {
193
 
194
+ $geo = new WC_Geolocation(); // Get WC_Geolocation instance object
195
+ $user_ip = $geo->get_ip_address(); // Get user IP
196
+ $user_geo = $geo->geolocate_ip( $user_ip ); // Get geolocated user data.
197
+ $country_code = $user_geo['country']; // Get the country code
198
+ $restricted_codes = array( 'BD', 'PK', 'IN', 'NG', 'KE' );
199
+
200
+ if ( ! in_array( $country_code, $restricted_codes ) ) {
201
+
202
+ $user_id = get_current_user_id();
203
+ $user_info = get_userdata( $user_id );
204
+ $current_theme = wp_get_theme();
205
+
206
+ $parent_theme = $current_theme->parent();
207
+
208
+ wp_add_inline_script( $this->_name, 'window.intercomSettings = {
209
+ app_id: "wj7rirzi",
210
+ "Website": "' . get_site_url() . '",
211
+ "Plugin name": "WooCommerce Wishlist Plugin",
212
+ "Plugin version":"' . TINVWL_FVERSION . '",
213
+ "Theme name":"' . $current_theme->get( 'Name' ) . '",
214
+ "Theme version":"' . $current_theme->get( 'Version' ) . '",
215
+ "Theme URI":"' . $current_theme->get( 'ThemeURI' ) . '",
216
+ "Theme author":"' . $current_theme->get( 'Author' ) . '",
217
+ "Theme author URI":"' . $current_theme->get( 'AuthorURI' ) . '",
218
+ "Parent theme name":"' . ( ( $parent_theme ) ? $parent_theme->get( 'Name' ) : '' ) . '",
219
+ "Parent theme version":"' . ( ( $parent_theme ) ? $parent_theme->get( 'Version' ) : '' ) . '",
220
+ "Parent theme URI":"' . ( ( $parent_theme ) ? $parent_theme->get( 'ThemeURI' ) : '' ) . '",
221
+ "Parent theme author":"' . ( ( $parent_theme ) ? $parent_theme->get( 'Author' ) : '' ) . '",
222
+ "Parent theme author URI":"' . ( ( $parent_theme ) ? $parent_theme->get( 'AuthorURI' ) : '' ) . '",
223
+ };
224
+ (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic("reattach_activator");ic("update",intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement("script");s.type="text/javascript";s.async=true;s.src="https://widget.intercom.io/widget/zyh6v0pc";var x=d.getElementsByTagName("script")[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent("onload",l);}else{w.addEventListener("load",l,false);}}})();
225
+ Intercom("trackEvent", "wishlist-free-install", {
226
+ theme_name:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Name' ) : $current_theme->get( 'Name' ) ) . '",
227
+ theme_uri:"' . ( ( $parent_theme ) ? $parent_theme->get( 'ThemeURI' ) : $current_theme->get( 'ThemeURI' ) ) . '",
228
+ theme_author:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Author' ) : $current_theme->get( 'Author' ) ) . '",
229
+ theme_author_uri:"' . ( ( $parent_theme ) ? $parent_theme->get( 'AuthorURI' ) : $current_theme->get( 'AuthorURI' ) ) . '",
230
+ theme_version:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Version' ) : $current_theme->get( 'Version' ) ) . '",
231
+ website:"' . get_site_url() . '",
232
+ user:"' . $user_info->user_email . '",
233
+ user_name:"' . $user_info->user_nicename . '",
234
+ plugin_name:"WooCommerce Wishlist Plugin",
235
+ plugin_version:"' . TINVWL_FVERSION . '",
236
+ partner:"' . TINVWL_UTM_SOURCE . '"
237
+ });
238
  ' );
239
+ }
240
  }
241
  }
242
 
assets/css/admin.min.css CHANGED
@@ -1,6 +1,6 @@
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
- * @version 1.9.17
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  @font-face{font-family:'tinvwl-webfont';src:url("../fonts/tinvwl-webfont.eot?xu2uyi");src:url("../fonts/tinvwl-webfont.eot?xu2uyi#iefix") format("embedded-opentype"),url("../fonts/tinvwl-webfont.ttf?xu2uyi") format("truetype"),url("../fonts/tinvwl-webfont.woff?xu2uyi") format("woff"),url("../fonts/tinvwl-webfont.svg?xu2uyi#tinvwl-webfont") format("svg");font-weight:normal;font-style:normal}
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
+ * @version 1.9.18
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  @font-face{font-family:'tinvwl-webfont';src:url("../fonts/tinvwl-webfont.eot?xu2uyi");src:url("../fonts/tinvwl-webfont.eot?xu2uyi#iefix") format("embedded-opentype"),url("../fonts/tinvwl-webfont.ttf?xu2uyi") format("truetype"),url("../fonts/tinvwl-webfont.woff?xu2uyi") format("woff"),url("../fonts/tinvwl-webfont.svg?xu2uyi#tinvwl-webfont") format("svg");font-weight:normal;font-style:normal}
assets/css/public.min.css CHANGED
@@ -1,6 +1,6 @@
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
- * @version 1.9.17
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  @font-face{font-family:'tinvwl-webfont';src:url("../fonts/tinvwl-webfont.eot?xu2uyi");src:url("../fonts/tinvwl-webfont.eot?xu2uyi#iefix") format("embedded-opentype"),url("../fonts/tinvwl-webfont.ttf?xu2uyi") format("truetype"),url("../fonts/tinvwl-webfont.woff?xu2uyi") format("woff"),url("../fonts/tinvwl-webfont.svg?xu2uyi#tinvwl-webfont") format("svg");font-weight:normal;font-style:normal}
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
+ * @version 1.9.18
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  @font-face{font-family:'tinvwl-webfont';src:url("../fonts/tinvwl-webfont.eot?xu2uyi");src:url("../fonts/tinvwl-webfont.eot?xu2uyi#iefix") format("embedded-opentype"),url("../fonts/tinvwl-webfont.ttf?xu2uyi") format("truetype"),url("../fonts/tinvwl-webfont.woff?xu2uyi") format("woff"),url("../fonts/tinvwl-webfont.svg?xu2uyi#tinvwl-webfont") format("svg");font-weight:normal;font-style:normal}
assets/css/theme.min.css CHANGED
@@ -1,6 +1,6 @@
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
- * @version 1.9.17
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  .tinv-wishlist,.tinv-wishlist input,.tinv-wishlist select,.tinv-wishlist textarea,.tinv-wishlist button,.tinv-wishlist input[type="button"],.tinv-wishlist input[type="reset"],.tinv-wishlist input[type="submit"]{font-family:Georgia,serif;font-size:14px;font-weight:400;text-transform:none;line-height:1.75}
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
+ * @version 1.9.18
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  .tinv-wishlist,.tinv-wishlist input,.tinv-wishlist select,.tinv-wishlist textarea,.tinv-wishlist button,.tinv-wishlist input[type="button"],.tinv-wishlist input[type="reset"],.tinv-wishlist input[type="submit"]{font-family:Georgia,serif;font-size:14px;font-weight:400;text-transform:none;line-height:1.75}
assets/js/admin.min.js CHANGED
@@ -1,6 +1,6 @@
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
- * @version 1.9.17
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  "use strict";function TInvWL($,h){this.pf="tinvwl",this.g="_",this.ho=h||!1,this.n="TInvWL",this.aj_act=function(t){return[this.pf,t].join(this.g)},this._csel=function(t,n){return"{0}{1}{2}".format(n=n||".",this.pf,t)},this._tm=function(t){var n=$("script#{0}[type='text/template']".format(t));return n.length?n.html():""},this.formElm=function(){if($(this._csel("-form-onoff")).tiwl_onoff(),$("input[type=checkbox][tiwl-show], input[type=checkbox][tiwl-hide]").tiwl_onoffblock(),$("[tiwl-value][tiwl-show], [tiwl-value][tiwl-hide]").tiwl_byvalueblock(),void 0!==$.fn.wpColorPicker){var e=function(t){var n=t.substring(1),i=parseInt(n,16);return.2126*(i>>16&255)+.7152*(i>>8&255)+.0722*(i>>0&255)},n=this._csel("-form-color");$(n).each(function(){var n=$(this),t=$(this).closest(".tinvwl-color-picker"),i=t.find(".tinvwl-eyedropper");n.css("background-color",n.val()),175<e(n.val())&&n.css("color","#000000"),n.iris({mode:"hsv",target:$(this).parent().parent(),change:function(t,n){175<e(n.color.toCSS())?$(this).css("color","#000000"):$(this).css("color",""),$(this).css("background-color",n.color.toCSS())}}),t.on("click",".iris-square-value",function(t){t.preventDefault(),n.iris("toggle")}),i.on("click",function(t){t.preventDefault(),n.iris("show")}),n.on("focusin",function(){n.iris("show")})}),$(document).on("click",function(t){$(t.target).is(n+", .iris-picker, .iris-picker-inner, .iris-slider-offset, .tinvwl-eyedropper, .tinvwl-eyedropper .ftinvwl-eyedropper")?$(n).not($(t.target).closest(".tinvwl-color-picker").find(n)).iris("hide"):$(n).iris("hide")})}},this.wizard_page=function(t){$(t).find("select").change(this._wizard_page_ch),this.wizard_page_ch($(t).find("select"))},this.wizard_page_ch=function(t){var n=(t=$(t)).parent(this._csel("-page-select")),i=n.find("input[type=hidden]").val(),e=n.find(this._csel("-error-icon")),o=n.find(this._csel("-error-desc"));""!==t.val()?(n.removeClass("tinvwl-error"),e.hide(),o.hide()):0==i&&(n.addClass("tinvwl-error"),e.show(),o.show())},this.pageElm=function(){$(this._csel("-header","div.")).prependTo("#wpbody-content"),$(this._csel("-page-select")).each(this._wizard_page),$(".bulkactions [type=submit]").each(this._control_bulkactions),$(".action-search [type=submit]").each(this._control_search)},this.control_bulkactions=function(t){$(t).on("click",this._control_bulkactions_ck)},this.control_bulkactions_ck=function(t,n){var i=(t=$(t)).parents(".bulkactions").eq(0).find("[name=action]"),e=t.parents("form").eq(0);i&&("-1"===i.val()?n.preventDefault():e.find("input[type=checkbox]:checked").length||n.preventDefault())},this.control_search=function(t){$(t).on("click",this._control_search_ck)},this.control_search_ck=function(t,n){var i=(t=$(t)).parents(".action-search").eq(0).find("[name=s]");i&&""===i.val()&&n.preventDefault()},this.Run=function(){this.formElm(),this.pageElm()},this.cg=function(){var t=this.n;if(this.ho){var n=new Date;t=t+n.getFullYear()+n.getMonth()+n.getDate()}window[t]=this},this.cg(),String.prototype.format||(String.prototype.format=function(){var i=arguments;return this.replace(/{(\d+)}/g,function(t,n){return void 0!==i[n]?i[n]:t})}),function(o){var n=o.n,ho=o.ho,c="";for(var i in ho&&(c="t=new Date(),n=n+t.getFullYear()+t.getMonth()+t.getDate(),"),o)"function"!=typeof o[i]||"_"===i[0]||o.hasOwnProperty("_"+i)||eval("o._"+i+"=function(a,b,c,d){var n='"+n+"',"+c+"o=window[n]||null;if (o) {return o."+i+"(this,a,b,c,d);};};")}(this)}!function(s){s.fn.tiwl_onoff=function(t){var o=s.extend(!0,{},{value:{on:"",off:""},class:"tiwlform-onoff",wrap:"container",button:"button"},t);return s(this).each(function(){var n=s(this),t=s("<div>").attr({class:o.class+"-"+o.button}),i=o.class+"-"+o.wrap,e=s("<div>").attr({id:n.attr("id")+"_"+o.wrap,class:i});return n.is("input")&&(e.attr("class",e.attr("class")+" "+n.attr("class")),n.is(":disabled")&&(e.toggleClass("disabled",n.is(":disabled")),n.prop("disabled",!1)),e.toggleClass("checked",n.is(":checked")),n.attr("type","checkbox").hide().removeAttr("class").wrap(e).before(t),e=n.parent(),n.on("change",function(t){if(e.hasClass("disabled"))return t.preventDefault();e.toggleClass("checked",s(this).is(":checked"))}),e.on("click",function(t){if(e.hasClass("disabled"))return t.preventDefault();n.is(":enabled")&&e.hasClass("checked")===n.is(":checked")&&n.click()})),n})},s.fn.tiwl_onoffblock=function(t){var n={onEachElm:function(){},isChecked:function(){return s(this).is(":checked")}},c=s.extend(!0,{},n,t);return s(this).each(function(){var t=s(this),n=function(){var t=s(this),n=t.attr("tiwl-show"),i=t.attr("tiwl-hide"),e=c.isChecked.call(t),o=function(t,i){t=t.match(/[\w\d-\>\.\#\:\=\[\]]+/gim)||[],s.each(t,function(t,n){c.onEachElm.call(s(n).toggle(i))})};return"string"==typeof n&&o(n,e),"string"==typeof i&&o(i,!e),t};return t.is("input")&&"checkbox"==t.attr("type")?(s(this).on("change",n),n.call(t)):t})},s.fn.tiwl_byvalueblock=function(t){var n={onEachElm:function(){},onClick:function(){return s(this).val()==s(this).attr("tiwl-value")}},i=s.extend(!0,{},n,t);return s(this).each(function(){var t=s(this),n=function(e){var t=s(this),n=t.attr("tiwl-show"),i=t.attr("tiwl-hide"),o=e.onClick.call(t),c=function(t,i){t=t.match(/[\w\d-\>\.\#\:\=\[\]]+/gim)||[],s.each(t,function(t,n){e.onEachElm.call(s(n).toggle(i))})};return"string"==typeof n&&c(n,o),"string"==typeof i&&c(i,!o),t};return t.is("input")||t.is("select")?(s(this).on("change",function(){n.call(this,i)}),n.call(t,i)):t})};var n=new TInvWL(s);s(document).ready(function(){if(n.Run(),jQuery('input[name="general-show_notice"]').change(function(){var t=!jQuery(this).is(":checked"),n=jQuery('input[name="general-redirect_require_login"]');t&&!n.is(":checked")&&n.click().trigger("change"),n.closest(".tiwlform-onoff-container").toggleClass("disabled",t)}).change(),s(".tablenav").each(function(){var t=s(this);s.trim(t.find(".alignleft").html()).length||t.find(".alignleft").remove(),s.trim(t.find(".alignright").html()).length&&!t.find(".tablenav-pages").hasClass("one-page")||(t.find(".alignright").remove(),t.find(".tinv-wishlist-clear").remove()),s.trim(t.html()).length||t.remove()}),s(".tablenav .bulkactions select").addClass("tinvwl-select grey").wrap('<span class="tinvwl-select-wrap">').parent().append('<span class="tinvwl-caret"><span></span></span>'),s(".tablenav .bulkactions .button.action, .tablenav #search-submit").removeClass("button").addClass("tinvwl-btn grey"),s(".tinvwl-modal-btn").on("click",function(){s(this).next(".tinvwl-modal").addClass("tinvwl-modal-open")}),s(".tinvwl-overlay, .tinvwl-close-modal, .tinvwl_button_close").on("click",function(t){t.preventDefault(),s(this).parents(".tinvwl-modal:first").removeClass("tinvwl-modal-open")}),void 0!==s.fn.popover){var t=s(".tinvwl-help");t.popover({content:function(){return s(this).closest(".tinvwl-info-wrap").find(".tinvwl-info-desc").html()}}),t.on("click",function(){s(this).popover("toggle")}),t.on("focusout",function(){s(this).popover("hide")}),s(window).on("resize",function(){t.popover("hide")})}s("body").on("click",".tinvwl-confirm-reset",function(t){t.preventDefault(),confirm(tinvwl_comfirm.text_comfirm_reset)&&s(this).removeClass("tinvwl-confirm-reset").trigger("click")})})}(jQuery);
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
+ * @version 1.9.18
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  "use strict";function TInvWL($,h){this.pf="tinvwl",this.g="_",this.ho=h||!1,this.n="TInvWL",this.aj_act=function(t){return[this.pf,t].join(this.g)},this._csel=function(t,n){return"{0}{1}{2}".format(n=n||".",this.pf,t)},this._tm=function(t){var n=$("script#{0}[type='text/template']".format(t));return n.length?n.html():""},this.formElm=function(){if($(this._csel("-form-onoff")).tiwl_onoff(),$("input[type=checkbox][tiwl-show], input[type=checkbox][tiwl-hide]").tiwl_onoffblock(),$("[tiwl-value][tiwl-show], [tiwl-value][tiwl-hide]").tiwl_byvalueblock(),void 0!==$.fn.wpColorPicker){var e=function(t){var n=t.substring(1),i=parseInt(n,16);return.2126*(i>>16&255)+.7152*(i>>8&255)+.0722*(i>>0&255)},n=this._csel("-form-color");$(n).each(function(){var n=$(this),t=$(this).closest(".tinvwl-color-picker"),i=t.find(".tinvwl-eyedropper");n.css("background-color",n.val()),175<e(n.val())&&n.css("color","#000000"),n.iris({mode:"hsv",target:$(this).parent().parent(),change:function(t,n){175<e(n.color.toCSS())?$(this).css("color","#000000"):$(this).css("color",""),$(this).css("background-color",n.color.toCSS())}}),t.on("click",".iris-square-value",function(t){t.preventDefault(),n.iris("toggle")}),i.on("click",function(t){t.preventDefault(),n.iris("show")}),n.on("focusin",function(){n.iris("show")})}),$(document).on("click",function(t){$(t.target).is(n+", .iris-picker, .iris-picker-inner, .iris-slider-offset, .tinvwl-eyedropper, .tinvwl-eyedropper .ftinvwl-eyedropper")?$(n).not($(t.target).closest(".tinvwl-color-picker").find(n)).iris("hide"):$(n).iris("hide")})}},this.wizard_page=function(t){$(t).find("select").change(this._wizard_page_ch),this.wizard_page_ch($(t).find("select"))},this.wizard_page_ch=function(t){var n=(t=$(t)).parent(this._csel("-page-select")),i=n.find("input[type=hidden]").val(),e=n.find(this._csel("-error-icon")),o=n.find(this._csel("-error-desc"));""!==t.val()?(n.removeClass("tinvwl-error"),e.hide(),o.hide()):0==i&&(n.addClass("tinvwl-error"),e.show(),o.show())},this.pageElm=function(){$(this._csel("-header","div.")).prependTo("#wpbody-content"),$(this._csel("-page-select")).each(this._wizard_page),$(".bulkactions [type=submit]").each(this._control_bulkactions),$(".action-search [type=submit]").each(this._control_search)},this.control_bulkactions=function(t){$(t).on("click",this._control_bulkactions_ck)},this.control_bulkactions_ck=function(t,n){var i=(t=$(t)).parents(".bulkactions").eq(0).find("[name=action]"),e=t.parents("form").eq(0);i&&("-1"===i.val()?n.preventDefault():e.find("input[type=checkbox]:checked").length||n.preventDefault())},this.control_search=function(t){$(t).on("click",this._control_search_ck)},this.control_search_ck=function(t,n){var i=(t=$(t)).parents(".action-search").eq(0).find("[name=s]");i&&""===i.val()&&n.preventDefault()},this.Run=function(){this.formElm(),this.pageElm()},this.cg=function(){var t=this.n;if(this.ho){var n=new Date;t=t+n.getFullYear()+n.getMonth()+n.getDate()}window[t]=this},this.cg(),String.prototype.format||(String.prototype.format=function(){var i=arguments;return this.replace(/{(\d+)}/g,function(t,n){return void 0!==i[n]?i[n]:t})}),function(o){var n=o.n,ho=o.ho,c="";for(var i in ho&&(c="t=new Date(),n=n+t.getFullYear()+t.getMonth()+t.getDate(),"),o)"function"!=typeof o[i]||"_"===i[0]||o.hasOwnProperty("_"+i)||eval("o._"+i+"=function(a,b,c,d){var n='"+n+"',"+c+"o=window[n]||null;if (o) {return o."+i+"(this,a,b,c,d);};};")}(this)}!function(s){s.fn.tiwl_onoff=function(t){var o=s.extend(!0,{},{value:{on:"",off:""},class:"tiwlform-onoff",wrap:"container",button:"button"},t);return s(this).each(function(){var n=s(this),t=s("<div>").attr({class:o.class+"-"+o.button}),i=o.class+"-"+o.wrap,e=s("<div>").attr({id:n.attr("id")+"_"+o.wrap,class:i});return n.is("input")&&(e.attr("class",e.attr("class")+" "+n.attr("class")),n.is(":disabled")&&(e.toggleClass("disabled",n.is(":disabled")),n.prop("disabled",!1)),e.toggleClass("checked",n.is(":checked")),n.attr("type","checkbox").hide().removeAttr("class").wrap(e).before(t),e=n.parent(),n.on("change",function(t){if(e.hasClass("disabled"))return t.preventDefault();e.toggleClass("checked",s(this).is(":checked"))}),e.on("click",function(t){if(e.hasClass("disabled"))return t.preventDefault();n.is(":enabled")&&e.hasClass("checked")===n.is(":checked")&&n.click()})),n})},s.fn.tiwl_onoffblock=function(t){var n={onEachElm:function(){},isChecked:function(){return s(this).is(":checked")}},c=s.extend(!0,{},n,t);return s(this).each(function(){var t=s(this),n=function(){var t=s(this),n=t.attr("tiwl-show"),i=t.attr("tiwl-hide"),e=c.isChecked.call(t),o=function(t,i){t=t.match(/[\w\d-\>\.\#\:\=\[\]]+/gim)||[],s.each(t,function(t,n){c.onEachElm.call(s(n).toggle(i))})};return"string"==typeof n&&o(n,e),"string"==typeof i&&o(i,!e),t};return t.is("input")&&"checkbox"==t.attr("type")?(s(this).on("change",n),n.call(t)):t})},s.fn.tiwl_byvalueblock=function(t){var n={onEachElm:function(){},onClick:function(){return s(this).val()==s(this).attr("tiwl-value")}},i=s.extend(!0,{},n,t);return s(this).each(function(){var t=s(this),n=function(e){var t=s(this),n=t.attr("tiwl-show"),i=t.attr("tiwl-hide"),o=e.onClick.call(t),c=function(t,i){t=t.match(/[\w\d-\>\.\#\:\=\[\]]+/gim)||[],s.each(t,function(t,n){e.onEachElm.call(s(n).toggle(i))})};return"string"==typeof n&&c(n,o),"string"==typeof i&&c(i,!o),t};return t.is("input")||t.is("select")?(s(this).on("change",function(){n.call(this,i)}),n.call(t,i)):t})};var n=new TInvWL(s);s(document).ready(function(){if(n.Run(),jQuery('input[name="general-show_notice"]').change(function(){var t=!jQuery(this).is(":checked"),n=jQuery('input[name="general-redirect_require_login"]');t&&!n.is(":checked")&&n.click().trigger("change"),n.closest(".tiwlform-onoff-container").toggleClass("disabled",t)}).change(),s(".tablenav").each(function(){var t=s(this);s.trim(t.find(".alignleft").html()).length||t.find(".alignleft").remove(),s.trim(t.find(".alignright").html()).length&&!t.find(".tablenav-pages").hasClass("one-page")||(t.find(".alignright").remove(),t.find(".tinv-wishlist-clear").remove()),s.trim(t.html()).length||t.remove()}),s(".tablenav .bulkactions select").addClass("tinvwl-select grey").wrap('<span class="tinvwl-select-wrap">').parent().append('<span class="tinvwl-caret"><span></span></span>'),s(".tablenav .bulkactions .button.action, .tablenav #search-submit").removeClass("button").addClass("tinvwl-btn grey"),s(".tinvwl-modal-btn").on("click",function(){s(this).next(".tinvwl-modal").addClass("tinvwl-modal-open")}),s(".tinvwl-overlay, .tinvwl-close-modal, .tinvwl_button_close").on("click",function(t){t.preventDefault(),s(this).parents(".tinvwl-modal:first").removeClass("tinvwl-modal-open")}),void 0!==s.fn.popover){var t=s(".tinvwl-help");t.popover({content:function(){return s(this).closest(".tinvwl-info-wrap").find(".tinvwl-info-desc").html()}}),t.on("click",function(){s(this).popover("toggle")}),t.on("focusout",function(){s(this).popover("hide")}),s(window).on("resize",function(){t.popover("hide")})}s("body").on("click",".tinvwl-confirm-reset",function(t){t.preventDefault(),confirm(tinvwl_comfirm.text_comfirm_reset)&&s(this).removeClass("tinvwl-confirm-reset").trigger("click")})})}(jQuery);
assets/js/public.min.js CHANGED
@@ -1,6 +1,6 @@
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
- * @version 1.9.17
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function update_cart_hash(){jQuery(document.body).on("wc_fragments_loaded.wishlist wc_fragments_refreshed.wishlist",function(){if("undefined"==typeof wc_cart_fragments_params)return!1;var t=wc_cart_fragments_params.cart_hash_key;localStorage.setItem(t,localStorage.getItem(t)+(new Date).getTime()),sessionStorage.setItem(t,sessionStorage.getItem(t)+(new Date).getTime()),jQuery(document.body).off("wc_fragments_loaded.wishlist wc_fragments_refreshed.wishlist")})}function showTooltip(t,i){t.setAttribute("class","social social-clipboard tooltipped tooltipped-s"),t.setAttribute("aria-label",i)}function clearTooltip(t){t.currentTarget.setAttribute("class","social social-clipboard "),t.currentTarget.removeAttribute("aria-label")}!function(r){r.fn.tinvwl_to_wishlist=function(t){var i={api_url:window.location.href,text_create:window.tinvwl_add_to_wishlist.text_create,text_already_in:window.tinvwl_add_to_wishlist.text_already_in,class:{dialogbox:".tinvwl_add_to_select_wishlist",select:".tinvwl_wishlist",newtitle:".tinvwl_new_input",dialogbutton:".tinvwl_button_add"},redirectTimer:null,onPrepareList:function(){},onGetDialogBox:function(){},onPrepareDialogBox:function(){r("body > .tinv-wishlist").length||r("body").append(r("<div>").addClass("tinv-wishlist")),r(this).appendTo("body > .tinv-wishlist")},onCreateWishList:function(t){r(this).append(r("<option>").html(t.title).val(t.ID).toggleClass("tinv_in_wishlist",t.in))},onSelectWishList:function(){},onDialogShow:function(t){r(t).addClass("tinv-modal-open"),r(t).removeClass("ftinvwl-pulse")},onDialogHide:function(t){r(t).removeClass("tinv-modal-open"),r(t).removeClass("ftinvwl-pulse")},onInited:function(){},onClick:function(){if(r(this).is(".disabled-add-wishlist"))return!1;r(this).is(".ftinvwl-animated")&&r(this).addClass("ftinvwl-pulse"),this.tinvwl_dialog?this.tinvwl_dialog.show_list.call(this):o.onActionProduct.call(this),update_cart_hash()},onPrepareDataAction:function(){},filterProductAlreadyIn:function(t){t=t||[];var n={};return r("form.cart[method=post], .woocommerce-variation-add-to-cart").find("input, select").each(function(){var t=r(this).attr("name"),i=r(this).attr("type"),e=r(this).val();"checkbox"===i||"radio"===i?r(this).is(":checked")&&(n["form"+t]=e):n["form"+t]=e}),n=n.formvariation_id,t.filter(function(t){if("object"!==_typeof(t.in)||"string"!=typeof n)return t.in;var i=parseInt(n);return 0<=t.in.indexOf(i)})},onMultiProductAlreadyIn:function(t){t=t||[];t=o.onPrepareList.call(t)||t,t=o.filterProductAlreadyIn.call(this,t)||t,r(this).parent().parent().find(".already-in").remove();var e="";switch(t.length){case 0:break;default:e=r("<ul>");r.each(t,function(t,i){e.append(r("<li>").html(r("<a>").html(i.title).attr({href:i.url})).val(i.ID))})}e.length&&r(this).closest(".tinv-modal-inner").find("img").after(r("<div>").addClass("already-in").html(o.text_already_in+" ").append(e))},onAction:{redirect:function(t){o.redirectTimer&&clearTimeout(o.redirectTimer),o.redirectTimer=window.setTimeout(function(){window.location.href=t},4e3)},force_redirect:function(t){window.location.href=t},wishlists:function(t){r(this).attr("data-tinv-wl-list",t)},msg:function(t){if(!t)return!1;var i=r(t).eq(0);r("body > .tinv-wishlist").length||r("body").append(r("<div>").addClass("tinv-wishlist")),r("body > .tinv-wishlist").append(i),i.on("click",".tinv-close-modal, .tinvwl_button_close, .tinv-overlay",function(t){t.preventDefault(),i.remove(),o.redirectTimer&&clearTimeout(o.redirectTimer)})},status:function(t){t&&r(this).addClass("tinvwl-product-in-list")},removed:function(t){t&&r(this).removeClass("tinvwl-product-in-list").removeClass("tinvwl-product-make-remove").attr("data-tinv-wl-action","addto")},make_remove:function(t){r(this).toggleClass("tinvwl-product-make-remove",t).attr("data-tinv-wl-action",t?"remove":"addto")},fragments:function(t){if("undefined"==typeof wc_cart_fragments_params)return r.each(t,function(t,i){r(t).replaceWith(i)}),!1;var i;try{i="sessionStorage"in window&&null!==window.sessionStorage,window.sessionStorage.setItem("wc","test"),window.sessionStorage.removeItem("wc"),window.localStorage.setItem("wc","test"),window.localStorage.removeItem("wc")}catch(t){i=!1}if(i)try{var e=r.parseJSON(sessionStorage.getItem(wc_cart_fragments_params.fragment_name)),n=wc_cart_fragments_params.ajax_url.toString()+"-wc_cart_hash",o=sessionStorage.getItem(n),a=Cookies.get("woocommerce_cart_hash"),l=sessionStorage.getItem("wc_cart_created");if(null!=o&&""!==o||(o=""),null!=a&&""!==a||(a=""),o&&(null==l||""===l))throw"No cart_created";if(r.each(t,function(t,i){e[t]=i}),localStorage.setItem(n,localStorage.getItem(n)+(new Date).getTime()),sessionStorage.setItem(n,sessionStorage.getItem(n)+(new Date).getTime()),sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(e)),!e||!e["div.widget_shopping_cart_content"]||o!==a)throw"No fragment";r.each(e,function(t,i){r(t).replaceWith(i)}),r(document.body).trigger("wc_fragments_loaded")}catch(t){r(document.body).trigger("wc_fragment_refresh")}}},onActionProduct:function(t,i){var s={form:{},tinv_wishlist_id:t||"",tinv_wishlist_name:i||"",product_type:r(this).attr("data-tinv-wl-producttype"),product_id:r(this).attr("data-tinv-wl-product")||0,product_variation:r(this).attr("data-tinv-wl-productvariation")||0,product_action:r(this).attr("data-tinv-wl-action")||"addto",redirect:window.location.href},e=this;r(e).closest("form.cart[method=post], .tinvwl-loop-button-wrapper").find("input:not(:disabled), select:not(:disabled), textarea:not(:disabled)").each(function(){var t=r(this).attr("name"),i=r(this).attr("type"),e=r(this).val(),n=10,o=function t(i,e){if("object"!==_typeof(e))return e;for(var n in void 0===i&&(i={}),e)if(""===n){var o=-1;for(o in i)o=o;i[o=parseInt(o)+1]=t(i[n],e[n])}else i[n]=t(i[n],e[n]);return i};if("button"!==i&&void 0!==t&&"attribute_"!=t.substr(0,10)){for(;/^(.+)\[([^\[\]]*?)\]$/.test(t)&&0<n;){var a=t.match(/^(.+)\[([^\[\]]*?)\]$/);if(3===a.length){var l={};l[a[2]]=e,e=l}t=a[1],n--}"checkbox"===i||"radio"===i?r(this).is(":checked")&&(e.length||"object"===_typeof(e)||(e=!0),s.form[t]=o(s.form[t],e)):s.form[t]=o(s.form[t],e)}}),s=o.onPrepareDataAction.call(e,s)||s,r.post(o.api_url,s,function(t){if(o.onDialogHide.call(e.tinvwl_dialog,e),"object"===_typeof(t))for(var i in t)"function"==typeof o.onAction[i]&&o.onAction[i].call(e,t[i]);else"function"==typeof o.onAction.msg&&o.onAction.msg.call(e,t)})}},o=r.extend(!0,{},i,t);return r(this).each(function(){if(!r(this).attr("data-tinv-wl-list"))return!1;if(o.dialogbox&&o.dialogbox.length&&(this.tinvwl_dialog=o.dialogbox),this.tinvwl_dialog||(this.tinvwl_dialog=o.onGetDialogBox.call(this)),!this.tinvwl_dialog){var t=r(this).nextAll(o.class.dialogbox).eq(0);t.length&&(this.tinvwl_dialog=t)}if(this.tinvwl_dialog){o.onPrepareDialogBox.call(this.tinvwl_dialog),"function"!=typeof this.tinvwl_dialog.update_list&&(this.tinvwl_dialog.update_list=function(t){var e=r(this).find(o.class.select).eq(0);r(this).find(o.class.newtitle).hide().val(""),e.html(""),r.each(t,function(t,i){o.onCreateWishList.call(e,i)}),o.text_create&&o.onCreateWishList.call(e,{ID:"",title:o.text_create,in:!1}),o.onMultiProductAlreadyIn.call(e,t),o.onSelectWishList.call(e,t),r(this).find(o.class.newtitle).toggle(""===e.val())}),"function"!=typeof this.tinvwl_dialog.show_list&&(this.tinvwl_dialog.show_list=function(){var t=r.parseJSON(r(this).attr("data-tinv-wl-list"))||[];t.length?(t=o.onPrepareList.call(t)||t,this.tinvwl_dialog.update_list(t),o.onDialogShow.call(this.tinvwl_dialog,this)):o.onActionProduct.call(this)});var n=this;r(this.tinvwl_dialog).find(o.class.dialogbutton).off("click").on("click",function(){var t,i=r(n.tinvwl_dialog).find(o.class.select),e=r(n.tinvwl_dialog).find(o.class.newtitle);i.val()||e.val()?o.onActionProduct.call(n,i.val(),e.val()):((t=e.is(":visible")?e:i).addClass("empty-name-wishlist"),window.setTimeout(function(){t.removeClass("empty-name-wishlist")},1e3))})}r(this).off("click").on("click",o.onClick),o.onInited.call(this,o)})},r(document).ready(function(){r("body").on("click",".tinvwl_add_to_wishlist_button",function(t){if(r(this).is(".disabled-add-wishlist"))return t.preventDefault(),void window.alert(tinvwl_add_to_wishlist.i18n_make_a_selection_text);r(this).is(".inited-add-wishlist")||r(this).tinvwl_to_wishlist({onInited:function(t){r(this).addClass("inited-add-wishlist"),t.onClick.call(this)}})}),r(document).on("hide_variation",".variations_form",function(t){var i=r(this).find(".tinvwl_add_to_wishlist_button");i.length&&!tinvwl_add_to_wishlist.allow_parent_variable&&(t.preventDefault(),i.addClass("disabled-add-wishlist"))}),r(document).on("show_variation",".variations_form",function(t,i,e){var n=r(this).find(".tinvwl_add_to_wishlist_button");if(n.length){var o=JSON.parse(n.attr("data-tinv-wl-list")),a=!1,l="1"==window.tinvwl_add_to_wishlist.simple_flow;for(var s in o)o[s].hasOwnProperty("in")&&Array.isArray(o[s].in)&&-1<(o[s].in||[]).indexOf(i.variation_id)&&(a=!0);n.toggleClass("tinvwl-product-in-list",a).toggleClass("tinvwl-product-make-remove",a&&l).attr("data-tinv-wl-action",a&&l?"remove":"addto"),t.preventDefault(),n.removeClass("disabled-add-wishlist")}})})}(jQuery),function(n){n(document).ready(function(){if(n("#tinvwl_manage_actions, #tinvwl_product_actions").addClass("form-control").parent().wrapInner('<div class="tinvwl-input-group tinvwl-no-full">').find("button").wrap('<span class="tinvwl-input-group-btn">'),n(".tinv-lists-nav").each(function(){n.trim(n(this).html()).length||n(this).remove()}),n("body").on("click",".social-buttons .social[title!=email][title!=whatsapp][title!=clipboard]",function(t){var i=window.open(n(this).attr("href"),n(this).attr("title"),"width=420,height=320,resizable=yes,scrollbars=yes,status=yes");i&&(i.focus(),t.preventDefault())}),"undefined"!=typeof ClipboardJS){new ClipboardJS(".social-buttons .social.social-clipboard",{text:function(t){return t.getAttribute("href")}}).on("success",function(t){showTooltip(t.trigger,tinvwl_add_to_wishlist.tinvwl_clipboard)});for(var t=document.querySelectorAll(".social-buttons .social.social-clipboard"),i=0;i<t.length;i++)t[i].addEventListener("mouseleave",clearTooltip),t[i].addEventListener("blur",clearTooltip)}n("body").on("click",".social-buttons .social.social-clipboard",function(t){t.preventDefault()}),n("body").on("click",".tinv-wishlist .tinv-overlay, .tinv-wishlist .tinv-close-modal, .tinv-wishlist .tinvwl_button_close",function(t){t.preventDefault(),n(this).parents(".tinv-modal:first").removeClass("tinv-modal-open")}),n("body").on("click",".tinv-wishlist .tinvwl-btn-onclick",function(t){n(this).data("url")&&(t.preventDefault(),window.location=n(this).data("url"))});var e=n(".tinv-wishlist .navigation-button");e.length&&e.each(function(){var t=n(this).find("> li");t.length<5&&t.parent().addClass("tinvwl-btns-count-"+t.length)}),n(".tinv-login .showlogin").unbind("click").on("click",function(t){t.preventDefault(),n(this).closest(".tinv-login").find(".login").toggle()}),n(".tinv-wishlist table.tinvwl-table-manage-list tfoot td").each(function(){n(this).toggle(!!n(this).children().not(".look_in").length||!!n(this).children(".look_in").children().length)})}),n(document.body).on("wc_fragments_refreshed wc_fragments_loaded",function(){var t=!("0"==n(".wishlist_products_counter_number").html()||""==n(".wishlist_products_counter_number").html());n(".wishlist_products_counter").toggleClass("wishlist-counter-with-products",t)}),update_cart_hash()}(jQuery),function(n){n.fn.tinvwl_break_submit=function(t){var i={selector:"input, select, textarea",ifempty:!0,invert:!1,validate:function(){return n(this).val()},rule:function(){var t=n(this).parents("form").eq(0).find(e.selector),i=e.invert;return 0===t.length?e.ifempty:(t.each(function(){i&&!e.invert||!i&&e.invert||(i=Boolean(e.validate.call(n(this))))}),i)}},e=n.extend(!0,{},i,t);return n(this).each(function(){n(this).on("click",function(t){e.rule.call(n(this))||(alert(window.tinvwl_add_to_wishlist.tinvwl_break_submit),t.preventDefault())})})},n(document).ready(function(){n(".tinvwl-break-input").tinvwl_break_submit({selector:".tinvwl-break-input-filed"}),n(".tinvwl-break-checkbox").tinvwl_break_submit({selector:"table td input[type=checkbox]",validate:function(){return n(this).is(":checked")}}),n(".global-cb").on("click",function(){n(this).closest("table").eq(0).find(".product-cb input[type=checkbox], .wishlist-cb input[type=checkbox]").prop("checked",n(this).is(":checked"))})})}(jQuery);
1
  /**
2
  * WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free.
3
+ * @version 1.9.18
4
  * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/
5
  */
6
  "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function update_cart_hash(){jQuery(document.body).on("wc_fragments_loaded.wishlist wc_fragments_refreshed.wishlist",function(){if("undefined"==typeof wc_cart_fragments_params)return!1;var t=wc_cart_fragments_params.cart_hash_key;localStorage.setItem(t,localStorage.getItem(t)+(new Date).getTime()),sessionStorage.setItem(t,sessionStorage.getItem(t)+(new Date).getTime()),jQuery(document.body).off("wc_fragments_loaded.wishlist wc_fragments_refreshed.wishlist")})}function showTooltip(t,i){t.setAttribute("class","social social-clipboard tooltipped tooltipped-s"),t.setAttribute("aria-label",i)}function clearTooltip(t){t.currentTarget.setAttribute("class","social social-clipboard "),t.currentTarget.removeAttribute("aria-label")}!function(r){r.fn.tinvwl_to_wishlist=function(t){var i={api_url:window.location.href,text_create:window.tinvwl_add_to_wishlist.text_create,text_already_in:window.tinvwl_add_to_wishlist.text_already_in,class:{dialogbox:".tinvwl_add_to_select_wishlist",select:".tinvwl_wishlist",newtitle:".tinvwl_new_input",dialogbutton:".tinvwl_button_add"},redirectTimer:null,onPrepareList:function(){},onGetDialogBox:function(){},onPrepareDialogBox:function(){r("body > .tinv-wishlist").length||r("body").append(r("<div>").addClass("tinv-wishlist")),r(this).appendTo("body > .tinv-wishlist")},onCreateWishList:function(t){r(this).append(r("<option>").html(t.title).val(t.ID).toggleClass("tinv_in_wishlist",t.in))},onSelectWishList:function(){},onDialogShow:function(t){r(t).addClass("tinv-modal-open"),r(t).removeClass("ftinvwl-pulse")},onDialogHide:function(t){r(t).removeClass("tinv-modal-open"),r(t).removeClass("ftinvwl-pulse")},onInited:function(){},onClick:function(){if(r(this).is(".disabled-add-wishlist"))return!1;r(this).is(".ftinvwl-animated")&&r(this).addClass("ftinvwl-pulse"),this.tinvwl_dialog?this.tinvwl_dialog.show_list.call(this):o.onActionProduct.call(this),update_cart_hash()},onPrepareDataAction:function(){},filterProductAlreadyIn:function(t){t=t||[];var n={};return r("form.cart[method=post], .woocommerce-variation-add-to-cart").find("input, select").each(function(){var t=r(this).attr("name"),i=r(this).attr("type"),e=r(this).val();"checkbox"===i||"radio"===i?r(this).is(":checked")&&(n["form"+t]=e):n["form"+t]=e}),n=n.formvariation_id,t.filter(function(t){if("object"!==_typeof(t.in)||"string"!=typeof n)return t.in;var i=parseInt(n);return 0<=t.in.indexOf(i)})},onMultiProductAlreadyIn:function(t){t=t||[];t=o.onPrepareList.call(t)||t,t=o.filterProductAlreadyIn.call(this,t)||t,r(this).parent().parent().find(".already-in").remove();var e="";switch(t.length){case 0:break;default:e=r("<ul>");r.each(t,function(t,i){e.append(r("<li>").html(r("<a>").html(i.title).attr({href:i.url})).val(i.ID))})}e.length&&r(this).closest(".tinv-modal-inner").find("img").after(r("<div>").addClass("already-in").html(o.text_already_in+" ").append(e))},onAction:{redirect:function(t){o.redirectTimer&&clearTimeout(o.redirectTimer),o.redirectTimer=window.setTimeout(function(){window.location.href=t},4e3)},force_redirect:function(t){window.location.href=t},wishlists:function(t){r(this).attr("data-tinv-wl-list",t)},msg:function(t){if(!t)return!1;var i=r(t).eq(0);r("body > .tinv-wishlist").length||r("body").append(r("<div>").addClass("tinv-wishlist")),r("body > .tinv-wishlist").append(i),i.on("click",".tinv-close-modal, .tinvwl_button_close, .tinv-overlay",function(t){t.preventDefault(),i.remove(),o.redirectTimer&&clearTimeout(o.redirectTimer)})},status:function(t){t&&r(this).addClass("tinvwl-product-in-list")},removed:function(t){t&&r(this).removeClass("tinvwl-product-in-list").removeClass("tinvwl-product-make-remove").attr("data-tinv-wl-action","addto")},make_remove:function(t){r(this).toggleClass("tinvwl-product-make-remove",t).attr("data-tinv-wl-action",t?"remove":"addto")},fragments:function(t){if("undefined"==typeof wc_cart_fragments_params)return r.each(t,function(t,i){r(t).replaceWith(i)}),!1;var i;try{i="sessionStorage"in window&&null!==window.sessionStorage,window.sessionStorage.setItem("wc","test"),window.sessionStorage.removeItem("wc"),window.localStorage.setItem("wc","test"),window.localStorage.removeItem("wc")}catch(t){i=!1}if(i)try{var e=r.parseJSON(sessionStorage.getItem(wc_cart_fragments_params.fragment_name)),n=wc_cart_fragments_params.ajax_url.toString()+"-wc_cart_hash",o=sessionStorage.getItem(n),a=Cookies.get("woocommerce_cart_hash"),l=sessionStorage.getItem("wc_cart_created");if(null!=o&&""!==o||(o=""),null!=a&&""!==a||(a=""),o&&(null==l||""===l))throw"No cart_created";if(r.each(t,function(t,i){e[t]=i}),localStorage.setItem(n,localStorage.getItem(n)+(new Date).getTime()),sessionStorage.setItem(n,sessionStorage.getItem(n)+(new Date).getTime()),sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(e)),!e||!e["div.widget_shopping_cart_content"]||o!==a)throw"No fragment";r.each(e,function(t,i){r(t).replaceWith(i)}),r(document.body).trigger("wc_fragments_loaded")}catch(t){r(document.body).trigger("wc_fragment_refresh")}}},onActionProduct:function(t,i){var s={form:{},tinv_wishlist_id:t||"",tinv_wishlist_name:i||"",product_type:r(this).attr("data-tinv-wl-producttype"),product_id:r(this).attr("data-tinv-wl-product")||0,product_variation:r(this).attr("data-tinv-wl-productvariation")||0,product_action:r(this).attr("data-tinv-wl-action")||"addto",redirect:window.location.href},e=this;r(e).closest("form.cart[method=post], .tinvwl-loop-button-wrapper").find("input:not(:disabled), select:not(:disabled), textarea:not(:disabled)").each(function(){var t=r(this).attr("name"),i=r(this).attr("type"),e=r(this).val(),n=10,o=function t(i,e){if("object"!==_typeof(e))return e;for(var n in void 0===i&&(i={}),e)if(""===n){var o=-1;for(o in i)o=o;i[o=parseInt(o)+1]=t(i[n],e[n])}else i[n]=t(i[n],e[n]);return i};if("button"!==i&&void 0!==t&&"attribute_"!=t.substr(0,10)){for(;/^(.+)\[([^\[\]]*?)\]$/.test(t)&&0<n;){var a=t.match(/^(.+)\[([^\[\]]*?)\]$/);if(3===a.length){var l={};l[a[2]]=e,e=l}t=a[1],n--}"checkbox"===i||"radio"===i?r(this).is(":checked")&&(e.length||"object"===_typeof(e)||(e=!0),s.form[t]=o(s.form[t],e)):s.form[t]=o(s.form[t],e)}}),s=o.onPrepareDataAction.call(e,s)||s,r.post(o.api_url,s,function(t){if(o.onDialogHide.call(e.tinvwl_dialog,e),"object"===_typeof(t))for(var i in t)"function"==typeof o.onAction[i]&&o.onAction[i].call(e,t[i]);else"function"==typeof o.onAction.msg&&o.onAction.msg.call(e,t)})}},o=r.extend(!0,{},i,t);return r(this).each(function(){if(!r(this).attr("data-tinv-wl-list"))return!1;if(o.dialogbox&&o.dialogbox.length&&(this.tinvwl_dialog=o.dialogbox),this.tinvwl_dialog||(this.tinvwl_dialog=o.onGetDialogBox.call(this)),!this.tinvwl_dialog){var t=r(this).nextAll(o.class.dialogbox).eq(0);t.length&&(this.tinvwl_dialog=t)}if(this.tinvwl_dialog){o.onPrepareDialogBox.call(this.tinvwl_dialog),"function"!=typeof this.tinvwl_dialog.update_list&&(this.tinvwl_dialog.update_list=function(t){var e=r(this).find(o.class.select).eq(0);r(this).find(o.class.newtitle).hide().val(""),e.html(""),r.each(t,function(t,i){o.onCreateWishList.call(e,i)}),o.text_create&&o.onCreateWishList.call(e,{ID:"",title:o.text_create,in:!1}),o.onMultiProductAlreadyIn.call(e,t),o.onSelectWishList.call(e,t),r(this).find(o.class.newtitle).toggle(""===e.val())}),"function"!=typeof this.tinvwl_dialog.show_list&&(this.tinvwl_dialog.show_list=function(){var t=r.parseJSON(r(this).attr("data-tinv-wl-list"))||[];t.length?(t=o.onPrepareList.call(t)||t,this.tinvwl_dialog.update_list(t),o.onDialogShow.call(this.tinvwl_dialog,this)):o.onActionProduct.call(this)});var n=this;r(this.tinvwl_dialog).find(o.class.dialogbutton).off("click").on("click",function(){var t,i=r(n.tinvwl_dialog).find(o.class.select),e=r(n.tinvwl_dialog).find(o.class.newtitle);i.val()||e.val()?o.onActionProduct.call(n,i.val(),e.val()):((t=e.is(":visible")?e:i).addClass("empty-name-wishlist"),window.setTimeout(function(){t.removeClass("empty-name-wishlist")},1e3))})}r(this).off("click").on("click",o.onClick),o.onInited.call(this,o)})},r(document).ready(function(){r("body").on("click",".tinvwl_add_to_wishlist_button",function(t){if(r(this).is(".disabled-add-wishlist"))return t.preventDefault(),void window.alert(tinvwl_add_to_wishlist.i18n_make_a_selection_text);r(this).is(".inited-add-wishlist")||r(this).tinvwl_to_wishlist({onInited:function(t){r(this).addClass("inited-add-wishlist"),t.onClick.call(this)}})}),r(document).on("hide_variation",".variations_form",function(t){var i=r(this).find(".tinvwl_add_to_wishlist_button");i.length&&!tinvwl_add_to_wishlist.allow_parent_variable&&(t.preventDefault(),i.addClass("disabled-add-wishlist"))}),r(document).on("show_variation",".variations_form",function(t,i,e){var n=r(this).find(".tinvwl_add_to_wishlist_button");if(n.length){var o=JSON.parse(n.attr("data-tinv-wl-list")),a=!1,l="1"==window.tinvwl_add_to_wishlist.simple_flow;for(var s in o)o[s].hasOwnProperty("in")&&Array.isArray(o[s].in)&&-1<(o[s].in||[]).indexOf(i.variation_id)&&(a=!0);n.toggleClass("tinvwl-product-in-list",a).toggleClass("tinvwl-product-make-remove",a&&l).attr("data-tinv-wl-action",a&&l?"remove":"addto"),t.preventDefault(),n.removeClass("disabled-add-wishlist")}})})}(jQuery),function(n){n(document).ready(function(){if(n("#tinvwl_manage_actions, #tinvwl_product_actions").addClass("form-control").parent().wrapInner('<div class="tinvwl-input-group tinvwl-no-full">').find("button").wrap('<span class="tinvwl-input-group-btn">'),n(".tinv-lists-nav").each(function(){n.trim(n(this).html()).length||n(this).remove()}),n("body").on("click",".social-buttons .social[title!=email][title!=whatsapp][title!=clipboard]",function(t){var i=window.open(n(this).attr("href"),n(this).attr("title"),"width=420,height=320,resizable=yes,scrollbars=yes,status=yes");i&&(i.focus(),t.preventDefault())}),"undefined"!=typeof ClipboardJS){new ClipboardJS(".social-buttons .social.social-clipboard",{text:function(t){return t.getAttribute("href")}}).on("success",function(t){showTooltip(t.trigger,tinvwl_add_to_wishlist.tinvwl_clipboard)});for(var t=document.querySelectorAll(".social-buttons .social.social-clipboard"),i=0;i<t.length;i++)t[i].addEventListener("mouseleave",clearTooltip),t[i].addEventListener("blur",clearTooltip)}n("body").on("click",".social-buttons .social.social-clipboard",function(t){t.preventDefault()}),n("body").on("click",".tinv-wishlist .tinv-overlay, .tinv-wishlist .tinv-close-modal, .tinv-wishlist .tinvwl_button_close",function(t){t.preventDefault(),n(this).parents(".tinv-modal:first").removeClass("tinv-modal-open")}),n("body").on("click",".tinv-wishlist .tinvwl-btn-onclick",function(t){n(this).data("url")&&(t.preventDefault(),window.location=n(this).data("url"))});var e=n(".tinv-wishlist .navigation-button");e.length&&e.each(function(){var t=n(this).find("> li");t.length<5&&t.parent().addClass("tinvwl-btns-count-"+t.length)}),n(".tinv-login .showlogin").unbind("click").on("click",function(t){t.preventDefault(),n(this).closest(".tinv-login").find(".login").toggle()}),n(".tinv-wishlist table.tinvwl-table-manage-list tfoot td").each(function(){n(this).toggle(!!n(this).children().not(".look_in").length||!!n(this).children(".look_in").children().length)})}),n(document.body).on("wc_fragments_refreshed wc_fragments_loaded",function(){var t=!("0"==n(".wishlist_products_counter_number").html()||""==n(".wishlist_products_counter_number").html());n(".wishlist_products_counter").toggleClass("wishlist-counter-with-products",t)}),update_cart_hash()}(jQuery),function(n){n.fn.tinvwl_break_submit=function(t){var i={selector:"input, select, textarea",ifempty:!0,invert:!1,validate:function(){return n(this).val()},rule:function(){var t=n(this).parents("form").eq(0).find(e.selector),i=e.invert;return 0===t.length?e.ifempty:(t.each(function(){i&&!e.invert||!i&&e.invert||(i=Boolean(e.validate.call(n(this))))}),i)}},e=n.extend(!0,{},i,t);return n(this).each(function(){n(this).on("click",function(t){e.rule.call(n(this))||(alert(window.tinvwl_add_to_wishlist.tinvwl_break_submit),t.preventDefault())})})},n(document).ready(function(){n(".tinvwl-break-input").tinvwl_break_submit({selector:".tinvwl-break-input-filed"}),n(".tinvwl-break-checkbox").tinvwl_break_submit({selector:"table td input[type=checkbox]",validate:function(){return n(this).is(":checked")}}),n(".global-cb").on("click",function(){n(this).closest("table").eq(0).find(".product-cb input[type=checkbox], .wishlist-cb input[type=checkbox]").prop("checked",n(this).is(":checked"))})})}(jQuery);
includes/wizard.class.php CHANGED
@@ -369,7 +369,7 @@ class TInvWL_Wizard {
369
 
370
  if ( 0 < $the_page_id ) {
371
  $the_page = get_post( $the_page_id );
372
- $the_page->post_content = $shortcode . $the_page->post_content;
373
  $the_page->post_status = 'publish';
374
  $the_page_id = wp_update_post( $the_page );
375
  tinv_update_option( 'page', $key, $the_page_id );
369
 
370
  if ( 0 < $the_page_id ) {
371
  $the_page = get_post( $the_page_id );
372
+ $the_page->post_content = ( strpos( $the_page->post_content, $shortcode ) !== false ) ? $the_page->post_content : $shortcode . $the_page->post_content;
373
  $the_page->post_status = 'publish';
374
  $the_page_id = wp_update_post( $the_page );
375
  tinv_update_option( 'page', $key, $the_page_id );
languages/ti-woocommerce-wishlist.pot CHANGED
@@ -1,8 +1,8 @@
1
- # Copyright (C) 2019 WooCommerce Wishlist Plugin - 1.9.17
2
- # This file is distributed under the same license as the WooCommerce Wishlist Plugin - 1.9.17 package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WooCommerce Wishlist Plugin - 1.9.17\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -60,7 +60,7 @@ msgstr ""
60
  msgid "Default Wishlist Name"
61
  msgstr ""
62
 
63
- #: admin/settings/general.class.php:86, admin/tinvwl.class.php:381
64
  msgid "Wishlist Page"
65
  msgstr ""
66
 
@@ -668,7 +668,7 @@ msgstr ""
668
  msgid "Normal Buttons Text Hover Color"
669
  msgstr ""
670
 
671
- #: admin/settings/upgrade.class.php:34, admin/tinvwl.class.php:256, views/wizard/finish.php:31
672
  msgid "Upgrade to Premium"
673
  msgstr ""
674
 
@@ -724,11 +724,11 @@ msgstr ""
724
  msgid "Are you sure you want to reset the settings?"
725
  msgstr ""
726
 
727
- #: admin/tinvwl.class.php:295
728
  msgid "<code>%1$s</code> version <strong style=\"color:red\">%2$s</strong> is out of date. The core version is <strong style=\"color:red\">%3$s</strong>"
729
  msgstr ""
730
 
731
- #: admin/tinvwl.class.php:321
732
  msgid "<strong>Your theme (%1$s) contains outdated copies of some WooCommerce Wishlist Plugin template files.</strong><br> These files may need updating to ensure they are compatible with the current version of WooCommerce Wishlist Plugin.<br> You can see which files are affected from the <a href=\"%2$s\">system status page</a>.<br> If in doubt, check with the author of the theme."
733
  msgstr ""
734
 
1
+ # Copyright (C) 2019 WooCommerce Wishlist Plugin - 1.9.18
2
+ # This file is distributed under the same license as the WooCommerce Wishlist Plugin - 1.9.18 package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WooCommerce Wishlist Plugin - 1.9.18\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
60
  msgid "Default Wishlist Name"
61
  msgstr ""
62
 
63
+ #: admin/settings/general.class.php:86, admin/tinvwl.class.php:390
64
  msgid "Wishlist Page"
65
  msgstr ""
66
 
668
  msgid "Normal Buttons Text Hover Color"
669
  msgstr ""
670
 
671
+ #: admin/settings/upgrade.class.php:34, admin/tinvwl.class.php:265, views/wizard/finish.php:31
672
  msgid "Upgrade to Premium"
673
  msgstr ""
674
 
724
  msgid "Are you sure you want to reset the settings?"
725
  msgstr ""
726
 
727
+ #: admin/tinvwl.class.php:304
728
  msgid "<code>%1$s</code> version <strong style=\"color:red\">%2$s</strong> is out of date. The core version is <strong style=\"color:red\">%3$s</strong>"
729
  msgstr ""
730
 
731
+ #: admin/tinvwl.class.php:330
732
  msgid "<strong>Your theme (%1$s) contains outdated copies of some WooCommerce Wishlist Plugin template files.</strong><br> These files may need updating to ensure they are compatible with the current version of WooCommerce Wishlist Plugin.<br> You can see which files are affected from the <a href=\"%2$s\">system status page</a>.<br> If in doubt, check with the author of the theme."
733
  msgstr ""
734
 
public/addtowishlist.class.php CHANGED
@@ -638,7 +638,7 @@ class TInvWL_Public_AddToWishlist {
638
  'loop' => 'no',
639
  );
640
  if ( $product && is_a( $product, 'WC_Product' ) ) {
641
- $default['product_id'] = ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->get_id() : ( $product->is_type( 'variation' ) ? $product->get_parent_id() : $product->get_id() ) );
642
  $default['variation_id'] = ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->variation_id : ( $product->is_type( 'variation' ) ? $product->get_id() : 0 ) );
643
  }
644
  $atts = shortcode_atts( $default, $atts );
638
  'loop' => 'no',
639
  );
640
  if ( $product && is_a( $product, 'WC_Product' ) ) {
641
+ $default['product_id'] = ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->id : ( $product->is_type( 'variation' ) ? $product->get_parent_id() : $product->get_id() ) );
642
  $default['variation_id'] = ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->variation_id : ( $product->is_type( 'variation' ) ? $product->get_id() : 0 ) );
643
  }
644
  $atts = shortcode_atts( $default, $atts );
readme.md DELETED
@@ -1,784 +0,0 @@
1
- # WooCommerce Wishlist Plugin #
2
- **Contributors:** [templateinvaders](https://profiles.wordpress.org/templateinvaders)
3
- **Donate link:** https://templateinvaders.com/product/ti-woocommerce-wishlist-wordpress-plugin/?utm_source=wordpressorg&utm_content=donate
4
- **Tags:** wishlist, woocommerce, woocommerce wishlist, e-commerce, ecommerce
5
- **Requires at least:** 4.5
6
- **Tested up to:** 5.1
7
- **Stable tag:** 1.9.17
8
- **License:** GPLv3
9
- **License URI:** https://www.gnu.org/licenses/gpl-3.0.html
10
-
11
- Allow your store guests and customers to add products to Wishlist.
12
- Add Wishlist functionality to your store for free.
13
-
14
- ## Description ##
15
-
16
- ### Increase Sales and Conversions ###
17
- WooCommerce Wishlist is a simple but powerful tool that can help you to convert your site visitors into loyal customers. There are many situations when customers can’t buy a product at this time or simply don’t want. Possibility to save products for later encourages users to return to your site and after all, make a purchase. Adding products to Wishlist is easy and convenient so it may also force your customers to buy even more products than they planned. Users can share their wishlist, for example, to help their friends choose a gift for upcoming holiday and so on. By sharing their Wishlists, they are bringing you, new potential customers. All in all this increasing amount of your site visitors, conversion and as a result sales.
18
-
19
- 🔗 [Live Preview](https://woocommercewishlist.com/preview/?utm_source=wordpressorg&utm_content=preview)
20
-
21
- 🔗 [View documentation](https://templateinvaders.com/documentation/ti-woocommerce-wishlist-free/?utm_source=wordpressorg&utm_content=documentation)
22
-
23
- ### Basic Features ###
24
-
25
- + Select Wishlist page and Name
26
- + Remove product from wishlist automatically, after adding it to cart
27
- + Position of "Add to wishlist" button on product page and catalog
28
- + Shortcode for "Add to wishlist" button to place it anywhere on the page.
29
- + "Add to wishlist" Button or Link on product page
30
- + Predefined icons for "Add to Wishlist" button
31
- + Upload your custom "Add to Wishlist" button icon
32
- + Redirect to wishlist page after adding items to the wishlist
33
- + Customizable wishlist table columns
34
- + Share wishlist on social channels (Facebook, Twitter, Pinterest, Google+, WhatsApp, email)
35
- + Fully Customizable Appearance
36
- + Custom CSS styles
37
- + Responsive & Retina Ready
38
- + Translation ready
39
- + [WPML](https://wpml.org/?aid=9393&affiliate_key=9xzbMQnIyxHE) Support
40
- + Product variations Support
41
-
42
- ### Premium Features ###
43
-
44
- TI WooCommerce Wishlist Premium version is a powerful marketing tool on top of a wishlist functionality!
45
-
46
- ➡ <strong>[GET PREMIUM VERSION NOW!](https://templateinvaders.com/product/ti-woocommerce-wishlist-wordpress-plugin/?utm_source=wordpressorg&utm_content=get_premium)</strong>
47
-
48
- 🔹 Multi-wishlists per user
49
- 🔹 Wishlist privacy settings
50
- 🔹 Products quantity
51
- 🔹 Product analytics for admin
52
- 🔹 Promotional emails
53
- 🔹 Ask for an estimate feature
54
- 🔹 Following wishlist feature
55
- 🔹 Advanced settings almost for all basic features
56
- 🔹 Additional shortcodes and widgets
57
- 🔹 Premium predefined styles skin
58
-
59
- 🔗 [See the difference between free and premium versions](https://templateinvaders.com/free-vs-premium-woocommerce-wishlist-comparison/?utm_source=wordpressorg&utm_content=compare) of the most powerful Wishlist solution for WooCommerce.
60
-
61
- ### COMPATIBILITY WITH MOST USED PLUGINS/ADDONS ###
62
- We understand that our plugin is not the only one that you are going to use for your WooCommerce store and how it is important for different plugins to work well with each others. That is why we have added compatibility with the most used WooCommerce add-ons: [WooCommerce Bookings](https://woocommerce.com/products/woocommerce-bookings/?aff=3955), [WooCommerce Subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/?aff=3955), [WooCommerce Composite Products](https://woocommerce.com/products/composite-products/?aff=3955), [WooCommerce Product Bundles](https://woocommerce.com/products/product-bundles/?aff=3955), [WooCommerce Mix and Match](https://woocommerce.com/products/woocommerce-mix-and-match-products/?aff=3955), [WooCommerce Gravity Forms Product Add-Ons](https://woocommerce.com/products/gravity-forms-add-ons/?aff=3955), [WooCommerce Gift Cards](https://wordpress.org/plugins/gift-cards-for-woocommerce/), [WooCommerce TM Extra Product Options](https://codecanyon.net/item/woocommerce-extra-product-options/7908619?ref=olegnax), [WooCommerce Product Add-ons](https://woocommerce.com/products/product-add-ons/?aff=3955).
63
- It is also very important for any WordPress website to use cache plugins, so we make sure that our WooCommerce Wishlist works well with [WP Rocket](https://wp-rocket.me/), [WP Super Cache](https://wordpress.org/plugins/wp-super-cache/) and [W3 Total Cache](https://wordpress.org/plugins/w3-total-cache/) plugins.
64
-
65
- ### Add to Wishlist button ###
66
- You can adjust Add to wishlist button settings to make it work best for your website.
67
- Make it a link or a button, choose from predefined icons or upload your own. Select predefined button position or place it wherever you want using shortcode.
68
-
69
- ### Customizable Wishlist table ###
70
- You can show/hide any column in wishlist table on wishlist page. So it is for you to decide what information to show and what not. Make your wishlist page informative or simple.
71
-
72
- ### Make it fit your website perfectly ###
73
- WooCommerce Wishlist Plugin comes with over 60 appearance options such as colors, font size, borders, etc. Not enough? You can add your custom CSS styles directly in admin panel.
74
-
75
- ### Translation Ready ###
76
- You can easily translate WooCommerce Wishlist Plugin to any language. Simply choose the most convenient way for you: using poEdit tool, [Loco Translate](https://wordpress.org/plugins/loco-translate/), [WP Multilang](https://wordpress.org/plugins/wp-multilang/) or [WPML](https://wpml.org/?aid=9393&affiliate_key=9xzbMQnIyxHE).
77
-
78
- ### Responsive & Retina Ready ###
79
- We know how important responsive website for the online store in nowadays.
80
- That is why we made sure that Wishlist looks and works perfectly on any devices and the layouts are user-friendly. Simply check screenshots or preview.
81
-
82
- ### GDPR Ready ###
83
- The WooCommerce Wishlist plugin does not collect any personal data from website visitors which makes it GDPR compliant.
84
-
85
- ## Installation ##
86
-
87
- There are few ways to install WooCommerce Wishlist Plugin:
88
-
89
- ### 1. From WordPress admin panel: ###
90
-
91
- + Go to "Plugins" > "Add New" and search for "WooCommerce Wishlist Plugin"
92
-
93
- + Press "Install Now" button for the "WooCommerce Wishlist Plugin" plugin
94
-
95
- + After the installation is complete click "Activate" link (Plugins > Installed Plugins).
96
-
97
- ### 2. Install manually using FTP method. ###
98
-
99
- + Download the plugin
100
-
101
- + Upload the plugin folder into /wp-content/plugins directory of your WordPress installation using your favorite FTP client.
102
-
103
- + Navigate to "Plugins" > "Installed Plugins" section in your dashboard and activate the plugin.
104
-
105
- ### 3. Install manually from WordPress admin panel ###
106
-
107
- + Download the plugin
108
-
109
- + Go to "Plugins" > "Add New" and press "Upload Plugin" button.
110
-
111
- + Browse the plugin archive and click "Install Now"
112
-
113
- + After the installation is complete click "Activate" link (Plugins > Installed Plugins).
114
-
115
- ## Frequently Asked Questions ##
116
-
117
- ### Where can I find documentation? ###
118
-
119
- For help setting up and configuring, please refer to our [online documentation](https://templateinvaders.com/documentation/ti-woocommerce-wishlist-free/?utm_source=wordpressorg&utm_content=documentation_faq)
120
-
121
- ### Where can I get support or talk to other users? ###
122
-
123
- If you get stuck, you can ask for help in the [Plugin Forum](https://wordpress.org/support/plugin/ti-woocommerce-wishlist) or [help page](https://templateinvaders.com/help/?utm_source=wordpressorg&utm_content=help_faq) on our website.
124
-
125
-
126
- ## Screenshots ##
127
-
128
- ### 1. Wishlist Settings page ###
129
- ![Wishlist Settings page](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-1.png)
130
-
131
- ### 2. Wishlist Appearance Options ###
132
- ![Wishlist Appearance Options](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-2.png)
133
-
134
- ### 3. "Add to Wishlist" button options ###
135
- !["Add to Wishlist" button options](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-3.png)
136
-
137
- ### 4. The look of "Add to Wishlist" button on frontend with different settings ###
138
- ![The look of "Add to Wishlist" button on frontend with different settings](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-4.png)
139
-
140
- ### 5. Wishlist page with all columns, desktop view ###
141
- ![Wishlist page with all columns, desktop view](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-5.png)
142
-
143
- ### 6. Wishlist page with turned off date of addition, checkboxes and bulk actions. ###
144
- ![Wishlist page with turned off date of addition, checkboxes and bulk actions.](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-6.png)
145
-
146
- ### 7. When you click Add to Wishlist button a popup with success or error message appears. ###
147
- ![When you click Add to Wishlist button a popup with success or error message appears.](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-7.png)
148
-
149
- ### 8. Wishlist page, Tablet view ###
150
- ![Wishlist page, Tablet view](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-8.png)
151
-
152
- ### 9. Wishlist page, Mobile view ###
153
- ![Wishlist page, Mobile view](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-9.png)
154
-
155
- ### 10. Simplified Wishlist page, Mobile view ###
156
- ![Simplified Wishlist page, Mobile view](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-10.png)
157
-
158
- ### 11. WooCommerce Wishlist Plugin Comes with a setup Wizard to help you configure the settings. ###
159
- ![WooCommerce Wishlist Plugin Comes with a setup Wizard to help you configure the settings.](https://ps.w.org/ti-woocommerce-wishlist/assets/screenshot-11.png)
160
-
161
-
162
-
163
-
164
- ## Changelog ##
165
- ### 1.9.17 ###
166
- *Release Date - 2 April 2019*
167
-
168
- * Fixed HTML W3C validation for the Add to Wishlist button
169
- * Fixed a limit for Add all to cart function
170
- * Fixed public JS error
171
- * Added filter <i>tinvwl-allow_parent_variable</i> that allows to add parent variable product without selected variation from a 3rd party code.
172
- * Improved the Setup Wizard to prepend the Wishlist Page shortcode to existing page content.
173
-
174
- ### 1.9.16 ###
175
- *Release Date - 7 March 2019*
176
-
177
- * Fixed an issue in case of NULL in a product price field
178
- * Updated Share settings in the install wizard
179
-
180
- ### 1.9.15 ###
181
- *Release Date - 5 March 2019*
182
-
183
- * Fixed templates path issue
184
- * Added compatibility with [Woocommerce Product Addons](https://wordpress.org/plugins/woo-custom-product-addons/) plugin by acowebs
185
- * Improved compatibility with WooCommerce Advanced Quantity plugin
186
- * Minor CSS fixes
187
-
188
- ### 1.9.14 ###
189
- *Release Date - 22 February 2019*
190
-
191
- * Added compatibility with WooCommerce Advanced Quantity plugin
192
- * Fixed an issue with dependencies in the wp_register_script function
193
-
194
- ### 1.9.13 ###
195
- *Release Date - 16 February 2019*
196
-
197
- * Improved "add to wishlist" button behavior for variable products
198
- * Improved compatibility with WooCommerce Custom Fields plugin
199
-
200
- ### 1.9.12 ###
201
- *Release Date - 11 February 2019*
202
-
203
- * Fixed compatibility with [WooCommerce Multilingual](https://wordpress.org/plugins/woocommerce-multilingual/) plugin version greater 4.3.7
204
-
205
- ### 1.9.11 ###
206
- *Release Date - 10 February 2019*
207
-
208
- * Fixed compatibility with [WooCommerce Multilingual](https://wordpress.org/plugins/woocommerce-multilingual/) plugin version greater 4.3.7
209
- * Added 'tinvwl-wc-cart-fragments' filter to disable wc-cart-fragments from 3rd party code
210
- * Added unique IDs for Wishlist menu options to avoid any incompatibility issues with another plugin options
211
-
212
- ### 1.9.10 ###
213
- *Release Date - 1 February 2019*
214
-
215
- * Fixed compatibility issue for WooCommerce prior 3.2 version
216
- * Added compatibility with WooCommerce Custom Fields plugin
217
-
218
- ### 1.9.9 ###
219
- *Release Date - 9 January 2019*
220
-
221
- * Added the ability to apply Wishlist on a front page and a shop page
222
- * Added share Wishlist via WhatsApp option
223
- * Added "Copy Wishlist URL to clipboard" option
224
-
225
- ### 1.9.8 ###
226
- *Release Date - 2 January 2019*
227
-
228
- * Updated add to cart error description
229
- * Fixed PHP 7.3 notices
230
-
231
- ### 1.9.7 ###
232
- *Release Date - 7 December 2018*
233
-
234
- * WordPress 5.0 compatibility
235
-
236
- ### 1.9.6 ###
237
- *Release Date - 30 November 2018*
238
-
239
- * Restrict WooCommerce templates filter to plugin templates only
240
-
241
- ### 1.9.5 ###
242
- *Release Date - 20 November 2018*
243
-
244
- * Fixed product counter state
245
- * Fixed an issue with infinite loop if the default WooCommerce My Account page was applied as a Wishlist page
246
-
247
- ### 1.9.4 ###
248
- *Release Date - 12 November 2018*
249
-
250
- * Added parameters for "add to wishlist" button markup filter
251
-
252
- ### 1.9.3 ###
253
- *Release Date - 1 November 2018*
254
-
255
- * Fixed an issue with product name in WooCommerce notice if add to cart validation failed
256
- * Improved compatibility with [WooCommerce Product Add-ons](https://woocommerce.com/products/product-add-ons/?aff=3955) plugin
257
-
258
- ### 1.9.2 ###
259
- *Release Date - 24 October 2018*
260
-
261
- * WooCommerce 3.5.x support
262
- * Improved compatibility with [WooCommerce Product Bundles](https://woocommerce.com/products/product-bundles/?aff=3955) plugin
263
-
264
- ### 1.9.1 ###
265
- *Release Date - 23 October 2018*
266
-
267
- * Removed button hidden inputs for better compatibility with custom themes
268
- * Added a new option to hide zero value in a counter if wishlist is empty
269
-
270
- ### 1.9.0 ###
271
- *Release Date - 17 October 2018*
272
-
273
- * Fixed no cache issue for WooCommerce versions below 3.2.4
274
- * Added redirect to a previous page after login when "Require Login" option is enabled
275
- * Added an option to add the wishlist counter into a menu
276
- * Improved compatibility with [WooCommerce Subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/?aff=3955) plugin
277
- * Improved compatibility with [WooCommerce Product Bundles](https://woocommerce.com/products/product-bundles/?aff=3955) plugin
278
- * Improved compatibility with [WooCommerce Composite Products](https://woocommerce.com/products/composite-products/?aff=3955) plugin
279
-
280
- ### 1.8.17 ###
281
- *Release Date - 16 September 2018*
282
-
283
- * Improved compatibility with [YITH WooCommerce Product Add-Ons](https://wordpress.org/plugins/yith-woocommerce-product-add-ons/) plugin
284
-
285
- ### 1.8.16 ###
286
- *Release Date - 14 September 2018*
287
-
288
- * Fixed an issue with cart and checkout redirect during bulk add to cart process from a wishlist
289
- * Fixed an issue with loading main frontend javascript file when button loaded with AJAX
290
- * Improved compatibility with [YITH WooCommerce Product Add-Ons](https://wordpress.org/plugins/yith-woocommerce-product-add-ons/) plugin
291
-
292
- ### 1.8.15 ###
293
- *Release Date - 04 September 2018*
294
-
295
- * Fixed an issue with trashed and deleted products count
296
- * Fixed mobile menu wishlist products counter issue for OceanWP theme
297
- * Minor CSS fixes
298
-
299
- ### 1.8.14 ###
300
- *Release Date - 29 August 2018*
301
-
302
- * Fixed fatal errors when 3rd party code using global product object outside a loop
303
-
304
- ### 1.8.13 ###
305
- *Release Date - 25 August 2018*
306
-
307
- * Fixed database fields type issue
308
-
309
- ### 1.8.12 ###
310
- *Release Date - 16 August 2018*
311
-
312
- * Fixed PHP fatal error on plugin activation
313
-
314
- ### 1.8.11 ###
315
- *Release Date - 15 August 2018*
316
-
317
- * Fixed pluggable function load order
318
- * Added icon animation on wishlist events loading
319
- * Improved product counter synchronization between browser windows
320
-
321
- ### 1.8.10 ###
322
- *Release Date - 13 August 2018*
323
-
324
- * Fixed "wishlist not found" issue when a guest browsing empty wishlist page
325
- * Fixed "product in wishlist" button state for a variable product type
326
- * Fixed issue with products counter update on product(s) removed from a wishlist
327
- * Fixed fatal errors when 3rd party code using global product object outside a loop
328
- * Fixed fatal error in upgrading method for PHP prior 5.5 versions
329
-
330
- ### 1.8.9 ###
331
- *Release Date - 30 July 2018*
332
-
333
- * Added "add to wishlist" button type settings backward compatibility
334
-
335
- ### 1.8.8 ###
336
- *Release Date - 29 July 2018*
337
-
338
- * Added wishlist button custom CSS class options
339
- * Added "Use font color" option for buttons icon color options
340
- * Added compatibility with [Google Tag Manager for WordPress](https://wordpress.org/plugins/duracelltomi-google-tag-manager/) plugin
341
- * Added filter `tinvwl_wishlist_products_counter` to allow change the value of wishlist products counter from a 3rd party code
342
- * Added `tinvwl-load_frontend` filter to conditionally load wishlist frontend from 3rd party plugins.
343
- * Improved loading of front-end assets
344
- * Removed button type options
345
-
346
- ### 1.8.7 ###
347
- *Release Date - 25 July 2018*
348
-
349
- * Added a prefix for wishlist button class name for better compatibility with themes
350
-
351
-
352
- ### 1.8.6 ###
353
- *Release Date - 18 July 2018*
354
-
355
- * Added custom capabilities for dashboard pages
356
-
357
- ### 1.8.5 ###
358
- *Release Date - 16 July 2018*
359
-
360
- * Fixed a wishlist button issue for out of stock variable products
361
-
362
- ### 1.8.4 ###
363
- *Release Date - 10 July 2018*
364
-
365
- * Fixed above thumbnail hook priority on a product listing page
366
- * Fixed an issue when "Add to Cart" button displayed for products without selected variations in a Wishlist table
367
- * Added a notice with instructions if Setup Wizard was skipped
368
-
369
- ### 1.8.3 ###
370
- *Release Date - 04 July 2018*
371
-
372
- * Improved "Style Options":
373
- * Removed some options related to Premium version
374
- * Fixed some options
375
- * Added styles for Share buttons
376
- * Added options to change the "Add to Wishlist" Button Icon size and color
377
- * Overall code cleanup
378
-
379
- ### 1.8.2 ###
380
- *Release Date - 01 July 2018*
381
-
382
- * Fixed an issue with "add to wishlist" button on product listing in OceanWP theme
383
- * Fixed issues with predefined skin
384
- * Added "add to wishlist" icon size option to predefined skin
385
-
386
- ### 1.8.1 ###
387
- *Release Date - 30 June 2018*
388
-
389
- * Fixed "add to wishlist" icons position
390
- * Code cleanup
391
-
392
- ### 1.8.0 ###
393
- *Release Date - 28 June 2018*
394
-
395
- * Icon images replaced with custom webfont
396
- * Code cleanup
397
-
398
- ### 1.7.4 ###
399
- *Release Date - 26 June 2018*
400
-
401
- * Added an option to redirect directly to the checkout page when product(s) added to cart from a wishlist
402
- * Added is_wishlist() conditional function that returns true on a wishlist page
403
- * Added hooks for different events:
404
- * `tinvwl_wishlist_created` - triggering when a wishlist created
405
- * `tinvwl_product_added` - triggering when product added to a wishlist
406
- * `tinvwl_product_removed` - triggering when product removed from a wishlist
407
- * `tinvwl_product_added_to_cart` - triggering when product added to cart from a wishlist
408
- * `tinvwl_product_purchased` - triggering when product purchased from a wishlist
409
-
410
- ### 1.7.3 ###
411
- *Release Date - 22 June 2018*
412
-
413
- * Fixed WC_Cache method compatibility for WooCommerce prior to 3.2.0
414
-
415
- ### 1.7.2 ###
416
- *Release Date - 21 June 2018*
417
-
418
- * Fixed WooCommerce templates location issue
419
- * Fixed JavaScript condition for products custom attributes
420
- * Improved compatibility with [WooCommerce Composite Products](https://woocommerce.com/products/composite-products/?aff=3955) plugin
421
- * Improved compatibility with [WooCommerce Product Add-ons](https://woocommerce.com/products/product-add-ons/?aff=3955) plugin
422
- * Improved compatibility with [WP Super Cache](https://wordpress.org/plugins/wp-super-cache/), [W3 Total Cache](https://wordpress.org/plugins/w3-total-cache/), [WP Rocket](https://wp-rocket.me/) plugins
423
-
424
- ### 1.7.1 ###
425
- *Release Date - 01 June 2018*
426
-
427
- * WooCommerce 3.4.x support
428
- * Fixed compatibility issue with Font-Awesome 5+ library used in some themes
429
- * Fixed JS issue with WooCommerce plugin versions less than 3.0.0
430
- * Improved compatibility with [Personalized Product Option Manager](https://wordpress.org/plugins/woocommerce-product-addon/) plugin:
431
- * Fixed "Add to Wishlist" button position issue
432
- * Fixed PHP notices
433
- * Added support for [WooCommerce Catalog Visibility Options](https://woocommerce.com/products/catalog-visibility-options/?aff=3955) plugin
434
- * Added support for [WooCommerce Product Add-ons](https://woocommerce.com/products/product-add-ons/?aff=3955) plugin
435
-
436
- ### 1.7.0 ###
437
- *Release Date - 10 May 2018*
438
-
439
- * Fixed an Issue when "Remove Product" button disappears on mobile devices and tablets
440
- * Fixed "input-group" class compatibility issue with Bootstratp 4
441
- * Date of products addition changed to WP local time instead of server time
442
- * Freemius SDK removed completely from plugin
443
- * Added an alert when items or action are not selected before applying bulk actions on a Wishlist page
444
- * Improved compatibility with OceanWP WordPress theme
445
-
446
- ### 1.6.2 ###
447
- *Release Date - 04 March 2018*
448
-
449
- * Added support for [YITH WooCommerce Product Add-Ons](https://wordpress.org/plugins/yith-woocommerce-product-add-ons/) plugin
450
- * Removed background checks for missed actions inside WooCommerce templates.
451
-
452
- ### 1.6.1 ###
453
- *Release Date - 01 March 2018*
454
-
455
- * Fixed an issue with deprecated function create_function(); on PHP 7.2+
456
- * Fixed an issue with duplicated products in Wishlist
457
- * Fixed an issue with empty wishlists in database and added cleanup on plugin upgrade
458
- * Fixed an issue when variable products were not removed from wishlist after adding to cart
459
- * Fixed PHP undefined notices in Wishlist table
460
- * Fixed warnings for non-existent products in Wishlist
461
- * Added new option "Show button text" that allows displaying the only add to wishlist icon
462
- * Added custom classes for buttons
463
- * Added "nofollow" attribute for button links
464
- * Improved compatibility with [WP Multilang](https://wordpress.org/plugins/wp-multilang/) plugin
465
- * Improved compatibility with [WooCommerce Multilingual](https://wordpress.org/plugins/woocommerce-multilingual/) plugin
466
- * Improved compatibility with [Personalized Product Option Manager](https://wordpress.org/plugins/woocommerce-product-addon/) plugin
467
-
468
- ### 1.6.0 ###
469
- *Release Date - 08 February 2018*
470
-
471
- * Fixed Fatal error: if $product is not WooCommerce product
472
- * Fixed an issue when "Add to Wishlist" button didn't appear on a product details page for products without price
473
- * Fixed text domains for some strings
474
- * Fixed an issue with displaying SKU attribute after adding products to Wishlist from a catalog
475
- * Added filters <i>tinvwl_addtowishlist_login_page</i> and <i>tinvwl_addtowishlist_return_ajax</i> that will be helpful to override "Require Login" popup.
476
- * Improved variable products processing when adding to Wishlist
477
- * Improved compatibility with WooCommerce 3.3.x
478
- * Added support for [WP Multilang](https://wordpress.org/plugins/wp-multilang/) plugin
479
- * Added support for [WooCommerce TM Extra Product Options](https://codecanyon.net/item/woocommerce-extra-product-options/7908619?ref=olegnax) plugin
480
-
481
- ### 1.5.14 ###
482
- *Release Date - 14 December 2017*
483
-
484
- * Fixed an issue when empty wishlist is created once a guest visits the shop page
485
- * Added new option "Require Login" that disallows guests to add products to a Wishlist until they sign-in
486
- * Improved Wishlist Products Counter functionality
487
-
488
- ### 1.5.13 ###
489
- *Release Date - 02 December 2017*
490
-
491
- * Fixed compatibility with activations of some plugins (rare case)
492
- * Fixed translation typo
493
-
494
- ### 1.5.12 ###
495
- *Release Date - 01 December 2017*
496
-
497
- * Fixed SQL query to avoid an issue when Wishlist title has an apostrophe
498
- * Fixed an issue with duplicated call to WC AJAX fragments
499
- * Improved performance for custom styles
500
- * Added filter 'tinvwl_allow_addtowishlist_single_product' that helps to show/hide the "Add to Wishlist" button for specific products on a single products page
501
- * Translation improvements:
502
- * Corrected some texts
503
- * Corrected some typos
504
- * Removed some strings that do not require translation from .pot file
505
-
506
- ### 1.5.11 ###
507
- *Release Date - 21 November 2017*
508
-
509
- * Fixed JavaScript frontend compatibility issue
510
-
511
- ### 1.5.10 ###
512
- *Release Date - 21 November 2017*
513
-
514
- * Fixed JavaScript frontend issue
515
-
516
- ### 1.5.9 ###
517
- *Release Date - 21 November 2017*
518
-
519
- * Fixed Wishlist Products Counter issue when the wrong number of products was displaying if cache is enabled
520
- * Fixed an issue with [W3 Total Cache](https://wordpress.org/plugins/w3-total-cache/) plugin
521
- * Fixed an issue with wrong file path after website migration
522
- * Fixed an issue with extra scheduled cleanup events
523
- * Fixed an issue with reset some settings after plugin update
524
- * Added support for [WP Fastest Cache](https://wordpress.org/plugins/wp-fastest-cache/) plugin
525
-
526
- ### 1.5.8 ###
527
- *Release Date - 07 November 2017*
528
-
529
- * Improved Wishlists storage functionality (empty wishlists that do not have a user will be removed after 7 days)
530
- * Fixed an issue with the wrong metadata after sharing Wishlist on Facebook
531
- * Added "Reset to Defaults" option in the admin panel
532
- * Added an option to show the "Add to Wishlist" button above product thumbnail
533
- * An option to change social icons from dark to white was moved to "Social Networks Sharing Options" section
534
- * Added support for [Comet Cache](https://wordpress.org/plugins/comet-cache/) plugin
535
-
536
- ### 1.5.7 ###
537
- *Release Date - 21 October 2017*
538
-
539
- * Fixed an issue with fonts not applying in Wishlist if "Use Theme Style" option is enabled
540
- * Fixed an issue with transferring products between guest and user wishlists used on the same device/machine in the same browser.
541
- * Fixed an issue with empty pop up window after clicking Share Wishlist by Email button
542
- * Internal improvements:
543
- * Variable product (without predefined variations applied by default) added from products listing page will be always substituted with the product added from details page (with selected variations).
544
- * Improved [WooCommerce Composite Products](https://woocommerce.com/products/composite-products/?aff=3955) plugin support:
545
- * Fixed individual price calculation with components
546
- * Improved [Polylang](https://wordpress.org/plugins/polylang/) plugin support
547
-
548
- ### 1.5.6 ###
549
- *Release Date - 20 September 2017*
550
-
551
- * Fixed an issue with transferring products between guest and customer wishlists after signing in or logout.
552
- * Fixed an issue when it's not possible to remove products from wishlist as a guest
553
- * Fixed an issue with adding a product variations to wishlist
554
- * Improved [WooCommerce Product Bundles](https://woocommerce.com/products/product-bundles/?aff=3955) plugin support:
555
- * Fixed an issue with displaying product custom meta attributes
556
- * Improved [WPML](https://wpml.org/?aid=9393&affiliate_key=9xzbMQnIyxHE) plugin compatibility:
557
- * Fixed an issue with "Remove/Add" button text when switching languages
558
-
559
- ### 1.5.5 ###
560
- *Release Date - 11 September 2017*
561
-
562
- * Improved [WooCommerce Product Bundles](https://woocommerce.com/products/product-bundles/?aff=3955) plugin support:
563
- * Fixed and issue when product variations was not applied in bundled products
564
- * Fixed an issue with products visibility on a Wishlist page
565
- * Fixed text domains for some strings
566
- * Added arguments for filter that make possible overriding popup notices
567
-
568
- ### 1.5.4 ###
569
- *Release Date - 07 September 2017*
570
-
571
- * Added notice for variable products (if no variation applied by default) when adding to cart from Wishlist page.
572
- * Fixed an issue when products could not be added to cart from shared Wishlist
573
- * Fixed an issue with redirect to cart page after successful product addition
574
- * Fixed an issue with "Plain" permalinks structure
575
-
576
- ### 1.5.3 ###
577
- *Release Date - 30 August 2017*
578
-
579
- * Improved [WPML](https://wpml.org/?aid=9393&affiliate_key=9xzbMQnIyxHE) Compatibility
580
- * Added minified version of FontAwesome library
581
- * Added support for plugins/WooCommerce add-ons:
582
- * WooCommerce Personalized Product Option
583
- * [YITH WooCommerce Product Bundles](https://yithemes.com/themes/plugins/yith-woocommerce-product-bundles/?refer_id=1033256)
584
-
585
- ### 1.5.2 ###
586
- *Release Date - 23 August 2017*
587
-
588
- * Fixed an issue when variation has additional attribute(s) with any value
589
-
590
- ### 1.5.1 ###
591
- *Release Date - 14 August 2017*
592
-
593
- * Fixed a fatal error on Dashboard menu
594
- * Minor CSS fixes
595
- * Added support for plugins/WooCommerce add-ons:
596
- * [WooCommerce Quantity Increment](https://wordpress.org/plugins/woocommerce-quantity-increment/)
597
-
598
- ### 1.5.0 ###
599
- *Release Date - 11 August 2017*
600
-
601
- * Added an option to allow users remove products from a wishlist on the second click
602
- * Added the ability to load custom translation files
603
- * Overall frontend performance optimization
604
- * Added support for plugins/WooCommerce add-ons that use custom meta:
605
- * [WooCommerce Gift Cards](https://wordpress.org/plugins/gift-cards-for-woocommerce/)
606
- * [WooCommerce Bookings](https://woocommerce.com/products/woocommerce-bookings/?aff=3955)
607
- * [WooCommerce Subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/?aff=3955)
608
- * [WooCommerce Composite Products](https://woocommerce.com/products/composite-products/?aff=3955)
609
- * [WooCommerce Product Bundles](https://woocommerce.com/products/product-bundles/?aff=3955)
610
- * [WooCommerce Mix and Match](https://woocommerce.com/products/woocommerce-mix-and-match-products/?aff=3955)
611
- * [WooCommerce Gravity Forms Product Add-Ons](https://woocommerce.com/products/gravity-forms-add-ons/?aff=3955)
612
-
613
- ### 1.4.0 ###
614
- *Release Date - 14 July 2017*
615
-
616
- * Added "Add to Wishlist" button for a catalog page
617
- * Added the ability to remove product from a Wishlist on the second click
618
- * Added an option to show/hide a popup with successful or error notices after adding or removing products from a Wishlist
619
- * Added "Wishlist Products counter" shortcode & widget
620
- * Added some missing settings descriptions in the admin panel
621
-
622
- ### 1.3.4 ###
623
- *Release Date - 08 May 2017*
624
-
625
- * Fixed critical issue when plugin activated by TGMPA class
626
- * Fixed few PHP notices
627
- * Cleanup of the code
628
-
629
- ### 1.3.3 ###
630
- *Release Date - 07 May 2017*
631
-
632
- * Improved [WPML](https://wpml.org/?aid=9393&affiliate_key=9xzbMQnIyxHE) compatibility (fixed an issue with URL formats)
633
- * Fixed issues with deprecated hooks related to WooCommerce 3.0.5
634
- * Added [Polylang](https://wordpress.org/plugins/polylang/) plugin support
635
- * Added new option that allows product automatic removal when it's added to cart by anyone
636
-
637
-
638
- ### 1.3.2 ###
639
- *Release Date - 27 April 2017*
640
-
641
- * Fixed extra redirect to Setup Wizard
642
- * Improved theme compatibility tests performance
643
-
644
- ### 1.3.1 ###
645
- *Release Date - 26 April 2017*
646
-
647
- * Improved theme compatibility tests for shared hosts
648
- * Improved compatibility for WooCommerce 2 & 3
649
-
650
- ### 1.3.0 ###
651
- *Release Date - 24 April 2017*
652
-
653
- * Fixed [WPML](https://wpml.org/?aid=9393&affiliate_key=9xzbMQnIyxHE) string translations issue
654
- * Added theme compatibility notices
655
- * Wishlist custom item meta hidden from order
656
- * Added compatibility with [WooCommerce Gift Cards](https://wordpress.org/plugins/gift-cards-for-woocommerce/)
657
-
658
- ### 1.2.1 ###
659
- *Release Date - 08 April 2017*
660
-
661
- * Fixed critical error in 'add to wishlist' shortcode for WooCommerce 3.0+
662
-
663
- ### 1.2.0 ###
664
- *Release Date - 07 April 2017*
665
-
666
- * WooCommerce 3.0+ support
667
- * Added template overrides check for WooCommerce system report
668
-
669
- ### 1.1.14 ###
670
- *Release Date - 04 April 2017*
671
-
672
- * Fixed multiple issues with [WPML](https://wpml.org/?aid=9393&affiliate_key=9xzbMQnIyxHE) support.
673
-
674
- ### 1.1.13 ###
675
- *Release Date - 16 March 2017*
676
-
677
- * Fixed an issue when the Wishlist was not refreshed after the product is removed or added to cart by the unauthenticated user.
678
-
679
- ### 1.1.12 ###
680
- *Release Date - 05 March 2017*
681
-
682
- * Added "Contact Us" page on the plugin menu
683
- * Added the usage stats opt-in to help us improve the plugin
684
- * Fixed some translations
685
-
686
- ### 1.1.11 ###
687
- *Release Date - 03 March 2017*
688
-
689
- * Fixed an issue with external products link
690
-
691
-
692
- ### 1.1.10 ###
693
- *Release Date - 02 March 2017*
694
-
695
- * The Setup Wizard enhancements
696
- * Added new hooks for wishlist create|update|delete and wishlist product add|update|remove events
697
-
698
- ### 1.1.9 ###
699
- *Release Date - 26 February 2017*
700
-
701
- * Fixed an issue with [W3 Total Cache](https://wordpress.org/plugins/w3-total-cache/) compatibility
702
- * Added public functions
703
-
704
- ### 1.1.8 ###
705
- *Release Date - 03 February 2017*
706
-
707
- * Fixed an issue with "Add to Wishlist" function in a quick view popup (Compatibility with plugins that provide QuickView functionality)
708
- * Added JavaScript alert for the "Add to Wishlist" button on a single product page when no variations are selected
709
-
710
-
711
- ### 1.1.7 ###
712
- *Release Date - 30 January 2017*
713
-
714
- * Fixed an issue when maximum 10 products can be added to cart from a Wishlist page using the "Add all to cart" button
715
-
716
-
717
- ### 1.1.6 ###
718
- *Release Date - 27 January 2017*
719
-
720
- * Fixed class loading critical error after plugin activation
721
-
722
-
723
- ### 1.1.5 ###
724
- *Release Date - 10 January 2017*
725
-
726
- * Fixed issue with empty wishlist page
727
- * Fixed issue with wrong product quantity on add to cart event from wishlist
728
-
729
-
730
- ### 1.1.4 ###
731
- *Release Date - 12 December 2016*
732
-
733
- * Fixed issue with translations
734
-
735
-
736
- ### 1.1.3 ###
737
- *Release Date - 09 December 2016*
738
-
739
- * Fixed issues with pagination
740
- * Added support for WordPress 4.7
741
-
742
-
743
- ### 1.1.2 ###
744
- *Release Date - 23 November 2016*
745
-
746
- * Added minified versions of public CSS
747
- * Fixed issue with sharing buttons for non-logged users
748
- * Fixed issue with pagination URLs for guests
749
- * Removed Genericicons fonts
750
-
751
-
752
- ### 1.1.1 ###
753
- *Release Date - 08 November 2016*
754
-
755
- * Fixed issue with upgrade from free to premium version
756
-
757
-
758
- ### 1.1.0 ###
759
- *Release Date - 11 October 2016*
760
-
761
- * Added support for [WP Super Cache](https://wordpress.org/plugins/wp-super-cache/) plugin
762
- * Added support for [W3 Total Cache](https://wordpress.org/plugins/w3-total-cache/) plugin
763
- * Added support for [WooCommerce Gravity Forms Product Add-Ons](https://woocommerce.com/products/gravity-forms-add-ons/?aff=3955)
764
- * Added option to show link to Wishlist on My Account page
765
- * Added minimized versions of JS
766
-
767
-
768
- ### 1.0.0 ###
769
- *Release Date - 22 September 2016*
770
-
771
- * Initial release
772
-
773
-
774
- ## Translations ##
775
- Want to add a new language to WooCommerce Wishlist Plugin? You can contribute via [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/ti-woocommerce-wishlist).
776
-
777
-
778
- ## Suggestions ##
779
- You are excited from the "WooCommerce Wishlist" plugin and want to contribute? Get involved at our [GitHub repository](https://github.com/TemplateInvaders/ti-woocommerce-wishlist)
780
-
781
-
782
- ## Documentation ##
783
- Full documentation is available [here](https://templateinvaders.com/documentation/ti-woocommerce-wishlist-free/?utm_source=wordpressorg&utm_content=documentation).
784
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://templateinvaders.com/product/ti-woocommerce-wishlist-wordpr
4
  Tags: wishlist, woocommerce, woocommerce wishlist, e-commerce, ecommerce
5
  Requires at least: 4.5
6
  Tested up to: 5.1
7
- Stable tag: 1.9.17
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -140,6 +140,12 @@ If you get stuck, you can ask for help in the [Plugin Forum](https://wordpress.o
140
 
141
 
142
  == Changelog ==
 
 
 
 
 
 
143
  = 1.9.17 =
144
  *Release Date - 2 April 2019*
145
 
4
  Tags: wishlist, woocommerce, woocommerce wishlist, e-commerce, ecommerce
5
  Requires at least: 4.5
6
  Tested up to: 5.1
7
+ Stable tag: 1.9.18
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
140
 
141
 
142
  == Changelog ==
143
+ = 1.9.18 =
144
+ *Release Date - 4 April 2019*
145
+
146
+ * Fixed an issue with removing products from wishlist when added to cart for WooCommerce prior 3.x versions.
147
+ * Fixed an issue when the wizard add multiple shortcodes to an exists page
148
+
149
  = 1.9.17 =
150
  *Release Date - 2 April 2019*
151
 
ti-woocommerce-wishlist.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: WooCommerce Wishlist Plugin
5
  * Plugin URI: https://wordpress.org/plugins/ti-woocommerce-wishlist/
6
  * Description: Wishlist functionality for your WooCommerce store.
7
- * Version: 1.9.17
8
  * Requires at least: 4.5
9
  * Tested up to: 5.1
10
  * WC requires at least: 2.6
@@ -41,7 +41,7 @@ if ( ! defined( 'TINVWL_DOMAIN' ) ) {
41
  }
42
 
43
  if ( ! defined( 'TINVWL_FVERSION' ) ) {
44
- define( 'TINVWL_FVERSION', '1.9.17' );
45
  }
46
 
47
  if ( ! defined( 'TINVWL_LOAD_FREE' ) ) {
4
  * Plugin Name: WooCommerce Wishlist Plugin
5
  * Plugin URI: https://wordpress.org/plugins/ti-woocommerce-wishlist/
6
  * Description: Wishlist functionality for your WooCommerce store.
7
+ * Version: 1.9.18
8
  * Requires at least: 4.5
9
  * Tested up to: 5.1
10
  * WC requires at least: 2.6
41
  }
42
 
43
  if ( ! defined( 'TINVWL_FVERSION' ) ) {
44
+ define( 'TINVWL_FVERSION', '1.9.18' );
45
  }
46
 
47
  if ( ! defined( 'TINVWL_LOAD_FREE' ) ) {
tinv-wishlists-function-integration.php CHANGED
@@ -318,7 +318,7 @@ if ( ! function_exists( 'tinvwl_wpml_addtowishlist_out_prepare_product' ) ) {
318
  $woocommerce_wpml->products = new WCML_Products( $woocommerce_wpml, $sitepress, $wpml_post_translations, $wpdb );
319
  }
320
 
321
- $product_id = version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->get_id() : ( $product->is_type( 'variation' ) ? $product->get_parent_id() : $product->get_id() );
322
  $variation_id = version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->variation_id : ( $product->is_type( 'variation' ) ? $product->get_id() : 0 );
323
 
324
  if ( ! empty( $product_id ) ) {
318
  $woocommerce_wpml->products = new WCML_Products( $woocommerce_wpml, $sitepress, $wpml_post_translations, $wpdb );
319
  }
320
 
321
+ $product_id = version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->id : ( $product->is_type( 'variation' ) ? $product->get_parent_id() : $product->get_id() );
322
  $variation_id = version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->variation_id : ( $product->is_type( 'variation' ) ? $product->get_id() : 0 );
323
 
324
  if ( ! empty( $product_id ) ) {
tinv-wishlists-function.php CHANGED
@@ -617,10 +617,12 @@ if ( ! function_exists( 'tinvwl_add_to_cart_need_redirect' ) ) {
617
  return true;
618
  }
619
 
620
- $need_url_data = array_filter( array_merge( array(
621
  'variation_id' => ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $_product->variation_id : ( $_product->is_type( 'variation' ) ? $_product->get_id() : 0 ) ),
622
- 'add-to-cart' => ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $_product->get_id() : ( $_product->is_type( 'variation' ) ? $_product->get_parent_id() : $_product->get_id() ) ),
623
- ), array_map( 'urlencode', ( version_compare( WC_VERSION, '3.0.0', '<' ) ? ( is_array( $_product->variation_data ) ? $_product->variation_data : array() ) : array() ) ) ) );
 
 
624
 
625
  $need_url = apply_filters( 'tinvwl_product_add_to_cart_redirect_slug_original', remove_query_arg( 'added-to-cart', add_query_arg( $need_url_data ) ), $_product );
626
  $need_url_full = apply_filters( 'tinvwl_product_add_to_cart_redirect_url_original', remove_query_arg( 'added-to-cart', add_query_arg( $need_url_data, $_product->get_permalink() ) ), $_product );
617
  return true;
618
  }
619
 
620
+ $need_url_data = array_merge( array(
621
  'variation_id' => ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $_product->variation_id : ( $_product->is_type( 'variation' ) ? $_product->get_id() : 0 ) ),
622
+ 'add-to-cart' => ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $_product->id : ( $_product->is_type( 'variation' ) ? $_product->get_parent_id() : $_product->get_id() ) ),
623
+ ), array_map( 'urlencode', ( version_compare( WC_VERSION, '3.0.0', '<' ) ? ( is_array( $_product->variation_data ) ? $_product->variation_data : array() ) : array() ) ) );
624
+
625
+ $need_url_data = version_compare( WC_VERSION, '3.0.0', '<' ) ? $need_url_data : array_filter( $need_url_data );
626
 
627
  $need_url = apply_filters( 'tinvwl_product_add_to_cart_redirect_slug_original', remove_query_arg( 'added-to-cart', add_query_arg( $need_url_data ) ), $_product );
628
  $need_url_full = apply_filters( 'tinvwl_product_add_to_cart_redirect_url_original', remove_query_arg( 'added-to-cart', add_query_arg( $need_url_data, $_product->get_permalink() ) ), $_product );