WooLentor – Elementor WooCommerce Builder Addons, Variation Swatches Addons, Gutenberg WooCommerce Product block, grid, slider, templates, widgets, Quick View, Wishlist, Products Compare, Product Filter – All in One Solution - Version 1.9.5

Version Description

Download this release

Release Info

Developer devitemsllc
Plugin Icon 128x128 WooLentor – Elementor WooCommerce Builder Addons, Variation Swatches Addons, Gutenberg WooCommerce Product block, grid, slider, templates, widgets, Quick View, Wishlist, Products Compare, Product Filter – All in One Solution
Version 1.9.5
Comparing to
See all releases

Code changes from version 1.7.4 to 1.9.5

Files changed (103) hide show
  1. assets/addons/ajax-search/css/ajax-search.css +23 -1
  2. assets/addons/ajax-search/js/ajax-search.js +12 -3
  3. assets/addons/ajax-search/js/jquery.nicescroll.min.js +0 -2
  4. assets/css/category-grid.css +267 -0
  5. assets/css/faq.css +97 -0
  6. assets/css/product-grid.css +595 -0
  7. assets/css/select2.min.css +1 -0
  8. assets/css/simple-line-icons.css +1 -1
  9. assets/css/slider.css +326 -0
  10. assets/css/store-feature.css +165 -0
  11. assets/css/testimonial.css +306 -0
  12. assets/css/woolentor-widgets.css +1103 -303
  13. assets/images/check.png +0 -0
  14. assets/images/selector-icon.png +0 -0
  15. assets/js/accordion.min.js +9 -0
  16. assets/js/select2.min.js +2 -0
  17. assets/js/single_product_ajax_add_to_cart.js +33 -2
  18. assets/js/woolentor-widgets-active.js +191 -1
  19. assets/lib/css/magnific-popup.css +4 -0
  20. assets/lib/iconpicker/css/iconpicker.eot +0 -0
  21. assets/lib/iconpicker/css/iconpicker.svg +19 -0
  22. assets/lib/iconpicker/css/iconpicker.ttf +0 -0
  23. assets/lib/iconpicker/css/iconpicker.woff +0 -0
  24. assets/lib/iconpicker/css/jquery.fonticonpicker.bootstrap.min.css +2 -0
  25. assets/lib/iconpicker/css/jquery.fonticonpicker.min.css +2 -0
  26. assets/lib/iconpicker/js/jquery.fonticonpicker.min.js +13 -0
  27. assets/lib/js/jarallax.js +6 -0
  28. assets/lib/js/magnific-popup.js +6 -0
  29. assets/lib/js/one-page-nav.js +227 -0
  30. assets/lib/js/wow.js +3 -0
  31. classes/class.ajax_actions.php +135 -0
  32. classes/class.assest_management.php +90 -8
  33. classes/class.default_data.php +2 -2
  34. classes/class.icon_list.php +219 -0
  35. classes/class.product_query.php +168 -31
  36. classes/class.quickview_manage.php +45 -0
  37. classes/class.single_product_ajax_add_to_cart.php +0 -31
  38. classes/class.widgets_control.php +27 -0
  39. includes/addons/add_banner.php +4 -3
  40. includes/addons/product_accordion.php +16 -16
  41. includes/addons/product_curvy.php +11 -10
  42. includes/addons/product_image_accordion.php +24 -18
  43. includes/addons/product_tabs.php +22 -38
  44. includes/addons/special_day_offer.php +6 -8
  45. includes/addons/universal_product.php +124 -325
  46. includes/addons/wb_archive_product.php +7 -7
  47. includes/addons/wb_customer_review.php +1 -1
  48. includes/addons/wb_ever_compare_table.php +205 -0
  49. includes/addons/wb_image_marker.php +1 -1
  50. includes/addons/wb_just_table.php +156 -0
  51. includes/addons/wb_product_data_tab.php +1 -3
  52. includes/addons/wb_product_description.php +6 -1
  53. includes/addons/wb_product_price.php +10 -10
  54. includes/addons/wb_product_related.php +2 -1
  55. includes/addons/wb_product_suggest_price.php +8 -8
  56. includes/addons/wb_product_title.php +6 -3
  57. includes/addons/wb_product_upsell.php +3 -1
  58. includes/addons/wb_wc_multicurrency.php +106 -0
  59. includes/addons/wb_whols.php +94 -0
  60. includes/addons/wb_wishsuite_table.php +143 -0
  61. includes/addons/wl_brand.php +4 -4
  62. includes/addons/wl_category.php +5 -2
  63. includes/addons/wl_category_grid.php +1130 -0
  64. includes/addons/wl_faq.php +948 -0
  65. includes/addons/wl_onepage_slider.php +646 -0
  66. includes/addons/wl_product_filter.php +36 -59
  67. includes/addons/wl_product_horizontal_filter.php +1210 -0
  68. includes/addons/wl_product_video_gallery.php +1 -1
  69. includes/addons/wl_store_features.php +578 -0
  70. includes/addons/wl_testimonial.php +1273 -0
  71. includes/admin/admin-init.php +34 -0
  72. includes/admin/assets/css/admin_optionspanel.css +310 -154
  73. includes/admin/assets/css/tmp-style.css +1 -1
  74. includes/admin/assets/images/extension/email-candy-pro.png +0 -0
  75. includes/admin/assets/images/extension/just-tables-pro.png +0 -0
  76. includes/admin/assets/images/extension/multicurrencypro.png +0 -0
  77. includes/admin/assets/images/extension/whols-pro.png +0 -0
  78. includes/admin/assets/images/icon/check.png +0 -0
  79. includes/admin/assets/images/icon/plus.png +0 -0
  80. includes/admin/assets/images/icon/rating.png +0 -0
  81. includes/admin/assets/images/logo.png +0 -0
  82. includes/admin/assets/images/pricing/life_time_agency.png +0 -0
  83. includes/admin/assets/images/pricing/life_time_five_website.png +0 -0
  84. includes/admin/assets/images/pricing/life_time_single_website.png +0 -0
  85. includes/admin/assets/images/pricing/one_year_agency.png +0 -0
  86. includes/admin/assets/images/pricing/one_year_five_website.png +0 -0
  87. includes/admin/assets/images/pricing/one_year_single_website.png +0 -0
  88. includes/admin/assets/js/install_manager.js +15 -15
  89. includes/admin/assets/js/woolentor-admin.js +35 -18
  90. includes/admin/include/admin-setting.php +333 -101
  91. includes/admin/include/class.extension-manager.php +364 -0
  92. includes/admin/include/class.settings-api.php +41 -3
  93. includes/admin/include/template-library.php +72 -57
  94. includes/archive_product_render.php +8 -2
  95. includes/base.php +38 -8
  96. includes/class.sale_notification.php +42 -19
  97. includes/custom-metabox.php +2 -2
  98. includes/helper-function.php +386 -58
  99. includes/quickview-content.php +24 -30
  100. includes/widgets/ajax-search/base.php +3 -6
  101. includes/widgets/ajax-search/widget-product-search-ajax.php +2 -2
  102. includes/wl_woo_shop.php +182 -110
  103. languages/woolentor.pot +1012 -617
assets/addons/ajax-search/css/ajax-search.css CHANGED
@@ -60,9 +60,31 @@
60
  position: absolute;
61
  background: #fff;
62
  z-index: 999;
63
- overflow: auto;
64
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.176);
65
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
  .widget.woolentor_widget_psa.woolentor_widget_psa_clear #woolentor_psa_results_wrapper {
68
  top: 43px;
60
  position: absolute;
61
  background: #fff;
62
  z-index: 999;
 
63
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.176);
64
  }
65
+ /* Scrollbar */
66
+ .woolentor_psa_inner_wrapper{
67
+ overflow-y: auto;
68
+ overflow-x: hidden;
69
+ }
70
+ .woolentor_psa_inner_wrapper::-webkit-scrollbar {
71
+ width: 10px;
72
+ }
73
+
74
+ .woolentor_psa_inner_wrapper::-webkit-scrollbar-track {
75
+ background-color: transparent;
76
+ }
77
+
78
+ .woolentor_psa_inner_wrapper::-webkit-scrollbar-thumb {
79
+ background-color: #d6dee1;
80
+ border-radius: 10px;
81
+ border: 3px solid transparent;
82
+ background-clip: content-box;
83
+ }
84
+
85
+ .woolentor_psa_inner_wrapper::-webkit-scrollbar-thumb:hover {
86
+ background-color: #a8bbbf;
87
+ }
88
 
89
  .widget.woolentor_widget_psa.woolentor_widget_psa_clear #woolentor_psa_results_wrapper {
90
  top: 43px;
assets/addons/ajax-search/js/ajax-search.js CHANGED
@@ -21,6 +21,18 @@
21
  $(this).siblings('input[type="search"]').val('');
22
  });
23
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  });
25
 
26
  function doSearch( $this = '' ) {
@@ -51,9 +63,6 @@
51
  $this.siblings('#woolentor_psa_results_wrapper').css({'width': wrapper_width});
52
  $this.siblings('#woolentor_psa_results_wrapper').html(response);
53
  $this.parents('.woolentor_widget_psa').removeClass('woolentor_widget_psa_loading');
54
-
55
- // nice scroll
56
- $(".woolentor_psa_inner_wrapper").niceScroll({cursorborder:"",cursorcolor:"#666"});
57
  },
58
  error: function(errorThrown){
59
  console.log(errorThrown);
21
  $(this).siblings('input[type="search"]').val('');
22
  });
23
 
24
+ // Click Outside
25
+ $(document).mouseup(function(e){
26
+ var container = $(".woolentor_widget_psa");
27
+ var hidecontainer = $('#woolentor_psa_results_wrapper');
28
+ // if the target of the click isn't the container nor a descendant of the container
29
+ if (!container.is(e.target) && container.has(e.target).length === 0){
30
+ hidecontainer.hide();
31
+ }else{
32
+ hidecontainer.show();
33
+ }
34
+ });
35
+
36
  });
37
 
38
  function doSearch( $this = '' ) {
63
  $this.siblings('#woolentor_psa_results_wrapper').css({'width': wrapper_width});
64
  $this.siblings('#woolentor_psa_results_wrapper').html(response);
65
  $this.parents('.woolentor_widget_psa').removeClass('woolentor_widget_psa_loading');
 
 
 
66
  },
67
  error: function(errorThrown){
68
  console.log(errorThrown);
assets/addons/ajax-search/js/jquery.nicescroll.min.js DELETED
@@ -1,2 +0,0 @@
1
- /* jquery.nicescroll v3.7.6 InuYaksa - MIT - https://nicescroll.areaaperta.com */
2
- ;!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){"use strict";var o=!1,t=!1,r=0,i=2e3,s=0,n=e,l=document,a=window,c=n(a),d=[],u=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||!1,h=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.mozCancelAnimationFrame||!1;if(u)a.cancelAnimationFrame||(h=function(e){});else{var p=0;u=function(e,o){var t=(new Date).getTime(),r=Math.max(0,16-(t-p)),i=a.setTimeout(function(){e(t+r)},r);return p=t+r,i},h=function(e){a.clearTimeout(e)}}var m=a.MutationObserver||a.WebKitMutationObserver||!1,f=Date.now||function(){return(new Date).getTime()},g={zindex:"auto",cursoropacitymin:0,cursoropacitymax:1,cursorcolor:"#424242",cursorwidth:"6px",cursorborder:"1px solid #fff",cursorborderradius:"5px",scrollspeed:40,mousescrollstep:27,touchbehavior:!1,emulatetouch:!1,hwacceleration:!0,usetransition:!0,boxzoom:!1,dblclickzoom:!0,gesturezoom:!0,grabcursorenabled:!0,autohidemode:!0,background:"",iframeautoresize:!0,cursorminheight:32,preservenativescrolling:!0,railoffset:!1,railhoffset:!1,bouncescroll:!0,spacebarenabled:!0,railpadding:{top:0,right:0,left:0,bottom:0},disableoutline:!0,horizrailenabled:!0,railalign:"right",railvalign:"bottom",enabletranslate3d:!0,enablemousewheel:!0,enablekeyboard:!0,smoothscroll:!0,sensitiverail:!0,enablemouselockapi:!0,cursorfixedheight:!1,directionlockdeadzone:6,hidecursordelay:400,nativeparentscrolling:!0,enablescrollonselection:!0,overflowx:!0,overflowy:!0,cursordragspeed:.3,rtlmode:"auto",cursordragontouch:!1,oneaxismousemode:"auto",scriptpath:function(){var e=l.currentScript||function(){var e=l.getElementsByTagName("script");return!!e.length&&e[e.length-1]}(),o=e?e.src.split("?")[0]:"";return o.split("/").length>0?o.split("/").slice(0,-1).join("/")+"/":""}(),preventmultitouchscrolling:!0,disablemutationobserver:!1,enableobserver:!0,scrollbarid:!1},v=!1,w=function(){if(v)return v;var e=l.createElement("DIV"),o=e.style,t=navigator.userAgent,r=navigator.platform,i={};return i.haspointerlock="pointerLockElement"in l||"webkitPointerLockElement"in l||"mozPointerLockElement"in l,i.isopera="opera"in a,i.isopera12=i.isopera&&"getUserMedia"in navigator,i.isoperamini="[object OperaMini]"===Object.prototype.toString.call(a.operamini),i.isie="all"in l&&"attachEvent"in e&&!i.isopera,i.isieold=i.isie&&!("msInterpolationMode"in o),i.isie7=i.isie&&!i.isieold&&(!("documentMode"in l)||7===l.documentMode),i.isie8=i.isie&&"documentMode"in l&&8===l.documentMode,i.isie9=i.isie&&"performance"in a&&9===l.documentMode,i.isie10=i.isie&&"performance"in a&&10===l.documentMode,i.isie11="msRequestFullscreen"in e&&l.documentMode>=11,i.ismsedge="msCredentials"in a,i.ismozilla="MozAppearance"in o,i.iswebkit=!i.ismsedge&&"WebkitAppearance"in o,i.ischrome=i.iswebkit&&"chrome"in a,i.ischrome38=i.ischrome&&"touchAction"in o,i.ischrome22=!i.ischrome38&&i.ischrome&&i.haspointerlock,i.ischrome26=!i.ischrome38&&i.ischrome&&"transition"in o,i.cantouch="ontouchstart"in l.documentElement||"ontouchstart"in a,i.hasw3ctouch=(a.PointerEvent||!1)&&(navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),i.hasmstouch=!i.hasw3ctouch&&(a.MSPointerEvent||!1),i.ismac=/^mac$/i.test(r),i.isios=i.cantouch&&/iphone|ipad|ipod/i.test(r),i.isios4=i.isios&&!("seal"in Object),i.isios7=i.isios&&"webkitHidden"in l,i.isios8=i.isios&&"hidden"in l,i.isios10=i.isios&&a.Proxy,i.isandroid=/android/i.test(t),i.haseventlistener="addEventListener"in e,i.trstyle=!1,i.hastransform=!1,i.hastranslate3d=!1,i.transitionstyle=!1,i.hastransition=!1,i.transitionend=!1,i.trstyle="transform",i.hastransform="transform"in o||function(){for(var e=["msTransform","webkitTransform","MozTransform","OTransform"],t=0,r=e.length;t<r;t++)if(void 0!==o[e[t]]){i.trstyle=e[t];break}i.hastransform=!!i.trstyle}(),i.hastransform&&(o[i.trstyle]="translate3d(1px,2px,3px)",i.hastranslate3d=/translate3d/.test(o[i.trstyle])),i.transitionstyle="transition",i.prefixstyle="",i.transitionend="transitionend",i.hastransition="transition"in o||function(){i.transitionend=!1;for(var e=["webkitTransition","msTransition","MozTransition","OTransition","OTransition","KhtmlTransition"],t=["-webkit-","-ms-","-moz-","-o-","-o","-khtml-"],r=["webkitTransitionEnd","msTransitionEnd","transitionend","otransitionend","oTransitionEnd","KhtmlTransitionEnd"],s=0,n=e.length;s<n;s++)if(e[s]in o){i.transitionstyle=e[s],i.prefixstyle=t[s],i.transitionend=r[s];break}i.ischrome26&&(i.prefixstyle=t[1]),i.hastransition=i.transitionstyle}(),i.cursorgrabvalue=function(){var e=["grab","-webkit-grab","-moz-grab"];(i.ischrome&&!i.ischrome38||i.isie)&&(e=[]);for(var t=0,r=e.length;t<r;t++){var s=e[t];if(o.cursor=s,o.cursor==s)return s}return"url(https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.3.0/css/images/openhand.cur),n-resize"}(),i.hasmousecapture="setCapture"in e,i.hasMutationObserver=!1!==m,e=null,v=i,i},b=function(e,p){function v(){var e=T.doc.css(P.trstyle);return!(!e||"matrix"!=e.substr(0,6))&&e.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/)}function b(){var e=T.win;if("zIndex"in e)return e.zIndex();for(;e.length>0;){if(9==e[0].nodeType)return!1;var o=e.css("zIndex");if(!isNaN(o)&&0!==o)return parseInt(o);e=e.parent()}return!1}function x(e,o,t){var r=e.css(o),i=parseFloat(r);if(isNaN(i)){var s=3==(i=I[r]||0)?t?T.win.outerHeight()-T.win.innerHeight():T.win.outerWidth()-T.win.innerWidth():1;return T.isie8&&i&&(i+=1),s?i:0}return i}function S(e,o,t,r){T._bind(e,o,function(r){var i={original:r=r||a.event,target:r.target||r.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"==r.type?0:1,deltaX:0,deltaZ:0,preventDefault:function(){return r.preventDefault?r.preventDefault():r.returnValue=!1,!1},stopImmediatePropagation:function(){r.stopImmediatePropagation?r.stopImmediatePropagation():r.cancelBubble=!0}};return"mousewheel"==o?(r.wheelDeltaX&&(i.deltaX=-.025*r.wheelDeltaX),r.wheelDeltaY&&(i.deltaY=-.025*r.wheelDeltaY),!i.deltaY&&!i.deltaX&&(i.deltaY=-.025*r.wheelDelta)):i.deltaY=r.detail,t.call(e,i)},r)}function z(e,o,t,r){T.scrollrunning||(T.newscrolly=T.getScrollTop(),T.newscrollx=T.getScrollLeft(),D=f());var i=f()-D;if(D=f(),i>350?A=1:A+=(2-A)/10,e=e*A|0,o=o*A|0,e){if(r)if(e<0){if(T.getScrollLeft()>=T.page.maxw)return!0}else if(T.getScrollLeft()<=0)return!0;var s=e>0?1:-1;X!==s&&(T.scrollmom&&T.scrollmom.stop(),T.newscrollx=T.getScrollLeft(),X=s),T.lastdeltax-=e}if(o){if(function(){var e=T.getScrollTop();if(o<0){if(e>=T.page.maxh)return!0}else if(e<=0)return!0}()){if(M.nativeparentscrolling&&t&&!T.ispage&&!T.zoomactive)return!0;var n=T.view.h>>1;T.newscrolly<-n?(T.newscrolly=-n,o=-1):T.newscrolly>T.page.maxh+n?(T.newscrolly=T.page.maxh+n,o=1):o=0}var l=o>0?1:-1;B!==l&&(T.scrollmom&&T.scrollmom.stop(),T.newscrolly=T.getScrollTop(),B=l),T.lastdeltay-=o}(o||e)&&T.synched("relativexy",function(){var e=T.lastdeltay+T.newscrolly;T.lastdeltay=0;var o=T.lastdeltax+T.newscrollx;T.lastdeltax=0,T.rail.drag||T.doScrollPos(o,e)})}function k(e,o,t){var r,i;return!(t||!q)||(0===e.deltaMode?(r=-e.deltaX*(M.mousescrollstep/54)|0,i=-e.deltaY*(M.mousescrollstep/54)|0):1===e.deltaMode&&(r=-e.deltaX*M.mousescrollstep*50/80|0,i=-e.deltaY*M.mousescrollstep*50/80|0),o&&M.oneaxismousemode&&0===r&&i&&(r=i,i=0,t&&(r<0?T.getScrollLeft()>=T.page.maxw:T.getScrollLeft()<=0)&&(i=r,r=0)),T.isrtlmode&&(r=-r),z(r,i,t,!0)?void(t&&(q=!0)):(q=!1,e.stopImmediatePropagation(),e.preventDefault()))}var T=this;this.version="3.7.6",this.name="nicescroll",this.me=p;var E=n("body"),M=this.opt={doc:E,win:!1};if(n.extend(M,g),M.snapbackspeed=80,e)for(var L in M)void 0!==e[L]&&(M[L]=e[L]);if(M.disablemutationobserver&&(m=!1),this.doc=M.doc,this.iddoc=this.doc&&this.doc[0]?this.doc[0].id||"":"",this.ispage=/^BODY|HTML/.test(M.win?M.win[0].nodeName:this.doc[0].nodeName),this.haswrapper=!1!==M.win,this.win=M.win||(this.ispage?c:this.doc),this.docscroll=this.ispage&&!this.haswrapper?c:this.win,this.body=E,this.viewport=!1,this.isfixed=!1,this.iframe=!1,this.isiframe="IFRAME"==this.doc[0].nodeName&&"IFRAME"==this.win[0].nodeName,this.istextarea="TEXTAREA"==this.win[0].nodeName,this.forcescreen=!1,this.canshowonmouseevent="scroll"!=M.autohidemode,this.onmousedown=!1,this.onmouseup=!1,this.onmousemove=!1,this.onmousewheel=!1,this.onkeypress=!1,this.ongesturezoom=!1,this.onclick=!1,this.onscrollstart=!1,this.onscrollend=!1,this.onscrollcancel=!1,this.onzoomin=!1,this.onzoomout=!1,this.view=!1,this.page=!1,this.scroll={x:0,y:0},this.scrollratio={x:0,y:0},this.cursorheight=20,this.scrollvaluemax=0,"auto"==M.rtlmode){var C=this.win[0]==a?this.body:this.win,N=C.css("writing-mode")||C.css("-webkit-writing-mode")||C.css("-ms-writing-mode")||C.css("-moz-writing-mode");"horizontal-tb"==N||"lr-tb"==N||""===N?(this.isrtlmode="rtl"==C.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==N||"tb"==N||"tb-rl"==N||"rl-tb"==N,this.isvertical="vertical-rl"==N||"tb"==N||"tb-rl"==N)}else this.isrtlmode=!0===M.rtlmode,this.isvertical=!1;if(this.scrollrunning=!1,this.scrollmom=!1,this.observer=!1,this.observerremover=!1,this.observerbody=!1,!1!==M.scrollbarid)this.id=M.scrollbarid;else do{this.id="ascrail"+i++}while(l.getElementById(this.id));this.rail=!1,this.cursor=!1,this.cursorfreezed=!1,this.selectiondrag=!1,this.zoom=!1,this.zoomactive=!1,this.hasfocus=!1,this.hasmousefocus=!1,this.railslocked=!1,this.locked=!1,this.hidden=!1,this.cursoractive=!0,this.wheelprevented=!1,this.overflowx=M.overflowx,this.overflowy=M.overflowy,this.nativescrollingarea=!1,this.checkarea=0,this.events=[],this.saved={},this.delaylist={},this.synclist={},this.lastdeltax=0,this.lastdeltay=0,this.detected=w();var P=n.extend({},this.detected);this.canhwscroll=P.hastransform&&M.hwacceleration,this.ishwscroll=this.canhwscroll&&T.haswrapper,this.isrtlmode?this.isvertical?this.hasreversehr=!(P.iswebkit||P.isie||P.isie11):this.hasreversehr=!(P.iswebkit||P.isie&&!P.isie10&&!P.isie11):this.hasreversehr=!1,this.istouchcapable=!1,P.cantouch||!P.hasw3ctouch&&!P.hasmstouch?!P.cantouch||P.isios||P.isandroid||!P.iswebkit&&!P.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0,M.enablemouselockapi||(P.hasmousecapture=!1,P.haspointerlock=!1),this.debounced=function(e,o,t){T&&(T.delaylist[e]||!1||(T.delaylist[e]={h:u(function(){T.delaylist[e].fn.call(T),T.delaylist[e]=!1},t)},o.call(T)),T.delaylist[e].fn=o)},this.synched=function(e,o){T.synclist[e]?T.synclist[e]=o:(T.synclist[e]=o,u(function(){T&&(T.synclist[e]&&T.synclist[e].call(T),T.synclist[e]=null)}))},this.unsynched=function(e){T.synclist[e]&&(T.synclist[e]=!1)},this.css=function(e,o){for(var t in o)T.saved.css.push([e,t,e.css(t)]),e.css(t,o[t])},this.scrollTop=function(e){return void 0===e?T.getScrollTop():T.setScrollTop(e)},this.scrollLeft=function(e){return void 0===e?T.getScrollLeft():T.setScrollLeft(e)};var R=function(e,o,t,r,i,s,n){this.st=e,this.ed=o,this.spd=t,this.p1=r||0,this.p2=i||1,this.p3=s||0,this.p4=n||1,this.ts=f(),this.df=o-e};if(R.prototype={B2:function(e){return 3*(1-e)*(1-e)*e},B3:function(e){return 3*(1-e)*e*e},B4:function(e){return e*e*e},getPos:function(){return(f()-this.ts)/this.spd},getNow:function(){var e=(f()-this.ts)/this.spd,o=this.B2(e)+this.B3(e)+this.B4(e);return e>=1?this.ed:this.st+this.df*o|0},update:function(e,o){return this.st=this.getNow(),this.ed=e,this.spd=o,this.ts=f(),this.df=this.ed-this.st,this}},this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"},P.hastranslate3d&&P.isios&&this.doc.css("-webkit-backface-visibility","hidden"),this.getScrollTop=function(e){if(!e){var o=v();if(o)return 16==o.length?-o[13]:-o[5];if(T.timerscroll&&T.timerscroll.bz)return T.timerscroll.bz.getNow()}return T.doc.translate.y},this.getScrollLeft=function(e){if(!e){var o=v();if(o)return 16==o.length?-o[12]:-o[4];if(T.timerscroll&&T.timerscroll.bh)return T.timerscroll.bh.getNow()}return T.doc.translate.x},this.notifyScrollEvent=function(e){var o=l.createEvent("UIEvents");o.initUIEvent("scroll",!1,!1,a,1),o.niceevent=!0,e.dispatchEvent(o)};var _=this.isrtlmode?1:-1;P.hastranslate3d&&M.enabletranslate3d?(this.setScrollTop=function(e,o){T.doc.translate.y=e,T.doc.translate.ty=-1*e+"px",T.doc.css(P.trstyle,"translate3d("+T.doc.translate.tx+","+T.doc.translate.ty+",0)"),o||T.notifyScrollEvent(T.win[0])},this.setScrollLeft=function(e,o){T.doc.translate.x=e,T.doc.translate.tx=e*_+"px",T.doc.css(P.trstyle,"translate3d("+T.doc.translate.tx+","+T.doc.translate.ty+",0)"),o||T.notifyScrollEvent(T.win[0])}):(this.setScrollTop=function(e,o){T.doc.translate.y=e,T.doc.translate.ty=-1*e+"px",T.doc.css(P.trstyle,"translate("+T.doc.translate.tx+","+T.doc.translate.ty+")"),o||T.notifyScrollEvent(T.win[0])},this.setScrollLeft=function(e,o){T.doc.translate.x=e,T.doc.translate.tx=e*_+"px",T.doc.css(P.trstyle,"translate("+T.doc.translate.tx+","+T.doc.translate.ty+")"),o||T.notifyScrollEvent(T.win[0])})}else this.getScrollTop=function(){return T.docscroll.scrollTop()},this.setScrollTop=function(e){T.docscroll.scrollTop(e)},this.getScrollLeft=function(){return T.hasreversehr?T.detected.ismozilla?T.page.maxw-Math.abs(T.docscroll.scrollLeft()):T.page.maxw-T.docscroll.scrollLeft():T.docscroll.scrollLeft()},this.setScrollLeft=function(e){return setTimeout(function(){if(T)return T.hasreversehr&&(e=T.detected.ismozilla?-(T.page.maxw-e):T.page.maxw-e),T.docscroll.scrollLeft(e)},1)};this.getTarget=function(e){return!!e&&(e.target?e.target:!!e.srcElement&&e.srcElement)},this.hasParent=function(e,o){if(!e)return!1;for(var t=e.target||e.srcElement||e||!1;t&&t.id!=o;)t=t.parentNode||!1;return!1!==t};var I={thin:1,medium:3,thick:5};this.getDocumentScrollOffset=function(){return{top:a.pageYOffset||l.documentElement.scrollTop,left:a.pageXOffset||l.documentElement.scrollLeft}},this.getOffset=function(){if(T.isfixed){var e=T.win.offset(),o=T.getDocumentScrollOffset();return e.top-=o.top,e.left-=o.left,e}var t=T.win.offset();if(!T.viewport)return t;var r=T.viewport.offset();return{top:t.top-r.top,left:t.left-r.left}},this.updateScrollBar=function(e){var o,t;if(T.ishwscroll)T.rail.css({height:T.win.innerHeight()-(M.railpadding.top+M.railpadding.bottom)}),T.railh&&T.railh.css({width:T.win.innerWidth()-(M.railpadding.left+M.railpadding.right)});else{var r=T.getOffset();if(o={top:r.top,left:r.left-(M.railpadding.left+M.railpadding.right)},o.top+=x(T.win,"border-top-width",!0),o.left+=T.rail.align?T.win.outerWidth()-x(T.win,"border-right-width")-T.rail.width:x(T.win,"border-left-width"),(t=M.railoffset)&&(t.top&&(o.top+=t.top),t.left&&(o.left+=t.left)),T.railslocked||T.rail.css({top:o.top,left:o.left,height:(e?e.h:T.win.innerHeight())-(M.railpadding.top+M.railpadding.bottom)}),T.zoom&&T.zoom.css({top:o.top+1,left:1==T.rail.align?o.left-20:o.left+T.rail.width+4}),T.railh&&!T.railslocked){o={top:r.top,left:r.left},(t=M.railhoffset)&&(t.top&&(o.top+=t.top),t.left&&(o.left+=t.left));var i=T.railh.align?o.top+x(T.win,"border-top-width",!0)+T.win.innerHeight()-T.railh.height:o.top+x(T.win,"border-top-width",!0),s=o.left+x(T.win,"border-left-width");T.railh.css({top:i-(M.railpadding.top+M.railpadding.bottom),left:s,width:T.railh.width})}}},this.doRailClick=function(e,o,t){var r,i,s,n;T.railslocked||(T.cancelEvent(e),"pageY"in e||(e.pageX=e.clientX+l.documentElement.scrollLeft,e.pageY=e.clientY+l.documentElement.scrollTop),o?(r=t?T.doScrollLeft:T.doScrollTop,s=t?(e.pageX-T.railh.offset().left-T.cursorwidth/2)*T.scrollratio.x:(e.pageY-T.rail.offset().top-T.cursorheight/2)*T.scrollratio.y,T.unsynched("relativexy"),r(0|s)):(r=t?T.doScrollLeftBy:T.doScrollBy,s=t?T.scroll.x:T.scroll.y,n=t?e.pageX-T.railh.offset().left:e.pageY-T.rail.offset().top,i=t?T.view.w:T.view.h,r(s>=n?i:-i)))},T.newscrolly=T.newscrollx=0,T.hasanimationframe="requestAnimationFrame"in a,T.hascancelanimationframe="cancelAnimationFrame"in a,T.hasborderbox=!1,this.init=function(){if(T.saved.css=[],P.isoperamini)return!0;if(P.isandroid&&!("hidden"in l))return!0;M.emulatetouch=M.emulatetouch||M.touchbehavior,T.hasborderbox=a.getComputedStyle&&"border-box"===a.getComputedStyle(l.body)["box-sizing"];var e={"overflow-y":"hidden"};if((P.isie11||P.isie10)&&(e["-ms-overflow-style"]="none"),T.ishwscroll&&(this.doc.css(P.transitionstyle,P.prefixstyle+"transform 0ms ease-out"),P.transitionend&&T.bind(T.doc,P.transitionend,T.onScrollTransitionEnd,!1)),T.zindex="auto",T.ispage||"auto"!=M.zindex?T.zindex=M.zindex:T.zindex=b()||"auto",!T.ispage&&"auto"!=T.zindex&&T.zindex>s&&(s=T.zindex),T.isie&&0===T.zindex&&"auto"==M.zindex&&(T.zindex="auto"),!T.ispage||!P.isieold){var i=T.docscroll;T.ispage&&(i=T.haswrapper?T.win:T.doc),T.css(i,e),T.ispage&&(P.isie11||P.isie)&&T.css(n("html"),e),!P.isios||T.ispage||T.haswrapper||T.css(E,{"-webkit-overflow-scrolling":"touch"});var d=n(l.createElement("div"));d.css({position:"relative",top:0,float:"right",width:M.cursorwidth,height:0,"background-color":M.cursorcolor,border:M.cursorborder,"background-clip":"padding-box","-webkit-border-radius":M.cursorborderradius,"-moz-border-radius":M.cursorborderradius,"border-radius":M.cursorborderradius}),d.addClass("nicescroll-cursors"),T.cursor=d;var u=n(l.createElement("div"));u.attr("id",T.id),u.addClass("nicescroll-rails nicescroll-rails-vr");var h,p,f=["left","right","top","bottom"];for(var g in f)p=f[g],(h=M.railpadding[p]||0)&&u.css("padding-"+p,h+"px");u.append(d),u.width=Math.max(parseFloat(M.cursorwidth),d.outerWidth()),u.css({width:u.width+"px",zIndex:T.zindex,background:M.background,cursor:"default"}),u.visibility=!0,u.scrollable=!0,u.align="left"==M.railalign?0:1,T.rail=u,T.rail.drag=!1;var v=!1;!M.boxzoom||T.ispage||P.isieold||(v=l.createElement("div"),T.bind(v,"click",T.doZoom),T.bind(v,"mouseenter",function(){T.zoom.css("opacity",M.cursoropacitymax)}),T.bind(v,"mouseleave",function(){T.zoom.css("opacity",M.cursoropacitymin)}),T.zoom=n(v),T.zoom.css({cursor:"pointer",zIndex:T.zindex,backgroundImage:"url("+M.scriptpath+"zoomico.png)",height:18,width:18,backgroundPosition:"0 0"}),M.dblclickzoom&&T.bind(T.win,"dblclick",T.doZoom),P.cantouch&&M.gesturezoom&&(T.ongesturezoom=function(e){return e.scale>1.5&&T.doZoomIn(e),e.scale<.8&&T.doZoomOut(e),T.cancelEvent(e)},T.bind(T.win,"gestureend",T.ongesturezoom))),T.railh=!1;var w;if(M.horizrailenabled&&(T.css(i,{overflowX:"hidden"}),(d=n(l.createElement("div"))).css({position:"absolute",top:0,height:M.cursorwidth,width:0,backgroundColor:M.cursorcolor,border:M.cursorborder,backgroundClip:"padding-box","-webkit-border-radius":M.cursorborderradius,"-moz-border-radius":M.cursorborderradius,"border-radius":M.cursorborderradius}),P.isieold&&d.css("overflow","hidden"),d.addClass("nicescroll-cursors"),T.cursorh=d,(w=n(l.createElement("div"))).attr("id",T.id+"-hr"),w.addClass("nicescroll-rails nicescroll-rails-hr"),w.height=Math.max(parseFloat(M.cursorwidth),d.outerHeight()),w.css({height:w.height+"px",zIndex:T.zindex,background:M.background}),w.append(d),w.visibility=!0,w.scrollable=!0,w.align="top"==M.railvalign?0:1,T.railh=w,T.railh.drag=!1),T.ispage)u.css({position:"fixed",top:0,height:"100%"}),u.css(u.align?{right:0}:{left:0}),T.body.append(u),T.railh&&(w.css({position:"fixed",left:0,width:"100%"}),w.css(w.align?{bottom:0}:{top:0}),T.body.append(w));else{if(T.ishwscroll){"static"==T.win.css("position")&&T.css(T.win,{position:"relative"});var x="HTML"==T.win[0].nodeName?T.body:T.win;n(x).scrollTop(0).scrollLeft(0),T.zoom&&(T.zoom.css({position:"absolute",top:1,right:0,"margin-right":u.width+4}),x.append(T.zoom)),u.css({position:"absolute",top:0}),u.css(u.align?{right:0}:{left:0}),x.append(u),w&&(w.css({position:"absolute",left:0,bottom:0}),w.css(w.align?{bottom:0}:{top:0}),x.append(w))}else{T.isfixed="fixed"==T.win.css("position");var S=T.isfixed?"fixed":"absolute";T.isfixed||(T.viewport=T.getViewport(T.win[0])),T.viewport&&(T.body=T.viewport,/fixed|absolute/.test(T.viewport.css("position"))||T.css(T.viewport,{position:"relative"})),u.css({position:S}),T.zoom&&T.zoom.css({position:S}),T.updateScrollBar(),T.body.append(u),T.zoom&&T.body.append(T.zoom),T.railh&&(w.css({position:S}),T.body.append(w))}P.isios&&T.css(T.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),M.disableoutline&&(P.isie&&T.win.attr("hideFocus","true"),P.iswebkit&&T.win.css("outline","none"))}if(!1===M.autohidemode?(T.autohidedom=!1,T.rail.css({opacity:M.cursoropacitymax}),T.railh&&T.railh.css({opacity:M.cursoropacitymax})):!0===M.autohidemode||"leave"===M.autohidemode?(T.autohidedom=n().add(T.rail),P.isie8&&(T.autohidedom=T.autohidedom.add(T.cursor)),T.railh&&(T.autohidedom=T.autohidedom.add(T.railh)),T.railh&&P.isie8&&(T.autohidedom=T.autohidedom.add(T.cursorh))):"scroll"==M.autohidemode?(T.autohidedom=n().add(T.rail),T.railh&&(T.autohidedom=T.autohidedom.add(T.railh))):"cursor"==M.autohidemode?(T.autohidedom=n().add(T.cursor),T.railh&&(T.autohidedom=T.autohidedom.add(T.cursorh))):"hidden"==M.autohidemode&&(T.autohidedom=!1,T.hide(),T.railslocked=!1),P.cantouch||T.istouchcapable||M.emulatetouch||P.hasmstouch){T.scrollmom=new y(T);T.ontouchstart=function(e){if(T.locked)return!1;if(e.pointerType&&("mouse"===e.pointerType||e.pointerType===e.MSPOINTER_TYPE_MOUSE))return!1;if(T.hasmoving=!1,T.scrollmom.timer&&(T.triggerScrollEnd(),T.scrollmom.stop()),!T.railslocked){var o=T.getTarget(e);if(o&&/INPUT/i.test(o.nodeName)&&/range/i.test(o.type))return T.stopPropagation(e);var t="mousedown"===e.type;if(!("clientX"in e)&&"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY),T.forcescreen){var r=e;(e={original:e.original?e.original:e}).clientX=r.screenX,e.clientY=r.screenY}if(T.rail.drag={x:e.clientX,y:e.clientY,sx:T.scroll.x,sy:T.scroll.y,st:T.getScrollTop(),sl:T.getScrollLeft(),pt:2,dl:!1,tg:o},T.ispage||!M.directionlockdeadzone)T.rail.drag.dl="f";else{var i={w:c.width(),h:c.height()},s=T.getContentSize(),l=s.h-i.h,a=s.w-i.w;T.rail.scrollable&&!T.railh.scrollable?T.rail.drag.ck=l>0&&"v":!T.rail.scrollable&&T.railh.scrollable?T.rail.drag.ck=a>0&&"h":T.rail.drag.ck=!1}if(M.emulatetouch&&T.isiframe&&P.isie){var d=T.win.position();T.rail.drag.x+=d.left,T.rail.drag.y+=d.top}if(T.hasmoving=!1,T.lastmouseup=!1,T.scrollmom.reset(e.clientX,e.clientY),o&&t){if(!/INPUT|SELECT|BUTTON|TEXTAREA/i.test(o.nodeName))return P.hasmousecapture&&o.setCapture(),M.emulatetouch?(o.onclick&&!o._onclick&&(o._onclick=o.onclick,o.onclick=function(e){if(T.hasmoving)return!1;o._onclick.call(this,e)}),T.cancelEvent(e)):T.stopPropagation(e);/SUBMIT|CANCEL|BUTTON/i.test(n(o).attr("type"))&&(T.preventclick={tg:o,click:!1})}}},T.ontouchend=function(e){if(!T.rail.drag)return!0;if(2==T.rail.drag.pt){if(e.pointerType&&("mouse"===e.pointerType||e.pointerType===e.MSPOINTER_TYPE_MOUSE))return!1;T.rail.drag=!1;var o="mouseup"===e.type;if(T.hasmoving&&(T.scrollmom.doMomentum(),T.lastmouseup=!0,T.hideCursor(),P.hasmousecapture&&l.releaseCapture(),o))return T.cancelEvent(e)}else if(1==T.rail.drag.pt)return T.onmouseup(e)};var z=M.emulatetouch&&T.isiframe&&!P.hasmousecapture,k=.3*M.directionlockdeadzone|0;T.ontouchmove=function(e,o){if(!T.rail.drag)return!0;if(e.targetTouches&&M.preventmultitouchscrolling&&e.targetTouches.length>1)return!0;if(e.pointerType&&("mouse"===e.pointerType||e.pointerType===e.MSPOINTER_TYPE_MOUSE))return!0;if(2==T.rail.drag.pt){"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY);var t,r;if(r=t=0,z&&!o){var i=T.win.position();r=-i.left,t=-i.top}var s=e.clientY+t,n=s-T.rail.drag.y,a=e.clientX+r,c=a-T.rail.drag.x,d=T.rail.drag.st-n;if(T.ishwscroll&&M.bouncescroll)d<0?d=Math.round(d/2):d>T.page.maxh&&(d=T.page.maxh+Math.round((d-T.page.maxh)/2));else if(d<0?(d=0,s=0):d>T.page.maxh&&(d=T.page.maxh,s=0),0===s&&!T.hasmoving)return T.ispage||(T.rail.drag=!1),!0;var u=T.getScrollLeft();if(T.railh&&T.railh.scrollable&&(u=T.isrtlmode?c-T.rail.drag.sl:T.rail.drag.sl-c,T.ishwscroll&&M.bouncescroll?u<0?u=Math.round(u/2):u>T.page.maxw&&(u=T.page.maxw+Math.round((u-T.page.maxw)/2)):(u<0&&(u=0,a=0),u>T.page.maxw&&(u=T.page.maxw,a=0))),!T.hasmoving){if(T.rail.drag.y===e.clientY&&T.rail.drag.x===e.clientX)return T.cancelEvent(e);var h=Math.abs(n),p=Math.abs(c),m=M.directionlockdeadzone;if(T.rail.drag.ck?"v"==T.rail.drag.ck?p>m&&h<=k?T.rail.drag=!1:h>m&&(T.rail.drag.dl="v"):"h"==T.rail.drag.ck&&(h>m&&p<=k?T.rail.drag=!1:p>m&&(T.rail.drag.dl="h")):h>m&&p>m?T.rail.drag.dl="f":h>m?T.rail.drag.dl=p>k?"f":"v":p>m&&(T.rail.drag.dl=h>k?"f":"h"),!T.rail.drag.dl)return T.cancelEvent(e);T.triggerScrollStart(e.clientX,e.clientY,0,0,0),T.hasmoving=!0}return T.preventclick&&!T.preventclick.click&&(T.preventclick.click=T.preventclick.tg.onclick||!1,T.preventclick.tg.onclick=T.onpreventclick),T.rail.drag.dl&&("v"==T.rail.drag.dl?u=T.rail.drag.sl:"h"==T.rail.drag.dl&&(d=T.rail.drag.st)),T.synched("touchmove",function(){T.rail.drag&&2==T.rail.drag.pt&&(T.prepareTransition&&T.resetTransition(),T.rail.scrollable&&T.setScrollTop(d),T.scrollmom.update(a,s),T.railh&&T.railh.scrollable?(T.setScrollLeft(u),T.showCursor(d,u)):T.showCursor(d),P.isie10&&l.selection.clear())}),T.cancelEvent(e)}return 1==T.rail.drag.pt?T.onmousemove(e):void 0},T.ontouchstartCursor=function(e,o){if(!T.rail.drag||3==T.rail.drag.pt){if(T.locked)return T.cancelEvent(e);T.cancelScroll(),T.rail.drag={x:e.touches[0].clientX,y:e.touches[0].clientY,sx:T.scroll.x,sy:T.scroll.y,pt:3,hr:!!o};var t=T.getTarget(e);return!T.ispage&&P.hasmousecapture&&t.setCapture(),T.isiframe&&!P.hasmousecapture&&(T.saved.csspointerevents=T.doc.css("pointer-events"),T.css(T.doc,{"pointer-events":"none"})),T.cancelEvent(e)}},T.ontouchendCursor=function(e){if(T.rail.drag){if(P.hasmousecapture&&l.releaseCapture(),T.isiframe&&!P.hasmousecapture&&T.doc.css("pointer-events",T.saved.csspointerevents),3!=T.rail.drag.pt)return;return T.rail.drag=!1,T.cancelEvent(e)}},T.ontouchmoveCursor=function(e){if(T.rail.drag){if(3!=T.rail.drag.pt)return;if(T.cursorfreezed=!0,T.rail.drag.hr){T.scroll.x=T.rail.drag.sx+(e.touches[0].clientX-T.rail.drag.x),T.scroll.x<0&&(T.scroll.x=0);var o=T.scrollvaluemaxw;T.scroll.x>o&&(T.scroll.x=o)}else{T.scroll.y=T.rail.drag.sy+(e.touches[0].clientY-T.rail.drag.y),T.scroll.y<0&&(T.scroll.y=0);var t=T.scrollvaluemax;T.scroll.y>t&&(T.scroll.y=t)}return T.synched("touchmove",function(){T.rail.drag&&3==T.rail.drag.pt&&(T.showCursor(),T.rail.drag.hr?T.doScrollLeft(Math.round(T.scroll.x*T.scrollratio.x),M.cursordragspeed):T.doScrollTop(Math.round(T.scroll.y*T.scrollratio.y),M.cursordragspeed))}),T.cancelEvent(e)}}}if(T.onmousedown=function(e,o){if(!T.rail.drag||1==T.rail.drag.pt){if(T.railslocked)return T.cancelEvent(e);T.cancelScroll(),T.rail.drag={x:e.clientX,y:e.clientY,sx:T.scroll.x,sy:T.scroll.y,pt:1,hr:o||!1};var t=T.getTarget(e);return P.hasmousecapture&&t.setCapture(),T.isiframe&&!P.hasmousecapture&&(T.saved.csspointerevents=T.doc.css("pointer-events"),T.css(T.doc,{"pointer-events":"none"})),T.hasmoving=!1,T.cancelEvent(e)}},T.onmouseup=function(e){if(T.rail.drag)return 1!=T.rail.drag.pt||(P.hasmousecapture&&l.releaseCapture(),T.isiframe&&!P.hasmousecapture&&T.doc.css("pointer-events",T.saved.csspointerevents),T.rail.drag=!1,T.cursorfreezed=!1,T.hasmoving&&T.triggerScrollEnd(),T.cancelEvent(e))},T.onmousemove=function(e){if(T.rail.drag){if(1!==T.rail.drag.pt)return;if(P.ischrome&&0===e.which)return T.onmouseup(e);if(T.cursorfreezed=!0,T.hasmoving||T.triggerScrollStart(e.clientX,e.clientY,0,0,0),T.hasmoving=!0,T.rail.drag.hr){T.scroll.x=T.rail.drag.sx+(e.clientX-T.rail.drag.x),T.scroll.x<0&&(T.scroll.x=0);var o=T.scrollvaluemaxw;T.scroll.x>o&&(T.scroll.x=o)}else{T.scroll.y=T.rail.drag.sy+(e.clientY-T.rail.drag.y),T.scroll.y<0&&(T.scroll.y=0);var t=T.scrollvaluemax;T.scroll.y>t&&(T.scroll.y=t)}return T.synched("mousemove",function(){T.cursorfreezed&&(T.showCursor(),T.rail.drag.hr?T.scrollLeft(Math.round(T.scroll.x*T.scrollratio.x)):T.scrollTop(Math.round(T.scroll.y*T.scrollratio.y)))}),T.cancelEvent(e)}T.checkarea=0},P.cantouch||M.emulatetouch)T.onpreventclick=function(e){if(T.preventclick)return T.preventclick.tg.onclick=T.preventclick.click,T.preventclick=!1,T.cancelEvent(e)},T.onclick=!P.isios&&function(e){return!T.lastmouseup||(T.lastmouseup=!1,T.cancelEvent(e))},M.grabcursorenabled&&P.cursorgrabvalue&&(T.css(T.ispage?T.doc:T.win,{cursor:P.cursorgrabvalue}),T.css(T.rail,{cursor:P.cursorgrabvalue}));else{var L=function(e){if(T.selectiondrag){if(e){var o=T.win.outerHeight(),t=e.pageY-T.selectiondrag.top;t>0&&t<o&&(t=0),t>=o&&(t-=o),T.selectiondrag.df=t}if(0!==T.selectiondrag.df){var r=-2*T.selectiondrag.df/6|0;T.doScrollBy(r),T.debounced("doselectionscroll",function(){L()},50)}}};T.hasTextSelected="getSelection"in l?function(){return l.getSelection().rangeCount>0}:"selection"in l?function(){return"None"!=l.selection.type}:function(){return!1},T.onselectionstart=function(e){T.ispage||(T.selectiondrag=T.win.offset())},T.onselectionend=function(e){T.selectiondrag=!1},T.onselectiondrag=function(e){T.selectiondrag&&T.hasTextSelected()&&T.debounced("selectionscroll",function(){L(e)},250)}}if(P.hasw3ctouch?(T.css(T.ispage?n("html"):T.win,{"touch-action":"none"}),T.css(T.rail,{"touch-action":"none"}),T.css(T.cursor,{"touch-action":"none"}),T.bind(T.win,"pointerdown",T.ontouchstart),T.bind(l,"pointerup",T.ontouchend),T.delegate(l,"pointermove",T.ontouchmove)):P.hasmstouch?(T.css(T.ispage?n("html"):T.win,{"-ms-touch-action":"none"}),T.css(T.rail,{"-ms-touch-action":"none"}),T.css(T.cursor,{"-ms-touch-action":"none"}),T.bind(T.win,"MSPointerDown",T.ontouchstart),T.bind(l,"MSPointerUp",T.ontouchend),T.delegate(l,"MSPointerMove",T.ontouchmove),T.bind(T.cursor,"MSGestureHold",function(e){e.preventDefault()}),T.bind(T.cursor,"contextmenu",function(e){e.preventDefault()})):P.cantouch&&(T.bind(T.win,"touchstart",T.ontouchstart,!1,!0),T.bind(l,"touchend",T.ontouchend,!1,!0),T.bind(l,"touchcancel",T.ontouchend,!1,!0),T.delegate(l,"touchmove",T.ontouchmove,!1,!0)),M.emulatetouch&&(T.bind(T.win,"mousedown",T.ontouchstart,!1,!0),T.bind(l,"mouseup",T.ontouchend,!1,!0),T.bind(l,"mousemove",T.ontouchmove,!1,!0)),(M.cursordragontouch||!P.cantouch&&!M.emulatetouch)&&(T.rail.css({cursor:"default"}),T.railh&&T.railh.css({cursor:"default"}),T.jqbind(T.rail,"mouseenter",function(){if(!T.ispage&&!T.win.is(":visible"))return!1;T.canshowonmouseevent&&T.showCursor(),T.rail.active=!0}),T.jqbind(T.rail,"mouseleave",function(){T.rail.active=!1,T.rail.drag||T.hideCursor()}),M.sensitiverail&&(T.bind(T.rail,"click",function(e){T.doRailClick(e,!1,!1)}),T.bind(T.rail,"dblclick",function(e){T.doRailClick(e,!0,!1)}),T.bind(T.cursor,"click",function(e){T.cancelEvent(e)}),T.bind(T.cursor,"dblclick",function(e){T.cancelEvent(e)})),T.railh&&(T.jqbind(T.railh,"mouseenter",function(){if(!T.ispage&&!T.win.is(":visible"))return!1;T.canshowonmouseevent&&T.showCursor(),T.rail.active=!0}),T.jqbind(T.railh,"mouseleave",function(){T.rail.active=!1,T.rail.drag||T.hideCursor()}),M.sensitiverail&&(T.bind(T.railh,"click",function(e){T.doRailClick(e,!1,!0)}),T.bind(T.railh,"dblclick",function(e){T.doRailClick(e,!0,!0)}),T.bind(T.cursorh,"click",function(e){T.cancelEvent(e)}),T.bind(T.cursorh,"dblclick",function(e){T.cancelEvent(e)})))),M.cursordragontouch&&(this.istouchcapable||P.cantouch)&&(T.bind(T.cursor,"touchstart",T.ontouchstartCursor),T.bind(T.cursor,"touchmove",T.ontouchmoveCursor),T.bind(T.cursor,"touchend",T.ontouchendCursor),T.cursorh&&T.bind(T.cursorh,"touchstart",function(e){T.ontouchstartCursor(e,!0)}),T.cursorh&&T.bind(T.cursorh,"touchmove",T.ontouchmoveCursor),T.cursorh&&T.bind(T.cursorh,"touchend",T.ontouchendCursor)),M.emulatetouch||P.isandroid||P.isios?(T.bind(P.hasmousecapture?T.win:l,"mouseup",T.ontouchend),T.onclick&&T.bind(l,"click",T.onclick),M.cursordragontouch?(T.bind(T.cursor,"mousedown",T.onmousedown),T.bind(T.cursor,"mouseup",T.onmouseup),T.cursorh&&T.bind(T.cursorh,"mousedown",function(e){T.onmousedown(e,!0)}),T.cursorh&&T.bind(T.cursorh,"mouseup",T.onmouseup)):(T.bind(T.rail,"mousedown",function(e){e.preventDefault()}),T.railh&&T.bind(T.railh,"mousedown",function(e){e.preventDefault()}))):(T.bind(P.hasmousecapture?T.win:l,"mouseup",T.onmouseup),T.bind(l,"mousemove",T.onmousemove),T.onclick&&T.bind(l,"click",T.onclick),T.bind(T.cursor,"mousedown",T.onmousedown),T.bind(T.cursor,"mouseup",T.onmouseup),T.railh&&(T.bind(T.cursorh,"mousedown",function(e){T.onmousedown(e,!0)}),T.bind(T.cursorh,"mouseup",T.onmouseup)),!T.ispage&&M.enablescrollonselection&&(T.bind(T.win[0],"mousedown",T.onselectionstart),T.bind(l,"mouseup",T.onselectionend),T.bind(T.cursor,"mouseup",T.onselectionend),T.cursorh&&T.bind(T.cursorh,"mouseup",T.onselectionend),T.bind(l,"mousemove",T.onselectiondrag)),T.zoom&&(T.jqbind(T.zoom,"mouseenter",function(){T.canshowonmouseevent&&T.showCursor(),T.rail.active=!0}),T.jqbind(T.zoom,"mouseleave",function(){T.rail.active=!1,T.rail.drag||T.hideCursor()}))),M.enablemousewheel&&(T.isiframe||T.mousewheel(P.isie&&T.ispage?l:T.win,T.onmousewheel),T.mousewheel(T.rail,T.onmousewheel),T.railh&&T.mousewheel(T.railh,T.onmousewheelhr)),T.ispage||P.cantouch||/HTML|^BODY/.test(T.win[0].nodeName)||(T.win.attr("tabindex")||T.win.attr({tabindex:++r}),T.bind(T.win,"focus",function(e){o=T.getTarget(e).id||T.getTarget(e)||!1,T.hasfocus=!0,T.canshowonmouseevent&&T.noticeCursor()}),T.bind(T.win,"blur",function(e){o=!1,T.hasfocus=!1}),T.bind(T.win,"mouseenter",function(e){t=T.getTarget(e).id||T.getTarget(e)||!1,T.hasmousefocus=!0,T.canshowonmouseevent&&T.noticeCursor()}),T.bind(T.win,"mouseleave",function(e){t=!1,T.hasmousefocus=!1,T.rail.drag||T.hideCursor()})),T.onkeypress=function(e){if(T.railslocked&&0===T.page.maxh)return!0;e=e||a.event;var r=T.getTarget(e);if(r&&/INPUT|TEXTAREA|SELECT|OPTION/.test(r.nodeName)&&(!(r.getAttribute("type")||r.type||!1)||!/submit|button|cancel/i.tp))return!0;if(n(r).attr("contenteditable"))return!0;if(T.hasfocus||T.hasmousefocus&&!o||T.ispage&&!o&&!t){var i=e.keyCode;if(T.railslocked&&27!=i)return T.cancelEvent(e);var s=e.ctrlKey||!1,l=e.shiftKey||!1,c=!1;switch(i){case 38:case 63233:T.doScrollBy(72),c=!0;break;case 40:case 63235:T.doScrollBy(-72),c=!0;break;case 37:case 63232:T.railh&&(s?T.doScrollLeft(0):T.doScrollLeftBy(72),c=!0);break;case 39:case 63234:T.railh&&(s?T.doScrollLeft(T.page.maxw):T.doScrollLeftBy(-72),c=!0);break;case 33:case 63276:T.doScrollBy(T.view.h),c=!0;break;case 34:case 63277:T.doScrollBy(-T.view.h),c=!0;break;case 36:case 63273:T.railh&&s?T.doScrollPos(0,0):T.doScrollTo(0),c=!0;break;case 35:case 63275:T.railh&&s?T.doScrollPos(T.page.maxw,T.page.maxh):T.doScrollTo(T.page.maxh),c=!0;break;case 32:M.spacebarenabled&&(l?T.doScrollBy(T.view.h):T.doScrollBy(-T.view.h),c=!0);break;case 27:T.zoomactive&&(T.doZoom(),c=!0)}if(c)return T.cancelEvent(e)}},M.enablekeyboard&&T.bind(l,P.isopera&&!P.isopera12?"keypress":"keydown",T.onkeypress),T.bind(l,"keydown",function(e){(e.ctrlKey||!1)&&(T.wheelprevented=!0)}),T.bind(l,"keyup",function(e){e.ctrlKey||!1||(T.wheelprevented=!1)}),T.bind(a,"blur",function(e){T.wheelprevented=!1}),T.bind(a,"resize",T.onscreenresize),T.bind(a,"orientationchange",T.onscreenresize),T.bind(a,"load",T.lazyResize),P.ischrome&&!T.ispage&&!T.haswrapper){var C=T.win.attr("style"),N=parseFloat(T.win.css("width"))+1;T.win.css("width",N),T.synched("chromefix",function(){T.win.attr("style",C)})}if(T.onAttributeChange=function(e){T.lazyResize(T.isieold?250:30)},M.enableobserver&&(T.isie11||!1===m||(T.observerbody=new m(function(e){if(e.forEach(function(e){if("attributes"==e.type)return E.hasClass("modal-open")&&E.hasClass("modal-dialog")&&!n.contains(n(".modal-dialog")[0],T.doc[0])?T.hide():T.show()}),T.me.clientWidth!=T.page.width||T.me.clientHeight!=T.page.height)return T.lazyResize(30)}),T.observerbody.observe(l.body,{childList:!0,subtree:!0,characterData:!1,attributes:!0,attributeFilter:["class"]})),!T.ispage&&!T.haswrapper)){var R=T.win[0];!1!==m?(T.observer=new m(function(e){e.forEach(T.onAttributeChange)}),T.observer.observe(R,{childList:!0,characterData:!1,attributes:!0,subtree:!1}),T.observerremover=new m(function(e){e.forEach(function(e){if(e.removedNodes.length>0)for(var o in e.removedNodes)if(T&&e.removedNodes[o]===R)return T.remove()})}),T.observerremover.observe(R.parentNode,{childList:!0,characterData:!1,attributes:!1,subtree:!1})):(T.bind(R,P.isie&&!P.isie9?"propertychange":"DOMAttrModified",T.onAttributeChange),P.isie9&&R.attachEvent("onpropertychange",T.onAttributeChange),T.bind(R,"DOMNodeRemoved",function(e){e.target===R&&T.remove()}))}!T.ispage&&M.boxzoom&&T.bind(a,"resize",T.resizeZoom),T.istextarea&&(T.bind(T.win,"keydown",T.lazyResize),T.bind(T.win,"mouseup",T.lazyResize)),T.lazyResize(30)}if("IFRAME"==this.doc[0].nodeName){var _=function(){T.iframexd=!1;var o;try{(o="contentDocument"in this?this.contentDocument:this.contentWindow._doc).domain}catch(e){T.iframexd=!0,o=!1}if(T.iframexd)return"console"in a&&console.log("NiceScroll error: policy restriced iframe"),!0;if(T.forcescreen=!0,T.isiframe&&(T.iframe={doc:n(o),html:T.doc.contents().find("html")[0],body:T.doc.contents().find("body")[0]},T.getContentSize=function(){return{w:Math.max(T.iframe.html.scrollWidth,T.iframe.body.scrollWidth),h:Math.max(T.iframe.html.scrollHeight,T.iframe.body.scrollHeight)}},T.docscroll=n(T.iframe.body)),!P.isios&&M.iframeautoresize&&!T.isiframe){T.win.scrollTop(0),T.doc.height("");var t=Math.max(o.getElementsByTagName("html")[0].scrollHeight,o.body.scrollHeight);T.doc.height(t)}T.lazyResize(30),T.css(n(T.iframe.body),e),P.isios&&T.haswrapper&&T.css(n(o.body),{"-webkit-transform":"translate3d(0,0,0)"}),"contentWindow"in this?T.bind(this.contentWindow,"scroll",T.onscroll):T.bind(o,"scroll",T.onscroll),M.enablemousewheel&&T.mousewheel(o,T.onmousewheel),M.enablekeyboard&&T.bind(o,P.isopera?"keypress":"keydown",T.onkeypress),P.cantouch?(T.bind(o,"touchstart",T.ontouchstart),T.bind(o,"touchmove",T.ontouchmove)):M.emulatetouch&&(T.bind(o,"mousedown",T.ontouchstart),T.bind(o,"mousemove",function(e){return T.ontouchmove(e,!0)}),M.grabcursorenabled&&P.cursorgrabvalue&&T.css(n(o.body),{cursor:P.cursorgrabvalue})),T.bind(o,"mouseup",T.ontouchend),T.zoom&&(M.dblclickzoom&&T.bind(o,"dblclick",T.doZoom),T.ongesturezoom&&T.bind(o,"gestureend",T.ongesturezoom))};this.doc[0].readyState&&"complete"===this.doc[0].readyState&&setTimeout(function(){_.call(T.doc[0],!1)},500),T.bind(this.doc,"load",_)}},this.showCursor=function(e,o){if(T.cursortimeout&&(clearTimeout(T.cursortimeout),T.cursortimeout=0),T.rail){if(T.autohidedom&&(T.autohidedom.stop().css({opacity:M.cursoropacitymax}),T.cursoractive=!0),T.rail.drag&&1==T.rail.drag.pt||(void 0!==e&&!1!==e&&(T.scroll.y=e/T.scrollratio.y|0),void 0!==o&&(T.scroll.x=o/T.scrollratio.x|0)),T.cursor.css({height:T.cursorheight,top:T.scroll.y}),T.cursorh){var t=T.hasreversehr?T.scrollvaluemaxw-T.scroll.x:T.scroll.x;T.cursorh.css({width:T.cursorwidth,left:!T.rail.align&&T.rail.visibility?t+T.rail.width:t}),T.cursoractive=!0}T.zoom&&T.zoom.stop().css({opacity:M.cursoropacitymax})}},this.hideCursor=function(e){T.cursortimeout||T.rail&&T.autohidedom&&(T.hasmousefocus&&"leave"===M.autohidemode||(T.cursortimeout=setTimeout(function(){T.rail.active&&T.showonmouseevent||(T.autohidedom.stop().animate({opacity:M.cursoropacitymin}),T.zoom&&T.zoom.stop().animate({opacity:M.cursoropacitymin}),T.cursoractive=!1),T.cursortimeout=0},e||M.hidecursordelay)))},this.noticeCursor=function(e,o,t){T.showCursor(o,t),T.rail.active||T.hideCursor(e)},this.getContentSize=T.ispage?function(){return{w:Math.max(l.body.scrollWidth,l.documentElement.scrollWidth),h:Math.max(l.body.scrollHeight,l.documentElement.scrollHeight)}}:T.haswrapper?function(){return{w:T.doc[0].offsetWidth,h:T.doc[0].offsetHeight}}:function(){return{w:T.docscroll[0].scrollWidth,h:T.docscroll[0].scrollHeight}},this.onResize=function(e,o){if(!T||!T.win)return!1;var t=T.page.maxh,r=T.page.maxw,i=T.view.h,s=T.view.w;if(T.view={w:T.ispage?T.win.width():T.win[0].clientWidth,h:T.ispage?T.win.height():T.win[0].clientHeight},T.page=o||T.getContentSize(),T.page.maxh=Math.max(0,T.page.h-T.view.h),T.page.maxw=Math.max(0,T.page.w-T.view.w),T.page.maxh==t&&T.page.maxw==r&&T.view.w==s&&T.view.h==i){if(T.ispage)return T;var n=T.win.offset();if(T.lastposition){var l=T.lastposition;if(l.top==n.top&&l.left==n.left)return T}T.lastposition=n}return 0===T.page.maxh?(T.hideRail(),T.scrollvaluemax=0,T.scroll.y=0,T.scrollratio.y=0,T.cursorheight=0,T.setScrollTop(0),T.rail&&(T.rail.scrollable=!1)):(T.page.maxh-=M.railpadding.top+M.railpadding.bottom,T.rail.scrollable=!0),0===T.page.maxw?(T.hideRailHr(),T.scrollvaluemaxw=0,T.scroll.x=0,T.scrollratio.x=0,T.cursorwidth=0,T.setScrollLeft(0),T.railh&&(T.railh.scrollable=!1)):(T.page.maxw-=M.railpadding.left+M.railpadding.right,T.railh&&(T.railh.scrollable=M.horizrailenabled)),T.railslocked=T.locked||0===T.page.maxh&&0===T.page.maxw,T.railslocked?(T.ispage||T.updateScrollBar(T.view),!1):(T.hidden||(T.rail.visibility||T.showRail(),T.railh&&!T.railh.visibility&&T.showRailHr()),T.istextarea&&T.win.css("resize")&&"none"!=T.win.css("resize")&&(T.view.h-=20),T.cursorheight=Math.min(T.view.h,Math.round(T.view.h*(T.view.h/T.page.h))),T.cursorheight=M.cursorfixedheight?M.cursorfixedheight:Math.max(M.cursorminheight,T.cursorheight),T.cursorwidth=Math.min(T.view.w,Math.round(T.view.w*(T.view.w/T.page.w))),T.cursorwidth=M.cursorfixedheight?M.cursorfixedheight:Math.max(M.cursorminheight,T.cursorwidth),T.scrollvaluemax=T.view.h-T.cursorheight-(M.railpadding.top+M.railpadding.bottom),T.hasborderbox||(T.scrollvaluemax-=T.cursor[0].offsetHeight-T.cursor[0].clientHeight),T.railh&&(T.railh.width=T.page.maxh>0?T.view.w-T.rail.width:T.view.w,T.scrollvaluemaxw=T.railh.width-T.cursorwidth-(M.railpadding.left+M.railpadding.right)),T.ispage||T.updateScrollBar(T.view),T.scrollratio={x:T.page.maxw/T.scrollvaluemaxw,y:T.page.maxh/T.scrollvaluemax},T.getScrollTop()>T.page.maxh?T.doScrollTop(T.page.maxh):(T.scroll.y=T.getScrollTop()/T.scrollratio.y|0,T.scroll.x=T.getScrollLeft()/T.scrollratio.x|0,T.cursoractive&&T.noticeCursor()),T.scroll.y&&0===T.getScrollTop()&&T.doScrollTo(T.scroll.y*T.scrollratio.y|0),T)},this.resize=T.onResize;var O=0;this.onscreenresize=function(e){clearTimeout(O);var o=!T.ispage&&!T.haswrapper;o&&T.hideRails(),O=setTimeout(function(){T&&(o&&T.showRails(),T.resize()),O=0},120)},this.lazyResize=function(e){return clearTimeout(O),e=isNaN(e)?240:e,O=setTimeout(function(){T&&T.resize(),O=0},e),T},this.jqbind=function(e,o,t){T.events.push({e:e,n:o,f:t,q:!0}),n(e).on(o,t)},this.mousewheel=function(e,o,t){var r="jquery"in e?e[0]:e;if("onwheel"in l.createElement("div"))T._bind(r,"wheel",o,t||!1);else{var i=void 0!==l.onmousewheel?"mousewheel":"DOMMouseScroll";S(r,i,o,t||!1),"DOMMouseScroll"==i&&S(r,"MozMousePixelScroll",o,t||!1)}};var Y=!1;if(P.haseventlistener){try{var H=Object.defineProperty({},"passive",{get:function(){Y=!0}});a.addEventListener("test",null,H)}catch(e){}this.stopPropagation=function(e){return!!e&&((e=e.original?e.original:e).stopPropagation(),!1)},this.cancelEvent=function(e){return e.cancelable&&e.preventDefault(),e.stopImmediatePropagation(),e.preventManipulation&&e.preventManipulation(),!1}}else Event.prototype.preventDefault=function(){this.returnValue=!1},Event.prototype.stopPropagation=function(){this.cancelBubble=!0},a.constructor.prototype.addEventListener=l.constructor.prototype.addEventListener=Element.prototype.addEventListener=function(e,o,t){this.attachEvent("on"+e,o)},a.constructor.prototype.removeEventListener=l.constructor.prototype.removeEventListener=Element.prototype.removeEventListener=function(e,o,t){this.detachEvent("on"+e,o)},this.cancelEvent=function(e){return(e=e||a.event)&&(e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1),!1},this.stopPropagation=function(e){return(e=e||a.event)&&(e.cancelBubble=!0),!1};this.delegate=function(e,o,t,r,i){var s=d[o]||!1;s||(s={a:[],l:[],f:function(e){for(var o=s.l,t=!1,r=o.length-1;r>=0;r--)if(!1===(t=o[r].call(e.target,e)))return!1;return t}},T.bind(e,o,s.f,r,i),d[o]=s),T.ispage?(s.a=[T.id].concat(s.a),s.l=[t].concat(s.l)):(s.a.push(T.id),s.l.push(t))},this.undelegate=function(e,o,t,r,i){var s=d[o]||!1;if(s&&s.l)for(var n=0,l=s.l.length;n<l;n++)s.a[n]===T.id&&(s.a.splice(n),s.l.splice(n),0===s.a.length&&(T._unbind(e,o,s.l.f),d[o]=null))},this.bind=function(e,o,t,r,i){var s="jquery"in e?e[0]:e;T._bind(s,o,t,r||!1,i||!1)},this._bind=function(e,o,t,r,i){T.events.push({e:e,n:o,f:t,b:r,q:!1}),Y&&i?e.addEventListener(o,t,{passive:!1,capture:r}):e.addEventListener(o,t,r||!1)},this._unbind=function(e,o,t,r){d[o]?T.undelegate(e,o,t,r):e.removeEventListener(o,t,r)},this.unbindAll=function(){for(var e=0;e<T.events.length;e++){var o=T.events[e];o.q?o.e.unbind(o.n,o.f):T._unbind(o.e,o.n,o.f,o.b)}},this.showRails=function(){return T.showRail().showRailHr()},this.showRail=function(){return 0===T.page.maxh||!T.ispage&&"none"==T.win.css("display")||(T.rail.visibility=!0,T.rail.css("display","block")),T},this.showRailHr=function(){return T.railh&&(0===T.page.maxw||!T.ispage&&"none"==T.win.css("display")||(T.railh.visibility=!0,T.railh.css("display","block"))),T},this.hideRails=function(){return T.hideRail().hideRailHr()},this.hideRail=function(){return T.rail.visibility=!1,T.rail.css("display","none"),T},this.hideRailHr=function(){return T.railh&&(T.railh.visibility=!1,T.railh.css("display","none")),T},this.show=function(){return T.hidden=!1,T.railslocked=!1,T.showRails()},this.hide=function(){return T.hidden=!0,T.railslocked=!0,T.hideRails()},this.toggle=function(){return T.hidden?T.show():T.hide()},this.remove=function(){T.stop(),T.cursortimeout&&clearTimeout(T.cursortimeout);for(var e in T.delaylist)T.delaylist[e]&&h(T.delaylist[e].h);T.doZoomOut(),T.unbindAll(),P.isie9&&T.win[0].detachEvent("onpropertychange",T.onAttributeChange),!1!==T.observer&&T.observer.disconnect(),!1!==T.observerremover&&T.observerremover.disconnect(),!1!==T.observerbody&&T.observerbody.disconnect(),T.events=null,T.cursor&&T.cursor.remove(),T.cursorh&&T.cursorh.remove(),T.rail&&T.rail.remove(),T.railh&&T.railh.remove(),T.zoom&&T.zoom.remove();for(var o=0;o<T.saved.css.length;o++){var t=T.saved.css[o];t[0].css(t[1],void 0===t[2]?"":t[2])}T.saved=!1,T.me.data("__nicescroll","");var r=n.nicescroll;r.each(function(e){if(this&&this.id===T.id){delete r[e];for(var o=++e;o<r.length;o++,e++)r[e]=r[o];--r.length&&delete r[r.length]}});for(var i in T)T[i]=null,delete T[i];T=null},this.scrollstart=function(e){return this.onscrollstart=e,T},this.scrollend=function(e){return this.onscrollend=e,T},this.scrollcancel=function(e){return this.onscrollcancel=e,T},this.zoomin=function(e){return this.onzoomin=e,T},this.zoomout=function(e){return this.onzoomout=e,T},this.isScrollable=function(e){var o=e.target?e.target:e;if("OPTION"==o.nodeName)return!0;for(;o&&1==o.nodeType&&o!==this.me[0]&&!/^BODY|HTML/.test(o.nodeName);){var t=n(o),r=t.css("overflowY")||t.css("overflowX")||t.css("overflow")||"";if(/scroll|auto/.test(r))return o.clientHeight!=o.scrollHeight;o=!!o.parentNode&&o.parentNode}return!1},this.getViewport=function(e){for(var o=!(!e||!e.parentNode)&&e.parentNode;o&&1==o.nodeType&&!/^BODY|HTML/.test(o.nodeName);){var t=n(o);if(/fixed|absolute/.test(t.css("position")))return t;var r=t.css("overflowY")||t.css("overflowX")||t.css("overflow")||"";if(/scroll|auto/.test(r)&&o.clientHeight!=o.scrollHeight)return t;if(t.getNiceScroll().length>0)return t;o=!!o.parentNode&&o.parentNode}return!1},this.triggerScrollStart=function(e,o,t,r,i){if(T.onscrollstart){var s={type:"scrollstart",current:{x:e,y:o},request:{x:t,y:r},end:{x:T.newscrollx,y:T.newscrolly},speed:i};T.onscrollstart.call(T,s)}},this.triggerScrollEnd=function(){if(T.onscrollend){var e=T.getScrollLeft(),o=T.getScrollTop(),t={type:"scrollend",current:{x:e,y:o},end:{x:e,y:o}};T.onscrollend.call(T,t)}};var B=0,X=0,D=0,A=1,q=!1;if(this.onmousewheel=function(e){if(T.wheelprevented||T.locked)return!1;if(T.railslocked)return T.debounced("checkunlock",T.resize,250),!1;if(T.rail.drag)return T.cancelEvent(e);if("auto"===M.oneaxismousemode&&0!==e.deltaX&&(M.oneaxismousemode=!1),M.oneaxismousemode&&0===e.deltaX&&!T.rail.scrollable)return!T.railh||!T.railh.scrollable||T.onmousewheelhr(e);var o=f(),t=!1;if(M.preservenativescrolling&&T.checkarea+600<o&&(T.nativescrollingarea=T.isScrollable(e),t=!0),T.checkarea=o,T.nativescrollingarea)return!0;var r=k(e,!1,t);return r&&(T.checkarea=0),r},this.onmousewheelhr=function(e){if(!T.wheelprevented){if(T.railslocked||!T.railh.scrollable)return!0;if(T.rail.drag)return T.cancelEvent(e);var o=f(),t=!1;return M.preservenativescrolling&&T.checkarea+600<o&&(T.nativescrollingarea=T.isScrollable(e),t=!0),T.checkarea=o,!!T.nativescrollingarea||(T.railslocked?T.cancelEvent(e):k(e,!0,t))}},this.stop=function(){return T.cancelScroll(),T.scrollmon&&T.scrollmon.stop(),T.cursorfreezed=!1,T.scroll.y=Math.round(T.getScrollTop()*(1/T.scrollratio.y)),T.noticeCursor(),T},this.getTransitionSpeed=function(e){return 80+e/72*M.scrollspeed|0},M.smoothscroll)if(T.ishwscroll&&P.hastransition&&M.usetransition&&M.smoothscroll){var j="";this.resetTransition=function(){j="",T.doc.css(P.prefixstyle+"transition-duration","0ms")},this.prepareTransition=function(e,o){var t=o?e:T.getTransitionSpeed(e),r=t+"ms";return j!==r&&(j=r,T.doc.css(P.prefixstyle+"transition-duration",r)),t},this.doScrollLeft=function(e,o){var t=T.scrollrunning?T.newscrolly:T.getScrollTop();T.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=T.scrollrunning?T.newscrollx:T.getScrollLeft();T.doScrollPos(t,e,o)},this.cursorupdate={running:!1,start:function(){var e=this;if(!e.running){e.running=!0;var o=function(){e.running&&u(o),T.showCursor(T.getScrollTop(),T.getScrollLeft()),T.notifyScrollEvent(T.win[0])};u(o)}},stop:function(){this.running=!1}},this.doScrollPos=function(e,o,t){var r=T.getScrollTop(),i=T.getScrollLeft();if(((T.newscrolly-r)*(o-r)<0||(T.newscrollx-i)*(e-i)<0)&&T.cancelScroll(),M.bouncescroll?(o<0?o=o/2|0:o>T.page.maxh&&(o=T.page.maxh+(o-T.page.maxh)/2|0),e<0?e=e/2|0:e>T.page.maxw&&(e=T.page.maxw+(e-T.page.maxw)/2|0)):(o<0?o=0:o>T.page.maxh&&(o=T.page.maxh),e<0?e=0:e>T.page.maxw&&(e=T.page.maxw)),T.scrollrunning&&e==T.newscrollx&&o==T.newscrolly)return!1;T.newscrolly=o,T.newscrollx=e;var s=T.getScrollTop(),n=T.getScrollLeft(),l={};l.x=e-n,l.y=o-s;var a=0|Math.sqrt(l.x*l.x+l.y*l.y),c=T.prepareTransition(a);T.scrollrunning||(T.scrollrunning=!0,T.triggerScrollStart(n,s,e,o,c),T.cursorupdate.start()),T.scrollendtrapped=!0,P.transitionend||(T.scrollendtrapped&&clearTimeout(T.scrollendtrapped),T.scrollendtrapped=setTimeout(T.onScrollTransitionEnd,c)),T.setScrollTop(T.newscrolly),T.setScrollLeft(T.newscrollx)},this.cancelScroll=function(){if(!T.scrollendtrapped)return!0;var e=T.getScrollTop(),o=T.getScrollLeft();return T.scrollrunning=!1,P.transitionend||clearTimeout(P.transitionend),T.scrollendtrapped=!1,T.resetTransition(),T.setScrollTop(e),T.railh&&T.setScrollLeft(o),T.timerscroll&&T.timerscroll.tm&&clearInterval(T.timerscroll.tm),T.timerscroll=!1,T.cursorfreezed=!1,T.cursorupdate.stop(),T.showCursor(e,o),T},this.onScrollTransitionEnd=function(){if(T.scrollendtrapped){var e=T.getScrollTop(),o=T.getScrollLeft();if(e<0?e=0:e>T.page.maxh&&(e=T.page.maxh),o<0?o=0:o>T.page.maxw&&(o=T.page.maxw),e!=T.newscrolly||o!=T.newscrollx)return T.doScrollPos(o,e,M.snapbackspeed);T.scrollrunning&&T.triggerScrollEnd(),T.scrollrunning=!1,T.scrollendtrapped=!1,T.resetTransition(),T.timerscroll=!1,T.setScrollTop(e),T.railh&&T.setScrollLeft(o),T.cursorupdate.stop(),T.noticeCursor(!1,e,o),T.cursorfreezed=!1}}}else this.doScrollLeft=function(e,o){var t=T.scrollrunning?T.newscrolly:T.getScrollTop();T.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=T.scrollrunning?T.newscrollx:T.getScrollLeft();T.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){var r=T.getScrollTop(),i=T.getScrollLeft();((T.newscrolly-r)*(o-r)<0||(T.newscrollx-i)*(e-i)<0)&&T.cancelScroll();var s=!1;if(T.bouncescroll&&T.rail.visibility||(o<0?(o=0,s=!0):o>T.page.maxh&&(o=T.page.maxh,s=!0)),T.bouncescroll&&T.railh.visibility||(e<0?(e=0,s=!0):e>T.page.maxw&&(e=T.page.maxw,s=!0)),T.scrollrunning&&T.newscrolly===o&&T.newscrollx===e)return!0;T.newscrolly=o,T.newscrollx=e,T.dst={},T.dst.x=e-i,T.dst.y=o-r,T.dst.px=i,T.dst.py=r;var n=0|Math.sqrt(T.dst.x*T.dst.x+T.dst.y*T.dst.y),l=T.getTransitionSpeed(n);T.bzscroll={};var a=s?1:.58;T.bzscroll.x=new R(i,T.newscrollx,l,0,0,a,1),T.bzscroll.y=new R(r,T.newscrolly,l,0,0,a,1);f();var c=function(){if(T.scrollrunning){var e=T.bzscroll.y.getPos();T.setScrollLeft(T.bzscroll.x.getNow()),T.setScrollTop(T.bzscroll.y.getNow()),e<=1?T.timer=u(c):(T.scrollrunning=!1,T.timer=0,T.triggerScrollEnd())}};T.scrollrunning||(T.triggerScrollStart(i,r,e,o,l),T.scrollrunning=!0,T.timer=u(c))},this.cancelScroll=function(){return T.timer&&h(T.timer),T.timer=0,T.bzscroll=!1,T.scrollrunning=!1,T};else this.doScrollLeft=function(e,o){var t=T.getScrollTop();T.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=T.getScrollLeft();T.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){var r=e>T.page.maxw?T.page.maxw:e;r<0&&(r=0);var i=o>T.page.maxh?T.page.maxh:o;i<0&&(i=0),T.synched("scroll",function(){T.setScrollTop(i),T.setScrollLeft(r)})},this.cancelScroll=function(){};this.doScrollBy=function(e,o){z(0,e)},this.doScrollLeftBy=function(e,o){z(e,0)},this.doScrollTo=function(e,o){var t=o?Math.round(e*T.scrollratio.y):e;t<0?t=0:t>T.page.maxh&&(t=T.page.maxh),T.cursorfreezed=!1,T.doScrollTop(e)},this.checkContentSize=function(){var e=T.getContentSize();e.h==T.page.h&&e.w==T.page.w||T.resize(!1,e)},T.onscroll=function(e){T.rail.drag||T.cursorfreezed||T.synched("scroll",function(){T.scroll.y=Math.round(T.getScrollTop()/T.scrollratio.y),T.railh&&(T.scroll.x=Math.round(T.getScrollLeft()/T.scrollratio.x)),T.noticeCursor()})},T.bind(T.docscroll,"scroll",T.onscroll),this.doZoomIn=function(e){if(!T.zoomactive){T.zoomactive=!0,T.zoomrestore={style:{}};var o=["position","top","left","zIndex","backgroundColor","marginTop","marginBottom","marginLeft","marginRight"],t=T.win[0].style;for(var r in o){var i=o[r];T.zoomrestore.style[i]=void 0!==t[i]?t[i]:""}T.zoomrestore.style.width=T.win.css("width"),T.zoomrestore.style.height=T.win.css("height"),T.zoomrestore.padding={w:T.win.outerWidth()-T.win.width(),h:T.win.outerHeight()-T.win.height()},P.isios4&&(T.zoomrestore.scrollTop=c.scrollTop(),c.scrollTop(0)),T.win.css({position:P.isios4?"absolute":"fixed",top:0,left:0,zIndex:s+100,margin:0});var n=T.win.css("backgroundColor");return(""===n||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(n))&&T.win.css("backgroundColor","#fff"),T.rail.css({zIndex:s+101}),T.zoom.css({zIndex:s+102}),T.zoom.css("backgroundPosition","0 -18px"),T.resizeZoom(),T.onzoomin&&T.onzoomin.call(T),T.cancelEvent(e)}},this.doZoomOut=function(e){if(T.zoomactive)return T.zoomactive=!1,T.win.css("margin",""),T.win.css(T.zoomrestore.style),P.isios4&&c.scrollTop(T.zoomrestore.scrollTop),T.rail.css({"z-index":T.zindex}),T.zoom.css({"z-index":T.zindex}),T.zoomrestore=!1,T.zoom.css("backgroundPosition","0 0"),T.onResize(),T.onzoomout&&T.onzoomout.call(T),T.cancelEvent(e)},this.doZoom=function(e){return T.zoomactive?T.doZoomOut(e):T.doZoomIn(e)},this.resizeZoom=function(){if(T.zoomactive){var e=T.getScrollTop();T.win.css({width:c.width()-T.zoomrestore.padding.w+"px",height:c.height()-T.zoomrestore.padding.h+"px"}),T.onResize(),T.setScrollTop(Math.min(T.page.maxh,e))}},this.init(),n.nicescroll.push(this)},y=function(e){var o=this;this.nc=e,this.lastx=0,this.lasty=0,this.speedx=0,this.speedy=0,this.lasttime=0,this.steptime=0,this.snapx=!1,this.snapy=!1,this.demulx=0,this.demuly=0,this.lastscrollx=-1,this.lastscrolly=-1,this.chkx=0,this.chky=0,this.timer=0,this.reset=function(e,t){o.stop(),o.steptime=0,o.lasttime=f(),o.speedx=0,o.speedy=0,o.lastx=e,o.lasty=t,o.lastscrollx=-1,o.lastscrolly=-1},this.update=function(e,t){var r=f();o.steptime=r-o.lasttime,o.lasttime=r;var i=t-o.lasty,s=e-o.lastx,n=o.nc.getScrollTop()+i,l=o.nc.getScrollLeft()+s;o.snapx=l<0||l>o.nc.page.maxw,o.snapy=n<0||n>o.nc.page.maxh,o.speedx=s,o.speedy=i,o.lastx=e,o.lasty=t},this.stop=function(){o.nc.unsynched("domomentum2d"),o.timer&&clearTimeout(o.timer),o.timer=0,o.lastscrollx=-1,o.lastscrolly=-1},this.doSnapy=function(e,t){var r=!1;t<0?(t=0,r=!0):t>o.nc.page.maxh&&(t=o.nc.page.maxh,r=!0),e<0?(e=0,r=!0):e>o.nc.page.maxw&&(e=o.nc.page.maxw,r=!0),r?o.nc.doScrollPos(e,t,o.nc.opt.snapbackspeed):o.nc.triggerScrollEnd()},this.doMomentum=function(e){var t=f(),r=e?t+e:o.lasttime,i=o.nc.getScrollLeft(),s=o.nc.getScrollTop(),n=o.nc.page.maxh,l=o.nc.page.maxw;o.speedx=l>0?Math.min(60,o.speedx):0,o.speedy=n>0?Math.min(60,o.speedy):0;var a=r&&t-r<=60;(s<0||s>n||i<0||i>l)&&(a=!1);var c=!(!o.speedy||!a)&&o.speedy,d=!(!o.speedx||!a)&&o.speedx;if(c||d){var u=Math.max(16,o.steptime);if(u>50){var h=u/50;o.speedx*=h,o.speedy*=h,u=50}o.demulxy=0,o.lastscrollx=o.nc.getScrollLeft(),o.chkx=o.lastscrollx,o.lastscrolly=o.nc.getScrollTop(),o.chky=o.lastscrolly;var p=o.lastscrollx,m=o.lastscrolly,g=function(){var e=f()-t>600?.04:.02;o.speedx&&(p=Math.floor(o.lastscrollx-o.speedx*(1-o.demulxy)),o.lastscrollx=p,(p<0||p>l)&&(e=.1)),o.speedy&&(m=Math.floor(o.lastscrolly-o.speedy*(1-o.demulxy)),o.lastscrolly=m,(m<0||m>n)&&(e=.1)),o.demulxy=Math.min(1,o.demulxy+e),o.nc.synched("domomentum2d",function(){if(o.speedx){o.nc.getScrollLeft();o.chkx=p,o.nc.setScrollLeft(p)}if(o.speedy){o.nc.getScrollTop();o.chky=m,o.nc.setScrollTop(m)}o.timer||(o.nc.hideCursor(),o.doSnapy(p,m))}),o.demulxy<1?o.timer=setTimeout(g,u):(o.stop(),o.nc.hideCursor(),o.doSnapy(p,m))};g()}else o.doSnapy(o.nc.getScrollLeft(),o.nc.getScrollTop())}},x=e.fn.scrollTop;e.cssHooks.pageYOffset={get:function(e,o,t){var r=n.data(e,"__nicescroll")||!1;return r&&r.ishwscroll?r.getScrollTop():x.call(e)},set:function(e,o){var t=n.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollTop(parseInt(o)):x.call(e,o),this}},e.fn.scrollTop=function(e){if(void 0===e){var o=!!this[0]&&(n.data(this[0],"__nicescroll")||!1);return o&&o.ishwscroll?o.getScrollTop():x.call(this)}return this.each(function(){var o=n.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollTop(parseInt(e)):x.call(n(this),e)})};var S=e.fn.scrollLeft;n.cssHooks.pageXOffset={get:function(e,o,t){var r=n.data(e,"__nicescroll")||!1;return r&&r.ishwscroll?r.getScrollLeft():S.call(e)},set:function(e,o){var t=n.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollLeft(parseInt(o)):S.call(e,o),this}},e.fn.scrollLeft=function(e){if(void 0===e){var o=!!this[0]&&(n.data(this[0],"__nicescroll")||!1);return o&&o.ishwscroll?o.getScrollLeft():S.call(this)}return this.each(function(){var o=n.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollLeft(parseInt(e)):S.call(n(this),e)})};var z=function(e){var o=this;if(this.length=0,this.name="nicescrollarray",this.each=function(e){return n.each(o,e),o},this.push=function(e){o[o.length]=e,o.length++},this.eq=function(e){return o[e]},e)for(var t=0;t<e.length;t++){var r=n.data(e[t],"__nicescroll")||!1;r&&(this[this.length]=r,this.length++)}return this};!function(e,o,t){for(var r=0,i=o.length;r<i;r++)t(e,o[r])}(z.prototype,["show","hide","toggle","onResize","resize","remove","stop","doScrollPos"],function(e,o){e[o]=function(){var e=arguments;return this.each(function(){this[o].apply(this,e)})}}),e.fn.getNiceScroll=function(e){return void 0===e?new z(this):this[e]&&n.data(this[e],"__nicescroll")||!1},(e.expr.pseudos||e.expr[":"]).nicescroll=function(e){return void 0!==n.data(e,"__nicescroll")},n.fn.niceScroll=function(e,o){void 0!==o||"object"!=typeof e||"jquery"in e||(o=e,e=!1);var t=new z;return this.each(function(){var r=n(this),i=n.extend({},o);if(e){var s=n(e);i.doc=s.length>1?n(e,r):s,i.win=r}!("doc"in i)||"win"in i||(i.win=r);var l=r.data("__nicescroll")||!1;l||(i.doc=i.doc||r,l=new b(i,r),r.data("__nicescroll",l)),t.push(l)}),1===t.length?t[0]:t},a.NiceScroll={getjQuery:function(){return e}},n.nicescroll||(n.nicescroll=new z,n.nicescroll.options=g)});
 
 
assets/css/category-grid.css ADDED
@@ -0,0 +1,267 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .elementor-widget-wl-category-grid .slick-list{
2
+ margin: 0 -15px;
3
+ }
4
+ [class*="ht-category-wrap"] [class*="ht-category-image-"]{
5
+ overflow: hidden;
6
+ }
7
+ .ht-category-wrap{
8
+ margin-bottom: 30px;
9
+ }
10
+ .ht-category-wrap .ht-category-image{
11
+ overflow: hidden;
12
+ margin-bottom: 20px;
13
+ }
14
+ .ht-category-wrap .ht-category-image a {
15
+ display: block;
16
+ position: relative;
17
+ }
18
+ .ht-category-wrap .ht-category-image a img {
19
+ width: 100%;
20
+ }
21
+ .ht-category-wrap .ht-category-image a.ht-category-border::before {
22
+ position: absolute;
23
+ z-index: 2;
24
+ top: 15px;
25
+ left: 15px;
26
+ width: calc(100% - 30px);
27
+ height: calc(100% - 30px);
28
+ content: "";
29
+ border: 1px solid #fff;
30
+ transition: all 0.5s ease 0s;
31
+ transform: scale(1);
32
+ }
33
+ .ht-category-wrap .ht-category-image a.ht-category-border-2::before {
34
+ position: absolute;
35
+ z-index: 2;
36
+ top: 15px;
37
+ left: 15px;
38
+ width: calc(100% - 30px);
39
+ height: calc(100% - 30px);
40
+ content: "";
41
+ border: 1px solid #fff;
42
+ transition: all 0.5s ease 0s;
43
+ transform: scale(0.9);
44
+ opacity: 0;
45
+ visibility: hidden;
46
+ }
47
+ .ht-category-wrap .ht-category-image-3 {
48
+ border-radius: 100%;
49
+ border: 1px solid #e1e1e1;
50
+ transition: all 0.3s ease 0s;
51
+ margin-bottom: 20px;
52
+ }
53
+ .ht-category-wrap .ht-category-image-3 a img {
54
+ width: 100%;
55
+ }
56
+ .ht-category-wrap.ht-category-bg-padding {
57
+ background: #f8f8f8;
58
+ padding: 25px 30px 30px;
59
+ }
60
+ .ht-category-wrap .ht-category-image-zoom a img {
61
+ transition: all 0.5s ease 0s;
62
+ }
63
+ .ht-category-wrap .ht-category-content {
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: space-between;
67
+ }
68
+ .ht-category-wrap .ht-category-content h3 {
69
+ margin: 0;
70
+ font-size: 20px;
71
+ }
72
+ .ht-category-wrap .ht-category-content h3 a {
73
+ color: #444;
74
+ }
75
+ .ht-category-wrap .ht-category-content h3 a:hover {
76
+ color: #dc9a0e;
77
+ }
78
+ .ht-category-wrap .ht-category-content span {
79
+ display: inline-block;
80
+ line-height: 1;
81
+ position: relative;
82
+ font-size: 16px;
83
+ }
84
+ .ht-category-wrap .ht-category-content span::before {
85
+ position: absolute;
86
+ top: 50%;
87
+ transform: translateY(-50%);
88
+ right: calc(100% + 10px);
89
+ width: 50px;
90
+ height: 1px;
91
+ content: "";
92
+ background-color: #ccc;
93
+ }
94
+ .ht-category-wrap .ht-category-content-3 {
95
+ position: relative;
96
+ z-index: 9;
97
+ max-width: 80%;
98
+ margin: -43px auto 0;
99
+ padding: 15px 10px 14px;
100
+ }
101
+ .ht-category-wrap .ht-category-content-3.ht-category-content-3-bg1 {
102
+ background-color: #f4ede7;
103
+ }
104
+ .ht-category-wrap .ht-category-content-3.ht-category-content-3-bg2 {
105
+ background-color: #e8f5f2;
106
+ }
107
+ .ht-category-wrap .ht-category-content-3.ht-category-content-3-bg3 {
108
+ background-color: #e3e4f5;
109
+ }
110
+ .ht-category-wrap .ht-category-content-3.ht-category-content-3-bg4 {
111
+ background-color: #faf5e5;
112
+ }
113
+ .ht-category-wrap .ht-category-content-3 h3 {
114
+ font-size: 18px;
115
+ line-height: 1;
116
+ margin: 0;
117
+ text-align: center;
118
+ }
119
+ .ht-category-wrap .ht-category-content-3 h3 span {
120
+ font-size: 14px;
121
+ margin-left: 5px;
122
+ }
123
+ .ht-category-wrap .ht-category-content-3 h3 a {
124
+ color: #444;
125
+ }
126
+ .ht-category-wrap .ht-category-content-3 h3 a:hover {
127
+ color: #dc9a0e;
128
+ }
129
+ .ht-category-wrap .ht-category-content-4{
130
+ text-align: center;
131
+ }
132
+ .ht-category-wrap .ht-category-content-4 h3 {
133
+ font-size: 16px;
134
+ display: inline-block;
135
+ position: relative;
136
+ margin: 0;
137
+ letter-spacing: 0.5px;
138
+ }
139
+ .ht-category-wrap .ht-category-content-4 span {
140
+ position: absolute;
141
+ top: -8px;
142
+ right: -33px;
143
+ font-size: 14px;
144
+ }
145
+ .ht-category-wrap .ht-category-content-4 h3 a {
146
+ color: #444;
147
+ }
148
+ .ht-category-wrap .ht-category-content-4 h3 a:hover {
149
+ color: #dc9a0e;
150
+ }
151
+ .ht-category-wrap .ht-category-content-5{
152
+ text-align: center;
153
+ }
154
+ .ht-category-wrap .ht-category-content-5 h3 {
155
+ font-size: 14px;
156
+ text-transform: uppercase;
157
+ margin: 0;
158
+ font-weight: 500;
159
+ letter-spacing: 0.5px;
160
+ }
161
+ .ht-category-wrap .ht-category-content-5 h3 span {
162
+ margin-left: 5px;
163
+ color: #dc9a0e;
164
+ }
165
+ .ht-category-wrap .ht-category-content-5 h3 a {
166
+ color: #000000;
167
+ display: inline-block;
168
+ border-bottom: 1px solid transparent;
169
+ }
170
+ .ht-category-wrap .ht-category-content-5 h3 a:hover {
171
+ color: #dc9a0e;
172
+ border-bottom: 1px solid #dc9a0e;
173
+ }
174
+ .ht-category-wrap:hover .ht-category-image a.ht-category-border::before {
175
+ transform: scale(0.95);
176
+ }
177
+ .ht-category-wrap:hover .ht-category-image a.ht-category-border-2::before {
178
+ transform: scale(1);
179
+ opacity: 1;
180
+ visibility: visible;
181
+ }
182
+ .ht-category-wrap:hover .ht-category-image-3 {
183
+ border: 1px solid #dc9a0e;
184
+ }
185
+ .ht-category-wrap:hover .ht-category-image-zoom a img {
186
+ transform: scale(1.1);
187
+ }
188
+
189
+ .ht-category-wrap-2 {
190
+ position: relative;
191
+ overflow: hidden;
192
+ padding: 48px 20px 42px;
193
+ box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.2);
194
+ }
195
+ .ht-category-wrap-2::before {
196
+ position: absolute;
197
+ z-index: 2;
198
+ top: 0px;
199
+ bottom: 0px;
200
+ left: 0px;
201
+ right: 0px;
202
+ width: 100%;
203
+ height: 100%;
204
+ content: "";
205
+ opacity: 0;
206
+ visibility: hidden;
207
+ transform: scale(0.9);
208
+ transition: all 0.7s ease 0s;
209
+ border: 4px solid transparent;
210
+ pointer-events: none;
211
+ }
212
+ .ht-category-wrap-2{
213
+ text-align: center;
214
+ }
215
+ .ht-category-wrap-2 .ht-category-image-2 {
216
+ margin-top: 39px;
217
+ display: inline-block;
218
+ }
219
+ .ht-category-wrap-2 .ht-category-image-2 a {
220
+ display: block;
221
+ text-align: center;
222
+ }
223
+ .ht-category-wrap-2 .ht-category-image-2 a img {
224
+ max-width: 100%;
225
+ transition: all 0.7s ease 0s;
226
+ }
227
+ .ht-category-wrap-2 .ht-category-content-2 h3 {
228
+ font-size: 22px;
229
+ text-transform: capitalize;
230
+ line-height: 1;
231
+ margin: 0;
232
+ position: relative;
233
+ display: flex;
234
+ align-items: center;
235
+ justify-content: center;
236
+ }
237
+ .ht-category-wrap-2 .ht-category-content-2 h3 span {
238
+ font-size: 14px;
239
+ margin: 0 0 0 8px;
240
+ }
241
+ .ht-category-wrap-2 .ht-category-content-2 h3 a {
242
+ color: #444;
243
+ display: block;
244
+ }
245
+ .ht-category-wrap-2 .ht-category-content-2 h3 a:hover {
246
+ color: #dc9a0e;
247
+ }
248
+ .ht-category-wrap-2 .ht-category-content-2 h3::before {
249
+ position: absolute;
250
+ content: "";
251
+ left: 0;
252
+ right: 0;
253
+ bottom: -14px;
254
+ margin: 0 auto;
255
+ background-color: #D3D3D3;
256
+ width: 90px;
257
+ height: 2px;
258
+ }
259
+ .ht-category-wrap-2:hover::before {
260
+ opacity: 1;
261
+ visibility: visible;
262
+ transform: scale(1);
263
+ border: 4px solid #dc9a0e;
264
+ }
265
+ .ht-category-wrap-2:hover .ht-category-image-2 a img {
266
+ transform: scale(1.2);
267
+ }
assets/css/faq.css ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .htwoolentor-faq-card {
2
+ margin-bottom: 12px;
3
+ }
4
+ .htwoolentor-faq-card .htwoolentor-faq-head {
5
+ font-size: 17px;
6
+ font-weight: 500;
7
+ line-height: 1.625;
8
+ position: relative;
9
+ display: flex;
10
+ padding: 19px 25px;
11
+ cursor: pointer;
12
+ transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1);
13
+ color: #333333;
14
+ border: 1px solid rgba(0, 0, 0, 0.1);
15
+ border-radius: 4px;
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: space-between;
19
+ }
20
+ .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon.htwoolentor-faq-close-icon,.htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-icon.htwoolentor-faq-open-icon{
21
+ display: block;
22
+ }
23
+
24
+ .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon.htwoolentor-faq-open-icon,.htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-icon.htwoolentor-faq-close-icon{
25
+ display: none;
26
+ }
27
+
28
+ .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon svg :not([stroke="none"]) {
29
+ fill: #FFFFFF;
30
+ }
31
+ .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon svg :not([fill="none"]) {
32
+ stroke: #FFFFFF;
33
+ }
34
+ .htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-icon svg [fill="none"] {
35
+ fill: transparent !important;
36
+ }
37
+ .htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-icon svg [stroke="none"] {
38
+ stroke: transparent !important;
39
+ }
40
+ @media only screen and (max-width: 767px) {
41
+ .htwoolentor-faq-card .htwoolentor-faq-head {
42
+ padding: 15px 15px;
43
+ font-size: 16px;
44
+ line-height: 1.5;
45
+ }
46
+ }
47
+ .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-indicator {
48
+ position: relative;
49
+ width: 14px;
50
+ height: 14px;
51
+ margin-left: 10px;
52
+ }
53
+ .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-indicator::before, .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-indicator::after {
54
+ position: absolute;
55
+ top: 50%;
56
+ left: 0;
57
+ width: 14px;
58
+ height: 2px;
59
+ content: "";
60
+ transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1);
61
+ transform: translateY(-50%);
62
+ border-radius: 10px;
63
+ background-color: #3D3D3D;
64
+ }
65
+ @media only screen and (max-width: 767px) {
66
+ .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-indicator {
67
+ margin-left: 15px;
68
+ }
69
+ }
70
+ .htwoolentor-faq-card .htwoolentor-faq-head .htwoolentor-faq-head-indicator::after {
71
+ transform: translateY(-50%) rotate(90deg);
72
+ }
73
+ .htwoolentor-faq-card .htwoolentor-faq-body {
74
+ overflow: hidden;
75
+ }
76
+ .htwoolentor-faq-card .htwoolentor-faq-body .htwoolentor-faq-content {
77
+ padding: 16px 25px 4px;
78
+ }
79
+ @media only screen and (max-width: 767px) {
80
+ .htwoolentor-faq-card .htwoolentor-faq-body .htwoolentor-faq-content {
81
+ padding: 16px 15px 4px;
82
+ }
83
+ }
84
+ .htwoolentor-faq-card .htwoolentor-faq-body .htwoolentor-faq-content p {
85
+ font-size: 15px;
86
+ line-height: 30px;
87
+ margin: 0;
88
+ }
89
+ .htwoolentor-faq-card.is-active .htwoolentor-faq-head {
90
+ color: #FFFFFF;
91
+ border-color: #dc9a0e;
92
+ background-color: #dc9a0e;
93
+ }
94
+ .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-indicator::after {
95
+ background-color: #ffffff;
96
+ transform: translateY(-50%);
97
+ }
assets/css/product-grid.css ADDED
@@ -0,0 +1,595 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .woolentor-products.wl-row {
2
+ clear: both;
3
+ }
4
+ .ht-overflow-hidden {
5
+ overflow: hidden;
6
+ }
7
+ .ht-product-2 .ht-product-image-wrap-2 {
8
+ position: relative;
9
+ margin-bottom: 15px;
10
+ }
11
+ .ht-product-2 .ht-product-image-wrap-2 a {
12
+ display: block;
13
+ }
14
+ .ht-product-2 .ht-product-image-wrap-2 a img {
15
+ width: 100%;
16
+ }
17
+ .ht-product-2 .ht-product-image-wrap-2 a img.ht-product-img-zoom {
18
+ transition: all 0.7s ease 0s;
19
+ transform: scale(1);
20
+ }
21
+ .ht-product-2 .ht-product-image-wrap-2 a img.ht-hover-img {
22
+ position: absolute;
23
+ top: 0;
24
+ left: 50%;
25
+ opacity: 0;
26
+ visibility: hidden;
27
+ transform: translate(-50%, 20px);
28
+ transition: 0.7s;
29
+ z-index: 8;
30
+ }
31
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-badges {
32
+ position: absolute;
33
+ z-index: 9;
34
+ top: 18px;
35
+ }
36
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-badges.ht-badges-right {
37
+ right: 20px;
38
+ }
39
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-badges.ht-badges-left {
40
+ left: 20px;
41
+ }
42
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-badges span {
43
+ display: inline-block;
44
+ color: #ffffff;
45
+ line-height: 1;
46
+ background-color: #000000;
47
+ font-size: 12px;
48
+ font-weight: 500;
49
+ padding: 5px 8px;
50
+ border-radius: 3px;
51
+ }
52
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options {
53
+ position: absolute;
54
+ z-index: 7;
55
+ bottom: 20px;
56
+ left: 20px;
57
+ visibility: hidden;
58
+ width: calc(100% - 40px);
59
+ padding: 15px 10px 20px;
60
+ transition: all 0.7s ease 0s;
61
+ transform: translateY(50%);
62
+ opacity: 0;
63
+ background-color: #fff;
64
+ z-index: 9;
65
+ }
66
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul {
67
+ display: flex;
68
+ align-items: center;
69
+ flex-wrap: wrap;
70
+ justify-content: center;
71
+ margin: 0;
72
+ padding: 0;
73
+ list-style: none;
74
+ color: #333;
75
+ }
76
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul:not(:last-child) {
77
+ margin-bottom: 10px;
78
+ }
79
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul.colors li {
80
+ margin: 0 4px;
81
+ }
82
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul.colors li a {
83
+ width: 16px;
84
+ height: 16px;
85
+ font-size: 0;
86
+ display: inline-block;
87
+ border-radius: 50%;
88
+ }
89
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul.colors li a.black {
90
+ background-color: #000000;
91
+ }
92
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul.colors li a.red {
93
+ background-color: #b2483c;
94
+ }
95
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul.colors li a.blue {
96
+ background-color: #1e73be;
97
+ }
98
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul.sizes li {
99
+ margin: 0 4px;
100
+ }
101
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul.sizes li a {
102
+ font-size: 15px;
103
+ opacity: 0.5;
104
+ line-height: 1;
105
+ }
106
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-options ul.sizes li a:hover {
107
+ opacity: 1;
108
+ }
109
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 {
110
+ position: absolute;
111
+ left: 20px;
112
+ top: 15px;
113
+ display: flex;
114
+ flex-direction: column;
115
+ z-index: 9;
116
+ }
117
+ .ht-product-2 .ht-product-image-wrap-2 [class*="ht-product-action"] ul{
118
+ margin: 0;
119
+ padding: 0;
120
+ list-style: none;
121
+ }
122
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li{
123
+ opacity: 0;
124
+ visibility: hidden;
125
+ transition: all 0.4s ease 0s;
126
+ margin: 5px 0 5px -20px;
127
+ position: relative;
128
+ }
129
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a {
130
+ font-size: 16px;
131
+ color: #444;
132
+ border: 1px solid #e6e6e6;
133
+ background-color: #fff;
134
+ display: inline-block;
135
+ width: 40px;
136
+ height: 40px;
137
+ border-radius: 100%;
138
+ text-align: center;
139
+ }
140
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a.htcompare-btn.loading,.ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li a.htcompare-btn.loading,.ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li a.htcompare-btn.loading{
141
+ padding: 0;
142
+ }
143
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a.htcompare-btn.loading::after{
144
+ top: 7px;
145
+ right: 10px;
146
+ }
147
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a.htcompare-btn.added::after,.ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li a.htcompare-btn.added::after,.ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li a.htcompare-btn.added::after{
148
+ display: none;
149
+ }
150
+ .ht-product-2 .ht-product-content-2 .ht-price-addtocart-wrap [class*="ht-addtocart"] a{
151
+ position: relative;
152
+ }
153
+ .ht-product-2 .ht-product-content-2 .ht-price-addtocart-wrap [class*="ht-addtocart"] a.woolentor-product-addtocart.loading::after{
154
+ font-family: WooCommerce;
155
+ content: "\e01c";
156
+ vertical-align: top;
157
+ font-weight: 400;
158
+ position: absolute;
159
+ top: 0;
160
+ left: 0;
161
+ -webkit-animation: spin 2s linear infinite;
162
+ animation: spin 2s linear infinite;
163
+ }
164
+ .ht-product-2 .ht-product-content-2 .ht-price-addtocart-wrap .ht-addtocart a.woolentor-product-addtocart.loading{
165
+ padding-left: 20px;
166
+ }
167
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a i{
168
+ color: inherit;
169
+ }
170
+ .ht-product-2 .ht-product-content-2 .ht-price-addtocart-wrap .ht-addtocart a.woolentor-button-icon-right {
171
+ display: flex;
172
+ flex-direction: row-reverse;
173
+ align-items: center;
174
+ }
175
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li .woolentor-compare.compare::before{
176
+ bottom: 0;
177
+ top: 0;
178
+ align-items: center;
179
+ }
180
+ .ht-product-2 .ht-product-image-wrap-2 [class*="ht-product-action"] ul li a .ht-product-action-tooltip{
181
+ display: none;
182
+ }
183
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a i {
184
+ line-height: 40px;
185
+ margin: 0;
186
+ }
187
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li:nth-child(1) {
188
+ transition-delay: 0.2s;
189
+ }
190
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li:nth-child(2) {
191
+ transition-delay: 0.1s;
192
+ }
193
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li:nth-child(3) {
194
+ transition-delay: 0s;
195
+ }
196
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a:hover {
197
+ border: 1px solid #dc9a0e;
198
+ background-color: #dc9a0e;
199
+ color: #ffffff;
200
+ }
201
+
202
+ /* Style Two*/
203
+ .woolentor-grid-style-2 .ht-product-content-2{
204
+ text-align: center;
205
+ }
206
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 {
207
+ position: absolute;
208
+ left: 50%;
209
+ bottom: 0;
210
+ width: 100%;
211
+ z-index: 9;
212
+ transform: translateX(-50%);
213
+ align-items: center;
214
+ }
215
+
216
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li{
217
+ opacity: 0;
218
+ visibility: hidden;
219
+ transition: all 0.5s ease;
220
+ transform: translateY(20px);
221
+ display: block;
222
+ float: left;
223
+ height: 48px;
224
+ width: 48px;
225
+ }
226
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li a {
227
+ display: flex;
228
+ align-items: center;
229
+ justify-content: center;
230
+ font-size: 16px;
231
+ color: #ffffff;
232
+ background-color: #dc9a0e;
233
+ width: 100%;
234
+ height: 100%;
235
+ }
236
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li.wlwishlist{
237
+ border:none;
238
+ }
239
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li.wlwishlist a {
240
+ border-right: 1px solid rgba(255, 255, 255, 0.2);
241
+ }
242
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li.wlwishlist a i{
243
+ margin: 0;
244
+ }
245
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li.wlwishlist .yith-wcwl-add-to-wishlist,.ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li.wlwishlist div{
246
+ height: 100%;
247
+ margin: 0;
248
+ }
249
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li.wlgrid-cart-btn{
250
+ width: calc(100% - 48px - 48px);
251
+ transition-delay: 0.1s;
252
+ }
253
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li a.woolentor-product-addtocart i {
254
+ margin-right: 7px;
255
+ }
256
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li.wlgrid-quickview{
257
+ transition-delay: 0.2s;
258
+ }
259
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li a.woolentorquickview {
260
+ border-left: 1px solid rgba(255, 255, 255, 0.2);
261
+ margin: 0;
262
+ margin-left: -1px;
263
+ }
264
+ .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-3 ul li a:hover {
265
+ background-color: #000000;
266
+ }
267
+
268
+ /* Style Three*/
269
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-content-2 .ht-product-ratting-2 {
270
+ margin: 10px 0 3px;
271
+ }
272
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 {
273
+ position: absolute;
274
+ bottom: 20px;
275
+ left: 0;
276
+ right: 0;
277
+ z-index: 9;
278
+ top: auto;
279
+ }
280
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul{
281
+ display: flex;
282
+ justify-content: center;
283
+ text-align: center;
284
+ }
285
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li{
286
+ width: 46px;
287
+ height: 46px;
288
+ display: block;
289
+ border-radius: 100%;
290
+ transition: all 0.3s ease 0s;
291
+ transform: scale3d(0, 0, 0);
292
+ margin: 0 4px;
293
+ }
294
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a {
295
+ background: #ffffff;
296
+ color: #444;
297
+ text-align: center;
298
+ font-size: 16px;
299
+ display: block;
300
+ margin: 0 4px;
301
+ border: 1px solid #e6e6e6;
302
+ height: 100%;
303
+ width: 100%;
304
+ }
305
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li .woolentor-compare.compare::before {
306
+ left: 3px;
307
+ }
308
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li i {
309
+ line-height: 46px;
310
+ }
311
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li:nth-child(1) {
312
+ transition: all 0.3s;
313
+ }
314
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li:nth-child(2) {
315
+ transition: all 0.6s;
316
+ }
317
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li:nth-child(3) {
318
+ transition: all 0.9s;
319
+ }
320
+ .woolentor-grid-style-3 .ht-product-2 .ht-product-image-wrap-2 .ht-product-action-2 ul li a:hover {
321
+ border: 1px solid #dc9a0e;
322
+ background-color: #dc9a0e;
323
+ color: #ffffff;
324
+ }
325
+ .ht-product-2 .ht-product-image-wrap-2 [class*="ht-product-action"] ul li .yith-wcwl-add-to-wishlist,.ht-product-2 .ht-product-image-wrap-2 [class*="ht-product-action"] ul li div{
326
+ margin: 0;
327
+ width: 100%;
328
+ height: 100%;
329
+ }
330
+
331
+
332
+ .ht-product-2 .ht-product-content-2.ht-product-content-2-padding {
333
+ padding: 0 20px 20px;
334
+ }
335
+ .ht-product-2 .ht-product-content-2.ht-product-content-2-hidden {
336
+ transition: all 0.7s ease 0s;
337
+ }
338
+ .ht-product-2 .ht-product-content-2.ht-product-content-2-up {
339
+ transition: all 0.7s ease 0s;
340
+ background-color: #ffffff;
341
+ padding: 20px 20px 15px;
342
+ position: relative;
343
+ z-index: 9;
344
+ }
345
+ .ht-product-2 .ht-product-content-2 .ht-product-categories-2 {
346
+ margin: 0 0 5px;
347
+ }
348
+ .ht-product-2 .ht-product-content-2 .ht-product-categories-2 a {
349
+ color: #dc9a0e;
350
+ font-size: 14px;
351
+ display: block;
352
+ }
353
+ .ht-product-2 .ht-product-content-2 .ht-product-categories-2 a:hover {
354
+ color: #444;
355
+ }
356
+ .ht-product-2 .ht-product-content-2 .ht-product-title-2 {
357
+ font-size: 18px;
358
+ margin: 0 0 10px;
359
+ }
360
+ .ht-product-2 .ht-product-content-2 .ht-product-title-2 a {
361
+ color: #444;
362
+ }
363
+ .ht-product-2 .ht-product-content-2 .ht-product-title-2 a:hover {
364
+ color: #dc9a0e;
365
+ }
366
+ .ht-product-2 .ht-product-content-2 .ht-price-addtocart-wrap {
367
+ display: flex;
368
+ align-items: center;
369
+ justify-content: space-between;
370
+ }
371
+ .ht-product-2 .ht-product-content-2 .ht-price-addtocart-wrap .ht-addtocart a {
372
+ opacity: 0;
373
+ visibility: hidden;
374
+ margin-right: -30px;
375
+ color: #333;
376
+ display: inline-block;
377
+ font-weight: 500;
378
+ transition: all 0.5s ease 0s;
379
+ }
380
+ .ht-product-2 .ht-product-content-2 .ht-price-addtocart-wrap .ht-addtocart a:hover {
381
+ color: #dc9a0e;
382
+ }
383
+ .ht-product-2 .ht-product-content-2 .ht-product-price-2 {
384
+ line-height: 1;
385
+ }
386
+ .ht-product-2 .ht-product-content-2 .ht-product-price-2 span {
387
+ color: #444;
388
+ font-size: 16px;
389
+ font-weight: 500;
390
+ }
391
+ .ht-product-2 .ht-product-content-2 .ht-product-price-2 span.ht-old {
392
+ font-weight: 300;
393
+ font-size: 15px;
394
+ text-decoration: line-through;
395
+ margin-left: 9px;
396
+ }
397
+ .ht-product-2 .ht-product-content-2 .ht-product-ratting-2 {
398
+ line-height: 1;
399
+ margin: 12px 0 0;
400
+ }
401
+ .ht-product-2 .ht-product-content-2 .ht-product-ratting-2 i {
402
+ font-size: 13px;
403
+ line-height: 14px;
404
+ padding: 0 1px;
405
+ color: #dc9a0e;
406
+ }
407
+ .ht-product-2 .ht-product-content-2 .ht-product-ratting-2 i.gray {
408
+ color: #5f5d5d;
409
+ }
410
+ .ht-product-2 .ht-product-content-2 .ht-addtocart-2 a.woolentor-product-addtocart {
411
+ background: #f6f6f6;
412
+ color: #444;
413
+ width: 40px;
414
+ height: 40px;
415
+ text-align: center;
416
+ font-size: 16px;
417
+ border-radius: 50%;
418
+ display: inline-block;
419
+ transition: all 0.3s ease 0s;
420
+ }
421
+ .ht-product-2 .ht-product-content-2 .ht-addtocart-2 a.woolentor-product-addtocart i {
422
+ line-height: 40px;
423
+ }
424
+ .ht-product-2 .ht-product-content-2 .ht-addtocart-2 a.woolentor-product-addtocart:hover {
425
+ background-color: #dc9a0e;
426
+ color: #ffffff;
427
+ }
428
+ .ht-product-2 .ht-product-content-2-wrap {
429
+ position: relative;
430
+ }
431
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 {
432
+ position: absolute;
433
+ z-index: 5;
434
+ top: 0;
435
+ right: 0;
436
+ left: 0;
437
+ display: flex;
438
+ visibility: hidden;
439
+ align-items: center;
440
+ flex-wrap: wrap;
441
+ justify-content: center;
442
+ transition: all 0.7s ease 0s;
443
+ transform: translateY(50%);
444
+ opacity: 0;
445
+ }
446
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul,.ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul{
447
+ margin: 0;
448
+ padding: 0;
449
+ list-style: none;
450
+ display: flex;
451
+ }
452
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li {
453
+ width: 48px;
454
+ height: 48px;
455
+ margin: 0 5px;
456
+ text-align: center;
457
+ }
458
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li a{
459
+ font-size: 16px;
460
+ color: #ffffff;
461
+ background-color: #333;
462
+ display: block;
463
+ position: relative;
464
+ border-radius: 50%;
465
+ }
466
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li a:hover {
467
+ background-color: #dc9a0e;
468
+ }
469
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li a i {
470
+ line-height: 48px;
471
+ margin: 0;
472
+ }
473
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li a .ht-product-action-tooltip,.ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 .ht-product-action-tooltip{
474
+ display: none;
475
+ }
476
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li .wishlist.button-default,.ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li .wishlist.button-default{
477
+ margin: 0;
478
+ height: 100%;
479
+ }
480
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li a.woolentor-compare{
481
+ height: 100%;
482
+ }
483
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-5 ul li a.woolentor-compare:before,.ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li a.woolentor-compare:before{
484
+ display: flex;
485
+ align-items: center;
486
+ }
487
+
488
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 {
489
+ position: absolute;
490
+ bottom: 0;
491
+ left: 0;
492
+ right: 0;
493
+ display: flex;
494
+ justify-content: center;
495
+ }
496
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li {
497
+ display: inline-block;
498
+ width: 50px;
499
+ height: 42px;
500
+ margin: 0 6px;
501
+ opacity: 0;
502
+ visibility: hidden;
503
+ transition: all 0.3s ease 0s;
504
+ }
505
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li a{
506
+ color: #ffffff;
507
+ background-color: #333;
508
+ font-size: 16px;
509
+ border-radius: 0.25rem;
510
+ display: block;
511
+ width: 100%;
512
+ height: 100%;
513
+ }
514
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li .wishlist.button-default div{
515
+ height: 100%;
516
+ }
517
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li:nth-child(1) {
518
+ animation-delay: 0.2s;
519
+ }
520
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li:nth-child(2) {
521
+ animation-delay: 0.3s;
522
+ }
523
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li:nth-child(3) {
524
+ animation-delay: 0.4s;
525
+ }
526
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li:nth-child(4) {
527
+ animation-delay: 0.5s;
528
+ }
529
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li a:hover {
530
+ color: #ffffff;
531
+ background-color: #dc9a0e;
532
+ }
533
+ .ht-product-2 .ht-product-content-2-wrap .ht-product-action-6 ul li a i {
534
+ line-height: 40px;
535
+ margin: 0;
536
+ }
537
+
538
+
539
+ .ht-product-2:hover .ht-product-image-wrap-2 a img.ht-product-img-zoom {
540
+ transform: scale(1.2);
541
+ }
542
+ .ht-product-2:hover .ht-product-image-wrap-2 a img.ht-hover-img {
543
+ opacity: 1;
544
+ visibility: visible;
545
+ transform: translate(-50%, 0);
546
+ }
547
+ .ht-product-2:hover .ht-product-image-wrap-2 .ht-product-options {
548
+ visibility: visible;
549
+ transform: translateY(0);
550
+ opacity: 1;
551
+ }
552
+ .ht-product-2:hover .ht-product-image-wrap-2 .ht-product-action-2 ul li{
553
+ opacity: 1;
554
+ visibility: visible;
555
+ margin: 5px 0 5px 0px;
556
+ }
557
+
558
+ .ht-product-2:hover .ht-product-image-wrap-2 .ht-product-action-3 ul li {
559
+ opacity: 1;
560
+ visibility: visible;
561
+ transform: translateY(0);
562
+ }
563
+ .woolentor-grid-style-3 .ht-product-2:hover .ht-product-image-wrap-2 .ht-product-action-2 ul li{
564
+ transform: scaleX(1);
565
+ margin: 0 4px;
566
+ }
567
+ .ht-product-2:hover .ht-product-content-2 .ht-price-addtocart-wrap .ht-addtocart a {
568
+ opacity: 1;
569
+ visibility: visible;
570
+ margin-right: 0px;
571
+ }
572
+ .ht-product-2:hover .ht-product-content-2.ht-product-content-2-hidden {
573
+ visibility: hidden;
574
+ transform: translateY(-20px);
575
+ opacity: 0;
576
+ }
577
+ .ht-product-2:hover .ht-product-content-2.ht-product-content-2-up {
578
+ transform: translateY(-50px);
579
+ }
580
+ .ht-product-2:hover .ht-product-action-5 {
581
+ visibility: visible;
582
+ transform: translateY(0);
583
+ opacity: 1;
584
+ }
585
+ .ht-product-2:hover .ht-product-action-6 ul li {
586
+ visibility: visible;
587
+ opacity: 1;
588
+ animation-duration: 0.6s;
589
+ animation-fill-mode: both;
590
+ animation-name: fadeInUp;
591
+ }
592
+
593
+ .elementor-widget-wl-product-grid .slick-list{
594
+ margin: 0 -15px;
595
+ }
assets/css/select2.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline;list-style:none;padding:0}.select2-container .select2-selection--multiple .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;margin-left:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option--selectable{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px;padding-right:0px}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;padding-bottom:5px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:20px;margin-right:10px;margin-top:5px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--default .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-right:1px solid #aaa;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#999;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover,.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus{background-color:#f1f1f1;color:#333;outline:none}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{border-left:1px solid #aaa;border-right:none;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__clear{float:left;margin-left:10px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--group{padding:0}.select2-container--default .select2-results__option--disabled{color:#999}.select2-container--default .select2-results__option--selected{background-color:#ddd}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;padding-bottom:5px;padding-right:5px}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--classic .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#888;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;outline:none}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option--group{padding:0}.select2-container--classic .select2-results__option--disabled{color:grey}.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
assets/css/simple-line-icons.css CHANGED
@@ -587,4 +587,4 @@
587
  }
588
  .sli-social-steam:before {
589
  content: "\e620";
590
- }
587
  }
588
  .sli-social-steam:before {
589
  content: "\e620";
590
+ }
assets/css/slider.css ADDED
@@ -0,0 +1,326 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .ht-full-slider-area {
2
+ position: relative;
3
+ }
4
+ .ht-full-slider-area .ht-slider-pagination {
5
+ position: fixed;
6
+ top: 50%;
7
+ transform: translateY(-50%);
8
+ right: 40px;
9
+ z-index: 99;
10
+ }
11
+ @media only screen and (max-width: 767px) {
12
+ .ht-full-slider-area .ht-slider-pagination {
13
+ right: 20px;
14
+ }
15
+ }
16
+ .ht-full-slider-area .ht-slider-pagination ul{
17
+ margin: 0;
18
+ padding: 0;
19
+ list-style: none;
20
+ }
21
+ .ht-full-slider-area .ht-slider-pagination ul li {
22
+ display: flex;
23
+ margin: 0 0 15px;
24
+ list-style: none;
25
+ }
26
+ .ht-full-slider-area .ht-slider-pagination ul li a {
27
+ font-size: 0px;
28
+ height: 14px;
29
+ width: 14px;
30
+ background: #dddddd;
31
+ border-radius: 100%;
32
+ display: inline-block;
33
+ }
34
+ .ht-full-slider-area .ht-slider-pagination ul li a:hover {
35
+ background-color: #dc9a0e;
36
+ }
37
+ .ht-full-slider-area .ht-slider-pagination ul li.current a {
38
+ background-color: #dc9a0e;
39
+ }
40
+
41
+ .ht-single-full-slider {
42
+ height: 100vh;
43
+ background-size: cover;
44
+ background-repeat: no-repeat;
45
+ background-position: top center;
46
+ }
47
+
48
+ #jarallax-container-0 > div,
49
+ #jarallax-container-1 > div,
50
+ #jarallax-container-2 > div,
51
+ #jarallax-container-3 > div,
52
+ #jarallax-container-4 > div {
53
+ transition-property: transform, opacity;
54
+ transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
55
+ transition-duration: 1s;
56
+ }
57
+
58
+ .ht-slider-align-items-center {
59
+ display: flex;
60
+ align-items: center;
61
+ }
62
+
63
+ .ht-full-slider-content{
64
+ text-align: center;
65
+ }
66
+
67
+ .ht-full-slider-content h2 {
68
+ font-size: 59px;
69
+ color: #fff;
70
+ font-family: "Playfair Display", serif;
71
+ margin: 0;
72
+ letter-spacing: -2px;
73
+ font-style: italic;
74
+ line-height: 77px;
75
+ }
76
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
77
+ .ht-full-slider-content h2 {
78
+ font-size: 54px;
79
+ line-height: 70px;
80
+ }
81
+ }
82
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
83
+ .ht-full-slider-content h2 {
84
+ font-size: 45px;
85
+ line-height: 70px;
86
+ }
87
+ }
88
+ @media only screen and (max-width: 767px) {
89
+ .ht-full-slider-content h2 {
90
+ font-size: 30px;
91
+ line-height: 40px;
92
+ }
93
+ }
94
+ @media only screen and (min-width: 576px) and (max-width: 767px) {
95
+ .ht-full-slider-content h2 {
96
+ font-size: 32px;
97
+ }
98
+ }
99
+ .ht-full-slider-content h1 {
100
+ font-size: 149px;
101
+ color: #fff;
102
+ font-family: "Playfair Display", serif;
103
+ margin: 25px 0 60px;
104
+ line-height: 127px;
105
+ letter-spacing: -5px;
106
+ }
107
+ @media only screen and (min-width: 1366px) and (max-width: 1600px) {
108
+ .ht-full-slider-content h1 {
109
+ font-size: 130px;
110
+ }
111
+ }
112
+ @media only screen and (min-width: 1200px) and (max-width: 1365px) {
113
+ .ht-full-slider-content h1 {
114
+ font-size: 130px;
115
+ line-height: 115px;
116
+ }
117
+ }
118
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
119
+ .ht-full-slider-content h1 {
120
+ font-size: 115px;
121
+ line-height: 100px;
122
+ }
123
+ }
124
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
125
+ .ht-full-slider-content h1 {
126
+ font-size: 100px;
127
+ line-height: 90px;
128
+ margin: 20px 0 50px;
129
+ }
130
+ }
131
+ @media only screen and (max-width: 767px) {
132
+ .ht-full-slider-content h1 {
133
+ font-size: 50px;
134
+ margin: 15px 0 35px;
135
+ line-height: 45px;
136
+ letter-spacing: -3px;
137
+ }
138
+ }
139
+ @media only screen and (min-width: 576px) and (max-width: 767px) {
140
+ .ht-full-slider-content h1 {
141
+ font-size: 60px;
142
+ }
143
+ }
144
+
145
+ .ht-btn-style a {
146
+ display: inline-block;
147
+ line-height: 1;
148
+ color: #181818;
149
+ font-size: 24px;
150
+ position: relative;
151
+ background-color: #fff;
152
+ padding: 23px 40px 28px;
153
+ z-index: 2;
154
+ }
155
+ .ht-btn-style a::after {
156
+ width: 0;
157
+ height: 103%;
158
+ top: 50%;
159
+ left: 50%;
160
+ opacity: 0;
161
+ transform: translateX(-50%) translateY(-50%);
162
+ content: "";
163
+ position: absolute;
164
+ z-index: -1;
165
+ transition: all 0.4s;
166
+ background-color: #000000;
167
+ }
168
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
169
+ .ht-btn-style a {
170
+ font-size: 22px;
171
+ padding: 20px 40px 25px;
172
+ }
173
+ }
174
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
175
+ .ht-btn-style a {
176
+ font-size: 20px;
177
+ padding: 18px 40px 23px;
178
+ }
179
+ }
180
+ @media only screen and (max-width: 767px) {
181
+ .ht-btn-style a {
182
+ font-size: 18px;
183
+ padding: 15px 30px 20px;
184
+ }
185
+ }
186
+ .ht-btn-style a:hover {
187
+ color: #ffffff;
188
+ }
189
+ .ht-btn-style a:hover:after {
190
+ width: 100%;
191
+ opacity: 1;
192
+ }
193
+
194
+ .ht-video-content {
195
+ position: relative;
196
+ z-index: 9;
197
+ text-align: center;
198
+ }
199
+ .ht-video-content .ht-video-icon a {
200
+ width: 220px;
201
+ height: 220px;
202
+ line-height: 220px;
203
+ font-size: 32px;
204
+ display: inline-block;
205
+ border-radius: 100%;
206
+ color: #fff;
207
+ transition: all 0.3s ease;
208
+ border: 2px solid #ffffff;
209
+ transform: scale(1);
210
+ text-align: center;
211
+ }
212
+ @media only screen and (min-width: 1366px) and (max-width: 1600px) {
213
+ .ht-video-content .ht-video-icon a {
214
+ width: 200px;
215
+ height: 200px;
216
+ line-height: 200px;
217
+ }
218
+ }
219
+ @media only screen and (min-width: 1200px) and (max-width: 1365px) {
220
+ .ht-video-content .ht-video-icon a {
221
+ width: 200px;
222
+ height: 200px;
223
+ line-height: 200px;
224
+ }
225
+ }
226
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
227
+ .ht-video-content .ht-video-icon a {
228
+ width: 170px;
229
+ height: 170px;
230
+ line-height: 170px;
231
+ }
232
+ }
233
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
234
+ .ht-video-content .ht-video-icon a {
235
+ width: 150px;
236
+ height: 150px;
237
+ line-height: 150px;
238
+ }
239
+ }
240
+ @media only screen and (max-width: 767px) {
241
+ .ht-video-content .ht-video-icon a {
242
+ width: 100px;
243
+ height: 100px;
244
+ line-height: 100px;
245
+ font-size: 25px;
246
+ }
247
+ }
248
+ .ht-video-content .ht-video-icon a:hover {
249
+ transform: scale(0.9);
250
+ color: #dc9a0e;
251
+ border: 2px solid #dc9a0e;
252
+ }
253
+ .ht-video-content h3 {
254
+ margin: 55px 0 0;
255
+ font-size: 26px;
256
+ font-style: italic;
257
+ color: #fff;
258
+ font-family: "Playfair Display", serif;
259
+ }
260
+ @media only screen and (min-width: 1366px) and (max-width: 1600px) {
261
+ .ht-video-content h3 {
262
+ margin: 45px 0 0;
263
+ }
264
+ }
265
+ @media only screen and (min-width: 1200px) and (max-width: 1365px) {
266
+ .ht-video-content h3 {
267
+ margin: 45px 0 0;
268
+ }
269
+ }
270
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
271
+ .ht-video-content h3 {
272
+ margin: 45px 0 0;
273
+ }
274
+ }
275
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
276
+ .ht-video-content h3 {
277
+ margin: 40px 0 0;
278
+ }
279
+ }
280
+ @media only screen and (max-width: 767px) {
281
+ .ht-video-content h3 {
282
+ margin: 30px 0 0;
283
+ font-size: 23px;
284
+ }
285
+ }
286
+ @media only screen and (min-width: 576px) and (max-width: 767px) {
287
+ .ht-video-content h3 {
288
+ font-size: 25px;
289
+ }
290
+ }
291
+
292
+ .ht-full-slider-overly {
293
+ position: relative;
294
+ }
295
+ .ht-full-slider-overly:before {
296
+ position: absolute;
297
+ content: "";
298
+ left: 0;
299
+ right: 0;
300
+ top: 0;
301
+ bottom: 0;
302
+ width: 100%;
303
+ height: 100%;
304
+ background-color: #181818;
305
+ opacity: 0.4;
306
+ }
307
+
308
+ .ht-full-slider-bg-color-1 {
309
+ background-color: #F4B446;
310
+ }
311
+
312
+ .ht-full-slider-bg-color-2 {
313
+ background-color: #A891BF;
314
+ }
315
+
316
+ .ht-full-slider-bg-color-3 {
317
+ background-color: #11130D;
318
+ }
319
+
320
+ .ht-full-slider-bg-color-4 {
321
+ background-color: #D7DDD9;
322
+ }
323
+
324
+ .ht-full-slider-bg-color-5 {
325
+ background-color: #ECEBE7;
326
+ }
assets/css/store-feature.css ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .ht-feature-wrap {
2
+ position: relative;
3
+ text-align: center;
4
+ }
5
+ .ht-feature-style-1 .ht-feature-inner {
6
+ border: 1px solid #e8e8e8;
7
+ padding: 25px 15px 20px;
8
+ transition: all 0.3s ease 0s;
9
+ }
10
+ .ht-feature-wrap .ht-feature-content h4 {
11
+ display: block;
12
+ font-size: 18px;
13
+ font-weight: 500;
14
+ margin-bottom: 6px;
15
+ line-height: 1;
16
+ color: #000000;
17
+ }
18
+ .ht-feature-wrap .ht-feature-content p {
19
+ font-size: 15px;
20
+ color: #6d6d6d;
21
+ margin: 0;
22
+ }
23
+ .ht-feature-wrap .ht-feature-img {
24
+ margin-bottom: 20px;
25
+ display: inline-block;
26
+ }
27
+ .ht-feature-wrap .ht-feature-img img {
28
+ max-width: 100%;
29
+ transition: all 0.5s ease 0s;
30
+ }
31
+ .ht-feature-wrap .ht-feature-img i {
32
+ font-size: 32px;
33
+ color: #dc9a0e;
34
+ display: inline-block;
35
+ }
36
+ .ht-feature-wrap .ht-feature-img svg{
37
+ width: 32px;
38
+ height: 32px;
39
+ }
40
+ .ht-feature-style-2 .ht-feature-inner{
41
+ display: flex;
42
+ align-items: center;
43
+ border: none;
44
+ padding: 0;
45
+ text-align: left;
46
+ }
47
+ .ht-feature-style-2 .ht-feature-content{
48
+ padding-left: 30px;
49
+ margin-left: 24px;
50
+ border-left: 1px solid #ddd9d2;
51
+ }
52
+ .ht-feature-wrap.ht-feature-style-2:hover .ht-feature-img {
53
+ animation: 500ms ease-in-out 0s normal none 1 running rubberBand;
54
+ }
55
+ .ht-feature-style-2 .ht-feature-content {
56
+ padding-left: 30px;
57
+ width: 100%;
58
+ }
59
+ .ht-feature-style-2 .ht-feature-content h4,.ht-feature-style-5 .ht-feature-content h4 {
60
+ font-size: 20px;
61
+ margin: 0 0 12px;
62
+ line-height: 1;
63
+ color: #000000;
64
+ }
65
+ .ht-feature-style-2 .ht-feature-content p {
66
+ margin: 0;
67
+ font-size: 15px;
68
+ color: #6d6d6d;
69
+ }
70
+ .ht-feature-style-2 .ht-feature-img{
71
+ margin: 0;
72
+ }
73
+ .ht-feature-wrap.ht-feature-style-1:hover .ht-feature-inner {
74
+ border: 1px solid #dc9a0e;
75
+ }
76
+ .ht-feature-wrap.ht-feature-style-1:hover .ht-feature-img img,
77
+ .ht-feature-style-5:hover .ht-feature-img{
78
+ animation: 500ms ease-in-out 0s normal none 1 running tada;
79
+ }
80
+ .ht-feature-style-3 .ht-feature-img{
81
+ display: inline-block;
82
+ border: 1px solid #000000;
83
+ width: 55px;
84
+ height: 55px;
85
+ line-height: 55px;
86
+ text-align: center;
87
+ border-radius: 100%;
88
+ transition: all 0.5s ease 0s;
89
+ }
90
+ .ht-feature-style-3 .ht-feature-img img{
91
+ border-radius: 100%;
92
+ }
93
+ .woolentor-blocks.ht-feature-style-3 .ht-feature-img{
94
+ line-height: 48px;
95
+ }
96
+ .ht-feature-style-3 .ht-feature-img i{
97
+ font-size: 20px;
98
+ color: #000000;
99
+ }
100
+ .ht-feature-style-3:hover .ht-feature-img{
101
+ background-color: #dc9a0e;
102
+ border: 1px solid #dc9a0e;
103
+ transform: rotate(360deg);
104
+ }
105
+ .ht-feature-style-3:hover .ht-feature-img i{
106
+ color: #ffffff;
107
+ }
108
+ .ht-feature-style-3 .ht-feature-content h4,.ht-feature-style-4 .ht-feature-content h4 {
109
+ display: block;
110
+ font-size: 18px;
111
+ font-weight: 500;
112
+ margin-bottom: 14px;
113
+ line-height: 1;
114
+ color: #000000;
115
+ }
116
+ .ht-feature-style-3 .ht-feature-content p,.ht-feature-style-4 .ht-feature-content p {
117
+ color: #6d6d6d;
118
+ line-height: 27px;
119
+ margin: 0 auto;
120
+ font-size: 15px;
121
+ width: 82%;
122
+ }
123
+ .ht-feature-style-4{
124
+ text-align: left;
125
+ }
126
+ .ht-feature-style-4 .ht-feature-content {
127
+ border-top: 1px solid #ebebeb;
128
+ margin-top: 25px;
129
+ padding-top:25px;
130
+ }
131
+ .ht-feature-style-4 .ht-feature-content p{
132
+ width: 100%;
133
+ }
134
+ .ht-feature-style-4 .ht-feature-img{
135
+ display: inline-block;
136
+ background-color: #e9ecef;
137
+ width: 60px;
138
+ height: 60px;
139
+ line-height: 60px;
140
+ text-align: center;
141
+ border-radius: 100%;
142
+ transition: all 0.5s ease 0s;
143
+ margin: 0;
144
+ }
145
+ .ht-feature-style-4 .ht-feature-img i {
146
+ font-size: 20px;
147
+ color: #000000;
148
+ }
149
+ .ht-feature-style-4:hover .ht-feature-img{
150
+ background-color: #dc9a0e;
151
+ transform: rotateY(180deg);
152
+ }
153
+ .ht-feature-style-4:hover .ht-feature-img i{
154
+ color: #ffffff;
155
+ }
156
+ .ht-feature-style-5 .ht-feature-img {
157
+ position: absolute;
158
+ right: 0;
159
+ bottom: 0;
160
+ margin: 0;
161
+ width: 120px;
162
+ }
163
+ .ht-feature-style-5 .ht-feature-img img {
164
+ max-width: 100%;
165
+ }
assets/css/testimonial.css ADDED
@@ -0,0 +1,306 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .elementor-widget-wl-testimonial .slick-list{
2
+ margin: 0 -15px;
3
+ }
4
+ .ht-testimonial-active-1 .slick-list .ht-testimonial-plr-1 {
5
+ padding: 0 15px;
6
+ }
7
+
8
+ .wlb-testimonial-style-4 .ht-single-testimonial-wrap {
9
+ border: 1px solid #e7e9ec;
10
+ padding: 50px 30px;
11
+ }
12
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
13
+ .wlb-testimonial-style-4 .ht-single-testimonial-wrap {
14
+ padding: 50px 12px;
15
+ }
16
+ }
17
+ @media only screen and (max-width: 767px) {
18
+ .wlb-testimonial-style-4 .ht-single-testimonial-wrap {
19
+ padding: 50px 20px;
20
+ }
21
+ }
22
+ .ht-single-testimonial-wrap .ht-client-content.ht-client-content-border {
23
+ border: 1px solid #e7e9ec;
24
+ padding: 40px 40px 65px;
25
+ }
26
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
27
+ .ht-single-testimonial-wrap .ht-client-content.ht-client-content-border {
28
+ padding: 30px 25px 65px;
29
+ }
30
+ }
31
+ @media only screen and (max-width: 767px) {
32
+ .ht-single-testimonial-wrap .ht-client-content.ht-client-content-border {
33
+ padding: 25px 22px 65px;
34
+ }
35
+ }
36
+ .ht-single-testimonial-wrap .ht-client-content p {
37
+ color: #6d6d6d;
38
+ font-size: 16px;
39
+ line-height: 30px;
40
+ margin: 0;
41
+ }
42
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
43
+ .ht-single-testimonial-wrap .ht-client-content p {
44
+ line-height: 28px;
45
+ font-size: 15px;
46
+ }
47
+ }
48
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
49
+ .ht-single-testimonial-wrap .ht-client-content p {
50
+ line-height: 28px;
51
+ font-size: 15px;
52
+ }
53
+ }
54
+ @media only screen and (max-width: 767px) {
55
+ .ht-single-testimonial-wrap .ht-client-content p {
56
+ line-height: 28px;
57
+ font-size: 15px;
58
+ }
59
+ }
60
+ .ht-single-testimonial-wrap .ht-client-content p.ht-width-dec {
61
+ width: 69%;
62
+ margin: 0 auto;
63
+ }
64
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
65
+ .ht-single-testimonial-wrap .ht-client-content p.ht-width-dec {
66
+ width: 91%;
67
+ }
68
+ }
69
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
70
+ .ht-single-testimonial-wrap .ht-client-content p.ht-width-dec {
71
+ width: 90%;
72
+ }
73
+ }
74
+ @media only screen and (max-width: 767px) {
75
+ .ht-single-testimonial-wrap .ht-client-content p.ht-width-dec {
76
+ width: 100%;
77
+ }
78
+ }
79
+ .ht-single-testimonial-wrap .ht-client-info {
80
+ align-items: center;
81
+ background-color: #fff;
82
+ display: flex;
83
+ float: left;
84
+ margin-left: 32px;
85
+ margin-top: -44px;
86
+ padding-right: 18px;
87
+ position: relative;
88
+ z-index: 99;
89
+ }
90
+ @media only screen and (max-width: 767px) {
91
+ .ht-single-testimonial-wrap .ht-client-info {
92
+ margin-left: 10px;
93
+ margin-top: -37px;
94
+ }
95
+ }
96
+ .ht-single-testimonial-wrap .ht-client-info img {
97
+ max-width: 100%;
98
+ }
99
+ @media only screen and (max-width: 767px) {
100
+ .ht-single-testimonial-wrap .ht-client-info img {
101
+ max-width: 70px;
102
+ }
103
+ }
104
+ .ht-single-testimonial-wrap .ht-client-info h4 {
105
+ color: #444;
106
+ font-size: 16px;
107
+ font-weight: 500;
108
+ line-height: 1;
109
+ margin: 0 22px 0 10px;
110
+ position: relative;
111
+ }
112
+ @media only screen and (max-width: 767px) {
113
+ .ht-single-testimonial-wrap .ht-client-info h4 {
114
+ font-size: 14px;
115
+ }
116
+ }
117
+ .ht-single-testimonial-wrap .ht-client-info h4::before {
118
+ background-color: #95999e;
119
+ content: "";
120
+ height: 1px;
121
+ position: absolute;
122
+ right: -15px;
123
+ top: 8px;
124
+ width: 7px;
125
+ }
126
+ .ht-single-testimonial-wrap .ht-client-info span {
127
+ color: #666;
128
+ font-size: 15px;
129
+ font-weight: 400;
130
+ }
131
+ @media only screen and (max-width: 767px) {
132
+ .ht-single-testimonial-wrap .ht-client-info span {
133
+ font-size: 14px;
134
+ }
135
+ }
136
+ .ht-single-testimonial-wrap .ht-client-info-wrap {
137
+ display: flex;
138
+ align-items: center;
139
+ }
140
+ .ht-single-testimonial-wrap .ht-client-info-wrap.ht-client-info-border {
141
+ border-bottom: 1px solid #e5e5e5;
142
+ padding-bottom: 25px;
143
+ margin-bottom: 17px;
144
+ }
145
+ .ht-single-testimonial-wrap .ht-client-info-wrap .ht-client-img img {
146
+ max-width: 100%;
147
+ }
148
+ .ht-single-testimonial-wrap .ht-client-rating ul{
149
+ margin: 0;
150
+ padding: 0;
151
+ list-style: none;
152
+ display: flex;
153
+ }
154
+
155
+ .ht-single-testimonial-wrap .ht-client-rating ul li i{
156
+ color: #dc9a0e;
157
+ font-size: 13px;
158
+ margin-right: 2px;
159
+ }
160
+
161
+ .ht-single-testimonial-wrap .ht-client-info-wrap .ht-client-info-2 {
162
+ margin: 0 0 0 15px;
163
+ }
164
+ .ht-single-testimonial-wrap .ht-client-info-wrap .ht-client-info-2 h4 {
165
+ color: #444;
166
+ font-size: 16px;
167
+ font-weight: 500;
168
+ line-height: 1;
169
+ margin: 0;
170
+ }
171
+ .ht-single-testimonial-wrap .ht-client-info-wrap .ht-client-info-2 span {
172
+ color: #666;
173
+ font-size: 15px;
174
+ font-weight: 400;
175
+ margin: 6px 0 8px;
176
+ display: block;
177
+ }
178
+
179
+ .wlb-testimonial-style-2 .ht-single-testimonial-wrap,.wlb-testimonial-style-4 .ht-single-testimonial-wrap{
180
+ text-align: center;
181
+ }
182
+ .wlb-testimonial-style-4 .ht-single-testimonial-wrap{
183
+
184
+ }
185
+ .ht-single-testimonial-wrap .ht-client-info-wrap-2 {
186
+ margin: 0 0 20px;
187
+ }
188
+ .ht-single-testimonial-wrap .ht-client-info-wrap-2 .ht-client-img-2 img {
189
+ max-width: 100%;
190
+ display: inline-block;
191
+ }
192
+ .ht-single-testimonial-wrap .ht-client-info-wrap-2 .ht-client-info-3 h4 {
193
+ color: #444;
194
+ font-size: 16px;
195
+ font-weight: 500;
196
+ line-height: 1;
197
+ margin: 15px 0 16px;
198
+ display: flex;
199
+ justify-content: center;
200
+ align-items: center;
201
+ }
202
+ .ht-single-testimonial-wrap .ht-client-info-wrap-2 .ht-client-info-3 span {
203
+ color: #666;
204
+ font-size: 15px;
205
+ font-weight: 400;
206
+ margin: 0px 0 0px 20px;
207
+ display: inline-block;
208
+ position: relative;
209
+ }
210
+ .ht-single-testimonial-wrap .ht-client-info-wrap-2 .ht-client-info-3 span::before {
211
+ background-color: #95999e;
212
+ content: "";
213
+ height: 2px;
214
+ position: absolute;
215
+ left: -13px;
216
+ top: 50%;
217
+ transform: translateY(-50%);
218
+ width: 7px;
219
+ }
220
+ .ht-single-testimonial-wrap .ht-client-info-wrap-2 .ht-client-info-3 .ht-client-rating {
221
+ display: flex;
222
+ justify-content: center;
223
+ }
224
+ .ht-single-testimonial-wrap .ht-client-info-wrap-2 .ht-client-info-3 .ht-client-rating i {
225
+ color: #dc9a0e;
226
+ font-size: 13px;
227
+ margin-right: 2px;
228
+ }
229
+
230
+ .ht-testimonial-image-slider {
231
+ width: 450px;
232
+ margin: 0 auto 30px;
233
+ }
234
+ @media only screen and (max-width: 767px) {
235
+ .ht-testimonial-image-slider {
236
+ width: 100%;
237
+ }
238
+ }
239
+ .ht-testimonial-image-slider .ht-client-img-3 img {
240
+ border-radius: 100%;
241
+ display: inline-block;
242
+ height: 100px;
243
+ width: 100px;
244
+ border: 3px solid transparent;
245
+ }
246
+ .ht-testimonial-image-slider .ht-client-img-3.slick-current img {
247
+ border: 3px solid #dc9a0e;
248
+ }
249
+
250
+ .ht-client-info-4 p {
251
+ font-size: 15px;
252
+ margin: 0 auto;
253
+ line-height: 30px;
254
+ width: 65%;
255
+ }
256
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
257
+ .ht-client-info-4 p {
258
+ width: 100%;
259
+ }
260
+ }
261
+ @media only screen and (max-width: 767px) {
262
+ .ht-client-info-4 p {
263
+ width: 100%;
264
+ }
265
+ }
266
+ .ht-client-info-4 h4 {
267
+ color: #000000;
268
+ font-size: 16px;
269
+ font-weight: 500;
270
+ line-height: 1;
271
+ margin: 20px 0 13px;
272
+ display: flex;
273
+ justify-content: center;
274
+ align-items: center;
275
+ }
276
+ .ht-client-info-4 span {
277
+ color: #444;
278
+ font-size: 15px;
279
+ font-weight: 300;
280
+ margin: 0px 0 0px 20px;
281
+ display: inline-block;
282
+ position: relative;
283
+ }
284
+ .ht-client-info-4 span::before {
285
+ background-color: #95999e;
286
+ content: "";
287
+ height: 2px;
288
+ position: absolute;
289
+ left: -13px;
290
+ top: 50%;
291
+ transform: translateY(-50%);
292
+ width: 7px;
293
+ }
294
+ .ht-client-info-4 .ht-client-rating-2 {
295
+ display: flex;
296
+ justify-content: center;
297
+ }
298
+ .ht-client-info-4 .ht-client-rating-2 i {
299
+ color: #dc9a0e;
300
+ font-size: 13px;
301
+ margin-right: 2px;
302
+ }
303
+
304
+ .ht-testimonial-bg {
305
+ background-color: #f2f2fa;
306
+ }
assets/css/woolentor-widgets.css CHANGED
@@ -94,9 +94,12 @@
94
  margin-left: 0;
95
  top: 11px;
96
  }
97
- .product-item .woocommerce.product.compare-button {
98
  border-left: 1px solid #999;
99
  }
 
 
 
100
  .product-item:hover .actions{
101
  opacity: 1;
102
  transform: translateX(-50%) translateY(-50%);
@@ -123,7 +126,7 @@
123
  top: 5px;
124
  width: 100%;
125
  }
126
- .product-item .actions .compare-button a::before{
127
  content: "\f021";
128
  }
129
  .product-item .product-inner .image-wrap .style_two .wishlist a::before{
@@ -191,16 +194,26 @@
191
  font-size: 14px;
192
  font-weight: 500;
193
  left: 15px;
 
194
  line-height: 1;
195
  min-height: inherit;
196
  min-width: inherit;
197
  padding: 5px 10px;
198
- top: 15px;
199
  position: absolute;
200
  }
 
201
  .product-item a.button.added {
202
  display: none !important;
203
  }
 
 
 
 
 
 
 
 
 
204
  .product-item .product-inner .image-wrap .actions a.added_to_cart {
205
  text-indent: -99999px;
206
  }
@@ -343,7 +356,7 @@
343
  display: block;
344
  }
345
 
346
- .slick-prev::before, .slick-next::before{
347
  display: none;
348
  }
349
 
@@ -447,7 +460,6 @@
447
  right: 30px;
448
  }
449
 
450
-
451
  .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-image img {
452
  width: 100%;
453
  }
@@ -665,6 +677,15 @@
665
  -o-transition: all 0.3s ease;
666
  transition: all 0.3s ease;
667
  }
 
 
 
 
 
 
 
 
 
668
 
669
  .ht-products .ht-product .ht-product-inner .ht-product-action ul li a i {
670
  font-size: 20px;
@@ -681,7 +702,7 @@
681
  .woolentor-compare.compare::before, .ht-product-action ul li.woolentor-cart a::before {
682
  content: "";
683
  display: flex;
684
- font-family: simple-line-icons;
685
  font-size: 20px;
686
  height: 100%;
687
  justify-content: center;
@@ -716,7 +737,7 @@
716
  display: none !important;
717
  }
718
 
719
- .ht-products .ht-product .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,span.woolentor-tip {
720
  position: absolute;
721
  left: 100%;
722
  top: 50%;
@@ -738,7 +759,13 @@
738
  -o-transition: all 0.5s ease;
739
  transition: all 0.5s ease;
740
  }
741
- .ht-products .ht-product.ht-product-action-right span.woolentor-tip{
 
 
 
 
 
 
742
  left: auto;
743
  right: 35px;
744
  }
@@ -754,10 +781,11 @@
754
  color: #dc9a0e !important;
755
  }
756
 
757
- .ht-products .ht-product .ht-product-inner .ht-product-action ul li a:hover .ht-product-action-tooltip,.ht-products .ht-product .ht-product-inner .ht-product-action ul li:hover span.woolentor-tip {
758
  opacity: 1;
759
  visibility: visible;
760
  margin-left: 0;
 
761
  }
762
 
763
  .ht-products .ht-product .ht-product-inner .ht-product-content {
@@ -820,6 +848,9 @@
820
  margin-bottom: 10px;
821
  margin-top: 0;
822
  }
 
 
 
823
 
824
  .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-title a {
825
  color: inherit;
@@ -870,6 +901,9 @@
870
  display: -ms-flexbox;
871
  display: flex;
872
  }
 
 
 
873
 
874
  .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-ratting-wrap .ht-product-ratting {
875
  display: -webkit-box;
@@ -1090,7 +1124,7 @@
1090
  padding: 10px;
1091
  }
1092
 
1093
- .ht-products .ht-product.ht-product-action-bottom .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom span.woolentor-tip {
1094
  left: 50%;
1095
  right: auto;
1096
  top: auto;
@@ -1102,7 +1136,7 @@
1102
  margin-right: 0;
1103
  }
1104
 
1105
- .ht-products .ht-product.ht-product-action-bottom .ht-product-inner .ht-product-action ul li a:hover .ht-product-action-tooltip {
1106
  -webkit-transform: translateX(-50%) translateY(0);
1107
  -ms-transform: translateX(-50%) translateY(0);
1108
  transform: translateX(-50%) translateY(0);
@@ -1130,7 +1164,7 @@
1130
  padding: 10px;
1131
  }
1132
 
1133
- .ht-products .ht-product.ht-product-action-middle .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-middle span.woolentor-tip {
1134
  left: 50%;
1135
  right: auto;
1136
  top: auto;
@@ -1142,7 +1176,7 @@
1142
  margin-right: 0;
1143
  }
1144
 
1145
- .ht-products .ht-product.ht-product-action-middle .ht-product-inner .ht-product-action ul li a:hover .ht-product-action-tooltip {
1146
  -webkit-transform: translateX(-50%) translateY(0);
1147
  -ms-transform: translateX(-50%) translateY(0);
1148
  transform: translateX(-50%) translateY(0);
@@ -1157,7 +1191,9 @@
1157
  -ms-flex-pack: start;
1158
  justify-content: flex-start;
1159
  position: static;
1160
- margin-top: 20px;
 
 
1161
  }
1162
 
1163
  .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul {
@@ -1177,7 +1213,7 @@
1177
  padding: 10px;
1178
  }
1179
 
1180
- .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom-content span.woolentor-tip {
1181
  left: 50%;
1182
  right: auto;
1183
  top: auto;
@@ -1189,7 +1225,7 @@
1189
  margin-right: 0;
1190
  }
1191
 
1192
- .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul li a:hover .ht-product-action-tooltip {
1193
  -webkit-transform: translateX(-50%) translateY(0);
1194
  -ms-transform: translateX(-50%) translateY(0);
1195
  transform: translateX(-50%) translateY(0);
@@ -1367,7 +1403,7 @@
1367
  .ht-products .ht-product.ht-product-category-right-bottom .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-categories {
1368
  position: absolute;
1369
  right: 0;
1370
- bottom: 0;
1371
  margin: 0;
1372
  width: 100%;
1373
  }
@@ -1403,6 +1439,10 @@
1403
  opacity: 1;
1404
  }
1405
 
 
 
 
 
1406
  /* Ads Banner */
1407
  .woolentor-banner {
1408
  align-items: center;
@@ -1613,6 +1653,13 @@
1613
  }
1614
 
1615
  /* Category List */
 
 
 
 
 
 
 
1616
  .wl-row{
1617
  display: -ms-flexbox;
1618
  display: -webkit-box;
@@ -1628,6 +1675,12 @@
1628
  margin-right: 0;
1629
  margin-left: 0;
1630
  }
 
 
 
 
 
 
1631
  .wl-row > [class*="col-"] {
1632
  min-height: 1px;
1633
  position: relative;
@@ -1786,6 +1839,33 @@
1786
  display: inline-block;
1787
  }
1788
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1789
  /* Quick view */
1790
  #htwlquick-viewmodal {
1791
  position: fixed;
@@ -1796,7 +1876,7 @@
1796
  display: flex;
1797
  align-items: center;
1798
  justify-content: center;
1799
- z-index: 99999;
1800
  opacity: 0;
1801
  visibility: hidden;
1802
  background-color: transparent;
@@ -1973,6 +2053,50 @@
1973
  display: block;
1974
  }
1975
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1976
  .woocommerce #content div.product .woolentor-woo-template-builder div.images,.woocommerce div.product .woolentor-woo-template-builder div.images {
1977
  width: 100%;
1978
  }
@@ -2012,6 +2136,10 @@
2012
  height: auto;
2013
  }
2014
 
 
 
 
 
2015
  /* Product Video Gallery */
2016
  .video-cus-tab-pane{
2017
  display: none;
@@ -3320,296 +3448,80 @@ h2.wl_filter_title {
3320
  text-decoration: none;
3321
  }
3322
 
 
 
 
 
 
 
 
 
 
3323
 
3324
- /* Normal :1366px. */
3325
- @media (min-width: 1200px) and (max-width: 1400px) {
3326
-
 
 
 
 
 
 
3327
  }
3328
 
3329
- /* Normal desktop :992px. */
3330
- @media (min-width: 992px) and (max-width: 1200px) {
3331
- .cus-col-5.ht-col-md-6 {
3332
- flex: 0 0 33.333%;
3333
- max-width: 33.333%;
3334
- }
3335
- .elementor-section .elementor-container {
3336
- padding: 0 15px;
3337
- }
3338
- .elementor-section.elementor-section-full_width .elementor-container {
3339
- padding: 0;
3340
- }
 
 
 
 
3341
  }
3342
 
3343
- /* Tablet desktop :768px. */
3344
- @media (min-width: 768px) and (max-width: 991px) {
3345
- .cus-col-5.ht-col-md-6 {
3346
- flex: 0 0 50%;
3347
- max-width: 50%;
3348
- }
3349
- .elementor-section .elementor-container {
3350
- padding: 0 15px;
3351
- }
3352
- .elementor-section.elementor-section-full_width .elementor-container {
3353
- padding: 0;
3354
- }
3355
 
3356
- .wl-columns-tablet-1 .wl-row > [class*="col-"]{
3357
- -webkit-box-flex: 0;
3358
- -webkit-flex: 0 0 100%;
3359
- -ms-flex: 0 0 100%;
3360
- flex: 0 0 100%;
3361
- max-width: 100%;
3362
- }
3363
- .wl-columns-tablet-2 .wl-row > [class*="col-"]{
3364
- -webkit-box-flex: 0;
3365
- -webkit-flex: 0 0 50%;
3366
- -ms-flex: 0 0 50%;
3367
- flex: 0 0 50%;
3368
- max-width: 50%;
3369
- }
3370
- .wl-columns-tablet-3 .wl-row > [class*="col-"]{
3371
- -webkit-box-flex: 0;
3372
- -webkit-flex: 0 0 33.333%;
3373
- -ms-flex: 0 0 33.333%;
3374
- flex: 0 0 33.333%;
3375
- max-width: 33.333%;
3376
- }
3377
- .wl-columns-tablet-4 .wl-row > [class*="col-"]{
3378
- -webkit-box-flex: 0;
3379
- -webkit-flex: 0 0 25%;
3380
- -ms-flex: 0 0 25%;
3381
- flex: 0 0 25%;
3382
- max-width: 25%;
3383
- }
3384
- .wl-columns-tablet-5 .wl-row > [class*="col-"]{
3385
- -webkit-box-flex: 0;
3386
- -webkit-flex: 0 0 20%;
3387
- -ms-flex: 0 0 20%;
3388
- flex: 0 0 20%;
3389
- max-width: 20%;
3390
- }
3391
- .wl-columns-tablet-6 .wl-row > [class*="col-"]{
3392
- -webkit-box-flex: 0;
3393
- -webkit-flex: 0 0 16.666%;
3394
- -ms-flex: 0 0 16.666%;
3395
- flex: 0 0 16.666%;
3396
- max-width: 16.666%;
3397
- }
3398
- .wl-columns-tablet-7 .wl-row > [class*="col-"]{
3399
- -webkit-box-flex: 0;
3400
- -webkit-flex: 0 0 14.285%;
3401
- -ms-flex: 0 0 14.285%;
3402
- flex: 0 0 14.285%;
3403
- max-width: 14.285%;
3404
- }
3405
- .wl-columns-tablet-8 .wl-row > [class*="col-"]{
3406
- -webkit-box-flex: 0;
3407
- -webkit-flex: 0 0 12.5%;
3408
- -ms-flex: 0 0 12.5%;
3409
- flex: 0 0 12.5%;
3410
- max-width: 12.5%;
3411
- }
3412
- .wl-columns-tablet-9 .wl-row > [class*="col-"]{
3413
- -webkit-box-flex: 0;
3414
- -webkit-flex: 0 0 11.111%;
3415
- -ms-flex: 0 0 11.111%;
3416
- flex: 0 0 11.111%;
3417
- max-width: 11.111%;
3418
- }
3419
- .wl-columns-tablet-10 .wl-row > [class*="col-"]{
3420
- -webkit-box-flex: 0;
3421
- -webkit-flex: 0 0 10%;
3422
- -ms-flex: 0 0 10%;
3423
- flex: 0 0 10%;
3424
- max-width: 10%;
3425
- }
3426
 
 
 
 
 
3427
  }
3428
 
3429
- /* small mobile :320px. */
3430
- @media (max-width: 767px) {
3431
- .cus-col-5.ht-col-md-6 {
3432
- flex: 0 0 100%;
3433
- max-width: 100%;
3434
- }
3435
- .woolentor-banner-img,.woolentor-content{
3436
- float: none;
3437
- }
3438
- .product-tab-list .nav a {
3439
- margin-bottom: 10px;
3440
- margin-right: 10px;
3441
- padding: 5px 10px;
3442
- }
3443
- .elementor-section .elementor-container {
3444
- padding: 0 15px;
3445
- }
3446
- .elementor-section.elementor-section-full_width .elementor-container {
3447
- padding: 0;
3448
- }
3449
-
3450
- .woolentor-notification-content {
3451
- width: 90%;
3452
- }
3453
- .woolentor-sticky-btn-area {
3454
- justify-content: start;
3455
- margin-top: 15px;
3456
- }
3457
- .wl-columns-mobile-1 .wl-row > [class*="col-"]{
3458
- -webkit-box-flex: 0;
3459
- -webkit-flex: 0 0 100%;
3460
- -ms-flex: 0 0 100%;
3461
- flex: 0 0 100%;
3462
- max-width: 100%;
3463
- }
3464
- .wl-columns-mobile-2 .wl-row > [class*="col-"]{
3465
- -webkit-box-flex: 0;
3466
- -webkit-flex: 0 0 50%;
3467
- -ms-flex: 0 0 50%;
3468
- flex: 0 0 50%;
3469
- max-width: 50%;
3470
- }
3471
- .wl-columns-mobile-3 .wl-row > [class*="col-"]{
3472
- -webkit-box-flex: 0;
3473
- -webkit-flex: 0 0 33.333%;
3474
- -ms-flex: 0 0 33.333%;
3475
- flex: 0 0 33.333%;
3476
- max-width: 33.333%;
3477
- }
3478
- .wl-columns-mobile-4 .wl-row > [class*="col-"]{
3479
- -webkit-box-flex: 0;
3480
- -webkit-flex: 0 0 25%;
3481
- -ms-flex: 0 0 25%;
3482
- flex: 0 0 25%;
3483
- max-width: 25%;
3484
- }
3485
- .wl-columns-mobile-5 .wl-row > [class*="col-"]{
3486
- -webkit-box-flex: 0;
3487
- -webkit-flex: 0 0 20%;
3488
- -ms-flex: 0 0 20%;
3489
- flex: 0 0 20%;
3490
- max-width: 20%;
3491
- }
3492
- .wl-columns-mobile-6 .wl-row > [class*="col-"]{
3493
- -webkit-box-flex: 0;
3494
- -webkit-flex: 0 0 16.666%;
3495
- -ms-flex: 0 0 16.666%;
3496
- flex: 0 0 16.666%;
3497
- max-width: 16.666%;
3498
- }
3499
- .wl-columns-mobile-7 .wl-row > [class*="col-"]{
3500
- -webkit-box-flex: 0;
3501
- -webkit-flex: 0 0 14.285%;
3502
- -ms-flex: 0 0 14.285%;
3503
- flex: 0 0 14.285%;
3504
- max-width: 14.285%;
3505
- }
3506
- .wl-columns-mobile-8 .wl-row > [class*="col-"]{
3507
- -webkit-box-flex: 0;
3508
- -webkit-flex: 0 0 12.5%;
3509
- -ms-flex: 0 0 12.5%;
3510
- flex: 0 0 12.5%;
3511
- max-width: 12.5%;
3512
- }
3513
- .wl-columns-mobile-9 .wl-row > [class*="col-"]{
3514
- -webkit-box-flex: 0;
3515
- -webkit-flex: 0 0 11.111%;
3516
- -ms-flex: 0 0 11.111%;
3517
- flex: 0 0 11.111%;
3518
- max-width: 11.111%;
3519
- }
3520
- .wl-columns-mobile-10 .wl-row > [class*="col-"]{
3521
- -webkit-box-flex: 0;
3522
- -webkit-flex: 0 0 10%;
3523
- -ms-flex: 0 0 10%;
3524
- flex: 0 0 10%;
3525
- max-width: 10%;
3526
- }
3527
-
3528
- }
3529
-
3530
- /* Large Mobile :480px. */
3531
- @media only screen and (min-width: 480px) and (max-width: 767px) {
3532
-
3533
- }
3534
-
3535
- .woolentor-qrcode img{
3536
- display:inline-block;
3537
- }
3538
-
3539
- /*=============================================
3540
- Accordions Css
3541
- =============================================*/
3542
- .wl_product-accordion {
3543
- width: 100%;
3544
- }
3545
- .wl_product-accordion .panel.panel-default {
3546
- margin-bottom: 20px;
3547
- }
3548
-
3549
- .wl_product-accordion .wl_product-accordion-card {
3550
- margin-bottom: 20px;
3551
- border-radius: 35px;
3552
- background: -webkit-linear-gradient(349deg, #612CF6 0, #BA73FA 65%);
3553
- background: -o-linear-gradient(349deg, #612CF6 0, #BA73FA 65%);
3554
- background: linear-gradient(-259deg, #612CF6 0, #BA73FA 65%);
3555
- }
3556
- .wl_product-accordion.wl_product-accordion-two .wl_product-accordion-card {
3557
- background: #3951E1;
3558
- }
3559
-
3560
- .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head {
3561
- border: none;
3562
- width: 100%;
3563
- text-align: left;
3564
- color: #ffffff;
3565
- padding: 20px 30px;
3566
- position: relative;
3567
- overflow-wrap: break-word;
3568
- white-space: normal;
3569
- font-size: 18px;
3570
- line-height: 1.2;
3571
- font-weight: 500;
3572
- border-radius: 35px;
3573
- border-bottom: 1px solid transparent;
3574
- position: relative;
3575
- cursor: pointer;
3576
- }
3577
-
3578
- @media only screen and (max-width: 479px) {
3579
- .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head {
3580
- padding-left: 15px;
3581
- padding-right: 20px;
3582
- }
3583
- }
3584
-
3585
- .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head-indicator {
3586
- position: absolute;
3587
- right: 35px;
3588
- top: 50%;
3589
- -webkit-transform: translateY(-50%);
3590
- -ms-transform: translateY(-50%);
3591
- transform: translateY(-50%);
3592
- width: 30px;
3593
- height: 30px;
3594
- padding-top: 6px;
3595
- text-align: center;
3596
- background: #fff;
3597
- border-radius: 50%;
3598
- color: #BA73FA;
3599
- }
3600
-
3601
- @media only screen and (max-width: 479px) {
3602
- .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head-indicator {
3603
- right: 15px;
3604
- }
3605
- }
3606
-
3607
- .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head-indicator i {
3608
- visibility: hidden;
3609
- opacity: 0;
3610
- display: none;
3611
- color: #BA73FA;
3612
- }
3613
 
3614
  .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head-indicator i:nth-child(2) {
3615
  visibility: visible;
@@ -3748,7 +3660,7 @@ h2.wl_filter_title {
3748
  }
3749
  .wl_product-accordion .action .woocommerce.product.compare-button a:before,
3750
  .wl_product-accordion .card-body .product-content .action .wishlist a,
3751
- .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .action-item {
3752
  font-size: 14px;
3753
  height: 34px;
3754
  padding: 0 10px;
@@ -3761,12 +3673,22 @@ h2.wl_filter_title {
3761
  display: inline-block;
3762
  text-align: center;
3763
  }
3764
- .wl_product-accordion .card-body .product-content .action .wishlist a {
3765
  padding: 3px 10px;
3766
  }
 
 
 
 
3767
  .wl_product-accordion.wl_product-accordion-two .wl_product-accordion-card .wl_product-accordion-head-indicator {
3768
  color: #3951E1;
3769
  }
 
 
 
 
 
 
3770
 
3771
  @media only screen and (max-width: 479px) {
3772
  .wl_product-accordion.wl_product-accordion-two .wl_product-accordion-card .wl_product-accordion-head-indicator {
@@ -3913,7 +3835,7 @@ h2.wl_filter_title {
3913
  display: flex;
3914
  }
3915
 
3916
- .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item,
3917
  .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a {
3918
  height: 35px;
3919
  padding: 0 9px;
@@ -3925,6 +3847,10 @@ h2.wl_filter_title {
3925
  color: #333;
3926
  margin-right: 10px;
3927
  }
 
 
 
 
3928
  .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item i{
3929
  margin-right: 5px;
3930
  }
@@ -3954,6 +3880,10 @@ h2.wl_filter_title {
3954
  transform: translateX(0);
3955
  }
3956
 
 
 
 
 
3957
  @media only screen and (max-width: 575px) {
3958
  .wl_horizontal-hover-accordion .accordion-ul:hover li:hover {
3959
  width: 114%;
@@ -3993,6 +3923,8 @@ h2.wl_filter_title {
3993
  .wl_product-accordion .woocommerce.product.compare-button a{
3994
  font-size: 0;
3995
  font-weight: 400;
 
 
3996
  }
3997
  .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a {
3998
  text-indent: -9999px;
@@ -4022,6 +3954,11 @@ h2.wl_filter_title {
4022
  height: 37px;
4023
  line-height: 35px;
4024
  border-radius: 50%;
 
 
 
 
 
4025
  }
4026
  /*=================================
4027
  = Product Css =
@@ -4451,5 +4388,868 @@ h2.wl_filter_title {
4451
  color: #333;
4452
  margin-right: 10px
4453
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4454
 
4455
- /* Product curvy end */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  margin-left: 0;
95
  top: 11px;
96
  }
97
+ .product-item .woocommerce.product.compare-button,.product-item .actions .htcompare-btn {
98
  border-left: 1px solid #999;
99
  }
100
+ .product-item .actions .htcompare-btn{
101
+ border-radius: 0;
102
+ }
103
  .product-item:hover .actions{
104
  opacity: 1;
105
  transform: translateX(-50%) translateY(-50%);
126
  top: 5px;
127
  width: 100%;
128
  }
129
+ .product-item .actions .compare-button a::before,.product-item .actions .htcompare-btn::before{
130
  content: "\f021";
131
  }
132
  .product-item .product-inner .image-wrap .style_two .wishlist a::before{
194
  font-size: 14px;
195
  font-weight: 500;
196
  left: 15px;
197
+ top: 15px;
198
  line-height: 1;
199
  min-height: inherit;
200
  min-width: inherit;
201
  padding: 5px 10px;
 
202
  position: absolute;
203
  }
204
+
205
  .product-item a.button.added {
206
  display: none !important;
207
  }
208
+ .product-item .actions .htcompare-btn.added {
209
+ display: block !important;
210
+ }
211
+ .product-item .actions .htcompare-btn.loading{
212
+ padding: 0;
213
+ }
214
+ .product-item .actions a.htcompare-btn.loading::after,{
215
+ right: 20px;
216
+ }
217
  .product-item .product-inner .image-wrap .actions a.added_to_cart {
218
  text-indent: -99999px;
219
  }
356
  display: block;
357
  }
358
 
359
+ [class*="elementor-widget-woolentor"] .slick-prev::before, [class*="elementor-widget-woolentor"] .slick-next::before,[class*="elementor-widget-wl"] .slick-prev::before, [class*="elementor-widget-wl"] .slick-next::before{
360
  display: none;
361
  }
362
 
460
  right: 30px;
461
  }
462
 
 
463
  .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-image img {
464
  width: 100%;
465
  }
677
  -o-transition: all 0.3s ease;
678
  transition: all 0.3s ease;
679
  }
680
+ .ht-products .ht-product .ht-product-inner .ht-product-action ul li a.htcompare-btn.loading{
681
+ padding:0;
682
+ }
683
+ .ht-products .ht-product .ht-product-inner .ht-product-action ul li a.htcompare-btn.loading::after{
684
+ right: 6px;
685
+ }
686
+ .ht-products .ht-product .ht-product-inner .ht-product-action ul li a.htcompare-btn.added::after{
687
+ display: none;
688
+ }
689
 
690
  .ht-products .ht-product .ht-product-inner .ht-product-action ul li a i {
691
  font-size: 20px;
702
  .woolentor-compare.compare::before, .ht-product-action ul li.woolentor-cart a::before {
703
  content: "";
704
  display: flex;
705
+ font-family: simple-line-icons !important;
706
  font-size: 20px;
707
  height: 100%;
708
  justify-content: center;
737
  display: none !important;
738
  }
739
 
740
+ .ht-products .ht-product .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,span.woolentor-tip, .wishsuite-button.wishlist span.wishsuite-btn-text {
741
  position: absolute;
742
  left: 100%;
743
  top: 50%;
759
  -o-transition: all 0.5s ease;
760
  transition: all 0.5s ease;
761
  }
762
+ .wishsuite-button.wishlist span.wishsuite-btn-text{
763
+ margin-right: -10px;
764
+ -webkit-transform: translateY(-65%);
765
+ -ms-transform: translateY(-65%);
766
+ transform: translateY(-65%);
767
+ }
768
+ .ht-products .ht-product.ht-product-action-right span.woolentor-tip,.ht-products .ht-product.ht-product-action-right .wishsuite-button.wishlist span.wishsuite-btn-text{
769
  left: auto;
770
  right: 35px;
771
  }
781
  color: #dc9a0e !important;
782
  }
783
 
784
+ .ht-products .ht-product .ht-product-inner .ht-product-action ul li a:hover .ht-product-action-tooltip,.ht-products .ht-product .ht-product-inner .ht-product-action ul li:hover span.woolentor-tip,.ht-products .ht-product .ht-product-inner .ht-product-action ul li:hover .wishsuite-button.wishlist span.wishsuite-btn-text {
785
  opacity: 1;
786
  visibility: visible;
787
  margin-left: 0;
788
+ margin-right: 0;
789
  }
790
 
791
  .ht-products .ht-product .ht-product-inner .ht-product-content {
848
  margin-bottom: 10px;
849
  margin-top: 0;
850
  }
851
+ .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner span.ht-product-title{
852
+ display: inline-block;
853
+ }
854
 
855
  .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-title a {
856
  color: inherit;
901
  display: -ms-flexbox;
902
  display: flex;
903
  }
904
+ .ht-products .woocommerce .ht-product-ratting-wrap .star-rating{
905
+ float: none;
906
+ }
907
 
908
  .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-ratting-wrap .ht-product-ratting {
909
  display: -webkit-box;
1124
  padding: 10px;
1125
  }
1126
 
1127
+ .ht-products .ht-product.ht-product-action-bottom .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom span.woolentor-tip,.ht-products .ht-product.ht-product-action-bottom span.wishsuite-btn-text {
1128
  left: 50%;
1129
  right: auto;
1130
  top: auto;
1136
  margin-right: 0;
1137
  }
1138
 
1139
+ .ht-products .ht-product.ht-product-action-bottom .ht-product-inner .ht-product-action ul li a:hover .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom .ht-product-inner .ht-product-action ul li a:hover span.wishsuite-btn-text {
1140
  -webkit-transform: translateX(-50%) translateY(0);
1141
  -ms-transform: translateX(-50%) translateY(0);
1142
  transform: translateX(-50%) translateY(0);
1164
  padding: 10px;
1165
  }
1166
 
1167
+ .ht-products .ht-product.ht-product-action-middle .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-middle span.woolentor-tip, .ht-products .ht-product.ht-product-action-middle .wishsuite-button.wishlist span.wishsuite-btn-text {
1168
  left: 50%;
1169
  right: auto;
1170
  top: auto;
1176
  margin-right: 0;
1177
  }
1178
 
1179
+ .ht-products .ht-product.ht-product-action-middle .ht-product-inner .ht-product-action ul li a:hover .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-middle .ht-product-inner .ht-product-action ul li a:hover span.wishsuite-btn-text {
1180
  -webkit-transform: translateX(-50%) translateY(0);
1181
  -ms-transform: translateX(-50%) translateY(0);
1182
  transform: translateX(-50%) translateY(0);
1191
  -ms-flex-pack: start;
1192
  justify-content: flex-start;
1193
  position: static;
1194
+ }
1195
+ .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-ratting-wrap + .ht-product-action {
1196
+ margin-top: 20px !important;
1197
  }
1198
 
1199
  .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul {
1213
  padding: 10px;
1214
  }
1215
 
1216
+ .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom-content span.woolentor-tip,.ht-products .ht-product.ht-product-action-bottom-content span.wishsuite-btn-text {
1217
  left: 50%;
1218
  right: auto;
1219
  top: auto;
1225
  margin-right: 0;
1226
  }
1227
 
1228
+ .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul li a:hover .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul li a:hover span.wishsuite-btn-text {
1229
  -webkit-transform: translateX(-50%) translateY(0);
1230
  -ms-transform: translateX(-50%) translateY(0);
1231
  transform: translateX(-50%) translateY(0);
1403
  .ht-products .ht-product.ht-product-category-right-bottom .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-categories {
1404
  position: absolute;
1405
  right: 0;
1406
+ bottom: 10px;
1407
  margin: 0;
1408
  width: 100%;
1409
  }
1439
  opacity: 1;
1440
  }
1441
 
1442
+ .product-slider .ht-product.col-1, .ht-product.col.first{
1443
+ clear: unset;
1444
+ }
1445
+
1446
  /* Ads Banner */
1447
  .woolentor-banner {
1448
  align-items: center;
1653
  }
1654
 
1655
  /* Category List */
1656
+ .elementor-widget-woolentor-custom-product-archive .woocommerce[class*='columns-'] .product {
1657
+ /*max-width: inherit;*/
1658
+ margin: 0;
1659
+ }
1660
+ .elementor-widget-woolentor-custom-product-archive .woocommerce[class*='columns-'] .woolentor_current_theme_layout .product{
1661
+ margin-right: 20px;
1662
+ }
1663
  .wl-row{
1664
  display: -ms-flexbox;
1665
  display: -webkit-box;
1675
  margin-right: 0;
1676
  margin-left: 0;
1677
  }
1678
+
1679
+ [class*="wl-col-"]{
1680
+ padding-right: 15px;
1681
+ padding-left: 15px;
1682
+ }
1683
+
1684
  .wl-row > [class*="col-"] {
1685
  min-height: 1px;
1686
  position: relative;
1839
  display: inline-block;
1840
  }
1841
 
1842
+ /* Capability With Wishsuite */
1843
+ .wishsuite-button.wltooltip_no span.wishsuite-btn-text{
1844
+ display: none;
1845
+ }
1846
+ .ht-product-action-bottom .ht-product-inner .wishsuite-button.wishlist,.ht-product-action-bottom-content .ht-product-inner .wishsuite-button.wishlist,.ht-product-action-middle .ht-product-inner .wishsuite-button.wishlist,.wl_single-product-item .product-content .action li .wishsuite-button.wishlist{
1847
+ padding-top: 4px;
1848
+ }
1849
+
1850
+ .ht-product-2 .ht-product-action-2 .wishsuite-button.wishlist{
1851
+ padding-top: 10px;
1852
+ }
1853
+
1854
+ .ht-product-2 .wishsuite-button.wishlist svg{
1855
+ width: 15px;
1856
+ height: 15px;
1857
+ }
1858
+
1859
+ .ht-product-2 .ht-product-action-3 .wishsuite-button.wishlist{
1860
+ border-right: 1px solid rgba(255, 255, 255, 0.2);
1861
+ }
1862
+ .ht-product-2 .ht-product-action-5 .wishsuite-button.wishlist{
1863
+ line-height: 48px;
1864
+ }
1865
+ .ht-product-2 .ht-product-action-6 .wishsuite-button.wishlist{
1866
+ line-height: 40px;
1867
+ }
1868
+
1869
  /* Quick view */
1870
  #htwlquick-viewmodal {
1871
  position: fixed;
1876
  display: flex;
1877
  align-items: center;
1878
  justify-content: center;
1879
+ z-index: 9999;
1880
  opacity: 0;
1881
  visibility: hidden;
1882
  background-color: transparent;
2053
  display: block;
2054
  }
2055
 
2056
+ [class*="woolentorducts-columns-"] ul.products{
2057
+ display: block !important;
2058
+ }
2059
+ .woolentorducts-columns-6 ul.products li.product{
2060
+ width: calc(16% - 30px) !important;
2061
+ margin-right: 30px !important;
2062
+ float: left;
2063
+ }
2064
+
2065
+ .woolentorducts-columns-5 ul.products li.product{
2066
+ width: calc(19% - 30px) !important;
2067
+ margin-right: 30px !important;
2068
+ float: left;
2069
+ }
2070
+ .woolentorducts-columns-4 ul.products li.product{
2071
+ width: calc(25% - 30px) !important;
2072
+ margin-right: 30px !important;
2073
+ float: left;
2074
+ }
2075
+ .woolentorducts-columns-3 ul.products li.product{
2076
+ width: calc(33.33% - 30px) !important;
2077
+ margin-right: 30px !important;
2078
+ float: left;
2079
+ }
2080
+ .woolentorducts-columns-2 ul.products li.product{
2081
+ width: calc(50% - 30px) !important;
2082
+ margin-right: 30px !important;
2083
+ float: left;
2084
+ }
2085
+ .woolentorducts-columns-1 ul.products li.product{
2086
+ width: 100% !important;
2087
+ }
2088
+ [class*="woolentorducts-columns-"] ul.products li.product.first{
2089
+ clear: none !important;
2090
+ }
2091
+ .woolentorducts-columns-6 ul.products li.product:nth-child(6n),
2092
+ .woolentorducts-columns-5 ul.products li.product:nth-child(5n),
2093
+ .woolentorducts-columns-4 ul.products li.product:nth-child(4n),
2094
+ .woolentorducts-columns-3 ul.products li.product:nth-child(3n),
2095
+ .woolentorducts-columns-2 ul.products li.product:nth-child(2n),
2096
+ .woolentorducts-columns-1 ul.products li.product{
2097
+ margin-right: 0;
2098
+ }
2099
+
2100
  .woocommerce #content div.product .woolentor-woo-template-builder div.images,.woocommerce div.product .woolentor-woo-template-builder div.images {
2101
  width: 100%;
2102
  }
2136
  height: auto;
2137
  }
2138
 
2139
+ .woolentor-myaccount-form-login .form-row{
2140
+ display: block;
2141
+ }
2142
+
2143
  /* Product Video Gallery */
2144
  .video-cus-tab-pane{
2145
  display: none;
3448
  text-decoration: none;
3449
  }
3450
 
3451
+ /*=============================================
3452
+ Accordions Css
3453
+ =============================================*/
3454
+ .wl_product-accordion {
3455
+ width: 100%;
3456
+ }
3457
+ .wl_product-accordion .panel.panel-default {
3458
+ margin-bottom: 20px;
3459
+ }
3460
 
3461
+ .wl_product-accordion .wl_product-accordion-card {
3462
+ margin-bottom: 20px;
3463
+ border-radius: 35px;
3464
+ background: -webkit-linear-gradient(349deg, #612CF6 0, #BA73FA 65%);
3465
+ background: -o-linear-gradient(349deg, #612CF6 0, #BA73FA 65%);
3466
+ background: linear-gradient(-259deg, #612CF6 0, #BA73FA 65%);
3467
+ }
3468
+ .wl_product-accordion.wl_product-accordion-two .wl_product-accordion-card {
3469
+ background: #3951E1;
3470
  }
3471
 
3472
+ .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head {
3473
+ border: none;
3474
+ width: 100%;
3475
+ text-align: left;
3476
+ color: #ffffff;
3477
+ padding: 20px 30px;
3478
+ position: relative;
3479
+ overflow-wrap: break-word;
3480
+ white-space: normal;
3481
+ font-size: 18px;
3482
+ line-height: 1.2;
3483
+ font-weight: 500;
3484
+ border-radius: 35px;
3485
+ border-bottom: 1px solid transparent;
3486
+ position: relative;
3487
+ cursor: pointer;
3488
  }
3489
 
3490
+ @media only screen and (max-width: 479px) {
3491
+ .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head {
3492
+ padding-left: 15px;
3493
+ padding-right: 20px;
3494
+ }
3495
+ }
 
 
 
 
 
 
3496
 
3497
+ .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head-indicator {
3498
+ position: absolute;
3499
+ right: 35px;
3500
+ top: 50%;
3501
+ -webkit-transform: translateY(-50%);
3502
+ -ms-transform: translateY(-50%);
3503
+ transform: translateY(-50%);
3504
+ width: 30px;
3505
+ height: 30px;
3506
+ padding-top: 6px;
3507
+ text-align: center;
3508
+ background: #fff;
3509
+ border-radius: 50%;
3510
+ color: #BA73FA;
3511
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3512
 
3513
+ @media only screen and (max-width: 479px) {
3514
+ .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head-indicator {
3515
+ right: 15px;
3516
+ }
3517
  }
3518
 
3519
+ .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head-indicator i {
3520
+ visibility: hidden;
3521
+ opacity: 0;
3522
+ display: none;
3523
+ color: #BA73FA;
3524
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3525
 
3526
  .wl_product-accordion .wl_product-accordion-card .wl_product-accordion-head-indicator i:nth-child(2) {
3527
  visibility: visible;
3660
  }
3661
  .wl_product-accordion .action .woocommerce.product.compare-button a:before,
3662
  .wl_product-accordion .card-body .product-content .action .wishlist a,
3663
+ .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .action-item,.wl_product-accordion .card-body .product-content .product-acontent-bottom .action .htcompare-btn,.wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishsuite-button {
3664
  font-size: 14px;
3665
  height: 34px;
3666
  padding: 0 10px;
3673
  display: inline-block;
3674
  text-align: center;
3675
  }
3676
+ .wl_product-accordion .card-body .product-content .action .wishlist a,.wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishsuite-button {
3677
  padding: 3px 10px;
3678
  }
3679
+ .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishsuite-button svg{
3680
+ width: 15px;
3681
+ height: 15px;
3682
+ }
3683
  .wl_product-accordion.wl_product-accordion-two .wl_product-accordion-card .wl_product-accordion-head-indicator {
3684
  color: #3951E1;
3685
  }
3686
+ .wl_single-product-item ul.action a.htcompare-btn.loading{
3687
+ padding:0;
3688
+ }
3689
+ .wl_single-product-item ul.action a.htcompare-btn.added:after{
3690
+ display: none;
3691
+ }
3692
 
3693
  @media only screen and (max-width: 479px) {
3694
  .wl_product-accordion.wl_product-accordion-two .wl_product-accordion-card .wl_product-accordion-head-indicator {
3835
  display: flex;
3836
  }
3837
 
3838
+ .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a.action-item,.wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a.htcompare-btn,.wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a.wishsuite-button,
3839
  .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a {
3840
  height: 35px;
3841
  padding: 0 9px;
3847
  color: #333;
3848
  margin-right: 10px;
3849
  }
3850
+ .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a.wishsuite-button svg{
3851
+ width: 15px;
3852
+ height: 15px;
3853
+ }
3854
  .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item i{
3855
  margin-right: 5px;
3856
  }
3880
  transform: translateX(0);
3881
  }
3882
 
3883
+ .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .star-rating{
3884
+ float: none;
3885
+ }
3886
+
3887
  @media only screen and (max-width: 575px) {
3888
  .wl_horizontal-hover-accordion .accordion-ul:hover li:hover {
3889
  width: 114%;
3923
  .wl_product-accordion .woocommerce.product.compare-button a{
3924
  font-size: 0;
3925
  font-weight: 400;
3926
+ position: absolute;
3927
+ padding: 0;
3928
  }
3929
  .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a {
3930
  text-indent: -9999px;
3954
  height: 37px;
3955
  line-height: 35px;
3956
  border-radius: 50%;
3957
+ text-align: center;
3958
+ }
3959
+
3960
+ .wl_product-accordion-content .price ins{
3961
+ background: transparent;
3962
  }
3963
  /*=================================
3964
  = Product Css =
4388
  color: #333;
4389
  margin-right: 10px
4390
  }
4391
+ /* Product curvy end */
4392
+
4393
+ /* Product Horizontal Filter Start */
4394
+ .woolentor-horizontal-filter-wrap {}
4395
+
4396
+ .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area {
4397
+ padding: 40px 50px;
4398
+ background-color: #ffffff;
4399
+ border-radius: 5px;
4400
+ margin-bottom: 30px;
4401
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
4402
+ }
4403
+
4404
+ @media only screen and (max-width: 767px) {
4405
+ .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area {
4406
+ padding: 40px 20px;
4407
+ }
4408
+ }
4409
+
4410
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
4411
+ .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area {
4412
+ padding: 40px 20px;
4413
+ }
4414
+ }
4415
+
4416
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area {
4417
+ display: -webkit-box;
4418
+ display: -webkit-flex;
4419
+ display: -ms-flexbox;
4420
+ display: flex;
4421
+ -webkit-box-align: center;
4422
+ -webkit-align-items: center;
4423
+ -ms-flex-align: center;
4424
+ align-items: center;
4425
+ -webkit-box-pack: justify;
4426
+ -webkit-justify-content: space-between;
4427
+ -ms-flex-pack: justify;
4428
+ justify-content: space-between;
4429
+ }
4430
+
4431
+ @media only screen and (max-width: 767px) {
4432
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area {
4433
+ -webkit-box-orient: vertical;
4434
+ -webkit-box-direction: normal;
4435
+ -webkit-flex-direction: column;
4436
+ -ms-flex-direction: column;
4437
+ flex-direction: column;
4438
+ }
4439
+ }
4440
+
4441
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side {
4442
+ display: -webkit-box;
4443
+ display: -webkit-flex;
4444
+ display: -ms-flexbox;
4445
+ display: flex;
4446
+ -webkit-box-align: center;
4447
+ -webkit-align-items: center;
4448
+ -ms-flex-align: center;
4449
+ align-items: center;
4450
+ }
4451
+
4452
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side h2 {
4453
+ margin: 0;
4454
+ font-size: 24px;
4455
+ font-weight: 500;
4456
+ }
4457
+
4458
+ @media only screen and (max-width: 767px) {
4459
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side {
4460
+ margin-bottom: 20px;
4461
+ }
4462
+ }
4463
+
4464
+ @media only screen and (max-width: 575px) {
4465
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side {
4466
+ margin-bottom: 0px;
4467
+ }
4468
+ }
4469
+
4470
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side .htpt-check-all-area {
4471
+ margin-right: 20px;
4472
+ }
4473
+
4474
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side .htpt-all-cart {
4475
+ background-color: #3326AE;
4476
+ color: #ffffff;
4477
+ padding: 8px 25px;
4478
+ border-radius: 25px;
4479
+ }
4480
+
4481
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side .htpt-all-cart i {
4482
+ margin-right: 10px;
4483
+ }
4484
 
4485
+ @media only screen and (max-width: 575px) {
4486
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side {
4487
+ -webkit-box-orient: vertical;
4488
+ -webkit-box-direction: normal;
4489
+ -webkit-flex-direction: column;
4490
+ -ms-flex-direction: column;
4491
+ flex-direction: column;
4492
+ -webkit-box-pack: center;
4493
+ -webkit-justify-content: center;
4494
+ -ms-flex-pack: center;
4495
+ justify-content: center;
4496
+ }
4497
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side .htpt-check-all-area {
4498
+ margin-right: 0px;
4499
+ margin-bottom: 10px;
4500
+ }
4501
+ }
4502
+
4503
+ @media only screen and (max-width: 575px) {
4504
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-left-side .htpt-label-for-checkbox {
4505
+ margin-bottom: 5px;
4506
+ }
4507
+ }
4508
+
4509
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-right-side {
4510
+ display: -webkit-box;
4511
+ display: -webkit-flex;
4512
+ display: -ms-flexbox;
4513
+ display: flex;
4514
+ -webkit-box-align: center;
4515
+ -webkit-align-items: center;
4516
+ -ms-flex-align: center;
4517
+ align-items: center;
4518
+ }
4519
+
4520
+ @media only screen and (max-width: 575px) {
4521
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-header-right-side {
4522
+ margin-top: 20px;
4523
+ }
4524
+ }
4525
+
4526
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box {
4527
+ position: relative;
4528
+ }
4529
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-filter-custom{
4530
+ margin-left: 20px;
4531
+ }
4532
+
4533
+ @media only screen and (max-width: 575px) {
4534
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box {
4535
+ margin-right: 10px;
4536
+ }
4537
+ }
4538
+
4539
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-box {
4540
+ border: none;
4541
+ background: #EEEFFB;
4542
+ padding: 10px 36px 10px 20px;
4543
+ border-radius: 25px;
4544
+ height: 40px;
4545
+ position: relative;
4546
+ }
4547
+
4548
+ @media only screen and (max-width: 575px) {
4549
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-box {
4550
+ padding: 10px 36px 10px 10px;
4551
+ }
4552
+ }
4553
+
4554
+ .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-inner-btn {
4555
+ position: absolute;
4556
+ background: transparent;
4557
+ right: 10px;
4558
+ top: 50%;
4559
+ -webkit-transform: translateY(-50%);
4560
+ -ms-transform: translateY(-50%);
4561
+ transform: translateY(-50%);
4562
+ border: none;
4563
+ font-size: 16px;
4564
+ padding: 0;
4565
+ color: #222222;
4566
+ }
4567
+
4568
+ .woolentor-horizontal-filter-wrap .woolentor-search-filter-custom .filter-icon {
4569
+ height: 40px;
4570
+ width: 40px;
4571
+ line-height: 40px;
4572
+ text-align: center;
4573
+ background: #EEEFFB;
4574
+ border-radius: 50%;
4575
+ display: inline-block;
4576
+ color: #222222;
4577
+ }
4578
+
4579
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-area {
4580
+ border-top: 1px solid #EFF6FF;
4581
+ padding-top: 20px;
4582
+ margin-top: 20px;
4583
+ }
4584
+
4585
+ @media only screen and (max-width: 575px) {
4586
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-area {
4587
+ -webkit-box-orient: vertical;
4588
+ -webkit-box-direction: normal;
4589
+ -webkit-flex-direction: column;
4590
+ -ms-flex-direction: column;
4591
+ flex-direction: column;
4592
+ }
4593
+ }
4594
+
4595
+ .woolentor-horizontal-filter-wrap #filter-item {}
4596
+
4597
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap {
4598
+ display: -webkit-box;
4599
+ display: -webkit-flex;
4600
+ display: -ms-flexbox;
4601
+ display: flex;
4602
+ -webkit-flex-wrap: wrap;
4603
+ -ms-flex-wrap: wrap;
4604
+ flex-wrap: wrap;
4605
+ -webkit-box-align: center;
4606
+ -webkit-align-items: center;
4607
+ -ms-flex-align: center;
4608
+ align-items: center;
4609
+ }
4610
+
4611
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
4612
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap {
4613
+ -webkit-box-pack: center;
4614
+ -webkit-justify-content: center;
4615
+ -ms-flex-pack: center;
4616
+ justify-content: center;
4617
+ }
4618
+ }
4619
+
4620
+ @media only screen and (max-width: 575px) {
4621
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap {
4622
+ -webkit-box-pack: center;
4623
+ -webkit-justify-content: center;
4624
+ -ms-flex-pack: center;
4625
+ justify-content: center;
4626
+ }
4627
+ }
4628
+
4629
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item {
4630
+ margin-left: 20px;
4631
+ margin-top: 10px;
4632
+ }
4633
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item:first-child{
4634
+ margin-left: 0;
4635
+ }
4636
+
4637
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item label {
4638
+ display: block;
4639
+ margin-bottom: 10px;
4640
+ }
4641
+
4642
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item .select2-container {
4643
+ width: 120px !important;
4644
+ height: 40px;
4645
+ }
4646
+
4647
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .clear-filter {
4648
+ margin-top: 10px;
4649
+ }
4650
+
4651
+ @media only screen and (max-width: 767px) {
4652
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .clear-filter {
4653
+ width: 100%;
4654
+ }
4655
+ }
4656
+
4657
+ .woolentor-horizontal-filter-wrap .select2-container .select2-selection--single {
4658
+ border-radius: 25px;
4659
+ height: 40px;
4660
+ padding: 5px 25px 5px 10px;
4661
+ align-items: center;
4662
+ display: -webkit-box;
4663
+ display: -webkit-flex;
4664
+ display: -ms-flexbox;
4665
+ display: flex;
4666
+ outline: none;
4667
+ }
4668
+
4669
+ .woolentor-horizontal-filter-wrap .select2-container .select2-selection--multiple{
4670
+ outline: none;
4671
+ }
4672
+
4673
+ .woolentor-horizontal-filter-wrap .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .woolentor-horizontal-filter-wrap .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
4674
+ border-bottom-left-radius: 25px;
4675
+ border-bottom-right-radius: 25px;
4676
+ }
4677
+
4678
+ .woolentor-horizontal-filter-wrap .select2-container.select2-container--default .selection .select2-selection {
4679
+ background: transparent url(../images/selector-icon.png) no-repeat center right 10px;
4680
+ }
4681
+
4682
+ .woolentor-horizontal-filter-wrap .select2-container.select2-container--default .selection .select2-selection--multiple {
4683
+ display: -webkit-box;
4684
+ display: -webkit-flex;
4685
+ display: -ms-flexbox;
4686
+ display: flex;
4687
+ min-height: 40px;
4688
+ padding: 5px;
4689
+ height: 40px;
4690
+ border-radius: 25px;
4691
+ }
4692
+
4693
+ .woolentor-horizontal-filter-wrap .select2-container.select2-container--default .selection .select2-selection__rendered {
4694
+ display: inline;
4695
+ list-style: none;
4696
+ padding: 0;
4697
+ display: -webkit-box;
4698
+ display: -webkit-flex;
4699
+ display: -ms-flexbox;
4700
+ display: flex;
4701
+ margin: 0;
4702
+ }
4703
+
4704
+ .woolentor-horizontal-filter-wrap .select2-container.select2-container--default .selection .select2-selection__choice {
4705
+ background-color: transparent;
4706
+ border: none;
4707
+ border-radius: 25px;
4708
+ display: inline-block;
4709
+ margin-left: 5px;
4710
+ margin-top: 0;
4711
+ padding: 0;
4712
+ font-size: 14px;
4713
+ }
4714
+
4715
+ .woolentor-horizontal-filter-wrap .select2-container.select2-container--default .selection .select2-selection .select2-selection__rendered {
4716
+ white-space: nowrap;
4717
+ overflow: hidden;
4718
+ padding-left: 8px;
4719
+ -o-text-overflow: ellipsis;
4720
+ text-overflow: ellipsis;
4721
+ display: -webkit-box;
4722
+ display: -webkit-flex;
4723
+ display: -ms-flexbox;
4724
+ display: flex;
4725
+ font-size: 16px;
4726
+ align-items: center;
4727
+ width: auto;
4728
+ }
4729
+
4730
+ .woolentor-horizontal-filter-wrap .select2-container.select2-container--default .selection .select2-selection .select2-results__option {
4731
+ padding-right: 20px;
4732
+ vertical-align: middle;
4733
+ font-size: 16px;
4734
+ padding: 3px 7px;
4735
+ font-weight: 600;
4736
+ }
4737
+
4738
+ .woolentor-horizontal-filter-wrap .select2-container .select2-search--inline .select2-search__field {
4739
+ font-size: 15px;
4740
+ max-width: 100px;
4741
+ padding-right: 13px;
4742
+ height: inherit;
4743
+ line-height: inherit;
4744
+ margin: 0;
4745
+ }
4746
+
4747
+ .woolentor-horizontal-filter-wrap .htpt-label-for-checkbox {
4748
+ display: -webkit-box;
4749
+ display: -webkit-flex;
4750
+ display: -ms-flexbox;
4751
+ display: flex;
4752
+ height: 16px;
4753
+ margin-bottom: -5px;
4754
+ margin-left: 6px;
4755
+ }
4756
+
4757
+ .woolentor-horizontal-filter-wrap .htpt-label-for-checkbox .input-checkbox {
4758
+ opacity: 0;
4759
+ line-height: 1;
4760
+ height: inherit;
4761
+ display: none;
4762
+ }
4763
+
4764
+ .woolentor-horizontal-filter-wrap .htpt-label-for-checkbox > span {
4765
+ display: inline-block;
4766
+ text-transform: inherit;
4767
+ position: relative;
4768
+ line-height: 1;
4769
+ font-size: 14px;
4770
+ font-weight: 400;
4771
+ }
4772
+
4773
+ .woolentor-horizontal-filter-wrap .clear-filter {
4774
+ background: transparent;
4775
+ padding: 0;
4776
+ border: none;
4777
+ margin-left: 20px;
4778
+ color: #4E7CFF;
4779
+ font-size: 14px;
4780
+ }
4781
+
4782
+ .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item.woolentor-states-input-auto .select2-container {
4783
+ width: auto !important;
4784
+ min-width: 120px;
4785
+ overflow: hidden;
4786
+ height: 40px;
4787
+ }
4788
+
4789
+ div[class*="woolentor-single-select-drop"] .select2-results__option::before{
4790
+ border-radius: 100%;
4791
+ }
4792
+
4793
+ .woolentor-select-drop .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
4794
+ background-color: #ddd;
4795
+ color: white;
4796
+ }
4797
+
4798
+ .woolentor-filter-single-item button.select2-selection__choice__remove, .woolentor-filter-single-item .select2-selection__clear {
4799
+ display: none !important;
4800
+ margin-left: 0 !important;
4801
+ }
4802
+
4803
+ .woolentor-filter-single-item .select2-selection__choice {
4804
+ position: relative;
4805
+ margin-left: 0px;
4806
+ }
4807
+
4808
+ .woolentor-filter-single-item .select2-selection__choice::after {
4809
+ position: absolute;
4810
+ content: ",";
4811
+ right: 0;
4812
+ }
4813
+
4814
+ .woolentor-filter-single-item .select2-selection__choice:last-child::after {
4815
+ content: "";
4816
+ }
4817
+
4818
+ .woolentor-select-drop .select2-results__option[role="alert"] {
4819
+ border-radius: 10px 10px 10px 10px !important;
4820
+ }
4821
+
4822
+ .woolentor-select-drop .select2-results__option[role="alert"]:before {
4823
+ display: none;
4824
+ }
4825
+
4826
+ .woolentor-select-drop .select2-results__option {
4827
+ font-size: 14px;
4828
+ background-color: #fff;
4829
+ max-height: 300px;
4830
+ font-weight: 600;
4831
+ width: 100%;
4832
+ }
4833
+
4834
+ .woolentor-select-drop .select2-results__option:before {
4835
+ content: "";
4836
+ display: inline-block;
4837
+ position: relative;
4838
+ height: 14px;
4839
+ width: 14px;
4840
+ border: 1px solid #555;
4841
+ border-radius: 2px;
4842
+ background-color: #fff;
4843
+ margin-right: 10px;
4844
+ vertical-align: middle;
4845
+ top: -2px;
4846
+ }
4847
+
4848
+ .woolentor-select-drop .select2-results__option--selected:before {
4849
+ content: "";
4850
+ color: #fff;
4851
+ border-color: transparent;
4852
+ background-image: url(../images/check.png);
4853
+ background-repeat: no-repeat;
4854
+ background-position: center center;
4855
+ border: 0;
4856
+ display: inline-block;
4857
+ padding-left: 3px;
4858
+ background-color: #00426E;
4859
+ }
4860
+
4861
+ .woolentor-select-drop .select2-results__options {
4862
+ width: 200px;
4863
+ margin: 0;
4864
+ }
4865
+
4866
+ .woolentor-select-drop .select2-results__options li{
4867
+ margin: 0;
4868
+ }
4869
+
4870
+ .woolentor-select-drop .select2-results__options li:first-child {
4871
+ border-radius: 10px 10px 0 0;
4872
+ }
4873
+
4874
+ .woolentor-select-drop .select2-results__options li:last-child {
4875
+ border-radius: 0 0 10px 10px;
4876
+ }
4877
+
4878
+ .woolentor-select-drop .select2-container--default .select2-results__option--highlighted[aria-selected="true"] {
4879
+ background-color: #C4C7E0;
4880
+ color: #272727;
4881
+ }
4882
+
4883
+ .woolentor-select-drop .select2-container--default .select2-results > .select2-results__options {
4884
+ max-height: 300px;
4885
+ }
4886
+
4887
+ .woolentor-select-drop .select2-container--default .select2-selection--multiple {
4888
+ margin-bottom: 10px;
4889
+ }
4890
+
4891
+ .woolentor-select-drop .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
4892
+ border-radius: 25px;
4893
+ height: 20px;
4894
+ }
4895
+
4896
+ .woolentor-filter-single-item .select2-container--default.select2-container--focus .select2-selection--multiple {
4897
+ border-color: #C4C7E0;
4898
+ border-width: 1px;
4899
+ outline: none;
4900
+ }
4901
+
4902
+ .woolentor-filter-single-item .select2-container--default .select2-selection--single .select2-selection__arrow {
4903
+ display: none;
4904
+ }
4905
+
4906
+ .woolentor-select-drop .select2-container--open .select2-dropdown--below {
4907
+ border-radius: 10px;
4908
+ top: 10px;
4909
+ border: 1px solid #ddd;
4910
+ width: 202px !important;
4911
+ }
4912
+ /* Product Horizontal Filter End */
4913
+
4914
+ /**
4915
+ * Theme support
4916
+ */
4917
+
4918
+ /* Hello Elementor */
4919
+ .woolentor_current_theme_hello-elementor.woocommerce .quantity .qty {
4920
+ padding-left: inherit;
4921
+ padding-right: inherit;
4922
+ text-align: center;
4923
+ }
4924
+
4925
+ /* twentytwentyone */
4926
+ .woolentor_current_theme_twentytwentyone.woocommerce span.onsale, .woolentor_current_theme_twentytwentyone span.onsale{
4927
+ left: auto;
4928
+ }
4929
+
4930
+ /**
4931
+ * Thirdparty plugin support
4932
+ */
4933
+ .woocommerce-cart .woolentor-page-template .woocommerce {
4934
+ -webkit-box-orient: vertical;
4935
+ -webkit-box-direction: normal;
4936
+ -ms-flex-flow: column;
4937
+ flex-flow: column;
4938
+ }
4939
+
4940
+ /* Normal :1366px. */
4941
+ @media (min-width: 1200px) and (max-width: 1400px) {
4942
+
4943
+ }
4944
+
4945
+ /* Normal desktop :992px. */
4946
+ @media (min-width: 992px) and (max-width: 1200px) {
4947
+ .cus-col-5.ht-col-md-6 {
4948
+ flex: 0 0 33.333%;
4949
+ max-width: 33.333%;
4950
+ }
4951
+ .elementor-section .elementor-container {
4952
+ padding: 0 15px;
4953
+ }
4954
+ .elementor-section.elementor-section-full_width .elementor-container {
4955
+ padding: 0;
4956
+ }
4957
+ }
4958
+
4959
+ /* Tablet desktop :768px. */
4960
+ @media (min-width: 768px) and (max-width: 991px) {
4961
+ .cus-col-5.ht-col-md-6 {
4962
+ flex: 0 0 50%;
4963
+ max-width: 50%;
4964
+ }
4965
+ .elementor-section .elementor-container {
4966
+ padding: 0 15px;
4967
+ }
4968
+ .elementor-section.elementor-section-full_width .elementor-container {
4969
+ padding: 0;
4970
+ }
4971
+
4972
+ .wl-columns-tablet-1 .wl-row > [class*="col-"]{
4973
+ -webkit-box-flex: 0;
4974
+ -webkit-flex: 0 0 100%;
4975
+ -ms-flex: 0 0 100%;
4976
+ flex: 0 0 100%;
4977
+ max-width: 100%;
4978
+ }
4979
+ .wl-columns-tablet-2 .wl-row > [class*="col-"]{
4980
+ -webkit-box-flex: 0;
4981
+ -webkit-flex: 0 0 50%;
4982
+ -ms-flex: 0 0 50%;
4983
+ flex: 0 0 50%;
4984
+ max-width: 50%;
4985
+ }
4986
+ .wl-columns-tablet-3 .wl-row > [class*="col-"]{
4987
+ -webkit-box-flex: 0;
4988
+ -webkit-flex: 0 0 33.333%;
4989
+ -ms-flex: 0 0 33.333%;
4990
+ flex: 0 0 33.333%;
4991
+ max-width: 33.333%;
4992
+ }
4993
+ .wl-columns-tablet-4 .wl-row > [class*="col-"]{
4994
+ -webkit-box-flex: 0;
4995
+ -webkit-flex: 0 0 25%;
4996
+ -ms-flex: 0 0 25%;
4997
+ flex: 0 0 25%;
4998
+ max-width: 25%;
4999
+ }
5000
+ .wl-columns-tablet-5 .wl-row > [class*="col-"]{
5001
+ -webkit-box-flex: 0;
5002
+ -webkit-flex: 0 0 20%;
5003
+ -ms-flex: 0 0 20%;
5004
+ flex: 0 0 20%;
5005
+ max-width: 20%;
5006
+ }
5007
+ .wl-columns-tablet-6 .wl-row > [class*="col-"]{
5008
+ -webkit-box-flex: 0;
5009
+ -webkit-flex: 0 0 16.666%;
5010
+ -ms-flex: 0 0 16.666%;
5011
+ flex: 0 0 16.666%;
5012
+ max-width: 16.666%;
5013
+ }
5014
+ .wl-columns-tablet-7 .wl-row > [class*="col-"]{
5015
+ -webkit-box-flex: 0;
5016
+ -webkit-flex: 0 0 14.285%;
5017
+ -ms-flex: 0 0 14.285%;
5018
+ flex: 0 0 14.285%;
5019
+ max-width: 14.285%;
5020
+ }
5021
+ .wl-columns-tablet-8 .wl-row > [class*="col-"]{
5022
+ -webkit-box-flex: 0;
5023
+ -webkit-flex: 0 0 12.5%;
5024
+ -ms-flex: 0 0 12.5%;
5025
+ flex: 0 0 12.5%;
5026
+ max-width: 12.5%;
5027
+ }
5028
+ .wl-columns-tablet-9 .wl-row > [class*="col-"]{
5029
+ -webkit-box-flex: 0;
5030
+ -webkit-flex: 0 0 11.111%;
5031
+ -ms-flex: 0 0 11.111%;
5032
+ flex: 0 0 11.111%;
5033
+ max-width: 11.111%;
5034
+ }
5035
+ .wl-columns-tablet-10 .wl-row > [class*="col-"]{
5036
+ -webkit-box-flex: 0;
5037
+ -webkit-flex: 0 0 10%;
5038
+ -ms-flex: 0 0 10%;
5039
+ flex: 0 0 10%;
5040
+ max-width: 10%;
5041
+ }
5042
+
5043
+ [class*="woolentorducts-columns-"] ul.products li.product{
5044
+ width: calc(50% - 15px) !important;
5045
+ margin-right: 15px !important;
5046
+ }
5047
+ .woolentorducts-columns-tablet-1 ul.products li.product{
5048
+ width: 100% !important;
5049
+ margin-right: 0 !important;
5050
+ }
5051
+ .woolentorducts-columns-tablet-2 ul.products li.product{
5052
+ width: calc(50% - 15px) !important;
5053
+ margin-right: 15px !important;
5054
+ float: left;
5055
+ }
5056
+ .woolentorducts-columns-tablet-3 ul.products li.product{
5057
+ width: calc(33.33% - 15px) !important;
5058
+ margin-right: 15px !important;
5059
+ float: left;
5060
+ }
5061
+ .woolentorducts-columns-tablet-4 ul.products li.product{
5062
+ width: calc(25% - 15px) !important;
5063
+ margin-right: 15px !important;
5064
+ float: left;
5065
+ }
5066
+ .woolentorducts-columns-tablet-5 ul.products li.product{
5067
+ width: calc(19% - 15px) !important;
5068
+ margin-right: 15px !important;
5069
+ float: left;
5070
+ }
5071
+ .woolentorducts-columns-tablet-6 ul.products li.product{
5072
+ width: calc(16% - 15px) !important;
5073
+ margin-right: 15px !important;
5074
+ float: left;
5075
+ }
5076
+
5077
+ [class*="woolentorducts-columns-tablet-"] ul.products li.product.first{
5078
+ clear: none !important;
5079
+ }
5080
+ .woolentorducts-columns-tablet-6 ul.products li.product:nth-child(6n),
5081
+ .woolentorducts-columns-tablet-5 ul.products li.product:nth-child(5n),
5082
+ .woolentorducts-columns-tablet-4 ul.products li.product:nth-child(4n),
5083
+ .woolentorducts-columns-tablet-3 ul.products li.product:nth-child(3n),
5084
+ .woolentorducts-columns-tablet-2 ul.products li.product:nth-child(2n),
5085
+ .woolentorducts-columns-tablet-1 ul.products li.product{
5086
+ margin-right: 0 !important;
5087
+ }
5088
+
5089
+ }
5090
+
5091
+ /* small mobile :320px. */
5092
+ @media (max-width: 767px) {
5093
+ .cus-col-5.ht-col-md-6 {
5094
+ flex: 0 0 100%;
5095
+ max-width: 100%;
5096
+ }
5097
+ .woolentor-banner-img,.woolentor-content{
5098
+ float: none;
5099
+ }
5100
+ .product-tab-list .nav a {
5101
+ margin-bottom: 10px;
5102
+ margin-right: 10px;
5103
+ padding: 5px 10px;
5104
+ }
5105
+ .elementor-section .elementor-container {
5106
+ padding: 0 15px;
5107
+ }
5108
+ .elementor-section.elementor-section-full_width .elementor-container {
5109
+ padding: 0;
5110
+ }
5111
+
5112
+ .woolentor-notification-content {
5113
+ width: 90%;
5114
+ }
5115
+ .woolentor-sticky-btn-area {
5116
+ justify-content: start;
5117
+ margin-top: 15px;
5118
+ }
5119
+ .wl-columns-mobile-1 .wl-row > [class*="col-"]{
5120
+ -webkit-box-flex: 0;
5121
+ -webkit-flex: 0 0 100%;
5122
+ -ms-flex: 0 0 100%;
5123
+ flex: 0 0 100%;
5124
+ max-width: 100%;
5125
+ }
5126
+ .wl-columns-mobile-2 .wl-row > [class*="col-"]{
5127
+ -webkit-box-flex: 0;
5128
+ -webkit-flex: 0 0 50%;
5129
+ -ms-flex: 0 0 50%;
5130
+ flex: 0 0 50%;
5131
+ max-width: 50%;
5132
+ }
5133
+ .wl-columns-mobile-3 .wl-row > [class*="col-"]{
5134
+ -webkit-box-flex: 0;
5135
+ -webkit-flex: 0 0 33.333%;
5136
+ -ms-flex: 0 0 33.333%;
5137
+ flex: 0 0 33.333%;
5138
+ max-width: 33.333%;
5139
+ }
5140
+ .wl-columns-mobile-4 .wl-row > [class*="col-"]{
5141
+ -webkit-box-flex: 0;
5142
+ -webkit-flex: 0 0 25%;
5143
+ -ms-flex: 0 0 25%;
5144
+ flex: 0 0 25%;
5145
+ max-width: 25%;
5146
+ }
5147
+ .wl-columns-mobile-5 .wl-row > [class*="col-"]{
5148
+ -webkit-box-flex: 0;
5149
+ -webkit-flex: 0 0 20%;
5150
+ -ms-flex: 0 0 20%;
5151
+ flex: 0 0 20%;
5152
+ max-width: 20%;
5153
+ }
5154
+ .wl-columns-mobile-6 .wl-row > [class*="col-"]{
5155
+ -webkit-box-flex: 0;
5156
+ -webkit-flex: 0 0 16.666%;
5157
+ -ms-flex: 0 0 16.666%;
5158
+ flex: 0 0 16.666%;
5159
+ max-width: 16.666%;
5160
+ }
5161
+ .wl-columns-mobile-7 .wl-row > [class*="col-"]{
5162
+ -webkit-box-flex: 0;
5163
+ -webkit-flex: 0 0 14.285%;
5164
+ -ms-flex: 0 0 14.285%;
5165
+ flex: 0 0 14.285%;
5166
+ max-width: 14.285%;
5167
+ }
5168
+ .wl-columns-mobile-8 .wl-row > [class*="col-"]{
5169
+ -webkit-box-flex: 0;
5170
+ -webkit-flex: 0 0 12.5%;
5171
+ -ms-flex: 0 0 12.5%;
5172
+ flex: 0 0 12.5%;
5173
+ max-width: 12.5%;
5174
+ }
5175
+ .wl-columns-mobile-9 .wl-row > [class*="col-"]{
5176
+ -webkit-box-flex: 0;
5177
+ -webkit-flex: 0 0 11.111%;
5178
+ -ms-flex: 0 0 11.111%;
5179
+ flex: 0 0 11.111%;
5180
+ max-width: 11.111%;
5181
+ }
5182
+ .wl-columns-mobile-10 .wl-row > [class*="col-"]{
5183
+ -webkit-box-flex: 0;
5184
+ -webkit-flex: 0 0 10%;
5185
+ -ms-flex: 0 0 10%;
5186
+ flex: 0 0 10%;
5187
+ max-width: 10%;
5188
+ }
5189
+
5190
+ .product-slider .slick-arrow.slick-next{
5191
+ right:0;
5192
+ }
5193
+ .product-slider .slick-arrow{
5194
+ left:0;
5195
+ }
5196
+
5197
+ .content-woolentorquickview.entry-summary,.ht-qwick-view-left {
5198
+ padding-right: 15px;
5199
+ }
5200
+
5201
+ [class*="woolentorducts-columns-"] ul.products li.product{
5202
+ width: 100% !important;
5203
+ }
5204
+ .woolentorducts-columns-mobile-1 ul.products li.product{
5205
+ width: 100% !important;
5206
+ margin-right: 0 !important;
5207
+ }
5208
+ .woolentorducts-columns-mobile-2 ul.products li.product{
5209
+ width: calc(50% - 15px) !important;
5210
+ margin-right: 15px !important;
5211
+ float: left;
5212
+ }
5213
+ .woolentorducts-columns-mobile-3 ul.products li.product{
5214
+ width: calc(33.33% - 15px) !important;
5215
+ margin-right: 15px !important;
5216
+ float: left;
5217
+ }
5218
+ .woolentorducts-columns-mobile-4 ul.products li.product{
5219
+ width: calc(25% - 15px) !important;
5220
+ margin-right: 15px !important;
5221
+ float: left;
5222
+ }
5223
+ .woolentorducts-columns-mobile-5 ul.products li.product{
5224
+ width: calc(19% - 15px) !important;
5225
+ margin-right: 15px !important;
5226
+ float: left;
5227
+ }
5228
+ .woolentorducts-columns-mobile-6 ul.products li.product{
5229
+ width: calc(16% - 15px) !important;
5230
+ margin-right: 15px !important;
5231
+ float: left;
5232
+ }
5233
+
5234
+ [class*="woolentorducts-columns-mobile-"] ul.products li.product.first{
5235
+ clear: none !important;
5236
+ }
5237
+ .woolentorducts-columns-mobile-6 ul.products li.product:nth-child(6n),
5238
+ .woolentorducts-columns-mobile-5 ul.products li.product:nth-child(5n),
5239
+ .woolentorducts-columns-mobile-4 ul.products li.product:nth-child(4n),
5240
+ .woolentorducts-columns-mobile-3 ul.products li.product:nth-child(3n),
5241
+ .woolentorducts-columns-mobile-2 ul.products li.product:nth-child(2n),
5242
+ .woolentorducts-columns-mobile-1 ul.products li.product{
5243
+ margin-right: 0 !important;
5244
+ }
5245
+
5246
+ }
5247
+
5248
+ /* Large Mobile :480px. */
5249
+ @media only screen and (min-width: 480px) and (max-width: 767px) {
5250
+
5251
+ }
5252
+
5253
+ .woolentor-qrcode img{
5254
+ display:inline-block;
5255
+ }
assets/images/check.png ADDED
Binary file
assets/images/selector-icon.png ADDED
Binary file
assets/js/accordion.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Accordion v2.8.0
3
+ * Simple accordion created in pure Javascript.
4
+ * https://github.com/michu2k/Accordion
5
+ *
6
+ * Copyright 2017-2019 Michał Strumpf
7
+ * Published under MIT License
8
+ */
9
+ "use strict";!function(i){function u(o,l){var c=this,t={init:function(){if(Array.isArray(o))return o.length&&o.map(function(e){return new u(e,l)}),!1;this.options=h({duration:600,itemNumber:0,aria:!0,closeOthers:!0,showItem:!1,elementClass:"ac",questionClass:"ac-q",answerClass:"ac-a",targetClass:"ac-target",onToggle:function(){}},l),this.container=document.querySelector(o),this.elements=this.container.querySelectorAll("."+this.options.elementClass);var e=this.options,t=e.aria,n=e.showItem,i=e.itemNumber;t&&this.container.setAttribute("role","tablist");for(var s=0;s<this.elements.length;s++){var r=this.elements[s];r.classList.add("js-enabled"),this.hideElement(r),this.setTransition(r),this.generateID(r),t&&this.setARIA(r)}if(n){var a=this.elements[0];"number"==typeof i&&i<this.elements.length&&(a=this.elements[i]),this.toggleElement(a,!1)}c.attachEvents()},setTransition:function(e){var t=this.options,n=t.duration,i=t.answerClass,s=e.querySelector("."+i),r=a("transition");s.style[r]=n+"ms"},generateID:function(e){e.setAttribute("id","ac-".concat(s)),s++},setARIA:function(e){var t=this.options,n=t.questionClass,i=t.answerClass,s=e.querySelector("."+n),r=e.querySelector("."+i);s.setAttribute("role","tab"),s.setAttribute("aria-expanded","false"),r.setAttribute("role","tabpanel")},updateARIA:function(e,t){var n=this.options.questionClass;e.querySelector("."+n).setAttribute("aria-expanded",t)},callSpecificElement:function(e){for(var t=e.target,n=this.options,i=n.questionClass,s=n.targetClass,r=n.closeOthers,a=0;a<this.elements.length;a++)if(this.elements[a].contains(t)){(t.className.match(i)||t.className.match(s))&&(e.preventDefault(),r&&this.closeAllElements(a),this.toggleElement(this.elements[a]));break}},hideElement:function(e){var t=this.options.answerClass;e.querySelector("."+t).style.height=0},toggleElement:function(e,t){var n,i=!(1<arguments.length&&void 0!==t)||t,s=this.options,r=s.answerClass,a=s.aria,o=s.onToggle,l=e.querySelector("."+r),c=l.scrollHeight;e.classList.toggle("is-active"),i||(l.style.height="auto"),0<parseInt(l.style.height)?(n=!1,requestAnimationFrame(function(){l.style.height=0})):(n=!0,requestAnimationFrame(function(){l.style.height=c+"px"})),a&&this.updateARIA(e,n),i&&o(e,this.elements)},closeAllElements:function(e){for(var t=this.options.aria,n=this.elements.length,i=0;i<n;i++)if(i!=e){var s=this.elements[i];s.classList.contains("is-active")&&s.classList.remove("is-active"),t&&this.updateARIA(s,!1),this.hideElement(s)}},resizeHandler:function(){for(var e,t,n=this.options,i=n.elementClass,s=n.answerClass,r=this.container.querySelectorAll("."+i+".is-active"),a=0;a<r.length;a++)t=r[a].querySelector("."+s),requestAnimationFrame(function(){t.style.height="auto",e=t.offsetHeight,requestAnimationFrame(function(){t.style.height=e+"px"})})},clickHandler:function(e){this.callSpecificElement(e)},keydownHandler:function(e){13===e.keyCode&&this.callSpecificElement(e)}};this.attachEvents=function(){var e=t;e.clickHandler=e.clickHandler.bind(e),e.keydownHandler=e.keydownHandler.bind(e),e.resizeHandler=e.resizeHandler.bind(e),e.container.addEventListener("click",e.clickHandler),e.container.addEventListener("keydown",e.keydownHandler),i.addEventListener("resize",e.resizeHandler)},this.detachEvents=function(){var e=t;e.container.removeEventListener("click",e.clickHandler),e.container.removeEventListener("keydown",e.keydownHandler),i.removeEventListener("resize",e.resizeHandler)};var a=function(e){return"string"==typeof document.documentElement.style[e]?e:(e=n(e),e="webkit".concat(e))},n=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},h=function(e,t){for(var n in t)e[n]=t[n];return e};i.requestAnimationFrame=i.requestAnimationFrame||i.webkitRequestAnimationFrame||function(e){i.setTimeout(e,1e3/60)},t.init()}var s=0;"undefined"!=typeof module&&void 0!==module.exports?module.exports=u:i.Accordion=u}(window);
assets/js/select2.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! Select2 4.1.0-beta.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
2
+ !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,i,h,s,o,f,g,m,v,y,_,r,a,b;function w(e,t){return r.call(e,t)}function l(e,t){var n,i,r,s,o,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(o=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[o])&&(e[o]=e[o].replace(b,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u<e.length;u++)if("."===(p=e[u]))e.splice(u,1),u-=1;else if(".."===p){if(0===u||1===u&&".."===e[2]||".."===e[u-1])continue;0<u&&(e.splice(u-1,2),u-=2)}e=e.join("/")}if((h||g)&&f){for(u=(n=e.split("/")).length;0<u;u-=1){if(i=n.slice(0,u).join("/"),h)for(d=h.length;0<d;d-=1)if(r=(r=f[h.slice(0,d).join("/")])&&r[i]){s=r,a=u;break}if(s)break;!l&&g&&g[i]&&(l=g[i],c=u)}!s&&l&&(s=l,a=c),s&&(n.splice(0,a,s),e=n.join("/"))}return e}function x(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),o.apply(h,e.concat([t,n]))}}function A(t){return function(e){m[t]=e}}function D(e){if(w(v,e)){var t=v[e];delete v[e],_[e]=!0,s.apply(h,t)}if(!w(m,e)&&!w(_,e))throw new Error("No "+e);return m[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function S(e){return e?c(e):[]}return e&&e.requirejs||(e?n=e:e={},m={},v={},y={},_={},r=Object.prototype.hasOwnProperty,a=[].slice,b=/\.js$/,f=function(e,t){var n,i=c(e),r=i[0],s=t[1];return e=i[1],r&&(n=D(r=l(r,s))),r?e=n&&n.normalize?n.normalize(e,function(t){return function(e){return l(e,t)}}(s)):l(e,s):(r=(i=c(e=l(e,s)))[0],e=i[1],r&&(n=D(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},g={require:function(e){return x(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:function(e){return function(){return y&&y.config&&y.config[e]||{}}}(e)}}},s=function(e,t,n,i){var r,s,o,a,l,c,u,d=[],p=typeof n;if(c=S(i=i||e),"undefined"==p||"function"==p){for(t=!t.length&&n.length?["require","exports","module"]:t,l=0;l<t.length;l+=1)if("require"===(s=(a=f(t[l],c)).f))d[l]=g.require(e);else if("exports"===s)d[l]=g.exports(e),u=!0;else if("module"===s)r=d[l]=g.module(e);else if(w(m,s)||w(v,s)||w(_,s))d[l]=D(s);else{if(!a.p)throw new Error(e+" missing "+s);a.p.load(a.n,x(i,!0),A(s),{}),d[l]=m[s]}o=n?n.apply(m[e],d):void 0,e&&(r&&r.exports!==h&&r.exports!==m[e]?m[e]=r.exports:o===h&&u||(m[e]=o))}else e&&(m[e]=n)},t=n=o=function(e,t,n,i,r){if("string"==typeof e)return g[e]?g[e](t):D(f(e,S(t)).f);if(!e.splice){if((y=e).deps&&o(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=h}return t=t||function(){},"function"==typeof n&&(n=i,i=r),i?s(h,e,t,n):setTimeout(function(){s(h,e,t,n)},4),o},o.config=function(e){return o(e)},t._defined=m,(i=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),w(m,e)||w(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0},e.requirejs=t,e.require=n,e.define=i),e.define("almond",function(){}),e.define("jquery",[],function(){var e=u||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),e.define("select2/utils",["jquery"],function(s){var r={};function u(e){var t=e.prototype,n=[];for(var i in t){"function"==typeof t[i]&&"constructor"!==i&&n.push(i)}return n}r.Extend=function(e,t){var n={}.hasOwnProperty;function i(){this.constructor=e}for(var r in t)n.call(t,r)&&(e[r]=t[r]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},r.Decorate=function(i,r){var e=u(r),t=u(i);function s(){var e=Array.prototype.unshift,t=r.prototype.constructor.length,n=i.prototype.constructor;0<t&&(e.call(arguments,i.prototype.constructor),n=r.prototype.constructor),n.apply(this,arguments)}r.displayName=i.displayName,s.prototype=new function(){this.constructor=s};for(var n=0;n<t.length;n++){var o=t[n];s.prototype[o]=i.prototype[o]}function a(e){var t=function(){};e in s.prototype&&(t=s.prototype[e]);var n=r.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}for(var l=0;l<e.length;l++){var c=e[l];s.prototype[c]=a(c)}return s};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,i=e.length;n<i;n++)e[n].apply(this,t)},r.Observable=e,r.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},r.bind=function(e,t){return function(){e.apply(t,arguments)}},r._convertData=function(e){for(var t in e){var n=t.split("-"),i=e;if(1!==n.length){for(var r=0;r<n.length;r++){var s=n[r];(s=s.substring(0,1).toLowerCase()+s.substring(1))in i||(i[s]={}),r==n.length-1&&(i[s]=e[t]),i=i[s]}delete e[t]}}return e},r.hasScroll=function(e,t){var n=s(t),i=t.style.overflowX,r=t.style.overflowY;return(i!==r||"hidden"!==r&&"visible"!==r)&&("scroll"===i||"scroll"===r||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},r.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},r.__cache={};var n=0;return r.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null!=t||(t=e.id?"select2-data-"+e.id:"select2-data-"+(++n).toString()+"-"+r.generateChars(4),e.setAttribute("data-select2-id",t)),t},r.StoreData=function(e,t,n){var i=r.GetUniqueElementId(e);r.__cache[i]||(r.__cache[i]={}),r.__cache[i][t]=n},r.GetData=function(e,t){var n=r.GetUniqueElementId(e);return t?r.__cache[n]&&null!=r.__cache[n][t]?r.__cache[n][t]:s(e).data(t):r.__cache[n]},r.RemoveData=function(e){var t=r.GetUniqueElementId(e);null!=r.__cache[t]&&delete r.__cache[t],e.removeAttribute("data-select2-id")},r.copyNonInternalCssClasses=function(e,t){var n=e.getAttribute("class").trim().split(/\s+/);n=n.filter(function(e){return 0===e.indexOf("select2-")});var i=t.getAttribute("class").trim().split(/\s+/);i=i.filter(function(e){return 0!==e.indexOf("select2-")});var r=n.concat(i);e.setAttribute("class",r.join(" "))},r}),e.define("select2/results",["jquery","./utils"],function(h,f){function i(e,t,n){this.$element=e,this.data=n,this.options=t,i.__super__.constructor.call(this)}return f.Extend(i,f.Observable),i.prototype.render=function(){var e=h('<ul class="select2-results__options" role="listbox"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},i.prototype.clear=function(){this.$results.empty()},i.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),i=this.options.get("translations").get(e.message);n.append(t(i(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},i.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},i.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var i=e.results[n],r=this.option(i);t.push(r)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},i.prototype.position=function(e,t){t.find(".select2-results").append(e)},i.prototype.sort=function(e){return this.options.get("sorter")(e)},i.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option--selectable"),t=e.filter(".select2-results__option--selected");0<t.length?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},i.prototype.setClasses=function(){var t=this;this.data.current(function(e){var i=e.map(function(e){return e.id.toString()});t.$results.find(".select2-results__option--selectable").each(function(){var e=h(this),t=f.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<i.indexOf(n)?(this.classList.add("select2-results__option--selected"),e.attr("aria-selected","true")):(this.classList.remove("select2-results__option--selected"),e.attr("aria-selected","false"))})})},i.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},i.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},i.prototype.option=function(e){var t=document.createElement("li");t.classList.add("select2-results__option"),t.classList.add("select2-results__option--selectable");var n={role:"option"},i=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(var r in(null!=e.element&&i.call(e.element,":disabled")||null==e.element&&e.disabled)&&(n["aria-disabled"]="true",t.classList.remove("select2-results__option--selectable"),t.classList.add("select2-results__option--disabled")),null==e.id&&t.classList.remove("select2-results__option--selectable"),null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(n.role="group",n["aria-label"]=e.text,t.classList.remove("select2-results__option--selectable"),t.classList.add("select2-results__option--group")),n){var s=n[r];t.setAttribute(r,s)}if(e.children){var o=h(t),a=document.createElement("strong");a.className="select2-results__group",this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],d=this.option(u);l.push(d)}var p=h("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});p.append(l),o.append(a),o.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},i.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");e.hasClass("select2-results__option--selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find(".select2-results__option--selectable"),n=t.index(e);if(!(n<=0)){var i=n-1;0===e.length&&(i=0);var r=t.eq(i);r.trigger("mouseenter");var s=l.$results.offset().top,o=r.offset().top,a=l.$results.scrollTop()+(o-s);0===i?l.$results.scrollTop(0):o-s<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find(".select2-results__option--selectable"),n=t.index(e)+1;if(!(n>=t.length)){var i=t.eq(n);i.trigger("mouseenter");var r=l.$results.offset().top+l.$results.outerHeight(!1),s=i.offset().top+i.outerHeight(!1),o=l.$results.scrollTop()+s-r;0===n?l.$results.scrollTop(0):r<s&&l.$results.scrollTop(o)}}),t.on("results:focus",function(e){e.element[0].classList.add("select2-results__option--highlighted"),e.element[0].setAttribute("aria-selected","true")}),t.on("results:message",function(e){l.displayMessage(e)}),h.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=l.$results.scrollTop(),n=l.$results.get(0).scrollHeight-t+e.deltaY,i=0<e.deltaY&&t-e.deltaY<=0,r=e.deltaY<0&&n<=l.$results.height();i?(l.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):r&&(l.$results.scrollTop(l.$results.get(0).scrollHeight-l.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option--selectable",function(e){var t=h(this),n=f.GetData(this,"data");t.hasClass("select2-results__option--selected")?l.options.get("multiple")?l.trigger("unselect",{originalEvent:e,data:n}):l.trigger("close",{}):l.trigger("select",{originalEvent:e,data:n})}),this.$results.on("mouseenter",".select2-results__option--selectable",function(e){var t=f.GetData(this,"data");l.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),l.trigger("results:focus",{data:t,element:h(this)})})},i.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},i.prototype.destroy=function(){this.$results.remove()},i.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find(".select2-results__option--selectable").index(e),n=this.$results.offset().top,i=e.offset().top,r=this.$results.scrollTop()+(i-n),s=i-n;r-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(s>this.$results.outerHeight()||s<0)&&this.$results.scrollTop(r)}},i.prototype.template=function(e,t){var n=this.options.get("templateResult"),i=this.options.get("escapeMarkup"),r=n(e,t);null==r?t.style.display="none":"string"==typeof r?t.innerHTML=i(r):h(t).append(r)},i}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,i,r){function s(e,t){this.$element=e,this.options=t,s.__super__.constructor.call(this)}return i.Extend(s,i.Observable),s.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=i.GetData(this.$element[0],"old-tabindex")?this._tabindex=i.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},s.prototype.bind=function(e,t){var n=this,i=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===r.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",i),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},s.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},s.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&i.GetData(this,"element").select2("close")})})},s.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},s.prototype.position=function(e,t){t.find(".selection").append(e)},s.prototype.destroy=function(){this._detachCloseHandler(this.container)},s.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},s.prototype.isEnabled=function(){return!this.isDisabled()},s.prototype.isDisabled=function(){return this.options.get("disabled")},s}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function r(){r.__super__.constructor.apply(this,arguments)}return n.Extend(r,t),r.prototype.render=function(){var e=r.__super__.render.call(this);return e[0].classList.add("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},r.prototype.bind=function(t,e){var n=this;r.__super__.bind.apply(this,arguments);var i=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",i),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},r.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},r.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},r.prototype.selectionContainer=function(){return e("<span></span>")},r.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i);var r=t.title||t.text;r?n.attr("title",r):n.removeAttr("title")}else this.clear()},r}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(r,e,d){function s(e,t){s.__super__.constructor.apply(this,arguments)}return d.Extend(s,e),s.prototype.render=function(){var e=s.__super__.render.call(this);return e[0].classList.add("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},s.prototype.bind=function(e,t){var i=this;s.__super__.bind.apply(this,arguments);var n=e.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",n),this.$selection.on("click",function(e){i.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!i.isDisabled()){var t=r(this).parent(),n=d.GetData(t[0],"data");i.trigger("unselect",{originalEvent:e,data:n})}}),this.$selection.on("keydown",".select2-selection__choice__remove",function(e){i.isDisabled()||e.stopPropagation()})},s.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},s.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},s.prototype.selectionContainer=function(){return r('<li class="select2-selection__choice"><button type="button" class="select2-selection__choice__remove" tabindex="-1"><span aria-hidden="true">&times;</span></button><span class="select2-selection__choice__display"></span></li>')},s.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=this.$selection.find(".select2-selection__rendered").attr("id")+"-choice-",i=0;i<e.length;i++){var r=e[i],s=this.selectionContainer(),o=this.display(r,s),a=n+d.generateChars(4)+"-";r.id?a+=r.id:a+=d.generateChars(4),s.find(".select2-selection__choice__display").append(o).attr("id",a);var l=r.title||r.text;l&&s.attr("title",l);var c=this.options.get("translations").get("removeItem"),u=s.find(".select2-selection__choice__remove");u.attr("title",c()),u.attr("aria-label",c()),u.attr("aria-describedby",a),d.StoreData(s[0],"data",r),t.push(s)}this.$selection.find(".select2-selection__rendered").append(t)}},s}),e.define("select2/selection/placeholder",[],function(){function e(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n[0].classList.add("select2-selection__placeholder"),n[0].classList.remove("select2-selection__choice"),n},e.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();var i=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(i)},e}),e.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(s,i,a){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){i._handleClear(e)}),t.on("keypress",function(e){i._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var i=a.GetData(n[0],"data"),r=this.$element.val();this.$element.val(this.placeholder.id);var s={data:i};if(this.trigger("clear",s),s.prevented)this.$element.val(r);else{for(var o=0;o<i.length;o++)if(s={data:i[o]},this.trigger("unselect",s),s.prevented)return void this.$element.val(r);this.$element.trigger("input").trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=i.DELETE&&t.which!=i.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){if(e.call(this,t),this.$selection.find(".select2-selection__clear").remove(),!(0<this.$selection.find(".select2-selection__placeholder").length||0===t.length)){var n=this.$selection.find(".select2-selection__rendered").attr("id"),i=this.options.get("translations").get("removeAllItems"),r=s('<button type="button" class="select2-selection__clear" tabindex="-1"><span aria-hidden="true">&times;</span></button>');r.attr("title",i()),r.attr("aria-label",i()),r.attr("aria-describedby",n),a.StoreData(r[0],"data",t),this.$selection.prepend(r)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(i,l,c){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=i('<span class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');this.$searchContainer=t,this.$search=t.find("input"),this.$search.prop("autocomplete",this.options.get("autocomplete"));var n=e.call(this);return this._transferTabIndex(),n.append(this.$searchContainer),n},e.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results",s=t.id+"-container";e.call(this,t,n),i.$search.attr("aria-describedby",s),t.on("open",function(){i.$search.attr("aria-controls",r),i.$search.trigger("focus")}),t.on("close",function(){i.$search.val(""),i.resizeSearch(),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.trigger("focus")}),t.on("enable",function(){i.$search.prop("disabled",!1),i._transferTabIndex()}),t.on("disable",function(){i.$search.prop("disabled",!0)}),t.on("focus",function(e){i.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){i.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){i._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented(),e.which===c.BACKSPACE&&""===i.$search.val()){var t=i.$selection.find(".select2-selection__choice").last();if(0<t.length){var n=l.GetData(t[0],"data");i.searchRemoveChoice(n),e.preventDefault()}}}),this.$selection.on("click",".select2-search--inline",function(e){i.$search.val()&&e.stopPropagation()});var o=document.documentMode,a=o&&o<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){a?i.$selection.off("input.search input.searchcheck"):i.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(a&&"input"===e.type)i.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=c.SHIFT&&t!=c.CTRL&&t!=c.ALT&&t!=c.TAB&&i.handleSearch(e)}})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="100%";""===this.$search.attr("placeholder")&&(e=.75*(this.$search.val().length+1)+"em");this.$search.css("width",e)},e}),e.define("select2/selection/selectionCss",["../utils"],function(i){function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("selectionCssClass")||"";return-1!==n.indexOf(":all:")&&(n=n.replace(":all:",""),i.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(n),t},e}),e.define("select2/selection/eventRelay",["jquery"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var i=this,r=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],s=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){if(-1!==r.indexOf(e)){t=t||{};var n=o.Event("select2:"+e,{params:t});i.$element.trigger(n),-1!==s.indexOf(e)&&(t.prevented=n.isDefaultPrevented())}})},e}),e.define("select2/translation",["jquery","require"],function(t,n){function i(e){this.dict=e||{}}return i.prototype.all=function(){return this.dict},i.prototype.get=function(e){return this.dict[e]},i.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},i._cache={},i.loadPath=function(e){if(!(e in i._cache)){var t=n(e);i._cache[e]=t}return new i(i._cache[e])},i}),e.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Œ":"OE","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","œ":"oe","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ώ":"ω","ς":"σ","’":"'"}}),e.define("select2/data/base",["../utils"],function(i){function n(e,t){n.__super__.constructor.call(this)}return i.Extend(n,i.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=e.id+"-result-";return n+=i.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+i.generateChars(4),n},n}),e.define("select2/data/select",["./base","../utils","jquery"],function(e,l,c){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return l.Extend(n,e),n.prototype.current=function(e){var t=this;e(Array.prototype.map.call(this.$element[0].querySelectorAll(":checked"),function(e){return t.item(c(e))}))},n.prototype.select=function(r){var s=this;if(r.selected=!0,null!=r.element&&"option"===r.element.tagName.toLowerCase())return r.element.selected=!0,void this.$element.trigger("input").trigger("change");if(this.$element.prop("multiple"))this.current(function(e){var t=[];(r=[r]).push.apply(r,e);for(var n=0;n<r.length;n++){var i=r[n].id;-1===t.indexOf(i)&&t.push(i)}s.$element.val(t),s.$element.trigger("input").trigger("change")});else{var e=r.id;this.$element.val(e),this.$element.trigger("input").trigger("change")}},n.prototype.unselect=function(r){var s=this;if(this.$element.prop("multiple")){if(r.selected=!1,null!=r.element&&"option"===r.element.tagName.toLowerCase())return r.element.selected=!1,void this.$element.trigger("input").trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n].id;i!==r.id&&-1===t.indexOf(i)&&t.push(i)}s.$element.val(t),s.$element.trigger("input").trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){l.RemoveData(this)})},n.prototype.query=function(i,e){var r=[],s=this;this.$element.children().each(function(){if("option"===this.tagName.toLowerCase()||"optgroup"===this.tagName.toLowerCase()){var e=c(this),t=s.item(e),n=s.matches(i,t);null!==n&&r.push(n)}}),e({results:r})},n.prototype.addOptions=function(e){this.$element.append(e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=this._normalizeItem(e);return n.element=t,l.StoreData(t,"data",n),c(t)},n.prototype.item=function(e){var t={};if(null!=(t=l.GetData(e[0],"data")))return t;var n=e[0];if("option"===n.tagName.toLowerCase())t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if("optgroup"===n.tagName.toLowerCase()){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var i=e.children("option"),r=[],s=0;s<i.length;s++){var o=c(i[s]),a=this.item(o);r.push(a)}t.children=r}return(t=this._normalizeItem(t)).element=e[0],l.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=c.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),c.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),e.define("select2/data/array",["./select","../utils","jquery"],function(e,t,f){function i(e,t){this._dataToConvert=t.get("data")||[],i.__super__.constructor.call(this,e,t)}return t.Extend(i,e),i.prototype.bind=function(e,t){i.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},i.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),i.__super__.select.call(this,n)},i.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),i=n.map(function(){return t.item(f(this)).id}).get(),r=[];function s(e){return function(){return f(this).val()==e.id}}for(var o=0;o<e.length;o++){var a=this._normalizeItem(e[o]);if(0<=i.indexOf(a.id)){var l=n.filter(s(a)),c=this.item(l),u=f.extend(!0,{},a,c),d=this.option(u);l.replaceWith(d)}else{var p=this.option(a);if(a.children){var h=this.convertToOptions(a.children);p.append(h)}r.push(p)}}return r},i}),e.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,s){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return s.extend({},e,{q:e.term})},transport:function(e,t,n){var i=s.ajax(e);return i.then(t),i.fail(n),i}};return s.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(n,i){var r=this;null!=this._request&&(s.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var t=s.extend({type:"GET"},this.ajaxOptions);function e(){var e=t.transport(t,function(e){var t=r.processResults(e,n);r.options.get("debug")&&window.console&&console.error&&(t&&t.results&&Array.isArray(t.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),i(t)},function(){"status"in e&&(0===e.status||"0"===e.status)||r.trigger("results:message",{message:"errorLoading"})});r._request=e}"function"==typeof t.url&&(t.url=t.url.call(this.$element,n)),"function"==typeof t.data&&(t.data=t.data.call(this.$element,n)),this.ajaxOptions.delay&&null!=n.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),e.define("select2/data/tags",["jquery"],function(t){function e(e,t,n){var i=n.get("tags"),r=n.get("createTag");void 0!==r&&(this.createTag=r);var s=n.get("insertTag");if(void 0!==s&&(this.insertTag=s),e.call(this,t,n),Array.isArray(i))for(var o=0;o<i.length;o++){var a=i[o],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var i=t.results,r=0;r<i.length;r++){var s=i[r],o=null!=s.children&&!e({results:s.children},!0);if((s.text||"").toUpperCase()===(c.term||"").toUpperCase()||o)return!n&&(t.data=i,void u(t))}if(n)return!0;var a=d.createTag(c);if(null!=a){var l=d.option(a);l.attr("data-select2-tag",!0),d.addOptions([l]),d.insertTag(i,a)}t.results=i,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){if(null==t.term)return null;var n=t.term.trim();return""===n?null:{id:n,text:n}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find("option[data-select2-tag]").each(function(){this.selected||t(this).remove()})},e}),e.define("select2/data/tokenizer",["jquery"],function(d){function e(e,t,n){var i=n.get("tokenizer");void 0!==i&&(this.tokenizer=i),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var i=this;t.term=t.term||"";var r=this.tokenizer(t,this.options,function(e){var t=i._normalizeItem(e);if(!i.$element.find("option").filter(function(){return d(this).val()===t.id}).length){var n=i.option(t);n.attr("data-select2-tag",!0),i._removeOldTags(),i.addOptions([n])}!function(e){i.trigger("select",{data:e})}(t)});r.term!==t.term&&(this.$search.length&&(this.$search.val(r.term),this.$search.trigger("focus")),t.term=r.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,i){for(var r=n.get("tokenSeparators")||[],s=t.term,o=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};o<s.length;){var l=s[o];if(-1!==r.indexOf(l)){var c=s.substr(0,o),u=a(d.extend({},t,{term:c}));null!=u?(i(u),s=s.substr(o+1)||"",o=0):o++}else o++}return{term:s}},e}),e.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(){i._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var i=this;this._checkIfMaximumSelected(function(){e.call(i,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var i=this;this.current(function(e){var t=null!=e?e.length:0;0<i.maximumSelectionLength&&t>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery"],function(s){function e(){}return e.prototype.render=function(e){var t=e.call(this),n=s('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');return this.$searchContainer=n,this.$search=n.find("input"),this.$search.prop("autocomplete",this.options.get("autocomplete")),t.prepend(n),t},e.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){s(this).off("keyup")}),this.$search.on("keyup input",function(e){i.handleSearch(e)}),t.on("open",function(){i.$search.attr("tabindex",0),i.$search.attr("aria-controls",r),i.$search.trigger("focus"),window.setTimeout(function(){i.$search.trigger("focus")},0)}),t.on("close",function(){i.$search.attr("tabindex",-1),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.val(""),i.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||i.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(i.showSearch(e)?i.$searchContainer[0].classList.remove("select2-search--hide"):i.$searchContainer[0].classList.add("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")})},e.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},e.prototype.showSearch=function(e,t){return!0},e}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;0<=i;i--){var r=t[i];this.placeholder.id===r.id&&n.splice(i,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("query",function(e){i.lastParams=e,i.loading=!0}),t.on("query:append",function(e){i.lastParams=e,i.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),i._bindContainerResultHandlers(t)}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t[0].classList.remove("select2"),t[0].classList.add("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f("<span></span>"),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,i="scroll.select2."+t.id,r="resize.select2."+t.id,s="orientationchange.select2."+t.id,o=this.$container.parents().filter(a.hasScroll);o.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),o.on(i,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(i+" "+r+" "+s,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,i="resize.select2."+t.id,r="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+i+" "+r)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown[0].classList.contains("select2-dropdown--above"),n=this.$dropdown[0].classList.contains("select2-dropdown--below"),i=null,r=this.$container.offset();r.bottom=r.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=r.top,s.bottom=r.top+s.height;var o=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<r.top-o,u=l>r.bottom+o,d={left:r.left,top:s.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(i="below"),u||!c||t?!c&&u&&t&&(i="below"):i="above",("above"==i||t&&"below"!==i)&&(d.top=s.top-h.top-o),null!=i&&(this.$dropdown[0].classList.remove("select2-dropdown--below"),this.$dropdown[0].classList.remove("select2-dropdown--above"),this.$dropdown[0].classList.add("select2-dropdown--"+i),this.$container[0].classList.remove("select2-container--below"),this.$container[0].classList.remove("select2-container--above"),this.$container[0].classList.add("select2-container--"+i)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,i=0;i<t.length;i++){var r=t[i];r.children?n+=e(r.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),e.define("select2/dropdown/selectOnClose",["../utils"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("close",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var i=this.getHighlightedResults();if(!(i.length<1)){var r=s.GetData(i[0],"data");null!=r.element&&r.element.selected||null==r.element&&r.selected||this.trigger("select",{data:r})}},e}),e.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(e){i._selectTriggered(e)}),t.on("unselect",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),e.define("select2/dropdown/dropdownCss",["../utils"],function(i){function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("dropdownCssClass")||"";return-1!==n.indexOf(":all:")&&(n=n.replace(":all:",""),i.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(n),t},e}),e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"},removeItem:function(){return"Remove item"}}}),e.define("select2/defaults",["jquery","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/selectionCss","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./dropdown/dropdownCss","./i18n/en"],function(l,s,o,a,c,u,d,p,h,f,g,t,m,v,y,_,b,$,w,x,A,D,S,E,O,C,L,T,q,e){function n(){this.reset()}return n.prototype.apply=function(e){if(null==(e=l.extend(!0,{},this.defaults,e)).dataAdapter&&(null!=e.ajax?e.dataAdapter=y:null!=e.data?e.dataAdapter=v:e.dataAdapter=m,0<e.minimumInputLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,$)),0<e.maximumInputLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,w)),0<e.maximumSelectionLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,x)),e.tags&&(e.dataAdapter=f.Decorate(e.dataAdapter,_)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=f.Decorate(e.dataAdapter,b))),null==e.resultsAdapter&&(e.resultsAdapter=s,null!=e.ajax&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,E)),null!=e.placeholder&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,S)),e.selectOnClose&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,L))),null==e.dropdownAdapter){if(e.multiple)e.dropdownAdapter=A;else{var t=f.Decorate(A,D);e.dropdownAdapter=t}0!==e.minimumResultsForSearch&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,C)),e.closeOnSelect&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,T)),null!=e.dropdownCssClass&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,q)),e.dropdownAdapter=f.Decorate(e.dropdownAdapter,O)}null==e.selectionAdapter&&(e.multiple?e.selectionAdapter=a:e.selectionAdapter=o,null!=e.placeholder&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,c)),e.allowClear&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,u)),e.multiple&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,d)),null!=e.selectionCssClass&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,p)),e.selectionAdapter=f.Decorate(e.selectionAdapter,h)),e.language=this._resolveLanguage(e.language),e.language.push("en");for(var n=[],i=0;i<e.language.length;i++){var r=e.language[i];-1===n.indexOf(r)&&n.push(r)}return e.language=n,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdLanguageBase:"./i18n/",autocomplete:"off",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:f.escapeMarkup,language:{},matcher:function e(t,n){if(null==t.term||""===t.term.trim())return n;if(n.children&&0<n.children.length){for(var i=l.extend(!0,{},n),r=n.children.length-1;0<=r;r--)null==e(t,n.children[r])&&i.children.splice(r,1);return 0<i.children.length?i:e(t,i)}var s=a(n.text).toUpperCase(),o=a(t.term).toUpperCase();return-1<s.indexOf(o)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.applyFromElement=function(e,t){var n=e.language,i=this.defaults.language,r=t.prop("lang"),s=t.closest("[lang]").prop("lang"),o=Array.prototype.concat.call(this._resolveLanguage(r),this._resolveLanguage(n),this._resolveLanguage(i),this._resolveLanguage(s));return e.language=o,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(l.isEmptyObject(e))return[];if(l.isPlainObject(e))return[e];var t;t=Array.isArray(e)?e:[e];for(var n=[],i=0;i<t.length;i++)if(n.push(t[i]),"string"==typeof t[i]&&0<t[i].indexOf("-")){var r=t[i].split("-")[0];n.push(r)}return n},n.prototype._processTranslations=function(e,t){for(var n=new g,i=0;i<e.length;i++){var r=new g,s=e[i];if("string"==typeof s)try{r=g.loadPath(s)}catch(e){try{s=this.defaults.amdLanguageBase+s,r=g.loadPath(s)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for "'+s+'" could not be automatically loaded. A fallback will be used instead.')}}else r=l.isPlainObject(s)?new g(s):s;n.extend(r)}return n},n.prototype.set=function(e,t){var n={};n[l.camelCase(e)]=t;var i=f._convertData(n);l.extend(!0,this.defaults,i)},new n}),e.define("select2/options",["jquery","./defaults","./utils"],function(d,n,p){function e(e,t){this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=n.applyFromElement(this.options,t)),this.options=n.apply(this.options)}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.autocomplete&&e.prop("autocomplete")&&(this.options.autocomplete=e.prop("autocomplete")),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),p.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),p.StoreData(e[0],"data",p.GetData(e[0],"select2Tags")),p.StoreData(e[0],"tags",!0)),p.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",p.GetData(e[0],"ajaxUrl")),p.StoreData(e[0],"ajax-Url",p.GetData(e[0],"ajaxUrl")));var n={};function i(e,t){return t.toUpperCase()}for(var r=0;r<e[0].attributes.length;r++){var s=e[0].attributes[r].name,o="data-";if(s.substr(0,o.length)==o){var a=s.substring(o.length),l=p.GetData(e[0],a);n[a.replace(/-([a-z])/g,i)]=l}}d.fn.jquery&&"1."==d.fn.jquery.substr(0,2)&&e[0].dataset&&(n=d.extend(!0,{},e[0].dataset,n));var c=d.extend(!0,{},p.GetData(e[0]),n);for(var u in c=p._convertData(c))-1<t.indexOf(u)||(d.isPlainObject(this.options[u])?d.extend(this.options[u],c[u]):this.options[u]=c[u]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),e.define("select2/core",["jquery","./options","./utils","./keys"],function(t,c,u,i){var d=function(e,t){null!=u.GetData(e[0],"select2")&&u.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new c(t,e),d.__super__.constructor.call(this);var n=e.attr("tabindex")||0;u.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");var i=this.options.get("dataAdapter");this.dataAdapter=new i(e,this.options);var r=this.render();this._placeContainer(r);var s=this.options.get("selectionAdapter");this.selection=new s(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,r);var o=this.options.get("dropdownAdapter");this.dropdown=new o(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,r);var a=this.options.get("resultsAdapter");this.results=new a(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){l.trigger("selection:update",{data:e})}),e[0].classList.add("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),u.StoreData(e[0],"select2",this),e.data("select2",this)};return u.Extend(d,u.Observable),d.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+u.generateChars(2):u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},d.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},d.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var i=this._resolveWidth(e,"style");return null!=i?i:this._resolveWidth(e,"element")}if("element"==t){var r=e.outerWidth(!1);return r<=0?"auto":r+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;var s=e.attr("style");if("string"!=typeof s)return null;for(var o=s.split(";"),a=0,l=o.length;a<l;a+=1){var c=o[a].replace(/\s/g,"").match(n);if(null!==c&&1<=c.length)return c[1]}return null},d.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},d.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=u.bind(this._syncAttributes,this),this._syncS=u.bind(this._syncSubtree,this),this._observer=new window.MutationObserver(function(e){t._syncA(),t._syncS(e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})},d.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerSelectionEvents=function(){var n=this,i=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===i.indexOf(e)&&n.trigger(e,t)})},d.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container[0].classList.add("select2-container--open")}),this.on("close",function(){n.$container[0].classList.remove("select2-container--open")}),this.on("enable",function(){n.$container[0].classList.remove("select2-container--disabled")}),this.on("disable",function(){n.$container[0].classList.add("select2-container--disabled")}),this.on("blur",function(){n.$container[0].classList.remove("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===i.ESC||t===i.TAB||t===i.UP&&e.altKey?(n.close(e),e.preventDefault()):t===i.ENTER?(n.trigger("results:select",{}),e.preventDefault()):t===i.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===i.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===i.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===i.ENTER||t===i.SPACE||t===i.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},d.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},d.prototype._isChangeMutation=function(e){var t=this;if(e.addedNodes&&0<e.addedNodes.length)for(var n=0;n<e.addedNodes.length;n++){if(e.addedNodes[n].selected)return!0}else{if(e.removedNodes&&0<e.removedNodes.length)return!0;if(Array.isArray(e))return e.some(function(e){return t._isChangeMutation(e)})}return!1},d.prototype._syncSubtree=function(e){var t=this._isChangeMutation(e),n=this;t&&this.dataAdapter.current(function(e){n.trigger("selection:update",{data:e})})},d.prototype.trigger=function(e,t){var n=d.__super__.trigger,i={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in i){var r=i[e],s={prevented:!1,name:e,args:t};if(n.call(this,r,s),s.prevented)return void(t.prevented=!0)}n.call(this,e,t)},d.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},d.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger("query",{})},d.prototype.close=function(e){this.isOpen()&&this.trigger("close",{originalEvent:e})},d.prototype.isEnabled=function(){return!this.isDisabled()},d.prototype.isDisabled=function(){return this.options.get("disabled")},d.prototype.isOpen=function(){return this.$container[0].classList.contains("select2-container--open")},d.prototype.hasFocus=function(){return this.$container[0].classList.contains("select2-container--focus")},d.prototype.focus=function(e){this.hasFocus()||(this.$container[0].classList.add("select2-container--focus"),this.trigger("focus",{}))},d.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},d.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},d.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();var t=e[0];Array.isArray(t)&&(t=t.map(function(e){return e.toString()})),this.$element.val(t).trigger("input").trigger("change")},d.prototype.destroy=function(){this.$container.remove(),this._observer.disconnect(),this._observer=null,this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",u.GetData(this.$element[0],"old-tabindex")),this.$element[0].classList.remove("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),u.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},d.prototype.render=function(){var e=t('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container[0].classList.add("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("jquery-mousewheel",["jquery"],function(e){return e}),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(r,e,s,t,o){if(null==r.fn.select2){var a=["open","close","destroy"];r.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=r.extend(!0,{},t);new s(r(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,i=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=o.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,i)}),-1<a.indexOf(t)?this:n}}return null==r.fn.select2.defaults&&(r.fn.select2.defaults=t),s}),{define:e.define,require:e.require}}(),t=e.require("jquery.select2");return u.fn.select2.amd=e,t});
assets/js/single_product_ajax_add_to_cart.js CHANGED
@@ -6,24 +6,55 @@
6
 
7
  var $this = $(this),
8
  $form = $this.closest('form.cart'),
 
9
  product_qty = $form.find('input[name=quantity]').val() || 1,
10
  product_id = $form.find('input[name=product_id]').val() || $this.val(),
11
  variation_id = $form.find('input[name=variation_id]').val() || 0;
12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  var data = {
14
- action: 'wl_singleproduct_ajax_add_to_cart',
15
  product_id: product_id,
16
  product_sku: '',
17
  quantity: product_qty,
18
  variation_id: variation_id,
 
 
19
  };
20
 
 
 
21
  $( document.body ).trigger('adding_to_cart', [$this, data]);
22
 
23
  $.ajax({
24
  type: 'post',
25
  url: wc_add_to_cart_params.ajax_url,
26
- data: data,
27
 
28
  beforeSend: function (response) {
29
  $this.removeClass('added').addClass('loading');
6
 
7
  var $this = $(this),
8
  $form = $this.closest('form.cart'),
9
+ all_data = $form.serialize(),
10
  product_qty = $form.find('input[name=quantity]').val() || 1,
11
  product_id = $form.find('input[name=product_id]').val() || $this.val(),
12
  variation_id = $form.find('input[name=variation_id]').val() || 0;
13
 
14
+ /* For Variation product */
15
+ var item = {},
16
+ variations = $form.find( 'select[name^=attribute]' );
17
+ if ( !variations.length) {
18
+ variations = $form.find( '[name^=attribute]:checked' );
19
+ }
20
+ if ( !variations.length) {
21
+ variations = $form.find( 'input[name^=attribute]' );
22
+ }
23
+
24
+ variations.each( function() {
25
+ var $thisitem = $( this ),
26
+ attributeName = $thisitem.attr( 'name' ),
27
+ attributevalue = $thisitem.val(),
28
+ index,
29
+ attributeTaxName;
30
+ $thisitem.removeClass( 'error' );
31
+ if ( attributevalue.length === 0 ) {
32
+ index = attributeName.lastIndexOf( '_' );
33
+ attributeTaxName = attributeName.substring( index + 1 );
34
+ $thisitem.addClass( 'required error' );
35
+ } else {
36
+ item[attributeName] = attributevalue;
37
+ }
38
+ });
39
+
40
  var data = {
41
+ // action: 'woolentor_insert_to_cart',
42
  product_id: product_id,
43
  product_sku: '',
44
  quantity: product_qty,
45
  variation_id: variation_id,
46
+ variations: item,
47
+ all_data: all_data,
48
  };
49
 
50
+ var alldata = data.all_data + '&product_id='+ data.product_id + '&product_sku='+ data.product_sku + '&quantity='+ data.quantity + '&variation_id='+ data.variation_id + '&variations='+ JSON.stringify( data.variations ) +'&action=woolentor_single_insert_to_cart';
51
+
52
  $( document.body ).trigger('adding_to_cart', [$this, data]);
53
 
54
  $.ajax({
55
  type: 'post',
56
  url: wc_add_to_cart_params.ajax_url,
57
+ data: alldata,
58
 
59
  beforeSend: function (response) {
60
  $this.removeClass('added').addClass('loading');
assets/js/woolentor-widgets-active.js CHANGED
@@ -28,7 +28,7 @@
28
  var mobile_display_columns = parseInt(settings['mobile_display_columns']) || 1;
29
  var mobile_scroll_columns = parseInt(settings['mobile_scroll_columns']) || 1;
30
 
31
- slider_elem.slick({
32
  arrows: arrows,
33
  prevArrow: '<button type="button" class="slick-prev"><i class="fa fa-angle-left"></i></button>',
34
  nextArrow: '<button type="button" class="slick-next"><i class="fa fa-angle-right"></i></button>',
@@ -171,6 +171,81 @@
171
  });
172
  }
173
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
  /*
175
  * Quick view
176
  */
@@ -199,6 +274,8 @@
199
  $('#htwlquick-viewmodal .htcloseqv').show();
200
  woolentorquickviewMainImageSlider();
201
  woolentorquickviewThumb();
 
 
202
  }, 300 );
203
  },
204
  complete: function () {
@@ -217,6 +294,46 @@
217
  $('.htwl-modal-dialog').css("background-color","transparent");
218
  });
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  /*
221
  * Product Tab
222
  */
@@ -229,10 +346,76 @@
229
  woolentor_tabs( $(".woolentor-product-video-tabs"), '.video-cus-tab-pane' );
230
  }
231
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
232
  /*
233
  * Run this code under Elementor.
234
  */
235
  $(window).on('elementor/frontend/init', function () {
 
236
  elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-product-tab.default', WidgetProductSliderHandler);
237
  elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-product-tab.default', WidgetProducttabsHandler);
238
 
@@ -255,6 +438,13 @@
255
  elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-product-video-gallery.default', WidgetProductVideoGallery );
256
 
257
  elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-brand-logo.default', WidgetProductSliderHandler );
 
 
 
 
 
 
 
258
  });
259
 
260
 
28
  var mobile_display_columns = parseInt(settings['mobile_display_columns']) || 1;
29
  var mobile_scroll_columns = parseInt(settings['mobile_scroll_columns']) || 1;
30
 
31
+ slider_elem.not('.slick-initialized').slick({
32
  arrows: arrows,
33
  prevArrow: '<button type="button" class="slick-prev"><i class="fa fa-angle-left"></i></button>',
34
  nextArrow: '<button type="button" class="slick-next"><i class="fa fa-angle-right"></i></button>',
171
  });
172
  }
173
 
174
+ /* Quick View ajax Add to cart */
175
+ function woolentorquickviewAjaxCart( $selector ){
176
+
177
+ $(document).on('click', $selector, function (e) {
178
+ e.preventDefault();
179
+
180
+ var $thisbutton = $(this),
181
+ $form = $thisbutton.closest('form.cart'),
182
+ product_qty = $form.find('input[name=quantity]').val() || 1,
183
+ product_id = $form.find('input[name=product_id]').val() || $thisbutton.val(),
184
+ variation_id = $form.find('input[name=variation_id]').val() || 0;
185
+
186
+ /* For Variation product */
187
+ var item = {},
188
+ variations = $form.find( 'select[name^=attribute]' );
189
+ if ( !variations.length) {
190
+ variations = $form.find( '[name^=attribute]:checked' );
191
+ }
192
+ if ( !variations.length) {
193
+ variations = $form.find( 'input[name^=attribute]' );
194
+ }
195
+
196
+ variations.each( function() {
197
+ var $thisitem = $( this ),
198
+ attributeName = $thisitem.attr( 'name' ),
199
+ attributevalue = $thisitem.val(),
200
+ index,
201
+ attributeTaxName;
202
+ $thisitem.removeClass( 'error' );
203
+ if ( attributevalue.length === 0 ) {
204
+ index = attributeName.lastIndexOf( '_' );
205
+ attributeTaxName = attributeName.substring( index + 1 );
206
+ $thisitem.addClass( 'required error' );
207
+ } else {
208
+ item[attributeName] = attributevalue;
209
+ }
210
+ });
211
+
212
+ var data = {
213
+ action: 'woolentor_insert_to_cart',
214
+ product_id: product_id,
215
+ product_sku: '',
216
+ quantity: product_qty,
217
+ variation_id: variation_id,
218
+ variations: item,
219
+ };
220
+
221
+ $(document.body).trigger('adding_to_cart', [$thisbutton, data]);
222
+
223
+ $.ajax({
224
+ type: 'post',
225
+ url: woolentor_addons.woolentorajaxurl,
226
+ data: data,
227
+ beforeSend: function (response) {
228
+ $thisbutton.removeClass('added').addClass('loading');
229
+ },
230
+ complete: function (response) {
231
+ $thisbutton.addClass('added').removeClass('loading');
232
+ },
233
+ success: function (response) {
234
+ if (response.error && response.product_url) {
235
+ window.location = response.product_url;
236
+ return;
237
+ } else {
238
+ $(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, $thisbutton]);
239
+ }
240
+ },
241
+ });
242
+
243
+ return false;
244
+ });
245
+
246
+
247
+ }
248
+
249
  /*
250
  * Quick view
251
  */
274
  $('#htwlquick-viewmodal .htcloseqv').show();
275
  woolentorquickviewMainImageSlider();
276
  woolentorquickviewThumb();
277
+ woolentor_render_variation_quick_view_data( $('.woolentorquickview-open') );
278
+ woolentorquickviewAjaxCart( ".htwl-modal-content .single_add_to_cart_button:not(.disabled)" );
279
  }, 300 );
280
  },
281
  complete: function () {
294
  $('.htwl-modal-dialog').css("background-color","transparent");
295
  });
296
 
297
+ function woolentor_render_variation_quick_view_data( $product ) {
298
+ $product.find('.variations_form').wc_variation_form().find('.variations select:eq(0)').change();
299
+ $product.find('.variations_form').trigger('wc_variation_form');
300
+
301
+ var $default_data = {
302
+ src:'',
303
+ srcfull:'',
304
+ srcset:'',
305
+ sizes:'',
306
+ width:'',
307
+ height:'',
308
+ };
309
+ $product.find( '.single_variation_wrap' ).on( 'show_variation', function ( event, variation ) {
310
+
311
+ // Get First image data
312
+ if( $default_data.src.length === 0 ){
313
+ $default_data.src = $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').attr('src');
314
+ $default_data.srcset = $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').attr('srcset');
315
+ $default_data.srcfull = $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').attr('data-src');
316
+ }
317
+
318
+ $('.ht-qwick-view-left').find('.ht-quick-view-learg-img').slick('slickGoTo', 0);
319
+
320
+ $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('src',variation.image.full_src);
321
+ $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('srcset',variation.image.srcset);
322
+ $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('data-src',variation.image.full_src);
323
+ $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('data-large_image',variation.image.full_src);
324
+
325
+ // Reset data
326
+ $('.variations').find('.reset_variations').on('click', function(e){
327
+ $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('src', $default_data.src );
328
+ $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('srcset', $default_data.srcset);
329
+ $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('data-src', $default_data.srcfull );
330
+ $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('data-large_image', $default_data.srcfull );
331
+ });
332
+
333
+ });
334
+
335
+ }
336
+
337
  /*
338
  * Product Tab
339
  */
346
  woolentor_tabs( $(".woolentor-product-video-tabs"), '.video-cus-tab-pane' );
347
  }
348
 
349
+ /**
350
+ * WoolentorAccordion
351
+ */
352
+ var WoolentorAccordion = function ( $scope, $ ){
353
+ var accordion_elem = $scope.find('.htwoolentor-faq').eq(0);
354
+
355
+ var data_opt = accordion_elem.data('settings');
356
+
357
+ if ( accordion_elem.length > 0 ) {
358
+ var $id = accordion_elem.attr('id');
359
+ new Accordion('#' + $id, {
360
+ duration: 500,
361
+ showItem: data_opt.showitem,
362
+ elementClass: 'htwoolentor-faq-card',
363
+ questionClass: 'htwoolentor-faq-head',
364
+ answerClass: 'htwoolentor-faq-body',
365
+ });
366
+ }
367
+
368
+ };
369
+
370
+
371
+ /**
372
+ * WoolentorOnePageSlider
373
+ */
374
+ var WoolentorOnePageSlider = function ( $scope, $ ){
375
+
376
+ var slider_elem = $scope.find('.ht-full-slider-area').eq(0);
377
+
378
+ if ( slider_elem.length > 0 ) {
379
+
380
+ /* Jarallax active */
381
+ $('.ht-parallax-active').jarallax({
382
+ speed: 0.4,
383
+ });
384
+
385
+ $('#ht-nav').onePageNav({
386
+ currentClass: 'current',
387
+ changeHash: false,
388
+ scrollSpeed: 750,
389
+ scrollThreshold: 0.5,
390
+ filter: '',
391
+ easing: 'swing',
392
+ });
393
+
394
+ /*------ Wow Active ----*/
395
+ new WOW().init();
396
+
397
+ /*---------------------
398
+ Video popup
399
+ --------------------- */
400
+ $('.ht-video-popup').magnificPopup({
401
+ type: 'iframe',
402
+ mainClass: 'mfp-fade',
403
+ removalDelay: 160,
404
+ preloader: false,
405
+ zoom: {
406
+ enabled: true,
407
+ }
408
+ });
409
+
410
+ }
411
+
412
+ };
413
+
414
  /*
415
  * Run this code under Elementor.
416
  */
417
  $(window).on('elementor/frontend/init', function () {
418
+
419
  elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-product-tab.default', WidgetProductSliderHandler);
420
  elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-product-tab.default', WidgetProducttabsHandler);
421
 
438
  elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-product-video-gallery.default', WidgetProductVideoGallery );
439
 
440
  elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-brand-logo.default', WidgetProductSliderHandler );
441
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-faq.default', WoolentorAccordion );
442
+
443
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-category-grid.default', WidgetProductSliderHandler );
444
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-testimonial.default', WidgetProductSliderHandler );
445
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-product-grid.default', WidgetProductSliderHandler );
446
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-onepage-slider.default', WoolentorOnePageSlider );
447
+
448
  });
449
 
450
 
assets/lib/css/magnific-popup.css ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*! Magnific Popup - v1.1.0 - 2016-02-20
2
+ * http://dimsemenov.com/plugins/magnific-popup/
3
+ * Copyright (c) 2016 Dmitry Semenov; */
4
+ .mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none!important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#CCC;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#CCC}.mfp-preloader a:hover{color:#FFF}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#FFF;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:hover,.mfp-close:focus{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#FFF;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#CCC;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1}.mfp-arrow:before,.mfp-arrow:after{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #FFF;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3F3F3F}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #FFF;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3F3F3F}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#BDBDBD;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#F3F3F3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}
assets/lib/iconpicker/css/iconpicker.eot ADDED
Binary file
assets/lib/iconpicker/css/iconpicker.svg ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Copyright (C) 2014 by original authors @ fontello.com</metadata>
5
+ <defs>
6
+ <font id="iconpicker" horiz-adv-x="1000" >
7
+ <font-face font-family="iconpicker" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
8
+ <missing-glyph horiz-adv-x="1000" />
9
+ <glyph glyph-name="spin3" unicode="&#xe815;" d="m494 850c-266 0-483-210-494-472c-1-19 13-20 13-20l84 0c16 0 19 10 19 18c10 199 176 358 378 358c107 0 205-45 273-118l-58-57c-11-12-11-27 5-31l247-50c21-5 46 11 37 44l-58 227c-2 9-16 22-29 13l-65-60c-89 91-214 148-352 148z m409-508c-16 0-19-10-19-18c-10-199-176-358-377-358c-108 0-205 45-274 118l59 57c10 12 10 27-5 31l-248 50c-21 5-46-11-37-44l58-227c2-9 16-22 30-13l64 60c89-91 214-148 353-148c265 0 482 210 493 473c1 18-13 19-13 19l-84 0z" horiz-adv-x="1000" />
10
+ <glyph glyph-name="search" unicode="&#xe812;" d="m643 386q0 103-74 176t-176 74t-177-74t-73-176t73-177t177-73t176 73t74 177z m286-465q0-29-22-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69q-80 0-153 31t-125 84t-84 125t-31 153t31 152t84 126t125 84t153 31t152-31t126-84t84-126t31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
11
+ <glyph glyph-name="cancel" unicode="&#xe814;" d="m724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165l-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164l-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164l164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164l164-164q15-15 15-38z" horiz-adv-x="785.7" />
12
+ <glyph glyph-name="block" unicode="&#xe84e;" d="m732 352q0 90-48 164l-421-420q76-50 166-50q62 0 118 25t96 65t65 97t24 119z m-557-167l421 421q-75 50-167 50q-83 0-153-40t-110-112t-41-152q0-91 50-167z m682 167q0-88-34-168t-91-137t-137-92t-166-34t-167 34t-137 92t-91 137t-34 168t34 167t91 137t137 91t167 34t166-34t137-91t91-137t34-167z" horiz-adv-x="857.1" />
13
+ <glyph glyph-name="down-dir" unicode="&#xe800;" d="m571 457q0-14-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25t25 11h500q14 0 25-11t10-25z" horiz-adv-x="571.4" />
14
+ <glyph glyph-name="up-dir" unicode="&#xe813;" d="m571 171q0-14-10-25t-25-10h-500q-15 0-25 10t-11 25t11 26l250 250q10 10 25 10t25-10l250-250q10-11 10-26z" horiz-adv-x="571.4" />
15
+ <glyph glyph-name="left-dir" unicode="&#xe801;" d="m357 600v-500q0-14-10-25t-26-11t-25 11l-250 250q-10 11-10 25t10 25l250 250q11 11 25 11t26-11t10-25z" horiz-adv-x="357.1" />
16
+ <glyph glyph-name="right-dir" unicode="&#xe802;" d="m321 350q0-14-10-25l-250-250q-11-11-25-11t-25 11t-11 25v500q0 15 11 25t25 11t25-11l250-250q10-10 10-25z" horiz-adv-x="357.1" />
17
+ </font>
18
+ </defs>
19
+ </svg>
assets/lib/iconpicker/css/iconpicker.ttf ADDED
Binary file
assets/lib/iconpicker/css/iconpicker.woff ADDED
Binary file
assets/lib/iconpicker/css/jquery.fonticonpicker.bootstrap.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* fontIconPicker Bootstrap Theme {@link https://github.com/micc83/fontIconPicker} */
2
+ .fip-bootstrap.icons-selector{font-size:16px}.fip-bootstrap.icons-selector .selector{border:0 none;background-color:#fff;width:102px}.fip-bootstrap.icons-selector .selector-button{background-color:#fff;border:1px solid #ccc;border-radius:0 4px 4px 0;background-image:-webkit-linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-image:-moz-linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:41px;background-repeat:repeat-x}.fip-bootstrap.icons-selector .selector-button:hover{background-color:#e0e0e0;background-position:0 -15px}.fip-bootstrap.icons-selector .selector-button:active{-webkit-box-shadow:0 3px 5px rgba(0,0,0,.125)inset;-moz-box-shadow:0 3px 5px rgba(0,0,0,.125)inset;box-shadow:0 3px 5px rgba(0,0,0,.125)inset}.fip-bootstrap.icons-selector .selector-button:hover i{color:#999}.fip-bootstrap.icons-selector .selector-button i{color:#aaa;text-shadow:0 1px 0 #FFF}.fip-bootstrap.icons-selector .selected-icon{border:1px solid #ccc;border-right:0 none;background-color:#fff;border-radius:4px 0 0 4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.fip-bootstrap.icons-selector .selected-icon i{color:#404040}.fip-bootstrap.icons-selector .selector-popup{-moz-box-shadow:0 6px 12px rgba(0,0,0,.176);-webkit-box-shadow:0 6px 12px rgba(0,0,0,.176);box-shadow:0 6px 12px rgba(0,0,0,.176);border:1px solid rgba(0,0,0,.15);border-radius:4px;background-color:#fff}.fip-bootstrap.icons-selector .selector-category select,.fip-bootstrap.icons-selector .selector-search input[type=text]{border:1px solid #ccc;color:#555;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;outline:0;border-radius:4px}.fip-bootstrap.icons-selector .selector-category select:focus,.fip-bootstrap.icons-selector .selector-search input[type=text]:focus{border-color:#66AFE9;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.075)inset,0 0 8px rgba(102,175,233,.6);-moz-box-shadow:0 1px 1px rgba(0,0,0,.075)inset,0 0 8px rgba(102,175,233,.6);box-shadow:0 1px 1px rgba(0,0,0,.075)inset,0 0 8px rgba(102,175,233,.6)}.fip-bootstrap.icons-selector input::-webkit-input-placeholder{color:#aaa}.fip-bootstrap.icons-selector input:-moz-placeholder{color:#aaa}.fip-bootstrap.icons-selector input::-moz-placeholder{color:#aaa}.fip-bootstrap.icons-selector input:-ms-input-placeholder{color:#aaa!important}.fip-bootstrap.icons-selector .selector-search i{color:#aaa}.fip-bootstrap.icons-selector .fip-icons-container{background-color:#fff;border:1px solid #ccc;border-radius:4px}.fip-bootstrap.icons-selector .fip-icons-container .loading{color:#ddd}.fip-bootstrap.icons-selector .fip-box{border:1px solid #ccc;border-radius:2px;background-color:#eee}.fip-bootstrap.icons-selector .fip-box:hover{background-color:#fff;border-color:#66AFE9;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.075)inset,0 0 8px rgba(102,175,233,.6);-moz-box-shadow:0 1px 1px rgba(0,0,0,.075)inset,0 0 8px rgba(102,175,233,.6);box-shadow:0 1px 1px rgba(0,0,0,.075)inset,0 0 8px rgba(102,175,233,.6);font-size:1.6em;text-shadow:0 0 1px #fff}.fip-bootstrap.icons-selector .selector-footer,.fip-bootstrap.icons-selector .selector-footer i{color:#428BCA}.fip-bootstrap.icons-selector .selector-arrows i:hover{color:#2A6496}.fip-bootstrap.icons-selector span.current-icon,.fip-bootstrap.icons-selector span.current-icon:hover{background-color:#428BCA;color:#fff;border:1px solid #428BCA}.fip-bootstrap.icons-selector span.current-icon i,.fip-bootstrap.icons-selector span.current-icon:hover i{color:#fff}.fip-bootstrap.icons-selector .icons-picker-error i:before{color:#ccc}.fip-bootstrap.icons-selector .fip-box,.fip-bootstrap.icons-selector .selector-category select,.fip-bootstrap.icons-selector .selector-search input[type=text]{-webkit-transition:all 300ms ease-in-out;-moz-transition:all 300ms ease-in-out;-ms-transition:all 300ms ease-in-out;-o-transition:all 300ms ease-in-out;transition:all 300ms ease-in-out}
assets/lib/iconpicker/css/jquery.fonticonpicker.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* fontIconPicker main CSS file {@link https://github.com/micc83/fontIconPicker} */
2
+ .icons-selector:not('i.sli') *{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline;font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif}.icons-selector,.icons-selector *,.icons-selector :after,.icons-selector :before,.icons-selector:after,.icons-selector:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.icons-selector{display:inline-block;vertical-align:middle;text-align:left}.icons-selector .selector{width:100px;height:40px}.icons-selector .selector-button{width:39px;height:100%;display:block;text-align:center;cursor:pointer;float:left}.icons-selector .selector-button i{line-height:38px;text-align:center}.icons-selector .selected-icon{display:block;width:60px;height:100%;float:left;text-align:center}.icons-selector .selected-icon i{line-height:40px;font-size:18px;cursor:default}.icons-selector .selector-popup{position:absolute;z-index:10000;background-color:#fefefe;padding:5px;height:auto;width:342px;margin-top:-1px}.icons-selector .selector-category select,.icons-selector .selector-search input[type=text]{border:0;line-height:20px;padding:10px 2.5%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:5px;font-size:12px;display:block}.icons-selector .selector-category select{height:40px}.icons-selector .selector-category select option{padding:10px}.icons-selector input::-webkit-input-placeholder{text-transform:uppercase}.icons-selector input:-moz-placeholder{text-transform:uppercase}.icons-selector input::-moz-placeholder{text-transform:uppercase}.icons-selector input:-ms-input-placeholder{text-transform:uppercase}.icons-selector .selector-search{position:relative}.icons-selector .selector-search i{position:absolute;right:10px;top:7px}.icons-selector .fip-icons-container{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px}.icons-selector .fip-icons-container .loading{font-size:24px;margin:0 auto;padding:20px 0;text-align:center;width:100%}.icons-selector .fip-box{display:inline-block;margin:2px;width:60px;line-height:42px;text-align:center;cursor:pointer;vertical-align:top;height:40px}.icons-selector .selector-footer{line-height:12px;padding:5px 5px 0;text-align:center}.icons-selector .selector-footer,.icons-selector .selector-footer i{font-size:14px}.icons-selector .selector-arrows{float:right}.icons-selector .selector-pages{font-size:11px;float:left}.icons-selector .selector-arrows i{cursor:pointer}.icons-selector .selector-footer em{font-style:italic}.icons-selector .icons-picker-error i:before{color:#eee}@font-face{font-family:iconpicker;src:url(iconpicker.eot?90190138);src:url(iconpicker.eot?90190138#iefix) format('embedded-opentype'),url(iconpicker.woff?90190138) format('woff'),url(iconpicker.ttf?90190138) format('truetype'),url(iconpicker.svg?90190138#iconpicker) format('svg');font-weight:400;font-style:normal}.icons-selector [class*=" fip-icon-"]:before,.icons-selector [class^=fip-icon-]:before{font-family:iconpicker;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icons-selector .fip-icon-search:before{content:'\e812';cursor:default}.icons-selector .fip-icon-cancel:before{content:'\e814';cursor:pointer}.icons-selector .fip-icon-block:before{content:'\e84e';color:#fed0d0}.icons-selector .fip-icon-down-dir:before{content:'\e800'}.icons-selector .fip-icon-up-dir:before{content:'\e813'}.icons-selector .fip-icon-left-dir:before{content:'\e801'}.icons-selector .fip-icon-right-dir:before{content:'\e802'}.icons-selector .fip-icon-spin3:before{content:'\e815'}.icons-selector .fip-icon-spin3{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
assets/lib/iconpicker/js/jquery.fonticonpicker.min.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * jQuery fontIconPicker - v2.0.0
3
+ *
4
+ * An icon picker built on top of font icons and jQuery
5
+ *
6
+ * http://codeb.it/fontIconPicker
7
+ *
8
+ * Made by Alessandro Benoit & Swashata
9
+ * Under MIT License
10
+ *
11
+ * {@link https://github.com/micc83/fontIconPicker}
12
+ */
13
+ !function(a){"use strict";function c(c,d){this.element=a(c),this.settings=a.extend({},b,d),this.settings.emptyIcon&&this.settings.iconsPerPage--,this.iconPicker=a("<div/>",{"class":"icons-selector",style:"position: relative",html:'<div class="selector"><span class="selected-icon"><i class="fip-icon-block"></i></span><span class="selector-button"><i class="fip-icon-down-dir"></i></span></div><div class="selector-popup" style="display: none;">'+(this.settings.hasSearch?'<div class="selector-search"><input type="text" name="" value="" placeholder="Search icon" class="icons-search-input"/><i class="fip-icon-search"></i></div>':"")+'<div class="selector-category">'+'<select name="" class="icon-category-select" style="display: none">'+"</select>"+"</div>"+'<div class="fip-icons-container"></div>'+'<div class="selector-footer" style="display:none;">'+'<span class="selector-pages">1/2</span>'+'<span class="selector-arrows">'+'<span class="selector-arrow-left" style="display:none;">'+'<i class="fip-icon-left-dir"></i>'+"</span>"+'<span class="selector-arrow-right">'+'<i class="fip-icon-right-dir"></i>'+"</span>"+"</span>"+"</div>"+"</div>"}),this.iconContainer=this.iconPicker.find(".fip-icons-container"),this.searchIcon=this.iconPicker.find(".selector-search i"),this.iconsSearched=[],this.isSearch=!1,this.totalPage=1,this.currentPage=1,this.currentIcon=!1,this.iconsCount=0,this.open=!1,this.searchValues=[],this.availableCategoriesSearch=[],this.triggerEvent=null,this.backupSource=[],this.backupSearch=[],this.isCategorized=!1,this.selectCategory=this.iconPicker.find(".icon-category-select"),this.selectedCategory=!1,this.availableCategories=[],this.unCategorizedKey=null,this.init()}var b={theme:"fip-grey",source:!1,emptyIcon:!0,emptyIconValue:"",iconsPerPage:20,hasSearch:!0,searchSource:!1,useAttribute:!1,attributeName:"data-icon",convertToHex:!0,allCategoryText:"From all categories",unCategorizedText:"Uncategorized"};c.prototype={init:function(){this.iconPicker.addClass(this.settings.theme),this.iconPicker.css({left:-9999}).appendTo("body");var b=this.iconPicker.outerHeight(),c=this.iconPicker.outerWidth();if(this.iconPicker.css({left:""}),this.element.before(this.iconPicker),this.element.css({visibility:"hidden",top:0,position:"relative",zIndex:"-1",left:"-"+c+"px",display:"inline-block",height:b+"px",width:c+"px",padding:"0",margin:"0 -"+c+"px 0 0",border:"0 none",verticalAlign:"top"}),!this.element.is("select")){var d=function(){for(var a=3,b=document.createElement("div"),c=b.all||[];b.innerHTML="<!--[if gt IE "+ ++a+"]><br><![endif]-->",c[0];);return a>4?a:!a}(),e=document.createElement("div");this.triggerEvent=9!==d&&"oninput"in e?["input","keyup"]:["keyup"]}!this.settings.source&&this.element.is("select")?(this.settings.source=[],this.settings.searchSource=[],this.element.find("optgroup").length?(this.isCategorized=!0,this.element.find("optgroup").each(a.proxy(function(b,c){var d=this.availableCategories.length,e=a("<option />");e.attr("value",d),e.html(a(c).attr("label")),this.selectCategory.append(e),this.availableCategories[d]=[],this.availableCategoriesSearch[d]=[],a(c).find("option").each(a.proxy(function(b,c){var e=a(c).val(),f=a(c).html();e&&e!==this.settings.emptyIconValue&&(this.settings.source.push(e),this.availableCategories[d].push(e),this.searchValues.push(f),this.availableCategoriesSearch[d].push(f))},this))},this)),this.element.find("> option").length&&this.element.find("> option").each(a.proxy(function(b,c){var d=a(c).val(),e=a(c).html();return d&&""!==d&&d!=this.settings.emptyIconValue?(null===this.unCategorizedKey&&(this.unCategorizedKey=this.availableCategories.length,this.availableCategories[this.unCategorizedKey]=[],this.availableCategoriesSearch[this.unCategorizedKey]=[],a("<option />").attr("value",this.unCategorizedKey).html(this.settings.unCategorizedText).appendTo(this.selectCategory)),this.settings.source.push(d),this.availableCategories[this.unCategorizedKey].push(d),this.searchValues.push(e),this.availableCategoriesSearch[this.unCategorizedKey].push(e),void 0):!0},this))):this.element.find("option").each(a.proxy(function(b,c){var d=a(c).val(),e=a(c).html();d&&(this.settings.source.push(d),this.searchValues.push(e))},this)),this.backupSource=this.settings.source.slice(0),this.backupSearch=this.searchValues.slice(0),this.loadCategories()):this.initSourceIndex(),this.loadIcons(),this.selectCategory.on("change keyup",a.proxy(function(b){if(this.isCategorized===!1)return!1;var c=a(b.currentTarget),d=c.val();if("all"===c.val())this.settings.source=this.backupSource,this.searchValues=this.backupSearch;else{var e=parseInt(d,10);this.availableCategories[e]&&(this.settings.source=this.availableCategories[e],this.searchValues=this.availableCategoriesSearch[e])}this.resetSearch(),this.loadIcons()},this)),this.iconPicker.find(".selector-button").click(a.proxy(function(){this.toggleIconSelector()},this)),this.iconPicker.find(".selector-arrow-right").click(a.proxy(function(b){this.currentPage<this.totalPage&&(this.iconPicker.find(".selector-arrow-left").show(),this.currentPage=this.currentPage+1,this.renderIconContainer()),this.currentPage===this.totalPage&&a(b.currentTarget).hide()},this)),this.iconPicker.find(".selector-arrow-left").click(a.proxy(function(b){this.currentPage>1&&(this.iconPicker.find(".selector-arrow-right").show(),this.currentPage=this.currentPage-1,this.renderIconContainer()),1===this.currentPage&&a(b.currentTarget).hide()},this)),this.iconPicker.find(".icons-search-input").keyup(a.proxy(function(b){var c=a(b.currentTarget).val();return""===c?(this.resetSearch(),void 0):(this.searchIcon.removeClass("fip-icon-search"),this.searchIcon.addClass("fip-icon-cancel"),this.isSearch=!0,this.currentPage=1,this.iconsSearched=[],a.grep(this.searchValues,a.proxy(function(a,b){return a.toLowerCase().search(c.toLowerCase())>=0?(this.iconsSearched[this.iconsSearched.length]=this.settings.source[b],!0):void 0},this)),this.renderIconContainer(),void 0)},this)),this.iconPicker.find(".selector-search").on("click",".fip-icon-cancel",a.proxy(function(){this.iconPicker.find(".icons-search-input").focus(),this.resetSearch()},this)),this.iconContainer.on("click",".fip-box",a.proxy(function(b){this.setSelectedIcon(a(b.currentTarget).find("i").attr("data-fip-value")),this.toggleIconSelector()},this)),this.iconPicker.click(function(a){return a.stopPropagation(),!1}),a("html").click(a.proxy(function(){this.open&&this.toggleIconSelector()},this))},initSourceIndex:function(){if("object"==typeof this.settings.source){if(a.isArray(this.settings.source))this.isCategorized=!1,this.selectCategory.html("").hide(),this.settings.source=a.map(this.settings.source,function(a){return"function"==typeof a.toString?a.toString():a}),this.searchValues=a.isArray(this.settings.searchSource)?a.map(this.settings.searchSource,function(a){return"function"==typeof a.toString?a.toString():a}):this.settings.source.slice(0);else{var b=a.extend(!0,{},this.settings.source);this.settings.source=[],this.searchValues=[],this.availableCategoriesSearch=[],this.selectedCategory=!1,this.availableCategories=[],this.unCategorizedKey=null,this.isCategorized=!0,this.selectCategory.html("");for(var c in b){var d=this.availableCategories.length,e=a("<option />");e.attr("value",d),e.html(c),this.selectCategory.append(e),this.availableCategories[d]=[],this.availableCategoriesSearch[d]=[];for(var f in b[c]){var g=b[c][f],h=this.settings.searchSource&&this.settings.searchSource[c]&&this.settings.searchSource[c][f]?this.settings.searchSource[c][f]:g;"function"==typeof g.toString&&(g=g.toString()),g&&g!==this.settings.emptyIconValue&&(this.settings.source.push(g),this.availableCategories[d].push(g),this.searchValues.push(h),this.availableCategoriesSearch[d].push(h))}}}this.backupSource=this.settings.source.slice(0),this.backupSearch=this.searchValues.slice(0),this.loadCategories()}},loadCategories:function(){this.isCategorized!==!1&&(a('<option value="all">'+this.settings.allCategoryText+"</option>").prependTo(this.selectCategory),this.selectCategory.show().val("all").trigger("change"))},loadIcons:function(){this.iconContainer.html('<i class="fip-icon-spin3 animate-spin loading"></i>'),this.settings.source instanceof Array&&this.renderIconContainer()},renderIconContainer:function(){var b,c=[];if(c=this.isSearch?this.iconsSearched:this.settings.source,this.iconsCount=c.length,this.totalPage=Math.ceil(this.iconsCount/this.settings.iconsPerPage),this.totalPage>1?this.iconPicker.find(".selector-footer").show():this.iconPicker.find(".selector-footer").hide(),this.iconPicker.find(".selector-pages").html(this.currentPage+"/"+this.totalPage+" <em>("+this.iconsCount+")</em>"),b=(this.currentPage-1)*this.settings.iconsPerPage,this.settings.emptyIcon)this.iconContainer.html('<span class="fip-box"><i class="fip-icon-block" data-fip-value="fip-icon-block"></i></span>');else{if(c.length<1)return this.iconContainer.html('<span class="icons-picker-error"><i class="fip-icon-block" data-fip-value="fip-icon-block"></i></span>'),void 0;this.iconContainer.html("")}c=c.slice(b,b+this.settings.iconsPerPage);for(var e,d=0;e=c[d++];){var f=e;a.grep(this.settings.source,a.proxy(function(a,b){return a===e?(f=this.searchValues[b],!0):!1},this)),a("<span/>",{html:'<i data-fip-value="'+e+'" '+(this.settings.useAttribute?this.settings.attributeName+'="'+(this.settings.convertToHex?"&#x"+parseInt(e,10).toString(16)+";":e)+'"':'class="'+e+'"')+"></i>","class":"fip-box",title:f}).appendTo(this.iconContainer)}this.settings.emptyIcon||this.element.val()&&-1!==a.inArray(this.element.val(),this.settings.source)?-1===a.inArray(this.element.val(),this.settings.source)?this.setSelectedIcon():this.setSelectedIcon(this.element.val()):this.setSelectedIcon(c[0])},setHighlightedIcon:function(){this.iconContainer.find(".current-icon").removeClass("current-icon"),this.currentIcon&&this.iconContainer.find('[data-fip-value="'+this.currentIcon+'"]').parent("span").addClass("current-icon")},setSelectedIcon:function(a){if("fip-icon-block"===a&&(a=""),this.settings.useAttribute?a?this.iconPicker.find(".selected-icon").html("<i "+this.settings.attributeName+'="'+(this.settings.convertToHex?"&#x"+parseInt(a,10).toString(16)+";":a)+'"></i>'):this.iconPicker.find(".selected-icon").html('<i class="fip-icon-block"></i>'):this.iconPicker.find(".selected-icon").html('<i class="'+(a||"fip-icon-block")+'"></i>'),this.element.val(""===a?this.settings.emptyIconValue:a).trigger("change"),null!==this.triggerEvent)for(var b in this.triggerEvent)this.element.trigger(this.triggerEvent[b]);this.currentIcon=a,this.setHighlightedIcon()},toggleIconSelector:function(){this.open=this.open?0:1,this.iconPicker.find(".selector-popup").slideToggle(300),this.iconPicker.find(".selector-button i").toggleClass("fip-icon-down-dir"),this.iconPicker.find(".selector-button i").toggleClass("fip-icon-up-dir"),this.open&&this.iconPicker.find(".icons-search-input").focus().select()},resetSearch:function(){this.iconPicker.find(".icons-search-input").val(""),this.searchIcon.removeClass("fip-icon-cancel"),this.searchIcon.addClass("fip-icon-search"),this.iconPicker.find(".selector-arrow-left").hide(),this.currentPage=1,this.isSearch=!1,this.renderIconContainer(),this.totalPage>1&&this.iconPicker.find(".selector-arrow-right").show()}},a.fn.fontIconPicker=function(b){return this.each(function(){a.data(this,"fontIconPicker")||a.data(this,"fontIconPicker",new c(this,b))}),this.setIcons=a.proxy(function(b,c){void 0===b&&(b=!1),void 0===c&&(c=!1),this.each(function(){a.data(this,"fontIconPicker").settings.source=b,a.data(this,"fontIconPicker").settings.searchSource=c,a.data(this,"fontIconPicker").initSourceIndex(),a.data(this,"fontIconPicker").resetSearch(),a.data(this,"fontIconPicker").loadIcons()})},this),this.destroyPicker=a.proxy(function(){this.each(function(){a.data(this,"fontIconPicker")&&(a.data(this,"fontIconPicker").iconPicker.remove(),a.data(this,"fontIconPicker").element.css({visibility:"",top:"",position:"",zIndex:"",left:"",display:"",height:"",width:"",padding:"",margin:"",border:"",verticalAlign:""}),a.removeData(this,"fontIconPicker"))})},this),this.refreshPicker=a.proxy(function(d){d||(d=b),this.destroyPicker(),this.each(function(){a.data(this,"fontIconPicker")||a.data(this,"fontIconPicker",new c(this,d))})},this),this}}(jQuery);
assets/lib/js/jarallax.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*!
2
+ * Name : Just Another Parallax [Jarallax]
3
+ * Version : 1.12.5
4
+ * Author : nK <https://nkdev.info>
5
+ * GitHub : https://github.com/nk-o/jarallax
6
+ */!function(n){var o={};function i(e){if(o[e])return o[e].exports;var t=o[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=n,i.c=o,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=10)}([,,function(e,t){e.exports=function(e){"complete"===document.readyState||"interactive"===document.readyState?e.call():document.attachEvent?document.attachEvent("onreadystatechange",function(){"interactive"===document.readyState&&e.call()}):document.addEventListener&&document.addEventListener("DOMContentLoaded",e)}},function(n,e,t){(function(e){var t="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{};n.exports=t}).call(this,t(4))},function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=function(){return this}();try{o=o||new Function("return this")()}catch(e){"object"===("undefined"==typeof window?"undefined":n(window))&&(o=window)}e.exports=o},,,,,,function(e,t,n){e.exports=n(11)},function(e,t,n){"use strict";n.r(t);var o=n(2),i=n.n(o),a=n(3),r=n(12);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s,c,u=a.window.jarallax;a.window.jarallax=r.default,a.window.jarallax.noConflict=function(){return a.window.jarallax=u,this},void 0!==a.jQuery&&((s=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Array.prototype.unshift.call(t,this);var o=r.default.apply(a.window,t);return"object"!==l(o)?o:this}).constructor=r.default.constructor,c=a.jQuery.fn.jarallax,a.jQuery.fn.jarallax=s,a.jQuery.fn.jarallax.noConflict=function(){return a.jQuery.fn.jarallax=c,this}),i()(function(){Object(r.default)(document.querySelectorAll("[data-jarallax]"))})},function(e,t,n){"use strict";n.r(t);var o=n(2),i=n.n(o),b=n(3);function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],o=!0,i=!1,a=void 0;try{for(var r,l=e[Symbol.iterator]();!(o=(r=l.next()).done)&&(n.push(r.value),!t||n.length!==t);o=!0);}catch(e){i=!0,a=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw a}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}var l,h,p=b.window.navigator,d=-1<p.userAgent.indexOf("MSIE ")||-1<p.userAgent.indexOf("Trident/")||-1<p.userAgent.indexOf("Edge/"),s=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(p.userAgent),m=function(){for(var e="transform WebkitTransform MozTransform".split(" "),t=document.createElement("div"),n=0;n<e.length;n+=1)if(t&&void 0!==t.style[e[n]])return e[n];return!1}();function f(){h=s?(!l&&document.body&&((l=document.createElement("div")).style.cssText="position: fixed; top: -9999px; left: 0; height: 100vh; width: 0;",document.body.appendChild(l)),(l?l.clientHeight:0)||b.window.innerHeight||document.documentElement.clientHeight):b.window.innerHeight||document.documentElement.clientHeight}f(),b.window.addEventListener("resize",f),b.window.addEventListener("orientationchange",f),b.window.addEventListener("load",f),i()(function(){f()});var g=[];function y(){g.length&&(g.forEach(function(e,t){var n=e.instance,o=e.oldData,i=n.$item.getBoundingClientRect(),a={width:i.width,height:i.height,top:i.top,bottom:i.bottom,wndW:b.window.innerWidth,wndH:h},r=!o||o.wndW!==a.wndW||o.wndH!==a.wndH||o.width!==a.width||o.height!==a.height,l=r||!o||o.top!==a.top||o.bottom!==a.bottom;g[t].oldData=a,r&&n.onResize(),l&&n.onScroll()}),b.window.requestAnimationFrame(y))}function v(e,t){("object"===("undefined"==typeof HTMLElement?"undefined":u(HTMLElement))?e instanceof HTMLElement:e&&"object"===u(e)&&null!==e&&1===e.nodeType&&"string"==typeof e.nodeName)&&(e=[e]);for(var n,o=e.length,i=0,a=arguments.length,r=new Array(2<a?a-2:0),l=2;l<a;l++)r[l-2]=arguments[l];for(;i<o;i+=1)if("object"===u(t)||void 0===t?e[i].jarallax||(e[i].jarallax=new w(e[i],t)):e[i].jarallax&&(n=e[i].jarallax[t].apply(e[i].jarallax,r)),void 0!==n)return n;return e}var x=0,w=function(){function s(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s);var n=this;n.instanceID=x,x+=1,n.$item=e,n.defaults={type:"scroll",speed:.5,imgSrc:null,imgElement:".jarallax-img",imgSize:"cover",imgPosition:"50% 50%",imgRepeat:"no-repeat",keepImg:!1,elementInViewport:null,zIndex:-100,disableParallax:!1,disableVideo:!1,videoSrc:null,videoStartTime:0,videoEndTime:0,videoVolume:0,videoLoop:!0,videoPlayOnlyVisible:!0,videoLazyLoading:!0,onScroll:null,onInit:null,onDestroy:null,onCoverImage:null};var o,i,a=n.$item.dataset||{},r={};Object.keys(a).forEach(function(e){var t=e.substr(0,1).toLowerCase()+e.substr(1);t&&void 0!==n.defaults[t]&&(r[t]=a[e])}),n.options=n.extend({},n.defaults,r,t),n.pureOptions=n.extend({},n.options),Object.keys(n.options).forEach(function(e){"true"===n.options[e]?n.options[e]=!0:"false"===n.options[e]&&(n.options[e]=!1)}),n.options.speed=Math.min(2,Math.max(-1,parseFloat(n.options.speed))),"string"==typeof n.options.disableParallax&&(n.options.disableParallax=new RegExp(n.options.disableParallax)),n.options.disableParallax instanceof RegExp&&(o=n.options.disableParallax,n.options.disableParallax=function(){return o.test(p.userAgent)}),"function"!=typeof n.options.disableParallax&&(n.options.disableParallax=function(){return!1}),"string"==typeof n.options.disableVideo&&(n.options.disableVideo=new RegExp(n.options.disableVideo)),n.options.disableVideo instanceof RegExp&&(i=n.options.disableVideo,n.options.disableVideo=function(){return i.test(p.userAgent)}),"function"!=typeof n.options.disableVideo&&(n.options.disableVideo=function(){return!1});var l=n.options.elementInViewport;l&&"object"===u(l)&&void 0!==l.length&&(l=c(l,1)[0]),l instanceof Element||(l=null),n.options.elementInViewport=l,n.image={src:n.options.imgSrc||null,$container:null,useImgTag:!1,position:/iPad|iPhone|iPod|Android/.test(p.userAgent)?"absolute":"fixed"},n.initImg()&&n.canInitParallax()&&n.init()}var e,t,n;return e=s,(t=[{key:"css",value:function(t,n){return"string"==typeof n?b.window.getComputedStyle(t).getPropertyValue(n):(n.transform&&m&&(n[m]=n.transform),Object.keys(n).forEach(function(e){t.style[e]=n[e]}),t)}},{key:"extend",value:function(n){for(var e=arguments.length,o=new Array(1<e?e-1:0),t=1;t<e;t++)o[t-1]=arguments[t];return n=n||{},Object.keys(o).forEach(function(t){o[t]&&Object.keys(o[t]).forEach(function(e){n[e]=o[t][e]})}),n}},{key:"getWindowData",value:function(){return{width:b.window.innerWidth||document.documentElement.clientWidth,height:h,y:document.documentElement.scrollTop}}},{key:"initImg",value:function(){var e=this,t=e.options.imgElement;return t&&"string"==typeof t&&(t=e.$item.querySelector(t)),t instanceof Element||(e.options.imgSrc?(t=new Image).src=e.options.imgSrc:t=null),t&&(e.options.keepImg?e.image.$item=t.cloneNode(!0):(e.image.$item=t,e.image.$itemParent=t.parentNode),e.image.useImgTag=!0),!!e.image.$item||(null===e.image.src&&(e.image.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",e.image.bgImage=e.css(e.$item,"background-image")),!(!e.image.bgImage||"none"===e.image.bgImage))}},{key:"canInitParallax",value:function(){return m&&!this.options.disableParallax()}},{key:"init",value:function(){var e,t,n,o=this,i={position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden"},a={pointerEvents:"none",transformStyle:"preserve-3d",backfaceVisibility:"hidden",willChange:"transform,opacity"};o.options.keepImg||((e=o.$item.getAttribute("style"))&&o.$item.setAttribute("data-jarallax-original-styles",e),!o.image.useImgTag||(t=o.image.$item.getAttribute("style"))&&o.image.$item.setAttribute("data-jarallax-original-styles",t)),"static"===o.css(o.$item,"position")&&o.css(o.$item,{position:"relative"}),"auto"===o.css(o.$item,"z-index")&&o.css(o.$item,{zIndex:0}),o.image.$container=document.createElement("div"),o.css(o.image.$container,i),o.css(o.image.$container,{"z-index":o.options.zIndex}),d&&o.css(o.image.$container,{opacity:.9999}),o.image.$container.setAttribute("id","jarallax-container-".concat(o.instanceID)),o.$item.appendChild(o.image.$container),o.image.useImgTag?a=o.extend({"object-fit":o.options.imgSize,"object-position":o.options.imgPosition,"font-family":"object-fit: ".concat(o.options.imgSize,"; object-position: ").concat(o.options.imgPosition,";"),"max-width":"none"},i,a):(o.image.$item=document.createElement("div"),o.image.src&&(a=o.extend({"background-position":o.options.imgPosition,"background-size":o.options.imgSize,"background-repeat":o.options.imgRepeat,"background-image":o.image.bgImage||'url("'.concat(o.image.src,'")')},i,a))),"opacity"!==o.options.type&&"scale"!==o.options.type&&"scale-opacity"!==o.options.type&&1!==o.options.speed||(o.image.position="absolute"),"fixed"===o.image.position&&(n=function(e){for(var t=[];null!==e.parentElement;)1===(e=e.parentElement).nodeType&&t.push(e);return t}(o.$item).filter(function(e){var t=b.window.getComputedStyle(e),n=t["-webkit-transform"]||t["-moz-transform"]||t.transform;return n&&"none"!==n||/(auto|scroll)/.test(t.overflow+t["overflow-y"]+t["overflow-x"])}),o.image.position=n.length?"absolute":"fixed"),a.position=o.image.position,o.css(o.image.$item,a),o.image.$container.appendChild(o.image.$item),o.onResize(),o.onScroll(!0),o.options.onInit&&o.options.onInit.call(o),"none"!==o.css(o.$item,"background-image")&&o.css(o.$item,{"background-image":"none"}),o.addToParallaxList()}},{key:"addToParallaxList",value:function(){g.push({instance:this}),1===g.length&&b.window.requestAnimationFrame(y)}},{key:"removeFromParallaxList",value:function(){var n=this;g.forEach(function(e,t){e.instance.instanceID===n.instanceID&&g.splice(t,1)})}},{key:"destroy",value:function(){var e=this;e.removeFromParallaxList();var t,n=e.$item.getAttribute("data-jarallax-original-styles");e.$item.removeAttribute("data-jarallax-original-styles"),n?e.$item.setAttribute("style",n):e.$item.removeAttribute("style"),e.image.useImgTag&&(t=e.image.$item.getAttribute("data-jarallax-original-styles"),e.image.$item.removeAttribute("data-jarallax-original-styles"),t?e.image.$item.setAttribute("style",n):e.image.$item.removeAttribute("style"),e.image.$itemParent&&e.image.$itemParent.appendChild(e.image.$item)),e.$clipStyles&&e.$clipStyles.parentNode.removeChild(e.$clipStyles),e.image.$container&&e.image.$container.parentNode.removeChild(e.image.$container),e.options.onDestroy&&e.options.onDestroy.call(e),delete e.$item.jarallax}},{key:"clipContainer",value:function(){var e,t,n,o,i;"fixed"===this.image.position&&(n=(t=(e=this).image.$container.getBoundingClientRect()).width,o=t.height,e.$clipStyles||(e.$clipStyles=document.createElement("style"),e.$clipStyles.setAttribute("type","text/css"),e.$clipStyles.setAttribute("id","jarallax-clip-".concat(e.instanceID)),(document.head||document.getElementsByTagName("head")[0]).appendChild(e.$clipStyles)),i="#jarallax-container-".concat(e.instanceID," {\n clip: rect(0 ").concat(n,"px ").concat(o,"px 0);\n clip: rect(0, ").concat(n,"px, ").concat(o,"px, 0);\n -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);\n clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);\n }"),e.$clipStyles.styleSheet?e.$clipStyles.styleSheet.cssText=i:e.$clipStyles.innerHTML=i)}},{key:"coverImage",value:function(){var e=this,t=e.image.$container.getBoundingClientRect(),n=t.height,o=e.options.speed,i="scroll"===e.options.type||"scroll-opacity"===e.options.type,a=0,r=n,l=0;return i&&(o<0?(a=o*Math.max(n,h),h<n&&(a-=o*(n-h))):a=o*(n+h),1<o?r=Math.abs(a-h):o<0?r=a/o+Math.abs(a):r+=(h-n)*(1-o),a/=2),e.parallaxScrollDistance=a,l=i?(h-r)/2:(n-r)/2,e.css(e.image.$item,{height:"".concat(r,"px"),marginTop:"".concat(l,"px"),left:"fixed"===e.image.position?"".concat(t.left,"px"):"0",width:"".concat(t.width,"px")}),e.options.onCoverImage&&e.options.onCoverImage.call(e),{image:{height:r,marginTop:l},container:t}}},{key:"isVisible",value:function(){return this.isElementInViewport||!1}},{key:"onScroll",value:function(e){var t,n,o,i,a,r,l,s,c,u,p=this,d=p.$item.getBoundingClientRect(),m=d.top,f=d.height,g={},y=d;p.options.elementInViewport&&(y=p.options.elementInViewport.getBoundingClientRect()),p.isElementInViewport=0<=y.bottom&&0<=y.right&&y.top<=h&&y.left<=b.window.innerWidth,(e||p.isElementInViewport)&&(t=Math.max(0,m),n=Math.max(0,f+m),o=Math.max(0,-m),i=Math.max(0,m+f-h),a=Math.max(0,f-(m+f-h)),r=Math.max(0,-m+h-f),l=1-(h-m)/(h+f)*2,s=1,f<h?s=1-(o||i)/f:n<=h?s=n/h:a<=h&&(s=a/h),"opacity"!==p.options.type&&"scale-opacity"!==p.options.type&&"scroll-opacity"!==p.options.type||(g.transform="translate3d(0,0,0)",g.opacity=s),"scale"!==p.options.type&&"scale-opacity"!==p.options.type||(c=1,p.options.speed<0?c-=p.options.speed*s:c+=p.options.speed*(1-s),g.transform="scale(".concat(c,") translate3d(0,0,0)")),"scroll"!==p.options.type&&"scroll-opacity"!==p.options.type||(u=p.parallaxScrollDistance*l,"absolute"===p.image.position&&(u-=m),g.transform="translate3d(0,".concat(u,"px,0)")),p.css(p.image.$item,g),p.options.onScroll&&p.options.onScroll.call(p,{section:d,beforeTop:t,beforeTopEnd:n,afterTop:o,beforeBottom:i,beforeBottomEnd:a,afterBottom:r,visiblePercent:s,fromViewportCenter:l}))}},{key:"onResize",value:function(){this.coverImage(),this.clipContainer()}}])&&r(e.prototype,t),n&&r(e,n),s}();v.constructor=w,t.default=v}]);
assets/lib/js/magnific-popup.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+
2
+ /*! Magnific Popup - v1.1.0 - 2016-02-20
3
+ * http://dimsemenov.com/plugins/magnific-popup/
4
+ * Copyright (c) 2016 Dmitry Semenov; */
5
+ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});
6
+
assets/lib/js/one-page-nav.js ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ /*
3
+ * jQuery One Page Nav Plugin
4
+ * http://github.com/davist11/jQuery-One-Page-Nav
5
+ *
6
+ * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
7
+ * Dual licensed under the MIT and GPL licenses.
8
+ * Uses the same license as jQuery, see:
9
+ * http://jquery.org/license
10
+ *
11
+ * @version 3.0.0
12
+ *
13
+ * Example usage:
14
+ * $('#nav').onePageNav({
15
+ * currentClass: 'current',
16
+ * changeHash: false,
17
+ * scrollSpeed: 750
18
+ * });
19
+ */
20
+
21
+ ;(function($, window, document, undefined){
22
+
23
+ // our plugin constructor
24
+ var OnePageNav = function(elem, options){
25
+ this.elem = elem;
26
+ this.$elem = $(elem);
27
+ this.options = options;
28
+ this.metadata = this.$elem.data('plugin-options');
29
+ this.$win = $(window);
30
+ this.sections = {};
31
+ this.didScroll = false;
32
+ this.$doc = $(document);
33
+ this.docHeight = this.$doc.height();
34
+ };
35
+
36
+ // the plugin prototype
37
+ OnePageNav.prototype = {
38
+ defaults: {
39
+ navItems: 'a',
40
+ currentClass: 'current',
41
+ changeHash: false,
42
+ easing: 'swing',
43
+ filter: '',
44
+ scrollSpeed: 750,
45
+ scrollThreshold: 0.5,
46
+ begin: false,
47
+ end: false,
48
+ scrollChange: false
49
+ },
50
+
51
+ init: function() {
52
+ // Introduce defaults that can be extended either
53
+ // globally or using an object literal.
54
+ this.config = $.extend({}, this.defaults, this.options, this.metadata);
55
+
56
+ this.$nav = this.$elem.find(this.config.navItems);
57
+
58
+ //Filter any links out of the nav
59
+ if(this.config.filter !== '') {
60
+ this.$nav = this.$nav.filter(this.config.filter);
61
+ }
62
+
63
+ //Handle clicks on the nav
64
+ this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));
65
+
66
+ //Get the section positions
67
+ this.getPositions();
68
+
69
+ //Handle scroll changes
70
+ this.bindInterval();
71
+
72
+ //Update the positions on resize too
73
+ this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));
74
+
75
+ return this;
76
+ },
77
+
78
+ adjustNav: function(self, $parent) {
79
+ self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
80
+ $parent.addClass(self.config.currentClass);
81
+ },
82
+
83
+ bindInterval: function() {
84
+ var self = this;
85
+ var docHeight;
86
+
87
+ self.$win.on('scroll.onePageNav', function() {
88
+ self.didScroll = true;
89
+ });
90
+
91
+ self.t = setInterval(function() {
92
+ docHeight = self.$doc.height();
93
+
94
+ //If it was scrolled
95
+ if(self.didScroll) {
96
+ self.didScroll = false;
97
+ self.scrollChange();
98
+ }
99
+
100
+ //If the document height changes
101
+ if(docHeight !== self.docHeight) {
102
+ self.docHeight = docHeight;
103
+ self.getPositions();
104
+ }
105
+ }, 250);
106
+ },
107
+
108
+ getHash: function($link) {
109
+ return $link.attr('href').split('#')[1];
110
+ },
111
+
112
+ getPositions: function() {
113
+ var self = this;
114
+ var linkHref;
115
+ var topPos;
116
+ var $target;
117
+
118
+ self.$nav.each(function() {
119
+ linkHref = self.getHash($(this));
120
+ $target = $('#' + linkHref);
121
+
122
+ if($target.length) {
123
+ topPos = $target.offset().top;
124
+ self.sections[linkHref] = Math.round(topPos);
125
+ }
126
+ });
127
+ },
128
+
129
+ getSection: function(windowPos) {
130
+ var returnValue = null;
131
+ var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);
132
+
133
+ for(var section in this.sections) {
134
+ if((this.sections[section] - windowHeight) < windowPos) {
135
+ returnValue = section;
136
+ }
137
+ }
138
+
139
+ return returnValue;
140
+ },
141
+
142
+ handleClick: function(e) {
143
+ var self = this;
144
+ var $link = $(e.currentTarget);
145
+ var $parent = $link.parent();
146
+ var newLoc = '#' + self.getHash($link);
147
+
148
+ if(!$parent.hasClass(self.config.currentClass)) {
149
+ //Start callback
150
+ if(self.config.begin) {
151
+ self.config.begin();
152
+ }
153
+
154
+ //Change the highlighted nav item
155
+ self.adjustNav(self, $parent);
156
+
157
+ //Removing the auto-adjust on scroll
158
+ self.unbindInterval();
159
+
160
+ //Scroll to the correct position
161
+ self.scrollTo(newLoc, function() {
162
+ //Do we need to change the hash?
163
+ if(self.config.changeHash) {
164
+ window.location.hash = newLoc;
165
+ }
166
+
167
+ //Add the auto-adjust on scroll back in
168
+ self.bindInterval();
169
+
170
+ //End callback
171
+ if(self.config.end) {
172
+ self.config.end();
173
+ }
174
+ });
175
+ }
176
+
177
+ e.preventDefault();
178
+ },
179
+
180
+ scrollChange: function() {
181
+ var windowTop = this.$win.scrollTop();
182
+ var position = this.getSection(windowTop);
183
+ var $parent;
184
+
185
+ //If the position is set
186
+ if(position !== null) {
187
+ $parent = this.$elem.find('a[href$="#' + position + '"]').parent();
188
+
189
+ //If it's not already the current section
190
+ if(!$parent.hasClass(this.config.currentClass)) {
191
+ //Change the highlighted nav item
192
+ this.adjustNav(this, $parent);
193
+
194
+ //If there is a scrollChange callback
195
+ if(this.config.scrollChange) {
196
+ this.config.scrollChange($parent);
197
+ }
198
+ }
199
+ }
200
+ },
201
+
202
+ scrollTo: function(target, callback) {
203
+ var offset = $(target).offset().top;
204
+
205
+ $('html, body').animate({
206
+ scrollTop: offset
207
+ }, this.config.scrollSpeed, this.config.easing, callback);
208
+ },
209
+
210
+ unbindInterval: function() {
211
+ clearInterval(this.t);
212
+ this.$win.unbind('scroll.onePageNav');
213
+ }
214
+ };
215
+
216
+ OnePageNav.defaults = OnePageNav.prototype.defaults;
217
+
218
+ $.fn.onePageNav = function(options) {
219
+ return this.each(function() {
220
+ new OnePageNav(this, options).init();
221
+ });
222
+ };
223
+
224
+ })( jQuery, window , document );
225
+
226
+
227
+
assets/lib/js/wow.js ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ /*! WOW wow.js - v1.3.0 - 2016-10-04
2
+ * https://wowjs.uk
3
+ * Copyright (c) 2016 Thomas Grainger; Licensed MIT */!function(a,b){if("function"==typeof define&&define.amd)define(["module","exports"],b);else if("undefined"!=typeof exports)b(module,exports);else{var c={exports:{}};b(c,c.exports),a.WOW=c.exports}}(this,function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){return b.indexOf(a)>=0}function e(a,b){for(var c in b)if(null==a[c]){var d=b[c];a[c]=d}return a}function f(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)}function g(a){var b=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],c=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],d=arguments.length<=3||void 0===arguments[3]?null:arguments[3],e=void 0;return null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e}function h(a,b){null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)&&a["on"+b]()}function i(a,b,c){null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c}function j(a,b,c){null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]}function k(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight}Object.defineProperty(b,"__esModule",{value:!0});var l,m,n=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),o=window.WeakMap||window.MozWeakMap||function(){function a(){c(this,a),this.keys=[],this.values=[]}return n(a,[{key:"get",value:function(a){for(var b=0;b<this.keys.length;b++){var c=this.keys[b];if(c===a)return this.values[b]}}},{key:"set",value:function(a,b){for(var c=0;c<this.keys.length;c++){var d=this.keys[c];if(d===a)return this.values[c]=b,this}return this.keys.push(a),this.values.push(b),this}}]),a}(),p=window.MutationObserver||window.WebkitMutationObserver||window.MozMutationObserver||(m=l=function(){function a(){c(this,a),"undefined"!=typeof console&&null!==console&&(console.warn("MutationObserver is not supported by your browser."),console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content."))}return n(a,[{key:"observe",value:function(){}}]),a}(),l.notSupported=!0,m),q=window.getComputedStyle||function(a){var b=/(\-([a-z]){1})/g;return{getPropertyValue:function(c){"float"===c&&(c="styleFloat"),b.test(c)&&c.replace(b,function(a,b){return b.toUpperCase()});var d=a.currentStyle;return(null!=d?d[c]:void 0)||null}}},r=function(){function a(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];c(this,a),this.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null,resetAnimation:!0},this.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),this.vendors=["moz","webkit"],this.start=this.start.bind(this),this.resetAnimation=this.resetAnimation.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.scrollCallback=this.scrollCallback.bind(this),this.scrolled=!0,this.config=e(b,this.defaults),null!=b.scrollContainer&&(this.config.scrollContainer=document.querySelector(b.scrollContainer)),this.animationNameCache=new o,this.wowEvent=g(this.config.boxClass)}return n(a,[{key:"init",value:function(){this.element=window.document.documentElement,d(document.readyState,["interactive","complete"])?this.start():i(document,"DOMContentLoaded",this.start),this.finished=[]}},{key:"start",value:function(){var a=this;if(this.stopped=!1,this.boxes=[].slice.call(this.element.querySelectorAll("."+this.config.boxClass)),this.all=this.boxes.slice(0),this.boxes.length)if(this.disabled())this.resetStyle();else for(var b=0;b<this.boxes.length;b++){var c=this.boxes[b];this.applyStyle(c,!0)}if(this.disabled()||(i(this.config.scrollContainer||window,"scroll",this.scrollHandler),i(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live){var d=new p(function(b){for(var c=0;c<b.length;c++)for(var d=b[c],e=0;e<d.addedNodes.length;e++){var f=d.addedNodes[e];a.doSync(f)}});d.observe(document.body,{childList:!0,subtree:!0})}}},{key:"stop",value:function(){this.stopped=!0,j(this.config.scrollContainer||window,"scroll",this.scrollHandler),j(window,"resize",this.scrollHandler),null!=this.interval&&clearInterval(this.interval)}},{key:"sync",value:function(){p.notSupported&&this.doSync(this.element)}},{key:"doSync",value:function(a){if("undefined"!=typeof a&&null!==a||(a=this.element),1===a.nodeType){a=a.parentNode||a;for(var b=a.querySelectorAll("."+this.config.boxClass),c=0;c<b.length;c++){var e=b[c];d(e,this.all)||(this.boxes.push(e),this.all.push(e),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(e,!0),this.scrolled=!0)}}}},{key:"show",value:function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),h(a,this.wowEvent),this.config.resetAnimation&&(i(a,"animationend",this.resetAnimation),i(a,"oanimationend",this.resetAnimation),i(a,"webkitAnimationEnd",this.resetAnimation),i(a,"MSAnimationEnd",this.resetAnimation)),a}},{key:"applyStyle",value:function(a,b){var c=this,d=a.getAttribute("data-wow-duration"),e=a.getAttribute("data-wow-delay"),f=a.getAttribute("data-wow-iteration");return this.animate(function(){return c.customStyle(a,b,d,e,f)})}},{key:"resetStyle",value:function(){for(var a=0;a<this.boxes.length;a++){var b=this.boxes[a];b.style.visibility="visible"}}},{key:"resetAnimation",value:function(a){if(a.type.toLowerCase().indexOf("animationend")>=0){var b=a.target||a.srcElement;b.className=b.className.replace(this.config.animateClass,"").trim()}}},{key:"customStyle",value:function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a}},{key:"vendorSet",value:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];a[""+c]=d;for(var e=0;e<this.vendors.length;e++){var f=this.vendors[e];a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=d}}}},{key:"vendorCSS",value:function(a,b){for(var c=q(a),d=c.getPropertyCSSValue(b),e=0;e<this.vendors.length;e++){var f=this.vendors[e];d=d||c.getPropertyCSSValue("-"+f+"-"+b)}return d}},{key:"animationName",value:function(a){var b=void 0;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=q(a).getPropertyValue("animation-name")}return"none"===b?"":b}},{key:"cacheAnimationName",value:function(a){return this.animationNameCache.set(a,this.animationName(a))}},{key:"cachedAnimationName",value:function(a){return this.animationNameCache.get(a)}},{key:"scrollHandler",value:function(){this.scrolled=!0}},{key:"scrollCallback",value:function(){if(this.scrolled){this.scrolled=!1;for(var a=[],b=0;b<this.boxes.length;b++){var c=this.boxes[b];if(c){if(this.isVisible(c)){this.show(c);continue}a.push(c)}}this.boxes=a,this.boxes.length||this.config.live||this.stop()}}},{key:"offsetTop",value:function(a){for(;void 0===a.offsetTop;)a=a.parentNode;for(var b=a.offsetTop;a.offsetParent;)a=a.offsetParent,b+=a.offsetTop;return b}},{key:"isVisible",value:function(a){var b=a.getAttribute("data-wow-offset")||this.config.offset,c=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,d=c+Math.min(this.element.clientHeight,k())-b,e=this.offsetTop(a),f=e+a.clientHeight;return d>=e&&f>=c}},{key:"disabled",value:function(){return!this.config.mobile&&f(navigator.userAgent)}}]),a}();b["default"]=r,a.exports=b["default"]});
classes/class.ajax_actions.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+
4
+ class Woolentor_Ajax_Action{
5
+
6
+ /**
7
+ * [$instance]
8
+ * @var null
9
+ */
10
+ private static $instance = null;
11
+
12
+ /**
13
+ * [instance]
14
+ * @return [Woolentor_Ajax_Action]
15
+ */
16
+ public static function instance(){
17
+ if( is_null( self::$instance ) ){
18
+ self::$instance = new self();
19
+ }
20
+ return self::$instance;
21
+ }
22
+
23
+ /**
24
+ * [__construct]
25
+ */
26
+ function __construct(){
27
+
28
+ // For Add to cart
29
+ add_action( 'wp_ajax_woolentor_insert_to_cart', [ $this, 'insert_to_cart' ] );
30
+ add_action( 'wp_ajax_nopriv_woolentor_insert_to_cart', [ $this, 'insert_to_cart' ] );
31
+
32
+ // For Single Product ajax add to cart
33
+ add_action( 'wp_ajax_woolentor_single_insert_to_cart', [ $this, 'single_product_insert_to_cart' ] );
34
+ add_action( 'wp_ajax_nopriv_woolentor_single_insert_to_cart', [ $this, 'single_product_insert_to_cart' ] );
35
+
36
+ // For Quickview
37
+ add_action( 'wp_ajax_woolentor_quickview', [ '\WooLentor\Quick_View_Manager', 'wc_quickview' ] );
38
+ add_action( 'wp_ajax_nopriv_woolentor_quickview', [ '\WooLentor\Quick_View_Manager', 'wc_quickview' ] );
39
+
40
+ // For ajax search
41
+ add_action( 'wp_ajax_woolentor_ajax_search', [ $this, 'ajax_search_callback' ] );
42
+ add_action( 'wp_ajax_nopriv_woolentor_ajax_search', [ $this, 'ajax_search_callback' ] );
43
+
44
+ }
45
+
46
+ /**
47
+ * [insert_to_cart] Insert add to cart
48
+ * @return [JSON]
49
+ */
50
+ public function insert_to_cart(){
51
+
52
+ // phpcs:disable WordPress.Security.NonceVerification.Missing
53
+ if ( ! isset( $_POST['product_id'] ) ) {
54
+ return;
55
+ }
56
+
57
+ $product_id = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $_POST['product_id'] ) );
58
+ $quantity = empty( $_POST['quantity'] ) ? 1 : wc_stock_amount( wp_unslash( $_POST['quantity'] ) );
59
+ $variation_id = !empty( $_POST['variation_id'] ) ? absint( $_POST['variation_id'] ) : 0;
60
+ $variations = !empty( $_POST['variations'] ) ? array_map( 'sanitize_text_field', $_POST['variations'] ) : array();
61
+ $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variations );
62
+ $product_status = get_post_status( $product_id );
63
+
64
+ if ( $passed_validation && \WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variations ) && 'publish' === $product_status ) {
65
+ do_action( 'woocommerce_ajax_added_to_cart', $product_id );
66
+ if ( 'yes' === get_option('woocommerce_cart_redirect_after_add') ) {
67
+ wc_add_to_cart_message( array( $product_id => $quantity ), true );
68
+ }
69
+ \WC_AJAX::get_refreshed_fragments();
70
+ } else {
71
+ $data = array(
72
+ 'error' => true,
73
+ 'product_url' => apply_filters('woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id ),
74
+ );
75
+ echo wp_send_json( $data );
76
+ }
77
+ wp_send_json_success();
78
+
79
+ }
80
+
81
+ /**
82
+ * [single_product_insert_to_cart] Single product ajax add to cart callable function
83
+ * @return [JSON]
84
+ */
85
+ public function single_product_insert_to_cart(){
86
+
87
+ // phpcs:disable WordPress.Security.NonceVerification.Missing
88
+ if ( ! isset( $_POST['product_id'] ) ) {
89
+ return;
90
+ }
91
+
92
+ $product_id = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $_POST['product_id'] ) );
93
+ $product = wc_get_product( $product_id );
94
+ $quantity = empty( $_POST['quantity'] ) ? 1 : wc_stock_amount( wp_unslash( $_POST['quantity'] ) );
95
+ $variation_id = !empty( $_POST['variation_id'] ) ? absint( $_POST['variation_id'] ) : 0;
96
+ $variations = !empty( $_POST['variations'] ) ? array_map( 'sanitize_text_field', json_decode( stripslashes( $_POST['variations'] ), true ) ) : array();
97
+ $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variations );
98
+ $product_status = get_post_status( $product_id );
99
+
100
+ $cart_item_data = $_POST;
101
+
102
+ if ( $passed_validation && 'publish' === $product_status ) {
103
+
104
+ if( count( $variations ) == 0 ){
105
+ \WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variations, $cart_item_data );
106
+ }
107
+
108
+ do_action( 'woocommerce_ajax_added_to_cart', $product_id );
109
+ if ( 'yes' === get_option('woocommerce_cart_redirect_after_add') ) {
110
+ wc_add_to_cart_message( array( $product_id => $quantity ), true );
111
+ }
112
+ \WC_AJAX::get_refreshed_fragments();
113
+ } else {
114
+ $data = array(
115
+ 'error' => true,
116
+ 'product_url' => apply_filters('woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id ),
117
+ );
118
+ echo wp_send_json( $data );
119
+ }
120
+ wp_send_json_success();
121
+
122
+ }
123
+
124
+ /**
125
+ * [ajax_search_callback] ajax search
126
+ * @return [void]
127
+ */
128
+ public function ajax_search_callback(){
129
+ WooLentor_Ajax_Search_Base::instance()->ajax_search_callback();
130
+ }
131
+
132
+
133
+ }
134
+
135
+ Woolentor_Ajax_Action::instance();
classes/class.assest_management.php CHANGED
@@ -46,6 +46,21 @@ class Assets_Management{
46
  // Frontend Scripts
47
  add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_frontend_scripts' ] );
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
 
51
  /**
@@ -68,6 +83,10 @@ class Assets_Management{
68
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/font-awesome.min.css',
69
  'version' => WOOLENTOR_VERSION
70
  ],
 
 
 
 
71
  'woolentor-widgets' => [
72
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/woolentor-widgets.css',
73
  'version' => WOOLENTOR_VERSION
@@ -76,6 +95,10 @@ class Assets_Management{
76
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/slick.css',
77
  'version' => WOOLENTOR_VERSION
78
  ],
 
 
 
 
79
  'woolentor-widgets-rtl' => [
80
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/woolentor-widgets-rtl.css',
81
  'version' => WOOLENTOR_VERSION
@@ -97,6 +120,33 @@ class Assets_Management{
97
  'src' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/css/tmp-style.css',
98
  'version' => WOOLENTOR_VERSION
99
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
 
101
 
102
  ];
@@ -122,16 +172,41 @@ class Assets_Management{
122
  'version' => WOOLENTOR_VERSION,
123
  'deps' => [ 'jquery' ]
124
  ],
125
- 'woolentor-widgets-scripts' => [
126
- 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/js/woolentor-widgets-active.js',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  'version' => WOOLENTOR_VERSION,
128
- 'deps' => [ 'jquery','slick' ]
129
  ],
130
- 'jquery-nicescroll' => [
131
- 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/addons/ajax-search/js/jquery.nicescroll.min.js',
132
  'version' => WOOLENTOR_VERSION,
133
  'deps' => [ 'jquery' ]
134
  ],
 
 
 
 
 
 
 
 
 
 
135
  'woolentor-ajax-search' => [
136
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/addons/ajax-search/js/ajax-search.js',
137
  'version' => WOOLENTOR_VERSION,
@@ -177,7 +252,7 @@ class Assets_Management{
177
  'woolentor-install-manager' => [
178
  'src' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/js/install_manager.js',
179
  'version' => WOOLENTOR_VERSION,
180
- 'deps' => [ 'woolentor-templates', 'wp-util', 'updates' ]
181
  ],
182
 
183
  ];
@@ -218,7 +293,13 @@ class Assets_Management{
218
  if( is_admin() ){
219
 
220
  $datalocalize = array(
221
- 'contenttype' => woolentor_get_option( 'notification_content_type','woolentor_sales_notification_tabs', 'actual' ),
 
 
 
 
 
 
222
  );
223
  wp_localize_script( 'woolentor-admin-main', 'admin_wllocalize_data', $datalocalize );
224
 
@@ -230,7 +311,7 @@ class Assets_Management{
230
  'elementorURL' => admin_url( 'edit.php?post_type=elementor_library' ),
231
  'version' => WOOLENTOR_VERSION,
232
  'pluginURL' => plugin_dir_url( __FILE__ ),
233
- 'alldata' => ( !empty( \Woolentor_Template_Library::instance()->get_templates_info()['templates'] ) ? \Woolentor_Template_Library::instance()->get_templates_info()['templates']:array() ),
234
  'prolink' => 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd',
235
  'prolabel' => esc_html__( 'Pro', 'woolentor' ),
236
  'loadingimg' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/images/loading.gif',
@@ -254,6 +335,7 @@ class Assets_Management{
254
  ],
255
  ];
256
  wp_localize_script( 'woolentor-templates', 'WLTM', $localize_data );
 
257
  }
258
 
259
  }
46
  // Frontend Scripts
47
  add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_frontend_scripts' ] );
48
 
49
+ add_filter( 'body_class', [ $this, 'body_classes' ] );
50
+
51
+ }
52
+
53
+ /**
54
+ * [body_classes]
55
+ * @param [array] $classes
56
+ * @return [array]
57
+ */
58
+ public function body_classes( $classes ){
59
+
60
+ $current_theme = wp_get_theme();
61
+ $classes[] = 'woolentor_current_theme_'.$current_theme->get( 'TextDomain' );
62
+
63
+ return $classes;
64
  }
65
 
66
  /**
83
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/font-awesome.min.css',
84
  'version' => WOOLENTOR_VERSION
85
  ],
86
+ 'woolentor-select2' => [
87
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/select2.min.css',
88
+ 'version' => WOOLENTOR_VERSION
89
+ ],
90
  'woolentor-widgets' => [
91
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/woolentor-widgets.css',
92
  'version' => WOOLENTOR_VERSION
95
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/slick.css',
96
  'version' => WOOLENTOR_VERSION
97
  ],
98
+ 'magnific-popup' => [
99
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/lib/css/magnific-popup.css',
100
+ 'version' => WOOLENTOR_VERSION
101
+ ],
102
  'woolentor-widgets-rtl' => [
103
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/woolentor-widgets-rtl.css',
104
  'version' => WOOLENTOR_VERSION
120
  'src' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/css/tmp-style.css',
121
  'version' => WOOLENTOR_VERSION
122
  ],
123
+ 'woolentor-store-feature' => [
124
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/store-feature.css',
125
+ 'version' => WOOLENTOR_VERSION
126
+ ],
127
+ 'woolentor-faq' => [
128
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/faq.css',
129
+ 'version' => WOOLENTOR_VERSION
130
+ ],
131
+ 'woolentor-category-grid' => [
132
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/category-grid.css',
133
+ 'version' => WOOLENTOR_VERSION
134
+ ],
135
+ 'woolentor-slider' => [
136
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/slider.css',
137
+ 'version' => WOOLENTOR_VERSION,
138
+ 'deps' => [ 'magnific-popup' ]
139
+ ],
140
+ 'woolentor-testimonial' => [
141
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/testimonial.css',
142
+ 'version' => WOOLENTOR_VERSION,
143
+ 'deps' => [ 'slick' ]
144
+ ],
145
+ 'woolentor-product-grid' => [
146
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/css/product-grid.css',
147
+ 'version' => WOOLENTOR_VERSION,
148
+ 'deps' => [ 'slick','simple-line-icons-wl' ]
149
+ ],
150
 
151
 
152
  ];
172
  'version' => WOOLENTOR_VERSION,
173
  'deps' => [ 'jquery' ]
174
  ],
175
+ 'woolentor-accordion-min' => [
176
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/js/accordion.min.js',
177
+ 'version' => WOOLENTOR_VERSION,
178
+ 'deps' => [ 'jquery' ]
179
+ ],
180
+ 'select2-min' => [
181
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/js/select2.min.js',
182
+ 'version' => WOOLENTOR_VERSION,
183
+ 'deps' => [ 'jquery' ]
184
+ ],
185
+ 'wow' => [
186
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/lib/js/wow.js',
187
+ 'version' => WOOLENTOR_VERSION,
188
+ 'deps' => [ 'jquery' ]
189
+ ],
190
+ 'jarallax' => [
191
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/lib/js/jarallax.js',
192
  'version' => WOOLENTOR_VERSION,
193
+ 'deps' => [ 'jquery' ]
194
  ],
195
+ 'magnific-popup' => [
196
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/lib/js/magnific-popup.js',
197
  'version' => WOOLENTOR_VERSION,
198
  'deps' => [ 'jquery' ]
199
  ],
200
+ 'one-page-nav' => [
201
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/lib/js/one-page-nav.js',
202
+ 'version' => WOOLENTOR_VERSION,
203
+ 'deps' => [ 'jarallax','magnific-popup','wow','jquery' ]
204
+ ],
205
+ 'woolentor-widgets-scripts' => [
206
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/js/woolentor-widgets-active.js',
207
+ 'version' => WOOLENTOR_VERSION,
208
+ 'deps' => [ 'jquery','slick','wc-add-to-cart-variation' ]
209
+ ],
210
  'woolentor-ajax-search' => [
211
  'src' => WOOLENTOR_ADDONS_PL_URL . 'assets/addons/ajax-search/js/ajax-search.js',
212
  'version' => WOOLENTOR_VERSION,
252
  'woolentor-install-manager' => [
253
  'src' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/js/install_manager.js',
254
  'version' => WOOLENTOR_VERSION,
255
+ 'deps' => [ 'wp-util', 'updates' ]
256
  ],
257
 
258
  ];
293
  if( is_admin() ){
294
 
295
  $datalocalize = array(
296
+ 'option_data'=>[
297
+ 'contenttype' => woolentor_get_option( 'notification_content_type','woolentor_sales_notification_tabs', 'actual' ),
298
+ 'side_mini_cart' => woolentor_get_option( 'mini_side_cart','woolentor_others_tabs', 'off' ),
299
+ 'enablecustomlayout' => woolentor_get_option( 'enablecustomlayout','woolentor_woo_template_tabs', 'on' ),
300
+ 'enablerenamelabel' => woolentor_get_option( 'enablerenamelabel','woolentor_rename_label_tabs', 'off' ),
301
+ 'single_product_sticky_add_to_cart' => woolentor_get_option( 'single_product_sticky_add_to_cart','woolentor_others_tabs', 'off' ),
302
+ ],
303
  );
304
  wp_localize_script( 'woolentor-admin-main', 'admin_wllocalize_data', $datalocalize );
305
 
311
  'elementorURL' => admin_url( 'edit.php?post_type=elementor_library' ),
312
  'version' => WOOLENTOR_VERSION,
313
  'pluginURL' => plugin_dir_url( __FILE__ ),
314
+ 'alldata' => !empty( base::$template_info['templates'] ) ? base::$template_info['templates'] : array(),
315
  'prolink' => 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd',
316
  'prolabel' => esc_html__( 'Pro', 'woolentor' ),
317
  'loadingimg' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/images/loading.gif',
335
  ],
336
  ];
337
  wp_localize_script( 'woolentor-templates', 'WLTM', $localize_data );
338
+ wp_localize_script( 'woolentor-install-manager', 'WLIM', $localize_data );
339
  }
340
 
341
  }
classes/class.default_data.php CHANGED
@@ -148,7 +148,7 @@ class WooLentor_Default_Data{
148
  </div>
149
  </div>
150
  <?php else:?>
151
- <?php echo '<div class="wl-nodata">'.__('No Ratting Available','woolentor').'</div>';?>
152
  <?php endif;
153
  break;
154
 
@@ -166,7 +166,7 @@ class WooLentor_Default_Data{
166
  if ( function_exists( 'wc_get_gallery_image_html' ) ) {
167
  ?>
168
  <div class="product">
169
- <div class="<?php echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ); ?>" data-columns="<?php echo esc_attr( $columns ); ?>" style="opacity: 0; transition: opacity .25s ease-in-out;">
170
  <figure class="woocommerce-product-gallery__wrapper">
171
  <?php
172
  if ( $product->get_image_id() ) {
148
  </div>
149
  </div>
150
  <?php else:?>
151
+ <?php echo '<div class="wl-nodata">'.__('No Rating Available','woolentor').'</div>';?>
152
  <?php endif;
153
  break;
154
 
166
  if ( function_exists( 'wc_get_gallery_image_html' ) ) {
167
  ?>
168
  <div class="product">
169
+ <div class="<?php echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ); ?>" data-columns="<?php echo esc_attr( $columns ); ?>" style="transition: opacity .25s ease-in-out;float: none;width: 100%;">
170
  <figure class="woocommerce-product-gallery__wrapper">
171
  <?php
172
  if ( $product->get_image_id() ) {
classes/class.icon_list.php ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+
4
+ class Woolentor_Icon_List{
5
+
6
+ /**
7
+ * [get_icons]
8
+ * @return [array]
9
+ */
10
+ public static function get_icons(){
11
+ $simple_line_icon = [
12
+ 'sli-user' => 'sli sli-user',
13
+ 'sli-people' => 'sli sli-people',
14
+ 'sli-user-female' => 'sli sli-user-female',
15
+ 'sli-user-follow' => 'sli sli-user-follow',
16
+ 'sli-user-following' => 'sli sli-user-following',
17
+ 'sli-user-unfollow' => 'sli sli-user-unfollow',
18
+ 'sli-login' => 'sli sli-login',
19
+ 'sli-logout' => 'sli sli-logout',
20
+ 'sli-emotsmile' => 'sli sli-emotsmile',
21
+ 'sli-phone' => 'sli sli-phone',
22
+ 'sli-call-end' => 'sli sli-call-end',
23
+ 'sli-call-in' => 'sli sli-call-in',
24
+ 'sli-call-out' => 'sli sli-call-out',
25
+ 'sli-map' => 'sli sli-map',
26
+ 'sli-location-pin' => 'sli sli-location-pin',
27
+ 'sli-direction' => 'sli sli-direction',
28
+ 'sli-directions' => 'sli sli-directions',
29
+ 'sli-compass' => 'sli sli-compass',
30
+ 'sli-layers' => 'sli sli-layers',
31
+ 'sli-menu' => 'sli sli-menu',
32
+ 'sli-list' => 'sli sli-list',
33
+ 'sli-options-vertical' => 'sli sli-options-vertical',
34
+ 'sli-options' => 'sli sli-options',
35
+ 'sli-arrow-down' => 'sli sli-arrow-down',
36
+ 'sli-arrow-left' => 'sli sli-arrow-left',
37
+ 'sli-arrow-right' => 'sli sli-arrow-right',
38
+ 'sli-arrow-up' => 'sli sli-arrow-up',
39
+ 'sli-arrow-up-circle' => 'sli sli-arrow-up-circle',
40
+ 'sli-arrow-left-circle' => 'sli sli-arrow-left-circle',
41
+ 'sli-arrow-right-circle' => 'sli sli-arrow-right-circle',
42
+ 'sli-arrow-down-circle' => 'sli sli-arrow-down-circle',
43
+ 'sli-check' => 'sli sli-check',
44
+ 'sli-clock' => 'sli sli-clock',
45
+ 'sli-plus' => 'sli sli-plus',
46
+ 'sli-minus' => 'sli sli-minus',
47
+ 'sli-close' => 'sli sli-close',
48
+ 'sli-event' => 'sli sli-event',
49
+ 'sli-exclamation' => 'sli sli-exclamation',
50
+ 'sli-organization' => 'sli sli-organization',
51
+ 'sli-trophy' => 'sli sli-trophy',
52
+ 'sli-screen-smartphone' => 'sli sli-screen-smartphone',
53
+ 'sli-screen-desktop' => 'sli sli-screen-desktop',
54
+ 'sli-plane' => 'sli sli-plane',
55
+ 'sli-notebook' => 'sli sli-notebook',
56
+ 'sli-mustache' => 'sli sli-mustache',
57
+ 'sli-mouse' => 'sli sli-mouse',
58
+ 'sli-magnet' => 'sli sli-magnet',
59
+ 'sli-energy' => 'sli sli-energy',
60
+ 'sli-disc' => 'sli sli-disc',
61
+ 'sli-cursor' => 'sli sli-cursor',
62
+ 'sli-cursor-move' => 'sli sli-cursor-move',
63
+ 'sli-crop' => 'sli sli-crop',
64
+ 'sli-chemistry' => 'sli sli-chemistry',
65
+ 'sli-speedometer' => 'sli sli-speedometer',
66
+ 'sli-shield' => 'sli sli-shield',
67
+ 'sli-screen-tablet' => 'sli sli-screen-tablet',
68
+ 'sli-magic-wand' => 'sli sli-magic-wand',
69
+ 'sli-hourglass' => 'sli sli-hourglass',
70
+ 'sli-graduation' => 'sli sli-graduation',
71
+ 'sli-ghost' => 'sli sli-ghost',
72
+ 'sli-game-controller' => 'sli sli-game-controller',
73
+ 'sli-fire' => 'sli sli-fire',
74
+ 'sli-eyeglass' => 'sli sli-eyeglass',
75
+ 'sli-envelope-open' => 'sli sli-envelope-open',
76
+ 'sli-envelope-letter' => 'sli sli-envelope-letter',
77
+ 'sli-bell' => 'sli sli-bell',
78
+ 'sli-badge' => 'sli sli-badge',
79
+ 'sli-anchor' => 'sli sli-anchor',
80
+ 'sli-wallet' => 'sli sli-wallet',
81
+ 'sli-vector' => 'sli sli-vector',
82
+ 'sli-speech' => 'sli sli-speech',
83
+ 'sli-puzzle' => 'sli sli-puzzle',
84
+ 'sli-printer' => 'sli sli-printer',
85
+ 'sli-present' => 'sli sli-present',
86
+ 'sli-playlist' => 'sli sli-playlist',
87
+ 'sli-pin' => 'sli sli-pin',
88
+ 'sli-picture' => 'sli sli-picture',
89
+ 'sli-handbag' => 'sli sli-handbag',
90
+ 'sli-globe-alt' => 'sli sli-globe-alt',
91
+ 'sli-globe' => 'sli sli-globe',
92
+ 'sli-folder-alt' => 'sli sli-folder-alt',
93
+ 'sli-folder' => 'sli sli-folder',
94
+ 'sli-film' => 'sli sli-film',
95
+ 'sli-feed' => 'sli sli-feed',
96
+ 'sli-drop' => 'sli sli-drop',
97
+ 'sli-drawer' => 'sli sli-drawer',
98
+ 'sli-docs' => 'sli sli-docs',
99
+ 'sli-doc' => 'sli sli-doc',
100
+ 'sli-diamond' => 'sli sli-diamond',
101
+ 'sli-cup' => 'sli sli-cup',
102
+ 'sli-calculator' => 'sli sli-calculator',
103
+ 'sli-bubbles' => 'sli sli-bubbles',
104
+ 'sli-briefcase' => 'sli sli-briefcase',
105
+ 'sli-book-open' => 'sli sli-book-open',
106
+ 'sli-basket-loaded' => 'sli sli-basket-loaded',
107
+ 'sli-basket' => 'sli sli-basket',
108
+ 'sli-bag' => 'sli sli-bag',
109
+ 'sli-action-undo' => 'sli sli-action-undo',
110
+ 'sli-action-redo' => 'sli sli-action-redo',
111
+ 'sli-wrench' => 'sli sli-wrench',
112
+ 'sli-umbrella' => 'sli sli-umbrella',
113
+ 'sli-trash' => 'sli sli-trash',
114
+ 'sli-tag' => 'sli sli-tag',
115
+ 'sli-support' => 'sli sli-support',
116
+ 'sli-frame' => 'sli sli-frame',
117
+ 'sli-size-fullscreen' => 'sli sli-size-fullscreen',
118
+ 'sli-size-actual' => 'sli sli-size-actual',
119
+ 'sli-shuffle' => 'sli sli-shuffle',
120
+ 'sli-share-alt' => 'sli sli-share-alt',
121
+ 'sli-share' => 'sli sli-share',
122
+ 'sli-rocket' => 'sli sli-rocket',
123
+ 'sli-question' => 'sli sli-question',
124
+ 'sli-pie-chart' => 'sli sli-pie-chart',
125
+ 'sli-pencil' => 'sli sli-pencil',
126
+ 'sli-note' => 'sli sli-note',
127
+ 'sli-loop' => 'sli sli-loop',
128
+ 'sli-home' => 'sli sli-home',
129
+ 'sli-grid' => 'sli sli-grid',
130
+ 'sli-graph' => 'sli sli-graph',
131
+ 'sli-microphone' => 'sli sli-microphone',
132
+ 'sli-music-tone-alt' => 'sli sli-music-tone-alt',
133
+ 'sli-music-tone' => 'sli sli-music-tone',
134
+ 'sli-earphones-alt' => 'sli sli-earphones-alt',
135
+ 'sli-earphones' => 'sli sli-earphones',
136
+ 'sli-equalizer' => 'sli sli-equalizer',
137
+ 'sli-like' => 'sli sli-like',
138
+ 'sli-dislike' => 'sli sli-dislike',
139
+ 'sli-control-start' => 'sli sli-control-start',
140
+ 'sli-control-rewind' => 'sli sli-control-rewind',
141
+ 'sli-control-play' => 'sli sli-control-play',
142
+ 'sli-control-pause' => 'sli sli-control-pause',
143
+ 'sli-control-forward' => 'sli sli-control-forward',
144
+ 'sli-control-end' => 'sli sli-control-end',
145
+ 'sli-volume-1' => 'sli sli-volume-1',
146
+ 'sli-volume-2' => 'sli sli-volume-2',
147
+ 'sli-volume-off' => 'sli sli-volume-off',
148
+ 'sli-calendar' => 'sli sli-calendar',
149
+ 'sli-bulb' => 'sli sli-bulb',
150
+ 'sli-chart' => 'sli sli-chart',
151
+ 'sli-ban' => 'sli sli-ban',
152
+ 'sli-bubble' => 'sli sli-bubble',
153
+ 'sli-camrecorder' => 'sli sli-camrecorder',
154
+ 'sli-camera' => 'sli sli-camera',
155
+ 'sli-cloud-download' => 'sli sli-cloud-download',
156
+ 'sli-cloud-upload' => 'sli sli-cloud-upload',
157
+ 'sli-envelope' => 'sli sli-envelope',
158
+ 'sli-eye' => 'sli sli-eye',
159
+ 'sli-flag' => 'sli sli-flag',
160
+ 'sli-heart' => 'sli sli-heart',
161
+ 'sli-info' => 'sli sli-info',
162
+ 'sli-key' => 'sli sli-key',
163
+ 'sli-link' => 'sli sli-link',
164
+ 'sli-lock' => 'sli sli-lock',
165
+ 'sli-lock-open' => 'sli sli-lock-open',
166
+ 'sli-magnifier' => 'sli sli-magnifier',
167
+ 'sli-magnifier-add' => 'sli sli-magnifier-add',
168
+ 'sli-magnifier-remove' => 'sli sli-magnifier-remove',
169
+ 'sli-paper-clip' => 'sli sli-paper-clip',
170
+ 'sli-paper-plane' => 'sli sli-paper-plane',
171
+ 'sli-power' => 'sli sli-power',
172
+ 'sli-refresh' => 'sli sli-refresh',
173
+ 'sli-reload' => 'sli sli-reload',
174
+ 'sli-settings' => 'sli sli-settings',
175
+ 'sli-star' => 'sli sli-star',
176
+ 'sli-symbol-female' => 'sli sli-symbol-female',
177
+ 'sli-symbol-male' => 'sli sli-symbol-male',
178
+ 'sli-target' => 'sli sli-target',
179
+ 'sli-credit-card' => 'sli sli-credit-card',
180
+ 'sli-paypal' => 'sli sli-paypal',
181
+ 'sli-social-tumblr' => 'sli sli-social-tumblr',
182
+ 'sli-social-twitter' => 'sli sli-social-twitter',
183
+ 'sli-social-facebook' => 'sli sli-social-facebook',
184
+ 'sli-social-instagram' => 'sli sli-social-instagram',
185
+ 'sli-social-linkedin' => 'sli sli-social-linkedin',
186
+ 'sli-social-pinterest' => 'sli sli-social-pinterest',
187
+ 'sli-social-github' => 'sli sli-social-github',
188
+ 'sli-social-google' => 'sli sli-social-google',
189
+ 'sli-social-reddit' => 'sli sli-social-reddit',
190
+ 'sli-social-skype' => 'sli sli-social-skype',
191
+ 'sli-social-dribbble' => 'sli sli-social-dribbble',
192
+ 'sli-social-behance' => 'sli sli-social-behance',
193
+ 'sli-social-foursqare' => 'sli sli-social-foursqare',
194
+ 'sli-social-soundcloud' => 'sli sli-social-soundcloud',
195
+ 'sli-social-spotify' => 'sli sli-social-spotify',
196
+ 'sli-social-stumbleupon' => 'sli sli-social-stumbleupon',
197
+ 'sli-social-youtube' => 'sli sli-social-youtube',
198
+ 'sli-social-dropbox' => 'sli sli-social-dropbox',
199
+ 'sli-social-vkontakte' => 'sli sli-social-vkontakte',
200
+ 'sli-social-steam' => 'sli sli-social-steam',
201
+ ];
202
+
203
+ $all_icon = array_merge( $simple_line_icon );
204
+ return $all_icon;
205
+ }
206
+
207
+ public static function icon_sets(){
208
+
209
+ $icon_set = [];
210
+ $sinple_line = self::get_icons();
211
+
212
+ foreach( $sinple_line as $key => $icon ) {
213
+ $icon_set['SimpleLineIcon'][] = $icon;
214
+ }
215
+ return $icon_set;
216
+ }
217
+
218
+
219
+ }
classes/class.product_query.php CHANGED
@@ -29,11 +29,14 @@ class WooLentorProductQuery{
29
 
30
  if( class_exists('WooCommerce') ){
31
  add_action( 'woocommerce_product_query', [ $this, 'parse_query' ] );
 
 
 
 
32
  }
33
 
34
  }
35
 
36
-
37
  /**
38
  * [parse_query]
39
  * @param [object] $wp_query WooCommerce Default Widget
@@ -56,14 +59,6 @@ class WooLentorProductQuery{
56
  $wp_query->set( 'meta_key', $_GET['wlorder_by'] );
57
  $wp_query->set( 'orderby', 'meta_value_num' );
58
 
59
- }else if( $_GET['wlorder_by'] === 'featured' ){
60
- $tax_query[] = [
61
- 'taxonomy' => 'product_visibility',
62
- 'field' => 'name',
63
- 'terms' => explode( ',', $_GET['wlorder_by'] ),
64
- 'operator' => ( $_GET['wlorder_by'] === 'exclude-from-catalog' ? 'NOT IN' : 'IN' ),
65
- ];
66
- $wp_query->set( 'tax_query', $tax_query );
67
  }else{
68
  $wp_query->set( 'orderby', $_GET['wlorder_by'] );
69
  }
@@ -73,35 +68,177 @@ class WooLentorProductQuery{
73
  $wp_query->set( 'order', $_GET['wlsort'] );
74
  }
75
 
76
- if( isset( $_GET['min_price'] ) || isset( $_GET['max_price'] ) ){
77
- $meta_query[] = array(
78
- [
79
- 'key' => '_price',
80
- 'value' => array( $_GET['min_price'], $_GET['max_price'] ),
81
- 'compare' => 'BETWEEN',
82
- 'type' => 'NUMERIC'
83
- ],
84
- );
85
- $wp_query->set( 'meta_query', $meta_query );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  }
87
 
88
- if(isset($new_queries[1])){
 
89
  $attr_pre_str = substr( $new_queries[1], 0, 6 );
90
- if( 'filter' === $attr_pre_str ){
91
- $taxonomy = str_replace('filter', 'pa', $new_queries[1] );
92
- if( isset( $_GET[$new_queries[1] ] ) ){
93
- $tax_query[] = array(
94
- 'taxonomy' => $taxonomy,
95
- 'field' => 'name',
96
- 'terms' => explode( ',', $_GET[$new_queries[1]] ),
97
- );
98
- }
99
- $wp_query->set( 'tax_query', $tax_query );
100
  }
 
101
  }
102
 
103
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  }
 
 
105
 
106
  }
107
 
29
 
30
  if( class_exists('WooCommerce') ){
31
  add_action( 'woocommerce_product_query', [ $this, 'parse_query' ] );
32
+
33
+ //compatibility with woo shortcode
34
+ add_filter('woocommerce_shortcode_products_query', [ $this, 'woocommerce_shortcode_products_query' ], 99, 3 );
35
+
36
  }
37
 
38
  }
39
 
 
40
  /**
41
  * [parse_query]
42
  * @param [object] $wp_query WooCommerce Default Widget
59
  $wp_query->set( 'meta_key', $_GET['wlorder_by'] );
60
  $wp_query->set( 'orderby', 'meta_value_num' );
61
 
 
 
 
 
 
 
 
 
62
  }else{
63
  $wp_query->set( 'orderby', $_GET['wlorder_by'] );
64
  }
68
  $wp_query->set( 'order', $_GET['wlsort'] );
69
  }
70
 
71
+ $wp_query->set( 'meta_query', $this->get_meta_query() );
72
+
73
+ $wp_query->set( 'tax_query', $this->get_tax_query() );
74
+
75
+
76
+ }
77
+
78
+ }
79
+
80
+ public function woocommerce_shortcode_products_query( $query_args, $attr, $type = "" ) {
81
+
82
+ if( isset( $query_args['meta_query'] ) && is_array( $query_args['meta_query'] ) ){
83
+ $query_args['meta_query'] = array_merge( $query_args['meta_query'], $this->get_meta_query() );
84
+ }else{
85
+ $query_args['meta_query'] = $this->get_meta_query();
86
+ }
87
+
88
+ if( isset( $query_args['tax_query'] ) && is_array( $query_args['tax_query'] ) ){
89
+ $query_args['tax_query'] = array_merge( $query_args['tax_query'], $this->get_tax_query() );
90
+ }else{
91
+ $query_args['tax_query'] = $this->get_tax_query();
92
+ }
93
+
94
+ if ( isset( $_GET['wlfilter'] ) ) {
95
+
96
+ $query_args = apply_filters('woolentor_products_query', $query_args);
97
+
98
+ if ( isset( $_GET['paged'] ) ) {
99
+ $query_args['paged'] = intval( $_GET['paged'] );
100
+ }
101
+
102
+ if( isset( $_GET['wlorder_by'] ) ){
103
+ if( in_array( $_GET['wlorder_by'], [ '_price', 'total_sales', '_wc_average_rating' ] ) ) {
104
+
105
+ $query_args['meta_key'] = $_GET['wlorder_by'];
106
+ $query_args['orderby'] = 'meta_value_num';
107
+
108
+ }else{
109
+ $query_args['orderby'] = $_GET['wlorder_by'];
110
+ }
111
+ }
112
+
113
+ if( isset( $_GET['wlsort'] ) ){
114
+ $query_args['order'] = $_GET['wlsort'];
115
+ }
116
+
117
+
118
+ }
119
+
120
+ if ( isset( $_GET['orderby'] ) ) {
121
+ $ordering_args = WC()->query->get_catalog_ordering_args();
122
+ } else {
123
+ $ordering_args = WC()->query->get_catalog_ordering_args( $query_args['orderby'], $query_args['order'] );
124
+ }
125
+ $query_args['orderby'] = $ordering_args['orderby'];
126
+ $query_args['order'] = $ordering_args['order'];
127
+
128
+ if ( $ordering_args['meta_key'] ) {
129
+ $query_args['meta_key'] = $ordering_args['meta_key'];
130
+ }
131
+
132
+ // Search Result
133
+ if ( isset( $_GET['q'] ) || isset( $_GET['s'] ) ) {
134
+ $s = !empty( $_GET['s'] ) ? $_GET['s'] : '';
135
+ $q = !empty( $_GET['q'] ) ? $_GET['q'] : '';
136
+ $query_args['s'] = !empty( $q ) ? $q : $s;
137
+ }
138
+
139
+ return $query_args;
140
+ }
141
+
142
+ /**
143
+ * [get_tax_query]
144
+ * @return [array]
145
+ */
146
+ public function get_tax_query(){
147
+
148
+ $tax_query = WC()->query->get_tax_query();
149
+
150
+ if ( isset( $_GET['wlfilter'] ) ) {
151
+
152
+ $queries =[];
153
+ $new_queries = [];
154
+ parse_str( $_SERVER['QUERY_STRING' ], $queries );
155
+ foreach ( $queries as $key => $querie ) {
156
+ $new_queries[] = $key;
157
  }
158
 
159
+ $woo_taxonomies = get_object_taxonomies( 'product' );
160
+ if( isset( $new_queries[1] ) && !in_array( $new_queries[1], [ 'wlsort', 'wlorder_by' ] ) ){
161
  $attr_pre_str = substr( $new_queries[1], 0, 6 );
162
+
163
+ $taxonomy = ( 'filter' === $attr_pre_str ) ? str_replace('filter', 'pa', $new_queries[1] ) : $new_queries[1];
164
+ if( isset( $_GET[$new_queries[1] ] ) && in_array( $taxonomy, $woo_taxonomies ) ){
165
+ $tax_query[] = array(
166
+ 'taxonomy' => $taxonomy,
167
+ 'field' => 'slug',
168
+ 'terms' => explode( ',', $_GET[$new_queries[1]] ),
169
+ );
 
 
170
  }
171
+
172
  }
173
 
174
+ if( isset( $_GET['wlorder_by'] ) && $_GET['wlorder_by'] === 'featured' ){
175
+ $tax_query[] = [
176
+ 'taxonomy' => 'product_visibility',
177
+ 'field' => 'name',
178
+ 'terms' => explode( ',', $_GET['wlorder_by'] ),
179
+ 'operator' => ( $_GET['wlorder_by'] === 'exclude-from-catalog' ? 'NOT IN' : 'IN' ),
180
+ ];
181
+ }
182
+ }
183
+
184
+ if ( !isset( $_GET['wlfilter'] ) ) {
185
+
186
+ // Taxonomy Taxquery
187
+ $termobj = get_queried_object();
188
+ $get_all_taxonomies = woolentor_get_taxonomies();
189
+ if( isset( $termobj->taxonomy ) && is_tax( $termobj->taxonomy ) && array_key_exists( $termobj->taxonomy, $get_all_taxonomies ) ){
190
+ $term_id = $termobj->term_id;
191
+ $tax_query[] = array(
192
+ array(
193
+ 'taxonomy' => $termobj->taxonomy,
194
+ 'terms' => $term_id,
195
+ 'field' => 'term_id',
196
+ 'include_children' => true
197
+ )
198
+ );
199
+ }
200
+
201
+ // Attributes Taxquery
202
+ if ( is_array( WC()->query->get_layered_nav_chosen_attributes() ) && count( WC()->query->get_layered_nav_chosen_attributes() ) > 0 ) {
203
+ foreach ( WC()->query->get_layered_nav_chosen_attributes() as $taxonomy => $data ) {
204
+ $tax_query[] = array(
205
+ array(
206
+ 'taxonomy' => $taxonomy,
207
+ 'field' => 'slug',
208
+ 'terms' => $data['terms'],
209
+ 'operator' => 'and' === $data['query_type'] ? 'AND' : 'IN',
210
+ 'include_children' => false,
211
+ )
212
+ );
213
+ }
214
+ }
215
+
216
+ }
217
+
218
+ return $tax_query;
219
+
220
+ }
221
+
222
+ /**
223
+ * [get_meta_query]
224
+ * @return [array] meta Query
225
+ */
226
+ public function get_meta_query(){
227
+ $meta_query = WC()->query->get_meta_query();
228
+
229
+ if( isset( $_GET['min_price'] ) || isset( $_GET['max_price'] ) ){
230
+ $meta_query = array_merge( array('relation' => 'AND'), $meta_query );
231
+ $meta_query[] = array(
232
+ [
233
+ 'key' => '_price',
234
+ 'value' => array( $_GET['min_price'], $_GET['max_price'] ),
235
+ 'compare' => 'BETWEEN',
236
+ 'type' => 'NUMERIC'
237
+ ],
238
+ );
239
  }
240
+
241
+ return $meta_query;
242
 
243
  }
244
 
classes/class.quickview_manage.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace WooLentor;
3
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
+
5
+ /**
6
+ * Quickview Manager
7
+ */
8
+ class Quick_View_Manager{
9
+
10
+ private static $instance = null;
11
+ public static function instance() {
12
+ if ( is_null( self::$instance ) ) {
13
+ self::$instance = new self();
14
+ }
15
+ return self::$instance;
16
+ }
17
+
18
+ function __construct(){
19
+ add_action( 'woolentor_footer_render_content', [ $this, 'quick_view_html' ], 10 );
20
+ }
21
+
22
+
23
+ // Quick View Markup
24
+ public function quick_view_html(){
25
+ echo '<div class="woocommerce" id="htwlquick-viewmodal"><div class="htwl-modal-dialog product"><div class="htwl-modal-content"><button type="button" class="htcloseqv"><span class="sli sli-close"></span></button><div class="htwl-modal-body"></div></div></div></div>';
26
+ }
27
+
28
+ // Open Quick view Ajax Callback
29
+ public static function wc_quickview() {
30
+ if ( isset( $_POST['id'] ) && (int) $_POST['id'] ) {
31
+ global $post, $product, $woocommerce;
32
+ $id = ( int ) $_POST['id'];
33
+ $post = get_post( $id );
34
+ $product = get_product( $id );
35
+ if ( $product ) {
36
+ include ( apply_filters( 'woolentor_quickview_tmp', WOOLENTOR_ADDONS_PL_PATH.'includes/quickview-content.php' ) );
37
+ }
38
+ }
39
+ wp_die();
40
+ }
41
+
42
+
43
+ }
44
+
45
+ Quick_View_Manager::instance();
classes/class.single_product_ajax_add_to_cart.php CHANGED
@@ -17,13 +17,7 @@ class Single_Product_Ajax_Add_To_Cart{
17
  }
18
 
19
  function __construct(){
20
-
21
- // Ajax Callback
22
- add_action( 'wp_ajax_wl_singleproduct_ajax_add_to_cart', [ $this, 'woocommerce_ajax_add_to_cart' ] );
23
- add_action( 'wp_ajax_nopriv_wl_singleproduct_ajax_add_to_cart', [ $this, 'woocommerce_ajax_add_to_cart' ] );
24
-
25
  add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
26
-
27
  }
28
 
29
  // Ajax Cart Script
@@ -33,31 +27,6 @@ class Single_Product_Ajax_Add_To_Cart{
33
  }
34
  }
35
 
36
- // Ajax callback function
37
- public function woocommerce_ajax_add_to_cart() {
38
- $product_id = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $_POST['product_id'] ) );
39
- $quantity = empty( $_POST['quantity'] ) ? 1 : wc_stock_amount( $_POST['quantity'] );
40
- $variation_id = absint( $_POST['variation_id'] );
41
- $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity );
42
- $product_status = get_post_status( $product_id );
43
-
44
- if ( $passed_validation && \WC()->cart->add_to_cart( $product_id, $quantity, $variation_id ) && 'publish' === $product_status ) {
45
- do_action( 'woocommerce_ajax_added_to_cart', $product_id );
46
- if ( 'yes' === get_option('woocommerce_cart_redirect_after_add') ) {
47
- wc_add_to_cart_message( array( $product_id => $quantity ), true );
48
- }
49
- \WC_AJAX::get_refreshed_fragments();
50
- } else {
51
- $data = array(
52
- 'error' => true,
53
- 'product_url' => apply_filters('woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id )
54
- );
55
- echo wp_send_json($data);
56
- }
57
- wp_die();
58
- }
59
-
60
-
61
  }
62
 
63
  Single_Product_Ajax_Add_To_Cart::instance();
17
  }
18
 
19
  function __construct(){
 
 
 
 
 
20
  add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
 
21
  }
22
 
23
  // Ajax Cart Script
27
  }
28
  }
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  }
31
 
32
  Single_Product_Ajax_Add_To_Cart::instance();
classes/class.widgets_control.php CHANGED
@@ -50,12 +50,38 @@ class Widgets_Control{
50
  'add_banner',
51
  'special_day_offer',
52
  'wb_image_marker',
 
 
 
 
53
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  if( !is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') ){
55
  $wl_element_manager[] = 'universal_product';
56
  $wl_element_manager[] = 'wl_category';
57
  $wl_element_manager[] = 'wl_brand';
58
  $wl_element_manager[] = 'wb_customer_review';
 
59
  }
60
 
61
  // WooCommerce Builder
@@ -63,6 +89,7 @@ class Widgets_Control{
63
  $wlb_element = array(
64
  'wb_archive_product',
65
  'wl_product_filter',
 
66
  'wb_product_title',
67
  'wb_product_related',
68
  'wb_product_add_to_cart',
50
  'add_banner',
51
  'special_day_offer',
52
  'wb_image_marker',
53
+ 'wl_store_features',
54
+ 'wl_faq',
55
+ 'wl_category_grid',
56
+ 'wl_onepage_slider',
57
  );
58
+
59
+ if( is_plugin_active('wishsuite/wishsuite.php') ){
60
+ $wl_element_manager[] = 'wb_wishsuite_table';
61
+ }
62
+
63
+ if( is_plugin_active('ever-compare/ever-compare.php') ){
64
+ $wl_element_manager[] = 'wb_ever_compare_table';
65
+ }
66
+
67
+ if( is_plugin_active('just-tables/just-tables.php') || is_plugin_active('just-tables-pro/just-tables-pro.php') ){
68
+ $wl_element_manager[] = 'wb_just_table';
69
+ }
70
+
71
+ if( is_plugin_active('whols/whols.php') || is_plugin_active('whols-pro/whols-pro.php') ){
72
+ $wl_element_manager[] = 'wb_whols';
73
+ }
74
+
75
+ if( is_plugin_active('wc-multi-currency/wcmilticurrency.php') || is_plugin_active('multicurrencypro/multicurrencypro.php') ){
76
+ $wl_element_manager[] = 'wb_wc_multicurrency';
77
+ }
78
+
79
  if( !is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') ){
80
  $wl_element_manager[] = 'universal_product';
81
  $wl_element_manager[] = 'wl_category';
82
  $wl_element_manager[] = 'wl_brand';
83
  $wl_element_manager[] = 'wb_customer_review';
84
+ $wl_element_manager[] = 'wl_testimonial';
85
  }
86
 
87
  // WooCommerce Builder
89
  $wlb_element = array(
90
  'wb_archive_product',
91
  'wl_product_filter',
92
+ 'wl_product_horizontal_filter',
93
  'wb_product_title',
94
  'wb_product_related',
95
  'wb_product_add_to_cart',
includes/addons/add_banner.php CHANGED
@@ -1,6 +1,10 @@
1
  <?php
2
  namespace Elementor;
3
 
 
 
 
 
4
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
 
6
  class Woolentor_Elementor_Widget_Add_Banner extends Widget_Base {
@@ -174,7 +178,6 @@ class Woolentor_Elementor_Widget_Add_Banner extends Widget_Base {
174
  [
175
  'name' => 'title_typography',
176
  'label' => __( 'Typography', 'woolentor' ),
177
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
178
  'selector' => '{{WRAPPER}} .woolentor-banner .banner_title',
179
  ]
180
  );
@@ -205,7 +208,6 @@ class Woolentor_Elementor_Widget_Add_Banner extends Widget_Base {
205
  [
206
  'name' => 'sub_title_typography',
207
  'label' => __( 'Typography', 'woolentor' ),
208
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
209
  'selector' => '{{WRAPPER}} .woolentor-banner .banner_subtitle',
210
  ]
211
  );
@@ -260,7 +262,6 @@ class Woolentor_Elementor_Widget_Add_Banner extends Widget_Base {
260
  [
261
  'name' => 'button_typography',
262
  'label' => __( 'Typography', 'woolentor' ),
263
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
264
  'selector' => '{{WRAPPER}} .woolentor-banner .banner_button',
265
  ]
266
  );
1
  <?php
2
  namespace Elementor;
3
 
4
+ // Elementor Classes
5
+ use \Elementor\Core\Schemes\Color as Scheme_Color;
6
+ use \Elementor\Core\Schemes\Typography as Scheme_Typography;
7
+
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  class Woolentor_Elementor_Widget_Add_Banner extends Widget_Base {
178
  [
179
  'name' => 'title_typography',
180
  'label' => __( 'Typography', 'woolentor' ),
 
181
  'selector' => '{{WRAPPER}} .woolentor-banner .banner_title',
182
  ]
183
  );
208
  [
209
  'name' => 'sub_title_typography',
210
  'label' => __( 'Typography', 'woolentor' ),
 
211
  'selector' => '{{WRAPPER}} .woolentor-banner .banner_subtitle',
212
  ]
213
  );
262
  [
263
  'name' => 'button_typography',
264
  'label' => __( 'Typography', 'woolentor' ),
 
265
  'selector' => '{{WRAPPER}} .woolentor-banner .banner_button',
266
  ]
267
  );
includes/addons/product_accordion.php CHANGED
@@ -155,7 +155,7 @@ class Woolentor_Product_Accordion_Layout_Widget extends Widget_Base {
155
  $this->add_control(
156
  'orderby',
157
  [
158
- 'label' => esc_html__( 'Orderby', 'woolentor' ),
159
  'type' => Controls_Manager::SELECT,
160
  'default' => 'none',
161
  'options' => [
@@ -418,7 +418,7 @@ class Woolentor_Product_Accordion_Layout_Widget extends Widget_Base {
418
  $this->add_control(
419
  'product_collapse_icon_color',
420
  [
421
- 'label' => __( 'Collapse Iocn Color', 'woolentor' ),
422
  'type' => Controls_Manager::COLOR,
423
  'default' => '#3951E1',
424
  'selectors' => [
@@ -615,7 +615,7 @@ class Woolentor_Product_Accordion_Layout_Widget extends Widget_Base {
615
  'type' => Controls_Manager::COLOR,
616
  'default' => '#333333',
617
  'selectors' => [
618
- '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.action-item' => 'color: {{VALUE}};',
619
  '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a' => 'color: {{VALUE}};',
620
  '{{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:before' => 'color: {{VALUE}};',
621
  '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.added_to_cart.wc-forward:after' => 'color: {{VALUE}};',
@@ -629,7 +629,7 @@ class Woolentor_Product_Accordion_Layout_Widget extends Widget_Base {
629
  'name' => 'product_action_button_normal_background_color',
630
  'label' => __( 'Background', 'woolentor' ),
631
  'types' => [ 'classic', 'gradient' ],
632
- 'selector' => '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.action-item, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a, {{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:before, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.added_to_cart.wc-forward:after',
633
  ]
634
  );
635
 
@@ -640,7 +640,7 @@ class Woolentor_Product_Accordion_Layout_Widget extends Widget_Base {
640
  'type' => Controls_Manager::DIMENSIONS,
641
  'size_units' => [ 'px', '%', 'em' ],
642
  'selectors' => [
643
- '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.action-item, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a, {{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
644
  ],
645
  ]
646
  );
@@ -662,7 +662,7 @@ class Woolentor_Product_Accordion_Layout_Widget extends Widget_Base {
662
  'type' => Controls_Manager::COLOR,
663
  'default' => '#333333',
664
  'selectors' => [
665
- '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.action-item:hover' => 'color: {{VALUE}};',
666
  '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a:hover' => 'color: {{VALUE}};',
667
  '{{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:hover::before' => 'color: {{VALUE}};',
668
  '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.added_to_cart.wc-forward:after' => 'color: {{VALUE}};',
@@ -676,7 +676,7 @@ class Woolentor_Product_Accordion_Layout_Widget extends Widget_Base {
676
  'name' => 'product_action_button_hover_background_color',
677
  'label' => __( 'Background', 'woolentor' ),
678
  'types' => [ 'classic', 'gradient' ],
679
- 'selector' => '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.action-item:hover, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a:hover, {{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:hover::before, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.added_to_cart.wc-forward:hover:after',
680
  ]
681
  );
682
 
@@ -842,18 +842,18 @@ class Woolentor_Product_Accordion_Layout_Widget extends Widget_Base {
842
  <a href="<?php echo $product->add_to_cart_url(); ?>" data-quantity="1" class="action-item <?php echo $btn_class; ?>" data-product_id="<?php echo $product->get_id(); ?>"><?php echo __( $cart_btn, 'woolentor' );?></a>
843
  </li>
844
  <?php
845
- if ( class_exists( 'YITH_WCWL' ) ) {
846
- echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
847
- }
848
- if( class_exists('TInvWL_Public_AddToWishlist') ){
849
- echo '<li>';
850
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
851
- echo '</li>';
852
  }
853
 
854
- if( function_exists('woolentor_compare_button') && class_exists('YITH_Woocompare_Frontend') ){
855
  echo '<li>';
856
- woolentor_compare_button();
 
 
 
 
 
857
  echo '</li>';
858
  }
859
  ?>
155
  $this->add_control(
156
  'orderby',
157
  [
158
+ 'label' => esc_html__( 'Order by', 'woolentor' ),
159
  'type' => Controls_Manager::SELECT,
160
  'default' => 'none',
161
  'options' => [
418
  $this->add_control(
419
  'product_collapse_icon_color',
420
  [
421
+ 'label' => __( 'Collapse Icon Color', 'woolentor' ),
422
  'type' => Controls_Manager::COLOR,
423
  'default' => '#3951E1',
424
  'selectors' => [
615
  'type' => Controls_Manager::COLOR,
616
  'default' => '#333333',
617
  'selectors' => [
618
+ '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a' => 'color: {{VALUE}};',
619
  '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a' => 'color: {{VALUE}};',
620
  '{{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:before' => 'color: {{VALUE}};',
621
  '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.added_to_cart.wc-forward:after' => 'color: {{VALUE}};',
629
  'name' => 'product_action_button_normal_background_color',
630
  'label' => __( 'Background', 'woolentor' ),
631
  'types' => [ 'classic', 'gradient' ],
632
+ 'selector' => '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a, {{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:before, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.added_to_cart.wc-forward:after',
633
  ]
634
  );
635
 
640
  'type' => Controls_Manager::DIMENSIONS,
641
  'size_units' => [ 'px', '%', 'em' ],
642
  'selectors' => [
643
+ '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a, {{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
644
  ],
645
  ]
646
  );
662
  'type' => Controls_Manager::COLOR,
663
  'default' => '#333333',
664
  'selectors' => [
665
+ '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a:hover' => 'color: {{VALUE}};',
666
  '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a:hover' => 'color: {{VALUE}};',
667
  '{{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:hover::before' => 'color: {{VALUE}};',
668
  '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.added_to_cart.wc-forward:after' => 'color: {{VALUE}};',
676
  'name' => 'product_action_button_hover_background_color',
677
  'label' => __( 'Background', 'woolentor' ),
678
  'types' => [ 'classic', 'gradient' ],
679
+ 'selector' => '{{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a:hover, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action .wishlist a:hover, {{WRAPPER}} .wl_product-accordion .action .woocommerce.product.compare-button a:hover::before, {{WRAPPER}} .wl_product-accordion .card-body .product-content .product-acontent-bottom .action a.added_to_cart.wc-forward:hover:after',
680
  ]
681
  );
682
 
842
  <a href="<?php echo $product->add_to_cart_url(); ?>" data-quantity="1" class="action-item <?php echo $btn_class; ?>" data-product_id="<?php echo $product->get_id(); ?>"><?php echo __( $cart_btn, 'woolentor' );?></a>
843
  </li>
844
  <?php
845
+ if( true === woolentor_has_wishlist_plugin() ){
846
+ echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>').'</li>';
 
 
 
 
 
847
  }
848
 
849
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() && !Plugin::instance()->editor->is_edit_mode() ){
850
  echo '<li>';
851
+ woolentor_compare_button(
852
+ array(
853
+ 'btn_text'=>'<i class="fas fa-exchange-alt"></i>',
854
+ 'btn_added_txt'=>'<i class="fas fa-exchange-alt"></i>'
855
+ )
856
+ );
857
  echo '</li>';
858
  }
859
  ?>
includes/addons/product_curvy.php CHANGED
@@ -190,7 +190,7 @@ class Woolentor_Product_Curvy_Layout_Widget extends Widget_Base {
190
  $this->add_control(
191
  'orderby',
192
  [
193
- 'label' => esc_html__( 'Orderby', 'woolentor' ),
194
  'type' => Controls_Manager::SELECT,
195
  'default' => 'none',
196
  'options' => [
@@ -978,19 +978,20 @@ class Woolentor_Product_Curvy_Layout_Widget extends Widget_Base {
978
  <a href="<?php echo $product->add_to_cart_url(); ?>" data-quantity="1" class="action-item <?php echo $btn_class; ?>" data-product_id="<?php echo $product->get_id(); ?>"><?php echo __( $cart_btn, 'woolentor' );?></a>
979
  </li>
980
  <?php
981
- if ( class_exists( 'YITH_WCWL' ) ) {
982
- echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
983
- }
984
- if( class_exists('TInvWL_Public_AddToWishlist') ){
985
- echo '<li>';
986
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
987
- echo '</li>';
988
  }
989
  ?>
990
  <?php
991
- if( function_exists('woolentor_compare_button') && class_exists('YITH_Woocompare_Frontend') ){
992
  echo '<li>';
993
- woolentor_compare_button(2);
 
 
 
 
 
 
994
  echo '</li>';
995
  }
996
  ?>
190
  $this->add_control(
191
  'orderby',
192
  [
193
+ 'label' => esc_html__( 'Order by', 'woolentor' ),
194
  'type' => Controls_Manager::SELECT,
195
  'default' => 'none',
196
  'options' => [
978
  <a href="<?php echo $product->add_to_cart_url(); ?>" data-quantity="1" class="action-item <?php echo $btn_class; ?>" data-product_id="<?php echo $product->get_id(); ?>"><?php echo __( $cart_btn, 'woolentor' );?></a>
979
  </li>
980
  <?php
981
+ if( true === woolentor_has_wishlist_plugin() ){
982
+ echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>').'</li>';
 
 
 
 
 
983
  }
984
  ?>
985
  <?php
986
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() ){
987
  echo '<li>';
988
+ woolentor_compare_button(
989
+ array(
990
+ 'style'=>2,
991
+ 'btn_text'=>'<i class="fas fa-exchange-alt"></i>',
992
+ 'btn_added_txt'=>'<i class="fas fa-exchange-alt"></i>'
993
+ )
994
+ );
995
  echo '</li>';
996
  }
997
  ?>
includes/addons/product_image_accordion.php CHANGED
@@ -134,7 +134,7 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
134
  $this->add_control(
135
  'orderby',
136
  [
137
- 'label' => esc_html__( 'Orderby', 'woolentor' ),
138
  'type' => Controls_Manager::SELECT,
139
  'default' => 'none',
140
  'options' => [
@@ -537,7 +537,7 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
537
  'type' => Controls_Manager::COLOR,
538
  'default' => '#333333',
539
  'selectors' => [
540
- '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a,{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:before' => 'color: {{VALUE}};',
541
  ],
542
  ]
543
  );
@@ -548,7 +548,7 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
548
  'type' => Controls_Manager::COLOR,
549
  'default' => '#0A3ACA',
550
  'selectors' => [
551
- '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a, {{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:before' => 'border-color: {{VALUE}} !important;',
552
  ],
553
  ]
554
  );
@@ -559,7 +559,7 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
559
  'name' => 'product_action_button_normal_background_color',
560
  'label' => __( 'Background', 'woolentor' ),
561
  'types' => [ 'classic', 'gradient' ],
562
- 'selector' => '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a, {{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:before',
563
  ]
564
  );
565
 
@@ -570,7 +570,7 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
570
  'type' => Controls_Manager::DIMENSIONS,
571
  'size_units' => [ 'px', '%', 'em' ],
572
  'selectors' => [
573
- '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a,{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
574
  ],
575
  ]
576
  );
@@ -592,7 +592,7 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
592
  'type' => Controls_Manager::COLOR,
593
  'default' => '#333333',
594
  'selectors' => [
595
- '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item:hover' => 'color: {{VALUE}};',
596
  '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a:hover' => 'color: {{VALUE}};',
597
  '{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:hover::before' => 'color: {{VALUE}};',
598
  ],
@@ -605,7 +605,7 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
605
  'type' => Controls_Manager::COLOR,
606
  'default' => '#0A3ACA',
607
  'selectors' => [
608
- '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item:hover' => 'border-color: {{VALUE}} !important;',
609
  '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a:hover' => 'border-color: {{VALUE}} !important;',
610
  '{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:hover::before' => 'border-color: {{VALUE}} !important;',
611
  ],
@@ -618,7 +618,7 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
618
  'name' => 'product_action_button_hover_background_color',
619
  'label' => __( 'Background', 'woolentor' ),
620
  'types' => [ 'classic', 'gradient' ],
621
- 'selector' => '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .action-item:hover, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a:hover,{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:hover::before',
622
  ]
623
  );
624
 
@@ -745,13 +745,18 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
745
 
746
  $btna_class .= $product->supports( 'ajax_add_to_cart' ) && $product->is_purchasable() && $product->is_in_stock() ? ' ajax_add_to_cart' : '';
747
 
748
- $image_attributes = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_id()),'full' );
 
 
 
 
 
749
 
750
 
751
  ?>
752
 
753
 
754
- <li style="background-image: url('<?php echo $image_attributes[0]; ?>');">
755
  <div class="accordion-product-content">
756
  <div class="accordion-product-item">
757
  <div class="product-content">
@@ -764,16 +769,17 @@ class Woolentor_Product_Image_Accordion_Layout_Widget extends Widget_Base {
764
  <a href="<?php echo $product->add_to_cart_url(); ?>" data-quantity="1" class="action-item <?php echo $btna_class; ?>" data-product_id="<?php echo $product->get_id(); ?>"><?php echo __( $cart_btn, 'woolentor' );?></a>
765
  <?php
766
 
767
- if ( class_exists( 'YITH_WCWL' ) ) {
768
- echo
769
- woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes');
770
  }
771
- if( class_exists('TInvWL_Public_AddToWishlist') ){
772
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
773
- }
774
 
775
- if( function_exists('woolentor_compare_button') && class_exists('YITH_Woocompare_Frontend') ){
776
- woolentor_compare_button();
 
 
 
 
 
777
  }
778
  ?>
779
 
134
  $this->add_control(
135
  'orderby',
136
  [
137
+ 'label' => esc_html__( 'Order by', 'woolentor' ),
138
  'type' => Controls_Manager::SELECT,
139
  'default' => 'none',
140
  'options' => [
537
  'type' => Controls_Manager::COLOR,
538
  'default' => '#333333',
539
  'selectors' => [
540
+ '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a,{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:before' => 'color: {{VALUE}};',
541
  ],
542
  ]
543
  );
548
  'type' => Controls_Manager::COLOR,
549
  'default' => '#0A3ACA',
550
  'selectors' => [
551
+ '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a, {{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:before' => 'border-color: {{VALUE}} !important;',
552
  ],
553
  ]
554
  );
559
  'name' => 'product_action_button_normal_background_color',
560
  'label' => __( 'Background', 'woolentor' ),
561
  'types' => [ 'classic', 'gradient' ],
562
+ 'selector' => '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a, {{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:before',
563
  ]
564
  );
565
 
570
  'type' => Controls_Manager::DIMENSIONS,
571
  'size_units' => [ 'px', '%', 'em' ],
572
  'selectors' => [
573
+ '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a,{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
574
  ],
575
  ]
576
  );
592
  'type' => Controls_Manager::COLOR,
593
  'default' => '#333333',
594
  'selectors' => [
595
+ '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a:hover' => 'color: {{VALUE}};',
596
  '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a:hover' => 'color: {{VALUE}};',
597
  '{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:hover::before' => 'color: {{VALUE}};',
598
  ],
605
  'type' => Controls_Manager::COLOR,
606
  'default' => '#0A3ACA',
607
  'selectors' => [
608
+ '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a:hover' => 'border-color: {{VALUE}} !important;',
609
  '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a:hover' => 'border-color: {{VALUE}} !important;',
610
  '{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:hover::before' => 'border-color: {{VALUE}} !important;',
611
  ],
618
  'name' => 'product_action_button_hover_background_color',
619
  'label' => __( 'Background', 'woolentor' ),
620
  'types' => [ 'classic', 'gradient' ],
621
+ 'selector' => '{{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action a:hover, {{WRAPPER}} .wl_horizontal-hover-accordion .accordion-ul li .accordion-product-content .accordion-product-item .product-content .action .yith-wcwl-add-to-wishlist a:hover,{{WRAPPER}} .wl_horizontal-hover-accordion .action .woocommerce.product.compare-button a:hover::before',
622
  ]
623
  );
624
 
745
 
746
  $btna_class .= $product->supports( 'ajax_add_to_cart' ) && $product->is_purchasable() && $product->is_in_stock() ? ' ajax_add_to_cart' : '';
747
 
748
+ $post_thumbnail_id = $product->get_image_id();
749
+ if ( $post_thumbnail_id ) {
750
+ $image_url = wp_get_attachment_image_url( $post_thumbnail_id,'full' );
751
+ }else{
752
+ $image_url = wc_placeholder_img_src( 'full' );
753
+ }
754
 
755
 
756
  ?>
757
 
758
 
759
+ <li style="background-image: url('<?php echo $image_url; ?>');">
760
  <div class="accordion-product-content">
761
  <div class="accordion-product-item">
762
  <div class="product-content">
769
  <a href="<?php echo $product->add_to_cart_url(); ?>" data-quantity="1" class="action-item <?php echo $btna_class; ?>" data-product_id="<?php echo $product->get_id(); ?>"><?php echo __( $cart_btn, 'woolentor' );?></a>
770
  <?php
771
 
772
+ if( true === woolentor_has_wishlist_plugin() ){
773
+ echo woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>');
 
774
  }
 
 
 
775
 
776
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() && !Plugin::instance()->editor->is_edit_mode() ){
777
+ woolentor_compare_button(
778
+ array(
779
+ 'btn_text'=>'<i class="fas fa-exchange-alt"></i>',
780
+ 'btn_added_txt'=>'<i class="fas fa-exchange-alt"></i>'
781
+ )
782
+ );
783
  }
784
  ?>
785
 
includes/addons/product_tabs.php CHANGED
@@ -1,7 +1,10 @@
1
  <?php
2
-
3
  namespace Elementor;
4
 
 
 
 
 
5
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
6
 
7
  class Woolentor_Product_Tabs_Widget extends Widget_Base {
@@ -151,7 +154,7 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
151
  $this->add_control(
152
  'orderby',
153
  [
154
- 'label' => esc_html__( 'Orderby', 'woolentor' ),
155
  'type' => Controls_Manager::SELECT,
156
  'default' => 'none',
157
  'options' => [
@@ -202,7 +205,7 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
202
  'type' => Controls_Manager::SWITCHER,
203
  'return_value' => 'yes',
204
  'default' => 'no',
205
- 'description' => esc_html__('When product tab is off, Then working slider.','woolentor'),
206
  ]
207
  );
208
 
@@ -266,7 +269,6 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
266
  Group_Control_Typography::get_type(),
267
  [
268
  'name' => 'tabmenutypography',
269
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
270
  'selector' => '{{WRAPPER}} .ht-tab-menus li a',
271
  ]
272
  );
@@ -471,7 +473,7 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
471
  $this->add_control(
472
  'slautolay',
473
  [
474
- 'label' => esc_html__( 'Slider auto play', 'woolentor' ),
475
  'type' => Controls_Manager::SWITCHER,
476
  'return_value' => 'yes',
477
  'separator' => 'before',
@@ -556,7 +558,7 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
556
  'sltablet_width',
557
  [
558
  'label' => __('Tablet Resolution', 'woolentor'),
559
- 'description' => __('The resolution to tablet.', 'woolentor'),
560
  'type' => Controls_Manager::NUMBER,
561
  'default' => 750,
562
  ]
@@ -976,7 +978,6 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
976
  Group_Control_Typography::get_type(),
977
  [
978
  'name' => 'typography',
979
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
980
  'selector' => '{{WRAPPER}} .product-item .product-inner .content .title',
981
  ]
982
  );
@@ -1018,7 +1019,6 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1018
  Group_Control_Typography::get_type(),
1019
  [
1020
  'name' => 'pricetypography',
1021
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1022
  'selector' => '{{WRAPPER}} .product-item .product-inner .content .price ',
1023
  ]
1024
  );
@@ -1140,7 +1140,7 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1140
  $this->add_control(
1141
  'action_button_bg_color',
1142
  [
1143
- 'label' => __( 'Backgournd Color', 'woolentor' ),
1144
  'type' => Controls_Manager::COLOR,
1145
  'default' =>'#ffffff',
1146
  'selectors' => [
@@ -1200,7 +1200,7 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1200
  $this->add_control(
1201
  'action_button_hover_bg_color',
1202
  [
1203
- 'label' => __( 'Backgournd Color', 'woolentor' ),
1204
  'type' => Controls_Manager::COLOR,
1205
  'default' =>'#ffffff',
1206
  'selectors' => [
@@ -1454,12 +1454,9 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1454
  </a>
1455
  <?php
1456
  if( $settings['woolentor_product_style'] == 1){
1457
- if ( class_exists( 'YITH_WCWL' ) ) {
1458
  echo woolentor_add_to_wishlist_button();
1459
  }
1460
- if( class_exists('TInvWL_Public_AddToWishlist') ){
1461
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
1462
- }
1463
  }
1464
  ?>
1465
  <?php if( $settings['woolentor_product_style'] == 3):?>
@@ -1502,12 +1499,9 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1502
  <div class="actions style_two">
1503
  <?php
1504
  woocommerce_template_loop_add_to_cart();
1505
- if ( class_exists( 'YITH_WCWL' ) ) {
1506
  echo woolentor_add_to_wishlist_button();
1507
  }
1508
- if( class_exists('TInvWL_Public_AddToWishlist') ){
1509
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
1510
- }
1511
  ?>
1512
  </div>
1513
 
@@ -1523,17 +1517,16 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1523
  <?php
1524
  if( $settings['woolentor_product_style'] == 2){
1525
  woocommerce_template_loop_add_to_cart();
1526
- if ( class_exists( 'YITH_WCWL' ) ) {
1527
  echo woolentor_add_to_wishlist_button();
1528
  }
1529
- if( class_exists('TInvWL_Public_AddToWishlist') ){
1530
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
1531
- }
1532
  }else{
1533
  woocommerce_template_loop_add_to_cart();
1534
- if( function_exists('woolentor_compare_button') && !Plugin::instance()->editor->is_edit_mode() ){
 
1535
  woolentor_compare_button();
1536
  }
 
1537
  }
1538
  ?>
1539
  </div>
@@ -1552,7 +1545,7 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1552
 
1553
  <?php if ($k % $rows == 0 && ($products->post_count != $k)) { ?>
1554
  </div>
1555
- <div class="<?php echo esc_attr($collumval );?>">
1556
  <?php } $k++; endwhile; wp_reset_postdata(); ?>
1557
  </div>
1558
  </div>
@@ -1587,12 +1580,9 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1587
  </a>
1588
  <?php
1589
  if( $settings['woolentor_product_style'] == 1 ){
1590
- if ( class_exists( 'YITH_WCWL' ) ) {
1591
  echo woolentor_add_to_wishlist_button();
1592
  }
1593
- if( class_exists('TInvWL_Public_AddToWishlist') ){
1594
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
1595
- }
1596
  }
1597
  ?>
1598
  <?php if( $settings['woolentor_product_style'] == 3):?>
@@ -1635,12 +1625,9 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1635
  <div class="actions style_two">
1636
  <?php
1637
  woocommerce_template_loop_add_to_cart();
1638
- if ( class_exists( 'YITH_WCWL' ) ) {
1639
  echo woolentor_add_to_wishlist_button();
1640
  }
1641
- if( class_exists('TInvWL_Public_AddToWishlist') ){
1642
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
1643
- }
1644
  ?>
1645
  </div>
1646
 
@@ -1656,15 +1643,12 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1656
  <?php
1657
  if( $settings['woolentor_product_style'] == 2){
1658
  woocommerce_template_loop_add_to_cart();
1659
- if ( class_exists( 'YITH_WCWL' ) ) {
1660
  echo woolentor_add_to_wishlist_button();
1661
  }
1662
- if( class_exists('TInvWL_Public_AddToWishlist') ){
1663
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
1664
- }
1665
  }else{
1666
  woocommerce_template_loop_add_to_cart();
1667
- if( function_exists('woolentor_compare_button') && !Plugin::instance()->editor->is_edit_mode() ){
1668
  woolentor_compare_button();
1669
  }
1670
  }
@@ -1685,7 +1669,7 @@ class Woolentor_Product_Tabs_Widget extends Widget_Base {
1685
 
1686
  <?php if ($k % $rows == 0 && ($products->post_count != $k)) { ?>
1687
  </div>
1688
- <div class="<?php echo esc_attr($collumval );?>">
1689
  <?php } $k++; endwhile; wp_reset_query(); wp_reset_postdata(); endif; ?>
1690
  </div>
1691
  <?php if( $proslider == 'yes' ){ echo '</div>';} ?>
1
  <?php
 
2
  namespace Elementor;
3
 
4
+ // Elementor Classes
5
+ use \Elementor\Core\Schemes\Color as Scheme_Color;
6
+ use \Elementor\Core\Schemes\Typography as Scheme_Typography;
7
+
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  class Woolentor_Product_Tabs_Widget extends Widget_Base {
154
  $this->add_control(
155
  'orderby',
156
  [
157
+ 'label' => esc_html__( 'Order by', 'woolentor' ),
158
  'type' => Controls_Manager::SELECT,
159
  'default' => 'none',
160
  'options' => [
205
  'type' => Controls_Manager::SWITCHER,
206
  'return_value' => 'yes',
207
  'default' => 'no',
208
+ 'description' => esc_html__('When the product tab is off, Then working slider.','woolentor'),
209
  ]
210
  );
211
 
269
  Group_Control_Typography::get_type(),
270
  [
271
  'name' => 'tabmenutypography',
 
272
  'selector' => '{{WRAPPER}} .ht-tab-menus li a',
273
  ]
274
  );
473
  $this->add_control(
474
  'slautolay',
475
  [
476
+ 'label' => esc_html__( 'Slider autoplay', 'woolentor' ),
477
  'type' => Controls_Manager::SWITCHER,
478
  'return_value' => 'yes',
479
  'separator' => 'before',
558
  'sltablet_width',
559
  [
560
  'label' => __('Tablet Resolution', 'woolentor'),
561
+ 'description' => __('The resolution to the tablet.', 'woolentor'),
562
  'type' => Controls_Manager::NUMBER,
563
  'default' => 750,
564
  ]
978
  Group_Control_Typography::get_type(),
979
  [
980
  'name' => 'typography',
 
981
  'selector' => '{{WRAPPER}} .product-item .product-inner .content .title',
982
  ]
983
  );
1019
  Group_Control_Typography::get_type(),
1020
  [
1021
  'name' => 'pricetypography',
 
1022
  'selector' => '{{WRAPPER}} .product-item .product-inner .content .price ',
1023
  ]
1024
  );
1140
  $this->add_control(
1141
  'action_button_bg_color',
1142
  [
1143
+ 'label' => __( 'Background Color', 'woolentor' ),
1144
  'type' => Controls_Manager::COLOR,
1145
  'default' =>'#ffffff',
1146
  'selectors' => [
1200
  $this->add_control(
1201
  'action_button_hover_bg_color',
1202
  [
1203
+ 'label' => __( 'Background Color', 'woolentor' ),
1204
  'type' => Controls_Manager::COLOR,
1205
  'default' =>'#ffffff',
1206
  'selectors' => [
1454
  </a>
1455
  <?php
1456
  if( $settings['woolentor_product_style'] == 1){
1457
+ if( true === woolentor_has_wishlist_plugin() ){
1458
  echo woolentor_add_to_wishlist_button();
1459
  }
 
 
 
1460
  }
1461
  ?>
1462
  <?php if( $settings['woolentor_product_style'] == 3):?>
1499
  <div class="actions style_two">
1500
  <?php
1501
  woocommerce_template_loop_add_to_cart();
1502
+ if( true === woolentor_has_wishlist_plugin() ){
1503
  echo woolentor_add_to_wishlist_button();
1504
  }
 
 
 
1505
  ?>
1506
  </div>
1507
 
1517
  <?php
1518
  if( $settings['woolentor_product_style'] == 2){
1519
  woocommerce_template_loop_add_to_cart();
1520
+ if( true === woolentor_has_wishlist_plugin() ){
1521
  echo woolentor_add_to_wishlist_button();
1522
  }
 
 
 
1523
  }else{
1524
  woocommerce_template_loop_add_to_cart();
1525
+
1526
+ if( function_exists('woolentor_compare_button') && !Plugin::instance()->editor->is_edit_mode() && true === woolentor_exist_compare_plugin() ){
1527
  woolentor_compare_button();
1528
  }
1529
+
1530
  }
1531
  ?>
1532
  </div>
1545
 
1546
  <?php if ($k % $rows == 0 && ($products->post_count != $k)) { ?>
1547
  </div>
1548
+ <div class="<?php echo esc_attr($collumval);?>">
1549
  <?php } $k++; endwhile; wp_reset_postdata(); ?>
1550
  </div>
1551
  </div>
1580
  </a>
1581
  <?php
1582
  if( $settings['woolentor_product_style'] == 1 ){
1583
+ if( true === woolentor_has_wishlist_plugin() ){
1584
  echo woolentor_add_to_wishlist_button();
1585
  }
 
 
 
1586
  }
1587
  ?>
1588
  <?php if( $settings['woolentor_product_style'] == 3):?>
1625
  <div class="actions style_two">
1626
  <?php
1627
  woocommerce_template_loop_add_to_cart();
1628
+ if( true === woolentor_has_wishlist_plugin() ){
1629
  echo woolentor_add_to_wishlist_button();
1630
  }
 
 
 
1631
  ?>
1632
  </div>
1633
 
1643
  <?php
1644
  if( $settings['woolentor_product_style'] == 2){
1645
  woocommerce_template_loop_add_to_cart();
1646
+ if( true === woolentor_has_wishlist_plugin() ){
1647
  echo woolentor_add_to_wishlist_button();
1648
  }
 
 
 
1649
  }else{
1650
  woocommerce_template_loop_add_to_cart();
1651
+ if( function_exists('woolentor_compare_button') && !Plugin::instance()->editor->is_edit_mode() && true === woolentor_exist_compare_plugin() ){
1652
  woolentor_compare_button();
1653
  }
1654
  }
1669
 
1670
  <?php if ($k % $rows == 0 && ($products->post_count != $k)) { ?>
1671
  </div>
1672
+ <div class="<?php echo esc_attr($collumval);?>">
1673
  <?php } $k++; endwhile; wp_reset_query(); wp_reset_postdata(); endif; ?>
1674
  </div>
1675
  <?php if( $proslider == 'yes' ){ echo '</div>';} ?>
includes/addons/special_day_offer.php CHANGED
@@ -1,6 +1,10 @@
1
  <?php
2
  namespace Elementor;
3
 
 
 
 
 
4
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
 
6
  class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
@@ -191,7 +195,7 @@ class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
191
  $this->add_responsive_control(
192
  'badge_x_position',
193
  [
194
- 'label' => __( 'Horizontal Postion', 'woolentor' ),
195
  'type' => Controls_Manager::SLIDER,
196
  'size_units' => [ 'px', '%' ],
197
  'default' => [
@@ -220,7 +224,7 @@ class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
220
  $this->add_responsive_control(
221
  'badge_y_position',
222
  [
223
- 'label' => __( 'Vertical Postion', 'woolentor' ),
224
  'type' => Controls_Manager::SLIDER,
225
  'size_units' => [ 'px', '%' ],
226
  'default' => [
@@ -343,7 +347,6 @@ class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
343
  [
344
  'name' => 'banner_title_typography',
345
  'label' => __( 'Typography', 'woolentor' ),
346
- 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
347
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content h2',
348
  ]
349
  );
@@ -403,7 +406,6 @@ class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
403
  [
404
  'name' => 'banner_sub_title_typography',
405
  'label' => __( 'Typography', 'woolentor' ),
406
- 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
407
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content h6',
408
  ]
409
  );
@@ -463,7 +465,6 @@ class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
463
  [
464
  'name' => 'banner_description_typography',
465
  'label' => __( 'Typography', 'woolentor' ),
466
- 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
467
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content p',
468
  ]
469
  );
@@ -523,7 +524,6 @@ class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
523
  [
524
  'name' => 'banner_offer_typography',
525
  'label' => __( 'Typography', 'woolentor' ),
526
- 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
527
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content h5',
528
  ]
529
  );
@@ -583,7 +583,6 @@ class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
583
  [
584
  'name' => 'banner_offer_tag_typography',
585
  'label' => __( 'Typography', 'woolentor' ),
586
- 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
587
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content h5 span',
588
  ]
589
  );
@@ -651,7 +650,6 @@ class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
651
  [
652
  'name' => 'button_typography',
653
  'label' => __( 'Typography', 'woolentor' ),
654
- 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
655
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content a',
656
  ]
657
  );
1
  <?php
2
  namespace Elementor;
3
 
4
+ // Elementor Classes
5
+ use \Elementor\Core\Schemes\Color as Scheme_Color;
6
+ use \Elementor\Core\Schemes\Typography as Scheme_Typography;
7
+
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  class Woolentor_Elementor_Widget_Special_day_Banner extends Widget_Base {
195
  $this->add_responsive_control(
196
  'badge_x_position',
197
  [
198
+ 'label' => __( 'Horizontal Position', 'woolentor' ),
199
  'type' => Controls_Manager::SLIDER,
200
  'size_units' => [ 'px', '%' ],
201
  'default' => [
224
  $this->add_responsive_control(
225
  'badge_y_position',
226
  [
227
+ 'label' => __( 'Vertical Position', 'woolentor' ),
228
  'type' => Controls_Manager::SLIDER,
229
  'size_units' => [ 'px', '%' ],
230
  'default' => [
347
  [
348
  'name' => 'banner_title_typography',
349
  'label' => __( 'Typography', 'woolentor' ),
 
350
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content h2',
351
  ]
352
  );
406
  [
407
  'name' => 'banner_sub_title_typography',
408
  'label' => __( 'Typography', 'woolentor' ),
 
409
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content h6',
410
  ]
411
  );
465
  [
466
  'name' => 'banner_description_typography',
467
  'label' => __( 'Typography', 'woolentor' ),
 
468
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content p',
469
  ]
470
  );
524
  [
525
  'name' => 'banner_offer_typography',
526
  'label' => __( 'Typography', 'woolentor' ),
 
527
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content h5',
528
  ]
529
  );
583
  [
584
  'name' => 'banner_offer_tag_typography',
585
  'label' => __( 'Typography', 'woolentor' ),
 
586
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content h5 span',
587
  ]
588
  );
650
  [
651
  'name' => 'button_typography',
652
  'label' => __( 'Typography', 'woolentor' ),
 
653
  'selector' => '{{WRAPPER}} .wlspcial-banner .banner-content a',
654
  ]
655
  );
includes/addons/universal_product.php CHANGED
@@ -1,7 +1,10 @@
1
  <?php
2
-
3
  namespace Elementor;
4
 
 
 
 
 
5
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
6
 
7
  class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
@@ -239,6 +242,16 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
239
  ]
240
  );
241
 
 
 
 
 
 
 
 
 
 
 
242
  $this->add_control(
243
  'hide_product_title',
244
  [
@@ -273,82 +286,25 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
273
  );
274
 
275
  $this->add_control(
276
- 'hide_product_ratting',
277
  [
278
- 'label' => __( 'Hide Rating', 'woolentor' ),
279
  'type' => Controls_Manager::SWITCHER,
280
  'selectors' => [
281
- '{{WRAPPER}} .ht-product-inner .ht-product-ratting-wrap' => 'display: none !important;',
 
282
  ],
283
  ]
284
  );
285
 
286
  $this->add_control(
287
- 'stock_progress_bar',
288
- [
289
- 'label' => __( 'Show Product Stock Progress Bar', 'woolentor-pro' ),
290
- 'type' => Controls_Manager::SWITCHER,
291
- ]
292
- );
293
-
294
- $this->end_controls_section();
295
-
296
- $this->start_controls_section(
297
- 'section_stock_progressbar',
298
- [
299
- 'label' => __( 'Stock Progressbar', 'woolentor-pro' ),
300
- 'tab' => Controls_Manager::TAB_CONTENT,
301
- 'condition'=>[
302
- 'stock_progress_bar'=>'yes',
303
- ],
304
- ]
305
- );
306
-
307
- $this->add_control(
308
- 'hide_order_counter',
309
- [
310
- 'label' => __( 'Hide Order Counter', 'woolentor-pro' ),
311
- 'type' => Controls_Manager::SWITCHER,
312
- 'selectors' => [
313
- '{{WRAPPER}} .wltotal-sold' => 'display: none !important;',
314
- ],
315
- ]
316
- );
317
-
318
- $this->add_control(
319
- 'hide_available_counter',
320
  [
321
- 'label' => __( 'Hide Available Counter', 'woolentor-pro' ),
322
  'type' => Controls_Manager::SWITCHER,
323
  'selectors' => [
324
- '{{WRAPPER}} .wlcurrent-stock' => 'display: none !important;',
325
- ],
326
- ]
327
- );
328
-
329
- $this->add_control(
330
- 'order_custom_text',
331
- [
332
- 'label' => __( 'Ordered Custom Text', 'woolentor-pro' ),
333
- 'type' => Controls_Manager::TEXT,
334
- 'placeholder' => __( 'Ordered', 'woolentor-pro' ),
335
- 'condition' => [
336
- 'hide_order_counter!' => 'yes',
337
- ],
338
- 'label_block' => true,
339
- ]
340
- );
341
-
342
- $this->add_control(
343
- 'available_custom_text',
344
- [
345
- 'label' => __( 'Available Custom Text', 'woolentor-pro' ),
346
- 'type' => Controls_Manager::TEXT,
347
- 'placeholder' => __( 'Items available', 'woolentor-pro' ),
348
- 'condition' => [
349
- 'hide_available_counter!' => 'yes',
350
  ],
351
- 'label_block' => true,
352
  ]
353
  );
354
 
@@ -746,7 +702,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
746
  $this->add_control(
747
  'slautolay',
748
  [
749
- 'label' => esc_html__( 'Slider auto play', 'woolentor' ),
750
  'type' => Controls_Manager::SWITCHER,
751
  'return_value' => 'yes',
752
  'separator' => 'before',
@@ -828,7 +784,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
828
  'sltablet_width',
829
  [
830
  'label' => __('Tablet Resolution', 'woolentor'),
831
- 'description' => __('The resolution to tablet.', 'woolentor'),
832
  'type' => Controls_Manager::NUMBER,
833
  'default' => 750,
834
  ]
@@ -996,15 +952,37 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
996
  ]
997
  );
998
 
 
 
 
 
 
 
 
 
 
 
 
999
  $this->add_group_control(
1000
  Group_Control_Typography::get_type(),
1001
  [
1002
  'name' => 'product_badge_typography',
1003
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1004
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-label',
1005
  ]
1006
  );
1007
 
 
 
 
 
 
 
 
 
 
 
 
 
1008
  // Product Category
1009
  $this->add_control(
1010
  'product_category_heading',
@@ -1019,7 +997,6 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1019
  Group_Control_Typography::get_type(),
1020
  [
1021
  'name' => 'product_category_typography',
1022
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1023
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-categories a',
1024
  ]
1025
  );
@@ -1075,7 +1052,6 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1075
  Group_Control_Typography::get_type(),
1076
  [
1077
  'name' => 'product_title_typography',
1078
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1079
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-title a',
1080
  ]
1081
  );
@@ -1142,7 +1118,6 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1142
  Group_Control_Typography::get_type(),
1143
  [
1144
  'name' => 'product_sale_price_typography',
1145
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1146
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-price span',
1147
  ]
1148
  );
@@ -1164,7 +1139,6 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1164
  Group_Control_Typography::get_type(),
1165
  [
1166
  'name' => 'product_regular_price_typography',
1167
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1168
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-price span del span',
1169
  ]
1170
  );
@@ -1244,7 +1218,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1244
  'name' => 'product_action_button_background_color',
1245
  'label' => __( 'Background', 'woolentor' ),
1246
  'types' => [ 'classic', 'gradient' ],
1247
- 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul',
1248
  ]
1249
  );
1250
 
@@ -1253,7 +1227,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1253
  [
1254
  'name' => 'product_action_button_box_shadow',
1255
  'label' => __( 'Box Shadow', 'woolentor' ),
1256
- 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul',
1257
  ]
1258
  );
1259
 
@@ -1273,7 +1247,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1273
  'type' => Controls_Manager::COLOR,
1274
  'default' => woolentor_get_option( 'tooltip_color','woolentor_style_tabs', '#ffffff' ),
1275
  'selectors' => [
1276
- '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li a .ht-product-action-tooltip,{{WRAPPER}} span.woolentor-tip' => 'color: {{VALUE}};',
1277
  ],
1278
  ]
1279
  );
@@ -1284,7 +1258,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1284
  'name' => 'product_action_button_tooltip_background_color',
1285
  'label' => __( 'Background', 'woolentor' ),
1286
  'types' => [ 'classic', 'gradient' ],
1287
- 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li a .ht-product-action-tooltip,{{WRAPPER}} span.woolentor-tip',
1288
  ]
1289
  );
1290
 
@@ -1305,7 +1279,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1305
  'type' => Controls_Manager::COLOR,
1306
  'default' => woolentor_get_option( 'btn_color','woolentor_style_tabs', '#000000' ),
1307
  'selectors' => [
1308
- '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li a' => 'color: {{VALUE}};',
1309
  ],
1310
  ]
1311
  );
@@ -1372,7 +1346,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1372
  'name' => 'product_action_button_normal_background_color',
1373
  'label' => __( 'Background', 'woolentor' ),
1374
  'types' => [ 'classic', 'gradient' ],
1375
- 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li',
1376
  ]
1377
  );
1378
 
@@ -1383,7 +1357,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1383
  'type' => Controls_Manager::DIMENSIONS,
1384
  'size_units' => [ 'px', '%', 'em' ],
1385
  'selectors' => [
1386
- '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1387
  ],
1388
  ]
1389
  );
@@ -1395,7 +1369,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1395
  'type' => Controls_Manager::DIMENSIONS,
1396
  'size_units' => [ 'px', '%', 'em' ],
1397
  'selectors' => [
1398
- '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1399
  ],
1400
  ]
1401
  );
@@ -1405,7 +1379,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1405
  [
1406
  'name' => 'product_action_button_normal_button_border',
1407
  'label' => __( 'Border', 'woolentor' ),
1408
- 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li',
1409
  ]
1410
  );
1411
 
@@ -1416,7 +1390,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1416
  'type' => Controls_Manager::DIMENSIONS,
1417
  'size_units' => [ 'px', '%', 'em' ],
1418
  'selectors' => [
1419
- '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1420
  ],
1421
  ]
1422
  );
@@ -1492,7 +1466,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1492
  'type' => Controls_Manager::COLOR,
1493
  'default' => woolentor_get_option( 'btn_hover_color','woolentor_style_tabs', '#dc9a0e' ),
1494
  'selectors' => [
1495
- '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li:hover a' => 'color: {{VALUE}};',
1496
  '{{WRAPPER}} .ht-product-action .yith-wcwl-wishlistaddedbrowse a, .ht-product-action .yith-wcwl-wishlistexistsbrowse a' => 'color: {{VALUE}} !important;',
1497
  ],
1498
  ]
@@ -1504,7 +1478,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1504
  'name' => 'product_action_button_hover_background_color',
1505
  'label' => __( 'Background', 'woolentor' ),
1506
  'types' => [ 'classic', 'gradient' ],
1507
- 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li:hover',
1508
  ]
1509
  );
1510
 
@@ -1513,7 +1487,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1513
  [
1514
  'name' => 'product_action_button_hover_button_border',
1515
  'label' => __( 'Border', 'woolentor' ),
1516
- 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-action ul li:hover',
1517
  ]
1518
  );
1519
 
@@ -1931,7 +1905,6 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
1931
  Group_Control_Typography::get_type(),
1932
  [
1933
  'name' => 'tabmenutypography',
1934
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1935
  'selector' => '{{WRAPPER}} .ht-tab-menus li a',
1936
  ]
1937
  );
@@ -2069,130 +2042,6 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2069
 
2070
  $this->end_controls_section(); // Tab option end
2071
 
2072
- // Progressbar Style
2073
- $this->start_controls_section(
2074
- 'section_stock_progressbar_style',
2075
- [
2076
- 'label' => __( 'Stock Progressbar', 'woolentor-pro' ),
2077
- 'tab' => Controls_Manager::TAB_STYLE,
2078
- 'condition'=>[
2079
- 'stock_progress_bar'=>'yes',
2080
- ],
2081
- ]
2082
- );
2083
-
2084
- $this->add_control(
2085
- 'progressbar_heading',
2086
- [
2087
- 'label' => __( 'Progressbar', 'woolentor-pro' ),
2088
- 'type' => Controls_Manager::HEADING,
2089
- 'separator' => 'before',
2090
- ]
2091
- );
2092
-
2093
- $this->add_control(
2094
- 'progressbar_height',
2095
- [
2096
- 'label' => __( 'Height', 'woolentor-pro' ),
2097
- 'type' => Controls_Manager::SLIDER,
2098
- 'size_units' => [ 'px', '%' ],
2099
- 'range' => [
2100
- 'px' => [
2101
- 'min' => 0,
2102
- 'max' => 1000,
2103
- 'step' => 1,
2104
- ],
2105
- '%' => [
2106
- 'min' => 0,
2107
- 'max' => 100,
2108
- ],
2109
- ],
2110
- 'default' => [
2111
- 'unit' => 'px',
2112
- 'size' => 10,
2113
- ],
2114
- 'selectors' => [
2115
- '{{WRAPPER}} .woolentor-stock-progress-bar .wlprogress-area' => 'height: {{SIZE}}{{UNIT}};',
2116
- ],
2117
- ]
2118
- );
2119
-
2120
- $this->add_control(
2121
- 'progressbar_bg_color',
2122
- [
2123
- 'label' => __( 'Background Color', 'woolentor-pro' ),
2124
- 'type' => Controls_Manager::COLOR,
2125
- 'selectors' => [
2126
- '{{WRAPPER}} .woolentor-stock-progress-bar .wlprogress-area' => 'background-color: {{VALUE}}',
2127
- ],
2128
- ]
2129
- );
2130
-
2131
- $this->add_control(
2132
- 'progressbar_active_bg_color',
2133
- [
2134
- 'label' => __( 'Sell Progress Background Color', 'woolentor-pro' ),
2135
- 'type' => Controls_Manager::COLOR,
2136
- 'selectors' => [
2137
- '{{WRAPPER}} .woolentor-stock-progress-bar .wlprogress-bar' => 'background-color: {{VALUE}}',
2138
- ],
2139
- ]
2140
- );
2141
-
2142
- $this->add_control(
2143
- 'progressbar_area',
2144
- [
2145
- 'label' => __( 'Margin', 'woolentor-pro' ),
2146
- 'type' => Controls_Manager::DIMENSIONS,
2147
- 'size_units' => [ 'px', '%', 'em' ],
2148
- 'selectors' => [
2149
- '{{WRAPPER}} .woolentor-stock-progress-bar' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2150
- ],
2151
- ]
2152
- );
2153
-
2154
- $this->add_control(
2155
- 'progressbar_order_heading',
2156
- [
2157
- 'label' => __( 'Order & Ability Counter', 'woolentor-pro' ),
2158
- 'type' => Controls_Manager::HEADING,
2159
- 'separator' => 'before',
2160
- ]
2161
- );
2162
-
2163
- $this->add_group_control(
2164
- Group_Control_Typography::get_type(),
2165
- [
2166
- 'name' => 'order_ability_typography',
2167
- 'label' => __( 'Typography', 'woolentor-pro' ),
2168
- 'selector' => '{{WRAPPER}} .woolentor-stock-progress-bar .wlstock-info',
2169
- ]
2170
- );
2171
-
2172
- $this->add_control(
2173
- 'order_ability_color',
2174
- [
2175
- 'label' => __( 'Label Color', 'woolentor-pro' ),
2176
- 'type' => Controls_Manager::COLOR,
2177
- 'selectors' => [
2178
- '{{WRAPPER}} .woolentor-stock-progress-bar .wlstock-info' => 'color: {{VALUE}}',
2179
- ],
2180
- ]
2181
- );
2182
-
2183
- $this->add_control(
2184
- 'counter_number_color',
2185
- [
2186
- 'label' => __( 'Counter Number Color', 'woolentor-pro' ),
2187
- 'type' => Controls_Manager::COLOR,
2188
- 'selectors' => [
2189
- '{{WRAPPER}} .woolentor-stock-progress-bar .wlstock-info span' => 'color: {{VALUE}}',
2190
- ],
2191
- ]
2192
- );
2193
-
2194
- $this->end_controls_section();
2195
-
2196
 
2197
  }
2198
 
@@ -2207,84 +2056,39 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2207
  $tabuniqid = $this->get_id();
2208
  $columns = $this->get_settings_for_display('woolentor_product_grid_column');
2209
 
2210
- // Stock Progress Bar data
2211
- $order_text = $settings['order_custom_text'] ? $settings['order_custom_text'] : esc_html__('Ordered:','woolentor-pro');
2212
- $available_text = $settings['available_custom_text'] ? $settings['available_custom_text'] : esc_html__( 'Items available:','woolentor-pro' );
2213
-
2214
  // Query Argument
2215
- $args = array(
2216
- 'post_type' => 'product',
2217
- 'post_status' => 'publish',
2218
- 'ignore_sticky_posts' => 1,
2219
- 'posts_per_page' => $per_page,
2220
  );
2221
 
2222
- switch( $product_type ){
2223
-
2224
- case 'sale':
2225
- $args['post__in'] = array_merge( array( 0 ), wc_get_product_ids_on_sale() );
2226
- break;
2227
 
2228
- case 'featured':
2229
- $args['tax_query'][] = array(
2230
- 'taxonomy' => 'product_visibility',
2231
- 'field' => 'name',
2232
- 'terms' => 'featured',
2233
- 'operator' => 'IN',
2234
- );
2235
- break;
2236
-
2237
- case 'best_selling':
2238
- $args['meta_key'] = 'total_sales';
2239
- $args['orderby'] = 'meta_value_num';
2240
- $args['order'] = 'desc';
2241
- break;
2242
-
2243
- case 'top_rated':
2244
- $args['meta_key'] = '_wc_average_rating';
2245
- $args['orderby'] = 'meta_value_num';
2246
- $args['order'] = 'desc';
2247
- break;
2248
-
2249
- case 'mixed_order':
2250
- $args['orderby'] = 'rand';
2251
- break;
2252
-
2253
- case 'show_byid':
2254
- $args['post__in'] = $settings['woolentor_product_id'];
2255
- break;
2256
-
2257
- case 'show_byid_manually':
2258
- $args['post__in'] = explode( ',', $settings['woolentor_product_ids_manually'] );
2259
- break;
2260
-
2261
- default: /* Recent */
2262
- $args['orderby'] = 'date';
2263
- $args['order'] = 'desc';
2264
- break;
2265
  }
2266
 
2267
  // Custom Order
2268
  if( $custom_order_ck == 'yes' ){
2269
- $args['orderby'] = $orderby;
2270
- $args['order'] = $order;
 
 
2271
  }
2272
 
2273
- $get_product_categories = $settings['woolentor_product_grid_categories']; // get custom field value
2274
- $product_cats = str_replace(' ', '', $get_product_categories);
2275
- if ( "0" != $get_product_categories) {
2276
- if( is_array($product_cats) && count($product_cats) > 0 ){
2277
- $field_name = is_numeric($product_cats[0])?'term_id':'slug';
2278
- $args['tax_query'][] = array(
2279
- array(
2280
- 'taxonomy' => 'product_cat',
2281
- 'terms' => $product_cats,
2282
- 'field' => $field_name,
2283
- 'include_children' => false
2284
- )
2285
- );
2286
- }
2287
- }
2288
 
2289
  $products = new \WP_Query( $args );
2290
 
@@ -2400,6 +2204,8 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2400
  $this->add_render_attribute( 'action_btn_attr', 'class', 'woolentor-btn-text-cart' );
2401
  }
2402
 
 
 
2403
  ?>
2404
  <?php if ( $settings['product_layout_style'] == 'tab' ) { ?>
2405
  <div class="product-tab-list ht-text-center">
@@ -2580,19 +2386,20 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2580
  </a>
2581
  </li>
2582
  <?php
2583
- if ( class_exists( 'YITH_WCWL' ) ) {
2584
  echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
2585
  }
2586
- if( class_exists('TInvWL_Public_AddToWishlist') ){
2587
- echo '<li>';
2588
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
2589
- echo '</li>';
2590
- }
2591
  ?>
2592
  <?php
2593
- if( function_exists('woolentor_compare_button') && class_exists('YITH_Woocompare_Frontend') ){
2594
  echo '<li>';
2595
- woolentor_compare_button(2);
 
 
 
 
 
 
2596
  echo '</li>';
2597
  }
2598
  ?>
@@ -2606,7 +2413,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2606
  <div class="ht-product-content">
2607
  <div class="ht-product-content-inner">
2608
  <div class="ht-product-categories"><?php woolentor_get_product_category_list(); ?></div>
2609
- <h4 class="ht-product-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
2610
  <div class="ht-product-price"><?php woocommerce_template_loop_price();?></div>
2611
  <div class="ht-product-ratting-wrap"><?php echo woolentor_wc_get_rating_html(); ?></div>
2612
 
@@ -2620,19 +2427,20 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2620
  </a>
2621
  </li>
2622
  <?php
2623
- if ( class_exists( 'YITH_WCWL' ) ) {
2624
  echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
2625
  }
2626
- if( class_exists('TInvWL_Public_AddToWishlist') ){
2627
- echo '<li>';
2628
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
2629
- echo '</li>';
2630
- }
2631
  ?>
2632
  <?php
2633
- if( function_exists('woolentor_compare_button') && class_exists('YITH_Woocompare_Frontend') ){
2634
  echo '<li>';
2635
- woolentor_compare_button(2);
 
 
 
 
 
 
2636
  echo '</li>';
2637
  }
2638
  ?>
@@ -2641,12 +2449,6 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2641
  </div>
2642
  <?php endif; } ?>
2643
 
2644
- <?php
2645
- if( $settings['stock_progress_bar'] == 'yes'){
2646
- woolentor_stock_status( $order_text, $available_text, get_the_ID() );
2647
- }
2648
- ?>
2649
-
2650
  </div>
2651
  <?php
2652
  if( $settings['show_countdown'] == 'yes' && $settings['product_countdown_position'] == 'contentbottom' && $offer_end_date != '' ):
@@ -2702,7 +2504,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2702
 
2703
  <div class="ht-product-image-wrap">
2704
  <?php
2705
- if( class_exists('WooCommerce') ){
2706
  woolentor_custom_product_badge();
2707
  woolentor_sale_flash();
2708
  }
@@ -2767,19 +2569,20 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2767
  </a>
2768
  </li>
2769
  <?php
2770
- if ( class_exists( 'YITH_WCWL' ) ) {
2771
  echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
2772
  }
2773
- if( class_exists('TInvWL_Public_AddToWishlist') ){
2774
- echo '<li>';
2775
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
2776
- echo '</li>';
2777
- }
2778
  ?>
2779
  <?php
2780
- if( function_exists('woolentor_compare_button') && class_exists('YITH_Woocompare_Frontend') ){
2781
  echo '<li>';
2782
- woolentor_compare_button(2);
 
 
 
 
 
 
2783
  echo '</li>';
2784
  }
2785
  ?>
@@ -2793,7 +2596,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2793
  <div class="ht-product-content">
2794
  <div class="ht-product-content-inner">
2795
  <div class="ht-product-categories"><?php woolentor_get_product_category_list(); ?></div>
2796
- <h4 class="ht-product-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
2797
  <div class="ht-product-price"><?php woocommerce_template_loop_price();?></div>
2798
  <div class="ht-product-ratting-wrap"><?php echo woolentor_wc_get_rating_html(); ?></div>
2799
 
@@ -2807,19 +2610,20 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2807
  </a>
2808
  </li>
2809
  <?php
2810
- if ( class_exists( 'YITH_WCWL' ) ) {
2811
  echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
2812
  }
2813
- if( class_exists('TInvWL_Public_AddToWishlist') ){
2814
- echo '<li>';
2815
- \TInvWL_Public_AddToWishlist::instance()->htmloutput();
2816
- echo '</li>';
2817
- }
2818
  ?>
2819
  <?php
2820
- if( function_exists('woolentor_compare_button') && class_exists('YITH_Woocompare_Frontend') ){
2821
  echo '<li>';
2822
- woolentor_compare_button(2);
 
 
 
 
 
 
2823
  echo '</li>';
2824
  }
2825
  ?>
@@ -2827,11 +2631,6 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2827
  </ul>
2828
  </div>
2829
  <?php endif; } ?>
2830
- <?php
2831
- if( $settings['stock_progress_bar'] == 'yes'){
2832
- woolentor_stock_status( $order_text, $available_text, get_the_ID() );
2833
- }
2834
- ?>
2835
  </div>
2836
  <?php
2837
  if( $settings['show_countdown'] == 'yes' && $settings['product_countdown_position'] == 'contentbottom' && $offer_end_date != '' ):
@@ -2856,7 +2655,7 @@ class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
2856
 
2857
  <?php if ( Plugin::instance()->editor->is_edit_mode() ) { ?>
2858
  <script>
2859
- jQuery(document).ready(function($) {
2860
  'use strict';
2861
  $(".ht-product-image-thumbnaisl-<?php echo $tabuniqid; ?>").slick({
2862
  dots: true,
1
  <?php
 
2
  namespace Elementor;
3
 
4
+ // Elementor Classes
5
+ use \Elementor\Core\Schemes\Color as Scheme_Color;
6
+ use \Elementor\Core\Schemes\Typography as Scheme_Typography;
7
+
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  class Woolentor_Universal_Product_Layout_Widget extends Widget_Base {
242
  ]
243
  );
244
 
245
+ $this->add_control(
246
+ 'product_title_html_tag',
247
+ [
248
+ 'label' => __( 'Title HTML Tag', 'woolentor' ),
249
+ 'type' => Controls_Manager::SELECT,
250
+ 'options' => woolentor_html_tag_lists(),
251
+ 'default' => 'h4',
252
+ ]
253
+ );
254
+
255
  $this->add_control(
256
  'hide_product_title',
257
  [
286
  );
287
 
288
  $this->add_control(
289
+ 'hide_category_before_border',
290
  [
291
+ 'label' => __( 'Hide category before border', 'woolentor-pro' ),
292
  'type' => Controls_Manager::SWITCHER,
293
  'selectors' => [
294
+ '{{WRAPPER}} .ht-product-inner .ht-product-categories::before' => 'display: none !important;',
295
+ '{{WRAPPER}} .ht-product-inner .ht-product-categories' => 'padding-left: 0 !important;',
296
  ],
297
  ]
298
  );
299
 
300
  $this->add_control(
301
+ 'hide_product_ratting',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
  [
303
+ 'label' => __( 'Hide Rating', 'woolentor' ),
304
  'type' => Controls_Manager::SWITCHER,
305
  'selectors' => [
306
+ '{{WRAPPER}} .ht-product-inner .ht-product-ratting-wrap' => 'display: none !important;',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  ],
 
308
  ]
309
  );
310
 
702
  $this->add_control(
703
  'slautolay',
704
  [
705
+ 'label' => esc_html__( 'Slider autoplay', 'woolentor' ),
706
  'type' => Controls_Manager::SWITCHER,
707
  'return_value' => 'yes',
708
  'separator' => 'before',
784
  'sltablet_width',
785
  [
786
  'label' => __('Tablet Resolution', 'woolentor'),
787
+ 'description' => __('The resolution to the tablet.', 'woolentor'),
788
  'type' => Controls_Manager::NUMBER,
789
  'default' => 750,
790
  ]
952
  ]
953
  );
954
 
955
+ $this->add_control(
956
+ 'product_badge_bg_color',
957
+ [
958
+ 'label' => __( 'Badge Background Color', 'woolentor-pro' ),
959
+ 'type' => Controls_Manager::COLOR,
960
+ 'selectors' => [
961
+ '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-label' => 'background-color: {{VALUE}};',
962
+ ],
963
+ ]
964
+ );
965
+
966
  $this->add_group_control(
967
  Group_Control_Typography::get_type(),
968
  [
969
  'name' => 'product_badge_typography',
 
970
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-label',
971
  ]
972
  );
973
 
974
+ $this->add_responsive_control(
975
+ 'product_badge_padding',
976
+ [
977
+ 'label' => __( 'Padding', 'woolentor-pro' ),
978
+ 'type' => Controls_Manager::DIMENSIONS,
979
+ 'size_units' => [ 'px', '%', 'em' ],
980
+ 'selectors' => [
981
+ '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-image-wrap .ht-product-label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
982
+ ],
983
+ ]
984
+ );
985
+
986
  // Product Category
987
  $this->add_control(
988
  'product_category_heading',
997
  Group_Control_Typography::get_type(),
998
  [
999
  'name' => 'product_category_typography',
 
1000
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-categories a',
1001
  ]
1002
  );
1052
  Group_Control_Typography::get_type(),
1053
  [
1054
  'name' => 'product_title_typography',
 
1055
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-title a',
1056
  ]
1057
  );
1118
  Group_Control_Typography::get_type(),
1119
  [
1120
  'name' => 'product_sale_price_typography',
 
1121
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-price span',
1122
  ]
1123
  );
1139
  Group_Control_Typography::get_type(),
1140
  [
1141
  'name' => 'product_regular_price_typography',
 
1142
  'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-price span del span',
1143
  ]
1144
  );
1218
  'name' => 'product_action_button_background_color',
1219
  'label' => __( 'Background', 'woolentor' ),
1220
  'types' => [ 'classic', 'gradient' ],
1221
+ 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul',
1222
  ]
1223
  );
1224
 
1227
  [
1228
  'name' => 'product_action_button_box_shadow',
1229
  'label' => __( 'Box Shadow', 'woolentor' ),
1230
+ 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul',
1231
  ]
1232
  );
1233
 
1247
  'type' => Controls_Manager::COLOR,
1248
  'default' => woolentor_get_option( 'tooltip_color','woolentor_style_tabs', '#ffffff' ),
1249
  'selectors' => [
1250
+ '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,{{WRAPPER}} span.woolentor-tip' => 'color: {{VALUE}};',
1251
  ],
1252
  ]
1253
  );
1258
  'name' => 'product_action_button_tooltip_background_color',
1259
  'label' => __( 'Background', 'woolentor' ),
1260
  'types' => [ 'classic', 'gradient' ],
1261
+ 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,{{WRAPPER}} span.woolentor-tip',
1262
  ]
1263
  );
1264
 
1279
  'type' => Controls_Manager::COLOR,
1280
  'default' => woolentor_get_option( 'btn_color','woolentor_style_tabs', '#000000' ),
1281
  'selectors' => [
1282
+ '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li a' => 'color: {{VALUE}};',
1283
  ],
1284
  ]
1285
  );
1346
  'name' => 'product_action_button_normal_background_color',
1347
  'label' => __( 'Background', 'woolentor' ),
1348
  'types' => [ 'classic', 'gradient' ],
1349
+ 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li',
1350
  ]
1351
  );
1352
 
1357
  'type' => Controls_Manager::DIMENSIONS,
1358
  'size_units' => [ 'px', '%', 'em' ],
1359
  'selectors' => [
1360
+ '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1361
  ],
1362
  ]
1363
  );
1369
  'type' => Controls_Manager::DIMENSIONS,
1370
  'size_units' => [ 'px', '%', 'em' ],
1371
  'selectors' => [
1372
+ '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1373
  ],
1374
  ]
1375
  );
1379
  [
1380
  'name' => 'product_action_button_normal_button_border',
1381
  'label' => __( 'Border', 'woolentor' ),
1382
+ 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li',
1383
  ]
1384
  );
1385
 
1390
  'type' => Controls_Manager::DIMENSIONS,
1391
  'size_units' => [ 'px', '%', 'em' ],
1392
  'selectors' => [
1393
+ '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1394
  ],
1395
  ]
1396
  );
1466
  'type' => Controls_Manager::COLOR,
1467
  'default' => woolentor_get_option( 'btn_hover_color','woolentor_style_tabs', '#dc9a0e' ),
1468
  'selectors' => [
1469
+ '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li:hover a' => 'color: {{VALUE}};',
1470
  '{{WRAPPER}} .ht-product-action .yith-wcwl-wishlistaddedbrowse a, .ht-product-action .yith-wcwl-wishlistexistsbrowse a' => 'color: {{VALUE}} !important;',
1471
  ],
1472
  ]
1478
  'name' => 'product_action_button_hover_background_color',
1479
  'label' => __( 'Background', 'woolentor' ),
1480
  'types' => [ 'classic', 'gradient' ],
1481
+ 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li:hover',
1482
  ]
1483
  );
1484
 
1487
  [
1488
  'name' => 'product_action_button_hover_button_border',
1489
  'label' => __( 'Border', 'woolentor' ),
1490
+ 'selector' => '{{WRAPPER}} .ht-products .ht-product .ht-product-inner .ht-product-action ul li:hover',
1491
  ]
1492
  );
1493
 
1905
  Group_Control_Typography::get_type(),
1906
  [
1907
  'name' => 'tabmenutypography',
 
1908
  'selector' => '{{WRAPPER}} .ht-tab-menus li a',
1909
  ]
1910
  );
2042
 
2043
  $this->end_controls_section(); // Tab option end
2044
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2045
 
2046
  }
2047
 
2056
  $tabuniqid = $this->get_id();
2057
  $columns = $this->get_settings_for_display('woolentor_product_grid_column');
2058
 
 
 
 
 
2059
  // Query Argument
2060
+ $query_args = array(
2061
+ 'per_page' => $per_page,
2062
+ 'product_type' => $product_type,
2063
+ 'product_ids' => $product_type === '' ? : $settings['woolentor_product_id'],
 
2064
  );
2065
 
2066
+ // Category Wise
2067
+ $product_cats = $settings['woolentor_product_grid_categories'];
2068
+ if( is_array( $product_cats ) && count( $product_cats ) > 0 ){
2069
+ $query_args['categories'] = $product_cats;
2070
+ }
2071
 
2072
+ /**
2073
+ * Show by IDs
2074
+ */
2075
+ if( 'show_byid' == $product_type ){
2076
+ $query_args['product_ids'] = $settings['woolentor_product_id'];
2077
+ }elseif( 'show_byid_manually' == $product_type ){
2078
+ $query_args['product_ids'] = explode( ',', $settings['woolentor_product_ids_manually'] );
2079
+ }else{
2080
+ $query_args['product_ids'] = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2081
  }
2082
 
2083
  // Custom Order
2084
  if( $custom_order_ck == 'yes' ){
2085
+ $query_args['custom_order'] = array(
2086
+ 'orderby' => $orderby,
2087
+ 'order' => $order,
2088
+ );
2089
  }
2090
 
2091
+ $args = woolentor_product_query( $query_args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2092
 
2093
  $products = new \WP_Query( $args );
2094
 
2204
  $this->add_render_attribute( 'action_btn_attr', 'class', 'woolentor-btn-text-cart' );
2205
  }
2206
 
2207
+ $title_html_tag = woolentor_validate_html_tag( $settings['product_title_html_tag'] );
2208
+
2209
  ?>
2210
  <?php if ( $settings['product_layout_style'] == 'tab' ) { ?>
2211
  <div class="product-tab-list ht-text-center">
2386
  </a>
2387
  </li>
2388
  <?php
2389
+ if( true === woolentor_has_wishlist_plugin() ){
2390
  echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
2391
  }
 
 
 
 
 
2392
  ?>
2393
  <?php
2394
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() ){
2395
  echo '<li>';
2396
+ woolentor_compare_button(
2397
+ array(
2398
+ 'style'=>2,
2399
+ 'btn_text'=>'<i class="sli sli-refresh"></i>',
2400
+ 'btn_added_txt'=>'<i class="sli sli-check"></i>'
2401
+ )
2402
+ );
2403
  echo '</li>';
2404
  }
2405
  ?>
2413
  <div class="ht-product-content">
2414
  <div class="ht-product-content-inner">
2415
  <div class="ht-product-categories"><?php woolentor_get_product_category_list(); ?></div>
2416
+ <?php echo sprintf( "<%s class='ht-product-title'><a href='%s'>%s</a></%s>", $title_html_tag, get_the_permalink(), get_the_title(), $title_html_tag ); ?>
2417
  <div class="ht-product-price"><?php woocommerce_template_loop_price();?></div>
2418
  <div class="ht-product-ratting-wrap"><?php echo woolentor_wc_get_rating_html(); ?></div>
2419
 
2427
  </a>
2428
  </li>
2429
  <?php
2430
+ if( true === woolentor_has_wishlist_plugin() ){
2431
  echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
2432
  }
 
 
 
 
 
2433
  ?>
2434
  <?php
2435
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() ){
2436
  echo '<li>';
2437
+ woolentor_compare_button(
2438
+ array(
2439
+ 'style'=>2,
2440
+ 'btn_text'=>'<i class="sli sli-refresh"></i>',
2441
+ 'btn_added_txt'=>'<i class="sli sli-check"></i>'
2442
+ )
2443
+ );
2444
  echo '</li>';
2445
  }
2446
  ?>
2449
  </div>
2450
  <?php endif; } ?>
2451
 
 
 
 
 
 
 
2452
  </div>
2453
  <?php
2454
  if( $settings['show_countdown'] == 'yes' && $settings['product_countdown_position'] == 'contentbottom' && $offer_end_date != '' ):
2504
 
2505
  <div class="ht-product-image-wrap">
2506
  <?php
2507
+ if( class_exists('WooCommerce') ){
2508
  woolentor_custom_product_badge();
2509
  woolentor_sale_flash();
2510
  }
2569
  </a>
2570
  </li>
2571
  <?php
2572
+ if( true === woolentor_has_wishlist_plugin() ){
2573
  echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
2574
  }
 
 
 
 
 
2575
  ?>
2576
  <?php
2577
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() ){
2578
  echo '<li>';
2579
+ woolentor_compare_button(
2580
+ array(
2581
+ 'style'=>2,
2582
+ 'btn_text'=>'<i class="sli sli-refresh"></i>',
2583
+ 'btn_added_txt'=>'<i class="sli sli-check"></i>'
2584
+ )
2585
+ );
2586
  echo '</li>';
2587
  }
2588
  ?>
2596
  <div class="ht-product-content">
2597
  <div class="ht-product-content-inner">
2598
  <div class="ht-product-categories"><?php woolentor_get_product_category_list(); ?></div>
2599
+ <?php echo sprintf( "<%s class='ht-product-title'><a href='%s'>%s</a></%s>", $title_html_tag, get_the_permalink(), get_the_title(), $title_html_tag ); ?>
2600
  <div class="ht-product-price"><?php woocommerce_template_loop_price();?></div>
2601
  <div class="ht-product-ratting-wrap"><?php echo woolentor_wc_get_rating_html(); ?></div>
2602
 
2610
  </a>
2611
  </li>
2612
  <?php
2613
+ if( true === woolentor_has_wishlist_plugin() ){
2614
  echo '<li>'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes').'</li>';
2615
  }
 
 
 
 
 
2616
  ?>
2617
  <?php
2618
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() ){
2619
  echo '<li>';
2620
+ woolentor_compare_button(
2621
+ array(
2622
+ 'style'=>2,
2623
+ 'btn_text'=>'<i class="sli sli-refresh"></i>',
2624
+ 'btn_added_txt'=>'<i class="sli sli-check"></i>'
2625
+ )
2626
+ );
2627
  echo '</li>';
2628
  }
2629
  ?>
2631
  </ul>
2632
  </div>
2633
  <?php endif; } ?>
 
 
 
 
 
2634
  </div>
2635
  <?php
2636
  if( $settings['show_countdown'] == 'yes' && $settings['product_countdown_position'] == 'contentbottom' && $offer_end_date != '' ):
2655
 
2656
  <?php if ( Plugin::instance()->editor->is_edit_mode() ) { ?>
2657
  <script>
2658
+ ;jQuery(document).ready(function($) {
2659
  'use strict';
2660
  $(".ht-product-image-thumbnaisl-<?php echo $tabuniqid; ?>").slick({
2661
  dots: true,
includes/addons/wb_archive_product.php CHANGED
@@ -1,6 +1,10 @@
1
  <?php
2
  namespace Elementor;
3
 
 
 
 
 
4
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
 
6
  class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
@@ -45,7 +49,7 @@ class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
45
  [
46
  'label' => __( 'Columns', 'woolentor' ),
47
  'type' => Controls_Manager::NUMBER,
48
- 'prefix_class' => 'woolentorproducts-columns%s-',
49
  'min' => 1,
50
  'max' => 12,
51
  'default' => 4,
@@ -332,7 +336,6 @@ class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
332
  Group_Control_Typography::get_type(),
333
  [
334
  'name' => 'product_title_typography',
335
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
336
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .woocommerce-loop-product__title',
337
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons .woocommerce-loop-product__title',
338
  ]
@@ -430,7 +433,6 @@ class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
430
  Group_Control_Typography::get_type(),
431
  [
432
  'name' => 'product_price_typography',
433
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
434
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .price,{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons .price',
435
  ]
436
  );
@@ -463,7 +465,6 @@ class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
463
  Group_Control_Typography::get_type(),
464
  [
465
  'name' => 'product_regular_price_typography',
466
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
467
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .price del .amount, {{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .price del, {{WRAPPER}}.elementor-widget-woolentor-product-archive-addons .price del',
468
  ]
469
  );
@@ -482,7 +483,7 @@ class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
482
  $this->add_control(
483
  'product_rating_color',
484
  [
485
- 'label' => __( 'Rating Start Color', 'woolentor' ),
486
  'type' => Controls_Manager::COLOR,
487
  'selectors' => [
488
  '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .star-rating' => 'color: {{VALUE}}',
@@ -494,7 +495,7 @@ class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
494
  $this->add_control(
495
  'product_empty_rating_color',
496
  [
497
- 'label' => __( 'Empty Rating Start Color', 'woolentor' ),
498
  'type' => Controls_Manager::COLOR,
499
  'selectors' => [
500
  '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .star-rating::before' => 'color: {{VALUE}}',
@@ -599,7 +600,6 @@ class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
599
  Group_Control_Typography::get_type(),
600
  [
601
  'name' => 'atc_button_typography',
602
- 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
603
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .button,{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons .button',
604
  ]
605
  );
1
  <?php
2
  namespace Elementor;
3
 
4
+ // Elementor Classes
5
+ use \Elementor\Core\Schemes\Color as Scheme_Color;
6
+ use \Elementor\Core\Schemes\Typography as Scheme_Typography;
7
+
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  class Woolentor_Elementor_Widget_Archive_Product extends Widget_Base {
49
  [
50
  'label' => __( 'Columns', 'woolentor' ),
51
  'type' => Controls_Manager::NUMBER,
52
+ 'prefix_class' => 'woolentorducts-columns%s-',
53
  'min' => 1,
54
  'max' => 12,
55
  'default' => 4,
336
  Group_Control_Typography::get_type(),
337
  [
338
  'name' => 'product_title_typography',
 
339
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .woocommerce-loop-product__title',
340
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons .woocommerce-loop-product__title',
341
  ]
433
  Group_Control_Typography::get_type(),
434
  [
435
  'name' => 'product_price_typography',
 
436
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .price,{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons .price',
437
  ]
438
  );
465
  Group_Control_Typography::get_type(),
466
  [
467
  'name' => 'product_regular_price_typography',
 
468
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .price del .amount, {{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .price del, {{WRAPPER}}.elementor-widget-woolentor-product-archive-addons .price del',
469
  ]
470
  );
483
  $this->add_control(
484
  'product_rating_color',
485
  [
486
+ 'label' => __( 'Rating Star Color', 'woolentor' ),
487
  'type' => Controls_Manager::COLOR,
488
  'selectors' => [
489
  '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .star-rating' => 'color: {{VALUE}}',
495
  $this->add_control(
496
  'product_empty_rating_color',
497
  [
498
+ 'label' => __( 'Empty Rating Star Color', 'woolentor' ),
499
  'type' => Controls_Manager::COLOR,
500
  'selectors' => [
501
  '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .star-rating::before' => 'color: {{VALUE}}',
600
  Group_Control_Typography::get_type(),
601
  [
602
  'name' => 'atc_button_typography',
 
603
  'selector' => '{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons ul.products li.product .button,{{WRAPPER}}.elementor-widget-woolentor-product-archive-addons .button',
604
  ]
605
  );
includes/addons/wb_customer_review.php CHANGED
@@ -132,7 +132,7 @@ class WL_Customer_Review_Element extends Widget_Base {
132
  'condition'=>[
133
  'review_type' => 'custom',
134
  ],
135
- 'fields' => array_values( $repeater->get_controls() ),
136
  'default' => [
137
 
138
  [
132
  'condition'=>[
133
  'review_type' => 'custom',
134
  ],
135
+ 'fields' => $repeater->get_controls(),
136
  'default' => [
137
 
138
  [
includes/addons/wb_ever_compare_table.php ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_EverCompare_Table_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wb-evercompare-table';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: EverCompare', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-table';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return array( 'woolentor-addons' );
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return [
26
+ 'evercompare-frontend',
27
+ 'woolentor-widgets',
28
+ ];
29
+ }
30
+
31
+ public function get_script_depends(){
32
+ return ['evercompare-frontend'];
33
+ }
34
+
35
+ public function get_keywords(){
36
+ return ['compare','product compare','ever compare'];
37
+ }
38
+
39
+ protected function _register_controls() {
40
+
41
+ // Content
42
+ $this->start_controls_section(
43
+ 'evercompare_content',
44
+ [
45
+ 'label' => __( 'EverCompare', 'woolentor' ),
46
+ ]
47
+ );
48
+
49
+ $this->add_control(
50
+ 'empty_table_text',
51
+ [
52
+ 'label' => __( 'Empty table text', 'woolentor' ),
53
+ 'type' => Controls_Manager::TEXT,
54
+ 'label_block'=>true,
55
+ ]
56
+ );
57
+
58
+ $this->end_controls_section();
59
+
60
+ // Heading Style
61
+ $this->start_controls_section(
62
+ 'heading_style_section',
63
+ [
64
+ 'label' => __( 'Heading', 'woolentor' ),
65
+ 'tab' => Controls_Manager::TAB_STYLE,
66
+ ]
67
+ );
68
+
69
+ $this->add_control(
70
+ 'heading_color',
71
+ [
72
+ 'label' => __( 'Heading Color', 'woolentor' ),
73
+ 'type' => Controls_Manager::COLOR,
74
+ 'selectors' => [
75
+ '{{WRAPPER}} .htcolumn-field-name' => 'color: {{VALUE}}',
76
+ ],
77
+ ]
78
+ );
79
+
80
+ $this->add_group_control(
81
+ \Elementor\Group_Control_Typography::get_type(),
82
+ [
83
+ 'name' => 'heading_typography',
84
+ 'label' => __( 'Typography', 'woolentor' ),
85
+ 'selector' => '{{WRAPPER}} .htcolumn-field-name',
86
+ ]
87
+ );
88
+
89
+ $this->add_group_control(
90
+ Group_Control_Background::get_type(),
91
+ [
92
+ 'name' => 'heading_background',
93
+ 'label' => __( 'Even Heading Background', 'woolentor' ),
94
+ 'types' => [ 'classic', 'gradient' ],
95
+ 'selector' => '{{WRAPPER}} .htcompare-row:nth-child(2n) .htcompare-col',
96
+ 'exclude' =>['image'],
97
+ 'fields_options'=>[
98
+ 'background'=>[
99
+ 'label'=>__( 'Even Heading Background', 'woolentor' )
100
+ ]
101
+ ]
102
+ ]
103
+ );
104
+
105
+ $this->add_group_control(
106
+ Group_Control_Background::get_type(),
107
+ [
108
+ 'name' => 'heading_background_odd',
109
+ 'label' => __( 'Odd Heading Background', 'woolentor' ),
110
+ 'types' => [ 'classic', 'gradient' ],
111
+ 'selector' => '{{WRAPPER}} .htcompare-row:nth-child(2n+1) .htcompare-col',
112
+ 'exclude' =>['image'],
113
+ 'fields_options'=>[
114
+ 'background'=>[
115
+ 'label'=>__( 'Odd Heading Background', 'woolentor' )
116
+ ]
117
+ ]
118
+ ]
119
+ );
120
+
121
+ $this->end_controls_section();
122
+
123
+ // Content Style
124
+ $this->start_controls_section(
125
+ 'content_style_section',
126
+ [
127
+ 'label' => __( 'Content', 'woolentor' ),
128
+ 'tab' => Controls_Manager::TAB_STYLE,
129
+ ]
130
+ );
131
+ $this->add_control(
132
+ 'content_color',
133
+ [
134
+ 'label' => __( 'Content Color', 'woolentor' ),
135
+ 'type' => Controls_Manager::COLOR,
136
+ 'selectors' => [
137
+ '{{WRAPPER}} .htcolumn-value' => 'color: {{VALUE}}',
138
+ ],
139
+ ]
140
+ );
141
+
142
+ $this->add_control(
143
+ 'content_link_color',
144
+ [
145
+ 'label' => __( 'Content Link Color', 'woolentor' ),
146
+ 'type' => Controls_Manager::COLOR,
147
+ 'selectors' => [
148
+ '{{WRAPPER}} .htcolumn-value a' => 'color: {{VALUE}}',
149
+ ],
150
+ ]
151
+ );
152
+
153
+ $this->add_control(
154
+ 'cart_btn_color',
155
+ [
156
+ 'label' => __( 'Cart Button Color', 'woolentor' ),
157
+ 'type' => Controls_Manager::COLOR,
158
+ 'selectors' => [
159
+ '{{WRAPPER}} .htcolumn-value a.htcompare-cart-button' => 'color: {{VALUE}}',
160
+ ],
161
+ ]
162
+ );
163
+
164
+ $this->add_group_control(
165
+ Group_Control_Background::get_type(),
166
+ [
167
+ 'name' => 'cart_btn_background',
168
+ 'label' => __( 'Cart Button Background', 'woolentor' ),
169
+ 'types' => [ 'classic', 'gradient' ],
170
+ 'selector' => '{{WRAPPER}} .htcolumn-value a.htcompare-cart-button',
171
+ 'exclude' =>['image'],
172
+ 'fields_options'=>[
173
+ 'background'=>[
174
+ 'label'=>__( 'Cart Button Background', 'woolentor' )
175
+ ]
176
+ ]
177
+ ]
178
+ );
179
+
180
+ $this->add_control(
181
+ 'border_color',
182
+ [
183
+ 'label' => __( 'Border Color', 'woolentor' ),
184
+ 'type' => Controls_Manager::COLOR,
185
+ 'selectors' => [
186
+ '{{WRAPPER}} .htcompare-col' => 'border-color: {{VALUE}}',
187
+ ],
188
+ ]
189
+ );
190
+
191
+ $this->end_controls_section();
192
+
193
+ }
194
+
195
+ protected function render( $instance = [] ) {
196
+ $settings = $this->get_settings_for_display();
197
+
198
+ $short_code_attributes = [
199
+ 'empty_compare_text' => $settings['empty_table_text'],
200
+ ];
201
+ echo woolentor_do_shortcode( 'evercompare_table', $short_code_attributes );
202
+ }
203
+
204
+ }
205
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_EverCompare_Table_Element() );
includes/addons/wb_image_marker.php CHANGED
@@ -154,7 +154,7 @@ class WL_Image_Marker_Element extends Widget_Base {
154
  'image_marker_list',
155
  [
156
  'type' => Controls_Manager::REPEATER,
157
- 'fields' => array_values( $repeater->get_controls() ),
158
  'default' => [
159
  [
160
  'marker_title' => __( 'Marker #1', 'woolentor' ),
154
  'image_marker_list',
155
  [
156
  'type' => Controls_Manager::REPEATER,
157
+ 'fields' => $repeater->get_controls(),
158
  'default' => [
159
  [
160
  'marker_title' => __( 'Marker #1', 'woolentor' ),
includes/addons/wb_just_table.php ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_Just_Table_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wb-just-table';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: JustTable', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-table';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return array( 'woolentor-addons' );
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return [
26
+ 'woolentor-widgets',
27
+ ];
28
+ }
29
+
30
+ public function get_script_depends(){
31
+ return [];
32
+ }
33
+
34
+ public function get_keywords(){
35
+ return ['table','product table','justtable'];
36
+ }
37
+
38
+ protected function _register_controls() {
39
+
40
+ // Content
41
+ $this->start_controls_section(
42
+ 'justtable_content',
43
+ [
44
+ 'label' => __( 'JustTable', 'woolentor' ),
45
+ ]
46
+ );
47
+ $this->add_control(
48
+ 'table_id',
49
+ [
50
+ 'label' => __( 'Select Table', 'woolentor' ),
51
+ 'type' => Controls_Manager::SELECT,
52
+ 'default' => '0',
53
+ 'options' => woolentor_post_name('jt-product-table'),
54
+ ]
55
+ );
56
+
57
+ $this->end_controls_section();
58
+
59
+ // Heading Style
60
+ $this->start_controls_section(
61
+ 'heading_style_section',
62
+ [
63
+ 'label' => __( 'Heading', 'woolentor' ),
64
+ 'tab' => Controls_Manager::TAB_STYLE,
65
+ ]
66
+ );
67
+
68
+ $this->add_control(
69
+ 'heading_color',
70
+ [
71
+ 'label' => __( 'Heading Color', 'woolentor' ),
72
+ 'type' => Controls_Manager::COLOR,
73
+ 'selectors' => [
74
+ '{{WRAPPER}} .jtpt-product-table th.jtpt-head-data' => 'color: {{VALUE}}',
75
+ ],
76
+ ]
77
+ );
78
+
79
+ $this->add_group_control(
80
+ \Elementor\Group_Control_Typography::get_type(),
81
+ [
82
+ 'name' => 'heading_typography',
83
+ 'label' => __( 'Typography', 'woolentor' ),
84
+ 'selector' => '{{WRAPPER}} .jtpt-product-table th.jtpt-head-data',
85
+ ]
86
+ );
87
+
88
+ $this->add_group_control(
89
+ Group_Control_Background::get_type(),
90
+ [
91
+ 'name' => 'heading_background',
92
+ 'label' => __( 'Heading Background', 'woolentor' ),
93
+ 'types' => [ 'classic', 'gradient' ],
94
+ 'selector' => '{{WRAPPER}} .jtpt-product-table th.jtpt-head-data',
95
+ 'exclude' =>['image'],
96
+ 'fields_options'=>[
97
+ 'background'=>[
98
+ 'label'=>__( 'Heading Background', 'woolentor' )
99
+ ]
100
+ ]
101
+ ]
102
+ );
103
+
104
+ $this->end_controls_section();
105
+
106
+ // Wrapper Style
107
+ $this->start_controls_section(
108
+ 'content_style_section',
109
+ [
110
+ 'label' => __( 'Table Content', 'woolentor' ),
111
+ 'tab' => Controls_Manager::TAB_STYLE,
112
+ ]
113
+ );
114
+
115
+ $this->add_group_control(
116
+ Group_Control_Background::get_type(),
117
+ [
118
+ 'name' => 'table_wrapper_background',
119
+ 'label' => __( 'Background', 'woolentor' ),
120
+ 'types' => [ 'classic', 'gradient' ],
121
+ 'selector' => '{{WRAPPER}} .jtpt-product-table-wrapper',
122
+ 'exclude' =>['image'],
123
+ 'fields_options'=>[
124
+ 'background'=>[
125
+ 'label'=>__( 'Wrapper Background', 'woolentor' )
126
+ ]
127
+ ]
128
+ ]
129
+ );
130
+
131
+ $this->add_control(
132
+ 'table_td_border_color',
133
+ [
134
+ 'label' => __( 'Item Gap Color', 'woolentor' ),
135
+ 'type' => Controls_Manager::COLOR,
136
+ 'selectors' => [
137
+ '{{WRAPPER}} .jtpt-product-table .jtpt-body-data' => 'border-color: {{VALUE}}',
138
+ ],
139
+ ]
140
+ );
141
+
142
+ $this->end_controls_section();
143
+
144
+ }
145
+
146
+ protected function render( $instance = [] ) {
147
+ $settings = $this->get_settings_for_display();
148
+
149
+ $short_code_attributes = [
150
+ 'id' => $settings['table_id'],
151
+ ];
152
+ echo woolentor_do_shortcode( 'JT_Product_Table', $short_code_attributes );
153
+ }
154
+
155
+ }
156
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Just_Table_Element() );
includes/addons/wb_product_data_tab.php CHANGED
@@ -158,8 +158,7 @@ class WL_Product_Product_Data_Tabs_Element extends Widget_Base {
158
  'label' => __( 'Background Color', 'woolentor' ),
159
  'type' => Controls_Manager::COLOR,
160
  'selectors' => [
161
- '.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel, .woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active' => 'background-color: {{VALUE}}',
162
- '.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active' => 'border-bottom-color: {{VALUE}}',
163
  ],
164
  ]
165
  );
@@ -170,7 +169,6 @@ class WL_Product_Product_Data_Tabs_Element extends Widget_Base {
170
  'label' => __( 'Border Color', 'woolentor' ),
171
  'type' => Controls_Manager::COLOR,
172
  'selectors' => [
173
- '.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-color: {{VALUE}}',
174
  '.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active' => 'border-color: {{VALUE}} {{VALUE}} {{active_tab_bg_color.VALUE}} {{VALUE}}',
175
  '.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li:not(.active)' => 'border-bottom-color: {{VALUE}}',
176
  ],
158
  'label' => __( 'Background Color', 'woolentor' ),
159
  'type' => Controls_Manager::COLOR,
160
  'selectors' => [
161
+ '.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active' => 'background-color: {{VALUE}};border-bottom-color: {{VALUE}}',
 
162
  ],
163
  ]
164
  );
169
  'label' => __( 'Border Color', 'woolentor' ),
170
  'type' => Controls_Manager::COLOR,
171
  'selectors' => [
 
172
  '.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active' => 'border-color: {{VALUE}} {{VALUE}} {{active_tab_bg_color.VALUE}} {{VALUE}}',
173
  '.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li:not(.active)' => 'border-bottom-color: {{VALUE}}',
174
  ],
includes/addons/wb_product_description.php CHANGED
@@ -102,7 +102,12 @@ class WL_Product_Description_Element extends Widget_Base {
102
  echo '<div class="woocommerce_product_description">'.\WooLentor_Default_Data::instance()->default( $this->get_name() ).'</div>';
103
  }else{
104
  if ( empty( $product ) ) { return; }
105
- echo '<div class="woocommerce_product_description">'.$post->post_content.'</div>';
 
 
 
 
 
106
  }
107
  }
108
 
102
  echo '<div class="woocommerce_product_description">'.\WooLentor_Default_Data::instance()->default( $this->get_name() ).'</div>';
103
  }else{
104
  if ( empty( $product ) ) { return; }
105
+ echo '<div class="woocommerce_product_description">';
106
+ the_content();
107
+ echo '</div>';
108
+ //echo '<div class="woocommerce_product_description">'.$post->post_content.'</div>';
109
+ //echo '<div class="woocommerce_product_description">'.$product->get_description().'</div>';
110
+
111
  }
112
  }
113
 
includes/addons/wb_product_price.php CHANGED
@@ -37,7 +37,7 @@ class WL_Product_Price_Element extends Widget_Base {
37
  $this->start_controls_section(
38
  'product_price_regular_style_section',
39
  array(
40
- 'label' => __( 'Regular Price', 'woolentor' ),
41
  'tab' => Controls_Manager::TAB_STYLE,
42
  )
43
  );
@@ -47,18 +47,18 @@ class WL_Product_Price_Element extends Widget_Base {
47
  'label' => __( 'Price Color', 'woolentor' ),
48
  'type' => Controls_Manager::COLOR,
49
  'selectors' => [
50
- '{{WRAPPER}} .price del' => 'color: {{VALUE}} !important;',
51
  ],
52
  ]
53
  );
54
 
55
  $this->add_group_control(
56
  Group_Control_Typography::get_type(),
57
- array(
58
  'name' => 'product_price_typography',
59
  'label' => __( 'Typography', 'woolentor' ),
60
- 'selector' => '{{WRAPPER}} .price del, {{WRAPPER}} .price del .amount',
61
- )
62
  );
63
 
64
  $this->add_control(
@@ -77,10 +77,10 @@ class WL_Product_Price_Element extends Widget_Base {
77
 
78
  $this->start_controls_section(
79
  'product_price_sale_style_section',
80
- array(
81
- 'label' => __( 'Sale Price', 'woolentor' ),
82
  'tab' => Controls_Manager::TAB_STYLE,
83
- )
84
  );
85
  $this->add_control(
86
  'product_sale_price_color',
@@ -88,7 +88,7 @@ class WL_Product_Price_Element extends Widget_Base {
88
  'label' => __( 'Price Color', 'woolentor' ),
89
  'type' => Controls_Manager::COLOR,
90
  'selectors' => [
91
- '{{WRAPPER}} .price' => 'color: {{VALUE}} !important;',
92
  ],
93
  ]
94
  );
@@ -98,7 +98,7 @@ class WL_Product_Price_Element extends Widget_Base {
98
  array(
99
  'name' => 'product_sale_price_typography',
100
  'label' => __( 'Typography', 'woolentor' ),
101
- 'selector' => '{{WRAPPER}} .price, {{WRAPPER}} .price .amount',
102
  )
103
  );
104
 
37
  $this->start_controls_section(
38
  'product_price_regular_style_section',
39
  array(
40
+ 'label' => __( 'Price', 'woolentor' ),
41
  'tab' => Controls_Manager::TAB_STYLE,
42
  )
43
  );
47
  'label' => __( 'Price Color', 'woolentor' ),
48
  'type' => Controls_Manager::COLOR,
49
  'selectors' => [
50
+ '{{WRAPPER}} .price' => 'color: {{VALUE}} !important;',
51
  ],
52
  ]
53
  );
54
 
55
  $this->add_group_control(
56
  Group_Control_Typography::get_type(),
57
+ [
58
  'name' => 'product_price_typography',
59
  'label' => __( 'Typography', 'woolentor' ),
60
+ 'selector' => '{{WRAPPER}} .price .amount',
61
+ ]
62
  );
63
 
64
  $this->add_control(
77
 
78
  $this->start_controls_section(
79
  'product_price_sale_style_section',
80
+ [
81
+ 'label' => __( 'Old Price', 'woolentor' ),
82
  'tab' => Controls_Manager::TAB_STYLE,
83
+ ]
84
  );
85
  $this->add_control(
86
  'product_sale_price_color',
88
  'label' => __( 'Price Color', 'woolentor' ),
89
  'type' => Controls_Manager::COLOR,
90
  'selectors' => [
91
+ '{{WRAPPER}} .price del' => 'color: {{VALUE}} !important;',
92
  ],
93
  ]
94
  );
98
  array(
99
  'name' => 'product_sale_price_typography',
100
  'label' => __( 'Typography', 'woolentor' ),
101
+ 'selector' => '{{WRAPPER}} .price del, {{WRAPPER}} .price del .amount',
102
  )
103
  );
104
 
includes/addons/wb_product_related.php CHANGED
@@ -63,7 +63,7 @@ class WL_Product_Related_Element extends Widget_Base {
63
  'prefix_class' => 'woolentorducts-columns%s-',
64
  'default' => 4,
65
  'min' => 1,
66
- 'max' => 12,
67
  ]
68
  );
69
 
@@ -214,6 +214,7 @@ class WL_Product_Related_Element extends Widget_Base {
214
  $args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(),
215
  $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );
216
  $args['related_products'] = wc_products_array_orderby( $args['related_products'], $args['orderby'], $args['order'] );
 
217
  wc_get_template( 'single-product/related.php', $args );
218
  }
219
 
63
  'prefix_class' => 'woolentorducts-columns%s-',
64
  'default' => 4,
65
  'min' => 1,
66
+ 'max' => 6,
67
  ]
68
  );
69
 
214
  $args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(),
215
  $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );
216
  $args['related_products'] = wc_products_array_orderby( $args['related_products'], $args['orderby'], $args['order'] );
217
+
218
  wc_get_template( 'single-product/related.php', $args );
219
  }
220
 
includes/addons/wb_product_suggest_price.php CHANGED
@@ -1,7 +1,10 @@
1
  <?php
2
-
3
  namespace Elementor;
4
 
 
 
 
 
5
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
6
 
7
  class WL_Product_Suggest_Price_Element extends Widget_Base {
@@ -161,8 +164,8 @@ class WL_Product_Suggest_Price_Element extends Widget_Base {
161
  [
162
  'label' => __( 'Success Message', 'woolentor' ),
163
  'type' => Controls_Manager::TEXT,
164
- 'default' => __( 'Thank you contacting with us', 'woolentor' ),
165
- 'placeholder' => __( 'Thank you contacting with us', 'woolentor' ),
166
  'label_block'=>true,
167
  'separator'=>'before',
168
  ]
@@ -173,8 +176,8 @@ class WL_Product_Suggest_Price_Element extends Widget_Base {
173
  [
174
  'label' => __( 'Error Message', 'woolentor' ),
175
  'type' => Controls_Manager::TEXT,
176
- 'default' => __( 'Something is wrong ! try again', 'woolentor' ),
177
- 'placeholder' => __( 'Something is wrong ! try again', 'woolentor' ),
178
  'label_block'=>true,
179
  ]
180
  );
@@ -222,7 +225,6 @@ class WL_Product_Suggest_Price_Element extends Widget_Base {
222
  Group_Control_Typography::get_type(),
223
  [
224
  'name' => 'input_typography',
225
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
226
  'selector' => '{{WRAPPER}} .wl-suggest-form-input input',
227
  ]
228
  );
@@ -322,7 +324,6 @@ class WL_Product_Suggest_Price_Element extends Widget_Base {
322
  Group_Control_Typography::get_type(),
323
  [
324
  'name' => 'textarea_typography',
325
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
326
  'selector' => '{{WRAPPER}} .wl-suggest-form-input textarea',
327
  ]
328
  );
@@ -421,7 +422,6 @@ class WL_Product_Suggest_Price_Element extends Widget_Base {
421
  Group_Control_Typography::get_type(),
422
  [
423
  'name' => 'submitbutton_typography',
424
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
425
  'selector' => '{{WRAPPER}} .wl-suggest-form-input input[type="submit"]',
426
  ]
427
  );
1
  <?php
 
2
  namespace Elementor;
3
 
4
+ // Elementor Classes
5
+ use \Elementor\Core\Schemes\Color as Scheme_Color;
6
+ use \Elementor\Core\Schemes\Typography as Scheme_Typography;
7
+
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  class WL_Product_Suggest_Price_Element extends Widget_Base {
164
  [
165
  'label' => __( 'Success Message', 'woolentor' ),
166
  'type' => Controls_Manager::TEXT,
167
+ 'default' => __( 'Thank you for contacting with us', 'woolentor' ),
168
+ 'placeholder' => __( 'Thank you for contacting with us', 'woolentor' ),
169
  'label_block'=>true,
170
  'separator'=>'before',
171
  ]
176
  [
177
  'label' => __( 'Error Message', 'woolentor' ),
178
  'type' => Controls_Manager::TEXT,
179
+ 'default' => __( 'Something is wrong! try again', 'woolentor' ),
180
+ 'placeholder' => __( 'Something is wrong! try again', 'woolentor' ),
181
  'label_block'=>true,
182
  ]
183
  );
225
  Group_Control_Typography::get_type(),
226
  [
227
  'name' => 'input_typography',
 
228
  'selector' => '{{WRAPPER}} .wl-suggest-form-input input',
229
  ]
230
  );
324
  Group_Control_Typography::get_type(),
325
  [
326
  'name' => 'textarea_typography',
 
327
  'selector' => '{{WRAPPER}} .wl-suggest-form-input textarea',
328
  ]
329
  );
422
  Group_Control_Typography::get_type(),
423
  [
424
  'name' => 'submitbutton_typography',
 
425
  'selector' => '{{WRAPPER}} .wl-suggest-form-input input[type="submit"]',
426
  ]
427
  );
includes/addons/wb_product_title.php CHANGED
@@ -47,7 +47,7 @@ class WL_Product_Title_Element extends Widget_Base {
47
  'label' => __( 'Title HTML Tag', 'woolentor' ),
48
  'type' => Controls_Manager::SELECT,
49
  'options' => woolentor_html_tag_lists(),
50
- 'default' => 'h1',
51
  ]
52
  );
53
 
@@ -125,11 +125,14 @@ class WL_Product_Title_Element extends Widget_Base {
125
 
126
  protected function render( $instance = [] ) {
127
  $settings = $this->get_settings_for_display();
 
 
 
128
  if( Plugin::instance()->editor->is_edit_mode() ){
129
  $title = get_the_title( woolentor_get_last_product_id() );
130
- echo sprintf( '<%1$s class="product_title entry-title">' . __( $title, 'woolentor' ). '</%1$s>', $settings['product_title_html_tag'] );
131
  }else{
132
- echo sprintf( the_title( '<%1$s class="product_title entry-title">', '</%1s>', false ), $settings['product_title_html_tag'] );
133
  }
134
 
135
  }
47
  'label' => __( 'Title HTML Tag', 'woolentor' ),
48
  'type' => Controls_Manager::SELECT,
49
  'options' => woolentor_html_tag_lists(),
50
+ 'default' => 'h2',
51
  ]
52
  );
53
 
125
 
126
  protected function render( $instance = [] ) {
127
  $settings = $this->get_settings_for_display();
128
+
129
+ $title_html_tag = woolentor_validate_html_tag( $settings['product_title_html_tag'] );
130
+
131
  if( Plugin::instance()->editor->is_edit_mode() ){
132
  $title = get_the_title( woolentor_get_last_product_id() );
133
+ echo sprintf( "<%s class='product_title entry-title'>%s</%s>", $title_html_tag, $title, $title_html_tag );
134
  }else{
135
+ echo sprintf( "<%s class='product_title entry-title'>%s</%s>", $title_html_tag, get_the_title(), $title_html_tag );
136
  }
137
 
138
  }
includes/addons/wb_product_upsell.php CHANGED
@@ -45,9 +45,10 @@ class WL_Product_Upsell_Element extends Widget_Base {
45
  [
46
  'label' => __( 'Columns', 'woolentor' ),
47
  'type' => Controls_Manager::NUMBER,
 
48
  'default' => 4,
49
  'min' => 1,
50
- 'max' => 12,
51
  ]
52
  );
53
 
@@ -168,6 +169,7 @@ class WL_Product_Upsell_Element extends Widget_Base {
168
  if ( ! empty( $settings['order'] ) ) {
169
  $order = $settings['order'];
170
  }
 
171
  if( Plugin::instance()->editor->is_edit_mode() ){
172
  echo \WooLentor_Default_Data::instance()->default( $this->get_name(), $settings );
173
  }else{
45
  [
46
  'label' => __( 'Columns', 'woolentor' ),
47
  'type' => Controls_Manager::NUMBER,
48
+ 'prefix_class' => 'woolentorducts-columns%s-',
49
  'default' => 4,
50
  'min' => 1,
51
+ 'max' => 6,
52
  ]
53
  );
54
 
169
  if ( ! empty( $settings['order'] ) ) {
170
  $order = $settings['order'];
171
  }
172
+
173
  if( Plugin::instance()->editor->is_edit_mode() ){
174
  echo \WooLentor_Default_Data::instance()->default( $this->get_name(), $settings );
175
  }else{
includes/addons/wb_wc_multicurrency.php ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_Multi_Currency_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wb-multi-currency';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: Multi Currency', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-woocommerce';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return array( 'woolentor-addons' );
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return [
26
+ 'woolentor-widgets',
27
+ ];
28
+ }
29
+
30
+ public function get_script_depends(){
31
+ return [];
32
+ }
33
+
34
+ public function get_keywords(){
35
+ return ['multi currency','currency','woocommerce currency'];
36
+ }
37
+
38
+ protected function _register_controls() {
39
+
40
+ // Content
41
+ $this->start_controls_section(
42
+ 'multi_currency_content',
43
+ [
44
+ 'label' => __( 'MultiCurrency', 'woolentor' ),
45
+ ]
46
+ );
47
+ $this->add_control(
48
+ 'multi_currency_style',
49
+ [
50
+ 'label' => __( 'Style', 'woolentor' ),
51
+ 'type' => Controls_Manager::SELECT,
52
+ 'default' => 'all',
53
+ 'options' => [
54
+ 'all' => esc_html__( 'All', 'woolentor' ),
55
+ 'flagonly' => esc_html__( 'Flag only', 'woolentor' ),
56
+ ],
57
+ ]
58
+ );
59
+
60
+ $this->end_controls_section();
61
+
62
+ // Heading Style
63
+ $this->start_controls_section(
64
+ 'heading_style_section',
65
+ [
66
+ 'label' => __( 'Heading', 'woolentor' ),
67
+ 'tab' => Controls_Manager::TAB_STYLE,
68
+ ]
69
+ );
70
+
71
+ $this->add_control(
72
+ 'heading_color',
73
+ [
74
+ 'label' => __( 'Heading Color', 'woolentor' ),
75
+ 'type' => Controls_Manager::COLOR,
76
+ 'selectors' => [
77
+ '{{WRAPPER}} .ht-mcs-sidebar-widget-list ul li a' => 'color: {{VALUE}}',
78
+ ],
79
+ ]
80
+ );
81
+
82
+ $this->add_group_control(
83
+ Group_Control_Typography::get_type(),
84
+ [
85
+ 'name' => 'heading_typography',
86
+ 'label' => __( 'Typography', 'woolentor' ),
87
+ 'selector' => '{{WRAPPER}} .ht-mcs-sidebar-widget-list ul li a',
88
+ ]
89
+ );
90
+
91
+ $this->end_controls_section();
92
+
93
+
94
+ }
95
+
96
+ protected function render( $instance = [] ) {
97
+ $settings = $this->get_settings_for_display();
98
+
99
+ $short_code_attributes = [
100
+ 'style' => $settings['multi_currency_style'],
101
+ ];
102
+ echo woolentor_do_shortcode( 'WCMC', $short_code_attributes );
103
+ }
104
+
105
+ }
106
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Multi_Currency_Element() );
includes/addons/wb_whols.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_Whols_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wb-whols';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: Whols', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-woocommerce';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return array( 'woolentor-addons' );
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return [
26
+ 'woolentor-widgets',
27
+ ];
28
+ }
29
+
30
+ public function get_script_depends(){
31
+ return [];
32
+ }
33
+
34
+ public function get_keywords(){
35
+ return ['whols','whole sale','woocommerce sale'];
36
+ }
37
+
38
+ protected function _register_controls() {
39
+
40
+ // Button Style
41
+ $this->start_controls_section(
42
+ 'button_style_section',
43
+ [
44
+ 'label' => __( 'Button', 'woolentor' ),
45
+ 'tab' => Controls_Manager::TAB_STYLE,
46
+ ]
47
+ );
48
+
49
+ $this->add_control(
50
+ 'button_color',
51
+ [
52
+ 'label' => __( 'Color', 'woolentor' ),
53
+ 'type' => Controls_Manager::COLOR,
54
+ 'selectors' => [
55
+ '{{WRAPPER}} .whols_registration_form form input#whols_reg_submit' => 'color: {{VALUE}}',
56
+ ],
57
+ ]
58
+ );
59
+
60
+ $this->add_group_control(
61
+ Group_Control_Typography::get_type(),
62
+ [
63
+ 'name' => 'button_typography',
64
+ 'label' => __( 'Typography', 'woolentor' ),
65
+ 'selector' => '{{WRAPPER}} .whols_registration_form form input#whols_reg_submit',
66
+ ]
67
+ );
68
+
69
+ $this->add_responsive_control(
70
+ 'button_padding',
71
+ [
72
+ 'label' => __( 'Padding', 'woolentor' ),
73
+ 'type' => Controls_Manager::DIMENSIONS,
74
+ 'size_units' => [ 'px', '%', 'em' ],
75
+ 'selectors' => [
76
+ '{{WRAPPER}} .whols_registration_form form input#whols_reg_submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
77
+ ],
78
+ ]
79
+ );
80
+
81
+ $this->end_controls_section();
82
+
83
+
84
+ }
85
+
86
+ protected function render( $instance = [] ) {
87
+ $settings = $this->get_settings_for_display();
88
+
89
+ $short_code_attributes = [];
90
+ echo woolentor_do_shortcode( 'whols_registration_form', $short_code_attributes );
91
+ }
92
+
93
+ }
94
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Whols_Element() );
includes/addons/wb_wishsuite_table.php ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_Wishsuite_Table_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wb-wishsuite-table';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: WishSuite Table', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-table';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return array( 'woolentor-addons' );
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return [
26
+ 'wishsuite-frontend',
27
+ 'woolentor-widgets',
28
+ ];
29
+ }
30
+
31
+ public function get_script_depends(){
32
+ return ['wishsuite-frontend'];
33
+ }
34
+
35
+ public function get_keywords(){
36
+ return ['wishlist','product wishlist','wishsuite'];
37
+ }
38
+
39
+ protected function _register_controls() {
40
+
41
+ // Content
42
+ $this->start_controls_section(
43
+ 'wishsuite_content',
44
+ [
45
+ 'label' => __( 'WishSuite', 'woolentor' ),
46
+ ]
47
+ );
48
+
49
+ $this->add_control(
50
+ 'empty_table_text',
51
+ [
52
+ 'label' => __( 'Empty table text', 'woolentor' ),
53
+ 'type' => Controls_Manager::TEXT,
54
+ 'label_block'=>true,
55
+ ]
56
+ );
57
+
58
+ $this->end_controls_section();
59
+
60
+ // Table Heading Style
61
+ $this->start_controls_section(
62
+ 'table_heading_style_section',
63
+ [
64
+ 'label' => __( 'Table Heading', 'woolentor' ),
65
+ 'tab' => Controls_Manager::TAB_STYLE,
66
+ ]
67
+ );
68
+
69
+ $this->add_control(
70
+ 'heading_color',
71
+ [
72
+ 'label' => __( 'Heading Color', 'woolentor' ),
73
+ 'type' => Controls_Manager::COLOR,
74
+ 'selectors' => [
75
+ '{{WRAPPER}} .wishsuite-table-content table thead > tr th' => 'color: {{VALUE}}',
76
+ ],
77
+ ]
78
+ );
79
+
80
+ $this->add_group_control(
81
+ Group_Control_Background::get_type(),
82
+ [
83
+ 'name' => 'heading_background',
84
+ 'label' => __( 'Heading Background', 'woolentor' ),
85
+ 'types' => [ 'classic', 'gradient' ],
86
+ 'selector' => '{{WRAPPER}} .wishsuite-table-content table thead > tr th',
87
+ 'exclude' =>['image'],
88
+ ]
89
+ );
90
+
91
+ $this->add_group_control(
92
+ Group_Control_Border::get_type(),
93
+ [
94
+ 'name' => 'heading_border',
95
+ 'label' => __( 'Border', 'woolentor' ),
96
+ 'selector' => '{{WRAPPER}} .wishsuite-table-content table thead > tr',
97
+ ]
98
+ );
99
+
100
+ $this->add_group_control(
101
+ \Elementor\Group_Control_Typography::get_type(),
102
+ [
103
+ 'name' => 'heading_typography',
104
+ 'label' => __( 'Typography', 'woolentor' ),
105
+ 'selector' => '{{WRAPPER}} .wishsuite-table-content table thead > tr th',
106
+ ]
107
+ );
108
+
109
+ $this->end_controls_section();
110
+
111
+ // Table Content Style
112
+ $this->start_controls_section(
113
+ 'table_content_style_section',
114
+ [
115
+ 'label' => __( 'Table Body', 'woolentor' ),
116
+ 'tab' => Controls_Manager::TAB_STYLE,
117
+ ]
118
+ );
119
+ $this->add_group_control(
120
+ Group_Control_Border::get_type(),
121
+ [
122
+ 'name' => 'table_body_border',
123
+ 'label' => __( 'Border', 'woolentor' ),
124
+ 'selector' => '{{WRAPPER}} .wishsuite-table-content table,.wishsuite-table-content table tbody > tr',
125
+ ]
126
+ );
127
+
128
+ $this->end_controls_section();
129
+
130
+ }
131
+
132
+ protected function render( $instance = [] ) {
133
+ $settings = $this->get_settings_for_display();
134
+
135
+ $short_code_attributes = [
136
+ 'empty_text' => $settings['empty_table_text'],
137
+ ];
138
+ echo woolentor_do_shortcode( 'wishsuite_table', $short_code_attributes );
139
+
140
+ }
141
+
142
+ }
143
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Wishsuite_Table_Element() );
includes/addons/wl_brand.php CHANGED
@@ -58,7 +58,7 @@ class WL_Brand_Element extends Widget_Base {
58
  'default' => esc_html__('Default','woolentor'),
59
  ],
60
  'label_block' => true,
61
- 'description' => wp_kses_post( 'Slider layout are available in the pro version. (<a href="'.esc_url('https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd').'" target="_blank">Get Pro</a>)', 'woolentor' ),
62
  ]
63
  );
64
 
@@ -104,7 +104,7 @@ class WL_Brand_Element extends Widget_Base {
104
  'brand_list',
105
  [
106
  'type' => Controls_Manager::REPEATER,
107
- 'fields' => array_values( $repeater->get_controls() ),
108
  'default' => [
109
  [
110
  'brand_title' => esc_html__( 'Brand Title', 'woolentor' ),
@@ -219,7 +219,7 @@ class WL_Brand_Element extends Widget_Base {
219
  __( 'Slider Option', 'woolentor' ) .
220
  '</div>
221
  <div class="elementor-nerd-box-message">' .
222
- __( 'Purchase our premium version to unlock these pro feature!', 'woolentor' ) .
223
  '</div>
224
  <a class="elementor-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd' ) . '" target="_blank">' .
225
  __( 'Go Pro', 'woolentor' ) .
@@ -362,7 +362,7 @@ class WL_Brand_Element extends Widget_Base {
362
  __( 'Slider Controller Style', 'woolentor' ) .
363
  '</div>
364
  <div class="elementor-nerd-box-message">' .
365
- __( 'Purchase our premium version to unlock these pro feature!', 'woolentor' ) .
366
  '</div>
367
  <a class="elementor-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd' ) . '" target="_blank">' .
368
  __( 'Go Pro', 'woolentor' ) .
58
  'default' => esc_html__('Default','woolentor'),
59
  ],
60
  'label_block' => true,
61
+ 'description' => sprintf( __( 'Slider layouts are available in the pro version. <a href="%s" target="_blank">Get Pro</a>', 'woolentor' ), esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd' ) ),
62
  ]
63
  );
64
 
104
  'brand_list',
105
  [
106
  'type' => Controls_Manager::REPEATER,
107
+ 'fields' => $repeater->get_controls(),
108
  'default' => [
109
  [
110
  'brand_title' => esc_html__( 'Brand Title', 'woolentor' ),
219
  __( 'Slider Option', 'woolentor' ) .
220
  '</div>
221
  <div class="elementor-nerd-box-message">' .
222
+ __( 'Purchase our premium version to unlock these pro features!', 'woolentor' ) .
223
  '</div>
224
  <a class="elementor-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd' ) . '" target="_blank">' .
225
  __( 'Go Pro', 'woolentor' ) .
362
  __( 'Slider Controller Style', 'woolentor' ) .
363
  '</div>
364
  <div class="elementor-nerd-box-message">' .
365
+ __( 'Purchase our premium version to unlock these pro features!', 'woolentor' ) .
366
  '</div>
367
  <a class="elementor-nerd-box-link elementor-button elementor-button-default elementor-go-pro" href="' . esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd' ) . '" target="_blank">' .
368
  __( 'Go Pro', 'woolentor' ) .
includes/addons/wl_category.php CHANGED
@@ -1,6 +1,10 @@
1
  <?php
2
  namespace Elementor;
3
 
 
 
 
 
4
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
 
6
  class WL_Category_List_Element extends Widget_Base {
@@ -334,7 +338,6 @@ class WL_Category_List_Element extends Widget_Base {
334
  [
335
  'name' => 'title_typography',
336
  'label' => __( 'Typography', 'woolentor' ),
337
- 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
338
  'selector' => '{{WRAPPER}} .wlsingle-categorie .wlcategorie-content h4',
339
  ]
340
  );
@@ -422,7 +425,7 @@ class WL_Category_List_Element extends Widget_Base {
422
  <?php endif; ?>
423
  <div class="wlcategorie-content">
424
  <h4><a href="<?php echo esc_url( $term_link ); ?>"><?php echo esc_html__( $prod_cat->name, 'woolentor' ); ?></a><sup>(<?php echo esc_html__( $prod_cat->count, 'woolentor' ); ?>)</sup></h4>
425
- <p><?php echo wp_trim_words( $prod_cat->description, $settings['length'] ); ?></p>
426
  </div>
427
  </div>
428
  </div>
1
  <?php
2
  namespace Elementor;
3
 
4
+ // Elementor Classes
5
+ use \Elementor\Core\Schemes\Color as Scheme_Color;
6
+ use \Elementor\Core\Schemes\Typography as Scheme_Typography;
7
+
8
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
 
10
  class WL_Category_List_Element extends Widget_Base {
338
  [
339
  'name' => 'title_typography',
340
  'label' => __( 'Typography', 'woolentor' ),
 
341
  'selector' => '{{WRAPPER}} .wlsingle-categorie .wlcategorie-content h4',
342
  ]
343
  );
425
  <?php endif; ?>
426
  <div class="wlcategorie-content">
427
  <h4><a href="<?php echo esc_url( $term_link ); ?>"><?php echo esc_html__( $prod_cat->name, 'woolentor' ); ?></a><sup>(<?php echo esc_html__( $prod_cat->count, 'woolentor' ); ?>)</sup></h4>
428
+ <p><?php echo wp_trim_words( $prod_cat->description ); ?></p>
429
  </div>
430
  </div>
431
  </div>
includes/addons/wl_category_grid.php ADDED
@@ -0,0 +1,1130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
+
5
+ class WL_Category_Grid_Element extends Widget_Base {
6
+
7
+ public function get_name() {
8
+ return 'wl-category-grid';
9
+ }
10
+
11
+ public function get_title() {
12
+ return __( 'WL: Category Grid', 'woolentor' );
13
+ }
14
+
15
+ public function get_icon() {
16
+ return 'eicon-product-categories';
17
+ }
18
+
19
+ public function get_categories() {
20
+ return [ 'woolentor-addons' ];
21
+ }
22
+
23
+ public function get_style_depends(){
24
+ return ['slick','woolentor-category-grid','woolentor-widgets'];
25
+ }
26
+
27
+ public function get_script_depends() {
28
+ return ['slick','woolentor-widgets-scripts'];
29
+ }
30
+
31
+ public function get_keywords(){
32
+ return ['category','product category','category grid','categorise'];
33
+ }
34
+
35
+ protected function _register_controls() {
36
+
37
+ $this->start_controls_section(
38
+ 'section_content',
39
+ [
40
+ 'label' => esc_html__( 'Category Grid', 'woolentor' ),
41
+ ]
42
+ );
43
+
44
+ $this->add_control(
45
+ 'layout',
46
+ [
47
+ 'label' => esc_html__( 'Select Style', 'woolentor' ),
48
+ 'type' => Controls_Manager::SELECT,
49
+ 'default' => '1',
50
+ 'options' => [
51
+ '1' => esc_html__('Style One','woolentor'),
52
+ '2' => esc_html__('Style Two','woolentor'),
53
+ '3' => esc_html__('Style Three','woolentor'),
54
+ '4' => esc_html__('Style Four','woolentor'),
55
+ '5' => esc_html__('Style Five','woolentor'),
56
+ ],
57
+ 'label_block' => true,
58
+ 'separator'=>'after',
59
+ ]
60
+ );
61
+
62
+ $this->add_control(
63
+ 'category_display_type',
64
+ [
65
+ 'label' => esc_html__( 'Category Display Type', 'woolentor' ),
66
+ 'type' => Controls_Manager::SELECT,
67
+ 'default' => 'all_cat',
68
+ 'options' => [
69
+ 'single_cat' => esc_html__('Single Category','woolentor'),
70
+ 'multiple_cat'=> esc_html__('Multiple Categories','woolentor'),
71
+ 'all_cat'=> esc_html__('All Categories','woolentor'),
72
+ ],
73
+ 'label_block' => true,
74
+ ]
75
+ );
76
+
77
+ $this->add_control(
78
+ 'product_categories',
79
+ [
80
+ 'label' => esc_html__( 'Select categories', 'woolentor' ),
81
+ 'type' => Controls_Manager::SELECT2,
82
+ 'label_block' => true,
83
+ 'options' => woolentor_taxonomy_list(),
84
+ 'condition' => [
85
+ 'category_display_type' => 'single_cat',
86
+ ]
87
+ ]
88
+ );
89
+
90
+ $this->add_control(
91
+ 'multi_categories',
92
+ [
93
+ 'label' => esc_html__( 'Select categories', 'woolentor' ),
94
+ 'type' => Controls_Manager::SELECT2,
95
+ 'label_block' => true,
96
+ 'multiple' => true,
97
+ 'options' => woolentor_taxonomy_list(),
98
+ 'condition' => [
99
+ 'category_display_type' => 'multiple_cat',
100
+ ]
101
+ ]
102
+ );
103
+
104
+ $this->add_control(
105
+ 'catorder',
106
+ [
107
+ 'label' => esc_html__( 'Order', 'woolentor' ),
108
+ 'type' => Controls_Manager::SELECT,
109
+ 'default' => 'ASC',
110
+ 'options' => [
111
+ 'ASC' => esc_html__('Ascending','woolentor'),
112
+ 'DESC' => esc_html__('Descending','woolentor'),
113
+ ],
114
+ 'condition' => [
115
+ 'category_display_type!' => 'single_cat',
116
+ ]
117
+ ]
118
+ );
119
+
120
+ $this->add_control(
121
+ 'limitcount',
122
+ [
123
+ 'label' => esc_html__( 'Show items', 'woolentor' ),
124
+ 'type' => Controls_Manager::NUMBER,
125
+ 'min' => 1,
126
+ 'max' => 10,
127
+ 'step' => 1,
128
+ 'default' => 5,
129
+ 'condition' => [
130
+ 'category_display_type' => 'all_cat',
131
+ ]
132
+ ]
133
+ );
134
+
135
+ $this->add_group_control(
136
+ Group_Control_Image_Size::get_type(),
137
+ [
138
+ 'name' => 'thumbnailsize',
139
+ 'default' => 'full',
140
+ 'separator' => 'none',
141
+ ]
142
+ );
143
+
144
+ $this->add_control(
145
+ 'show_count',
146
+ [
147
+ 'label' => __( 'Show Count', 'woolentor' ),
148
+ 'type' => Controls_Manager::SWITCHER,
149
+ 'label_on' => __( 'Yes', 'woolentor' ),
150
+ 'label_off' => __( 'No', 'woolentor' ),
151
+ 'return_value' => 'yes',
152
+ 'default' => 'yes',
153
+ 'condition'=>[
154
+ 'layout'=>['1','4']
155
+ ]
156
+ ]
157
+ );
158
+
159
+ $this->add_control(
160
+ 'slider_on',
161
+ [
162
+ 'label' => __( 'Slider On', 'woolentor' ),
163
+ 'type' => Controls_Manager::SWITCHER,
164
+ 'return_value' => 'yes',
165
+ 'separator'=>'before',
166
+ ]
167
+ );
168
+
169
+ $this->end_controls_section();
170
+
171
+ // Column Option
172
+ $this->start_controls_section(
173
+ 'section_column_option',
174
+ [
175
+ 'label' => esc_html__( 'Columns', 'woolentor' ),
176
+ 'condition'=>[
177
+ 'slider_on!'=>'yes',
178
+ ]
179
+ ]
180
+ );
181
+
182
+ $this->add_responsive_control(
183
+ 'category_grid_column',
184
+ [
185
+ 'label' => esc_html__( 'Columns', 'woolentor' ),
186
+ 'type' => Controls_Manager::SELECT,
187
+ 'default' => '3',
188
+ 'options' => [
189
+ '1' => esc_html__( 'One', 'woolentor' ),
190
+ '2' => esc_html__( 'Two', 'woolentor' ),
191
+ '3' => esc_html__( 'Three', 'woolentor' ),
192
+ '4' => esc_html__( 'Four', 'woolentor' ),
193
+ '5' => esc_html__( 'Five', 'woolentor' ),
194
+ '6' => esc_html__( 'Six', 'woolentor' ),
195
+ '7' => esc_html__( 'Seven', 'woolentor' ),
196
+ '8' => esc_html__( 'Eight', 'woolentor' ),
197
+ '9' => esc_html__( 'Nine', 'woolentor' ),
198
+ '10'=> esc_html__( 'Ten', 'woolentor' ),
199
+ ],
200
+ 'label_block' => true,
201
+ 'prefix_class' => 'wl-columns%s-',
202
+ ]
203
+ );
204
+
205
+ $this->add_control(
206
+ 'no_gutters',
207
+ [
208
+ 'label' => esc_html__( 'No Gutters', 'woolentor' ),
209
+ 'type' => Controls_Manager::SWITCHER,
210
+ 'label_on' => esc_html__( 'Yes', 'woolentor' ),
211
+ 'label_off' => esc_html__( 'No', 'woolentor' ),
212
+ 'return_value' => 'yes',
213
+ 'default' => 'no',
214
+ ]
215
+ );
216
+
217
+ $this->add_responsive_control(
218
+ 'item_space',
219
+ [
220
+ 'label' => esc_html__( 'Space', 'woolentor' ),
221
+ 'type' => Controls_Manager::SLIDER,
222
+ 'size_units' => [ 'px', '%' ],
223
+ 'range' => [
224
+ 'px' => [
225
+ 'min' => 0,
226
+ 'max' => 1000,
227
+ 'step' => 1,
228
+ ],
229
+ '%' => [
230
+ 'min' => 0,
231
+ 'max' => 100,
232
+ ],
233
+ ],
234
+ 'default' => [
235
+ 'unit' => 'px',
236
+ 'size' => 15,
237
+ ],
238
+ 'condition'=>[
239
+ 'no_gutters!'=>'yes',
240
+ ],
241
+ 'selectors' => [
242
+ '{{WRAPPER}} .wl-row > [class*="col-"]' => 'padding: 0 {{SIZE}}{{UNIT}};',
243
+ ],
244
+ ]
245
+ );
246
+
247
+ $this->end_controls_section();
248
+
249
+ // Slider Option
250
+ $this->start_controls_section(
251
+ 'section_slider_option',
252
+ [
253
+ 'label' => esc_html__( 'Slider Option', 'woolentor' ),
254
+ 'condition'=>[
255
+ 'slider_on'=>'yes',
256
+ ]
257
+ ]
258
+ );
259
+
260
+ $this->add_control(
261
+ 'slitems',
262
+ [
263
+ 'label' => esc_html__( 'Slider Items', 'woolentor' ),
264
+ 'type' => Controls_Manager::NUMBER,
265
+ 'min' => 1,
266
+ 'step' => 1,
267
+ 'default' => 3
268
+ ]
269
+ );
270
+
271
+ $this->add_control(
272
+ 'slarrows',
273
+ [
274
+ 'label' => esc_html__( 'Slider Arrow', 'woolentor' ),
275
+ 'type' => Controls_Manager::SWITCHER,
276
+ 'return_value' => 'yes',
277
+ 'default' => 'yes',
278
+ ]
279
+ );
280
+
281
+ $this->add_control(
282
+ 'sldots',
283
+ [
284
+ 'label' => esc_html__( 'Slider dots', 'woolentor' ),
285
+ 'type' => Controls_Manager::SWITCHER,
286
+ 'return_value' => 'yes',
287
+ 'default' => 'no'
288
+ ]
289
+ );
290
+
291
+ $this->add_control(
292
+ 'slpause_on_hover',
293
+ [
294
+ 'type' => Controls_Manager::SWITCHER,
295
+ 'label_off' => __('No', 'woolentor'),
296
+ 'label_on' => __('Yes', 'woolentor'),
297
+ 'return_value' => 'yes',
298
+ 'default' => 'yes',
299
+ 'label' => __('Pause on Hover?', 'woolentor'),
300
+ ]
301
+ );
302
+
303
+ $this->add_control(
304
+ 'slautolay',
305
+ [
306
+ 'label' => esc_html__( 'Slider autoplay', 'woolentor' ),
307
+ 'type' => Controls_Manager::SWITCHER,
308
+ 'return_value' => 'yes',
309
+ 'separator' => 'before',
310
+ 'default' => 'no'
311
+ ]
312
+ );
313
+
314
+ $this->add_control(
315
+ 'slautoplay_speed',
316
+ [
317
+ 'label' => __('Autoplay speed', 'woolentor'),
318
+ 'type' => Controls_Manager::NUMBER,
319
+ 'default' => 3000,
320
+ 'condition' => [
321
+ 'slautolay' => 'yes',
322
+ ]
323
+ ]
324
+ );
325
+
326
+ $this->add_control(
327
+ 'slanimation_speed',
328
+ [
329
+ 'label' => __('Autoplay animation speed', 'woolentor'),
330
+ 'type' => Controls_Manager::NUMBER,
331
+ 'default' => 300,
332
+ 'condition' => [
333
+ 'slautolay' => 'yes',
334
+ ]
335
+ ]
336
+ );
337
+
338
+ $this->add_control(
339
+ 'slscroll_columns',
340
+ [
341
+ 'label' => __('Slider item to scroll', 'woolentor'),
342
+ 'type' => Controls_Manager::NUMBER,
343
+ 'min' => 1,
344
+ 'step' => 1,
345
+ 'default' => 3,
346
+ ]
347
+ );
348
+
349
+ $this->add_control(
350
+ 'heading_tablet',
351
+ [
352
+ 'label' => __( 'Tablet', 'woolentor' ),
353
+ 'type' => Controls_Manager::HEADING,
354
+ 'separator' => 'after',
355
+ ]
356
+ );
357
+
358
+ $this->add_control(
359
+ 'sltablet_display_columns',
360
+ [
361
+ 'label' => __('Slider Items', 'woolentor'),
362
+ 'type' => Controls_Manager::NUMBER,
363
+ 'min' => 1,
364
+ 'step' => 1,
365
+ 'default' => 2,
366
+ ]
367
+ );
368
+
369
+ $this->add_control(
370
+ 'sltablet_scroll_columns',
371
+ [
372
+ 'label' => __('Slider item to scroll', 'woolentor'),
373
+ 'type' => Controls_Manager::NUMBER,
374
+ 'min' => 1,
375
+ 'step' => 1,
376
+ 'default' => 2,
377
+ ]
378
+ );
379
+
380
+ $this->add_control(
381
+ 'sltablet_width',
382
+ [
383
+ 'label' => __('Tablet Resolution', 'woolentor'),
384
+ 'description' => __('The resolution to the tablet.', 'woolentor'),
385
+ 'type' => Controls_Manager::NUMBER,
386
+ 'default' => 750,
387
+ ]
388
+ );
389
+
390
+ $this->add_control(
391
+ 'heading_mobile',
392
+ [
393
+ 'label' => __( 'Mobile Phone', 'woolentor' ),
394
+ 'type' => Controls_Manager::HEADING,
395
+ 'separator' => 'after',
396
+ ]
397
+ );
398
+
399
+ $this->add_control(
400
+ 'slmobile_display_columns',
401
+ [
402
+ 'label' => __('Slider Items', 'woolentor'),
403
+ 'type' => Controls_Manager::NUMBER,
404
+ 'min' => 1,
405
+ 'step' => 1,
406
+ 'default' => 1,
407
+ ]
408
+ );
409
+
410
+ $this->add_control(
411
+ 'slmobile_scroll_columns',
412
+ [
413
+ 'label' => __('Slider item to scroll', 'woolentor'),
414
+ 'type' => Controls_Manager::NUMBER,
415
+ 'min' => 1,
416
+ 'step' => 1,
417
+ 'default' => 1,
418
+ ]
419
+ );
420
+
421
+ $this->add_control(
422
+ 'slmobile_width',
423
+ [
424
+ 'label' => __('Mobile Resolution', 'woolentor'),
425
+ 'description' => __('The resolution to mobile.', 'woolentor'),
426
+ 'type' => Controls_Manager::NUMBER,
427
+ 'default' => 480,
428
+ ]
429
+ );
430
+
431
+ $this->end_controls_section();
432
+
433
+ // Area Style Section
434
+ $this->start_controls_section(
435
+ 'category_area_style_section',
436
+ [
437
+ 'label' => esc_html__( 'Area', 'woolentor' ),
438
+ 'tab' => Controls_Manager::TAB_STYLE,
439
+ ]
440
+ );
441
+
442
+ $this->add_responsive_control(
443
+ 'area_padding',
444
+ [
445
+ 'label' => __( 'Padding', 'woolentor' ),
446
+ 'type' => Controls_Manager::DIMENSIONS,
447
+ 'size_units' => [ 'px', '%', 'em' ],
448
+ 'selectors' => [
449
+ '{{WRAPPER}} [class*="ht-category-wrap"]' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
450
+ ],
451
+ ]
452
+ );
453
+
454
+ $this->add_group_control(
455
+ Group_Control_Box_Shadow::get_type(),
456
+ [
457
+ 'name' => 'area_box_shadow',
458
+ 'label' => __( 'Box Shadow', 'woolentor' ),
459
+ 'selector' => '{{WRAPPER}} [class*="ht-category-wrap"]',
460
+ ]
461
+ );
462
+
463
+ $this->add_group_control(
464
+ Group_Control_Background::get_type(),
465
+ [
466
+ 'name' => 'area_box_background',
467
+ 'label' => __( 'Background', 'woolentor' ),
468
+ 'types' => [ 'classic', 'gradient' ],
469
+ 'selector' => '{{WRAPPER}} [class*="ht-category-wrap"]',
470
+ ]
471
+ );
472
+
473
+ $this->end_controls_section();
474
+
475
+ // Image Style Section
476
+ $this->start_controls_section(
477
+ 'category_image_style_section',
478
+ [
479
+ 'label' => esc_html__( 'Image', 'woolentor' ),
480
+ 'tab' => Controls_Manager::TAB_STYLE,
481
+ ]
482
+ );
483
+
484
+ $this->add_control(
485
+ 'image_box_color',
486
+ [
487
+ 'label' => __( 'Box Color', 'woolentor' ),
488
+ 'type' => Controls_Manager::COLOR,
489
+ 'selectors' => [
490
+ '{{WRAPPER}} .ht-category-wrap .ht-category-image a.ht-category-border::before' => 'border-color: {{VALUE}}',
491
+ '{{WRAPPER}} .ht-category-wrap-2:hover::before' => 'border-color: {{VALUE}}',
492
+ '{{WRAPPER}} .ht-category-wrap .ht-category-image a.ht-category-border-2::before' => 'border-color: {{VALUE}}',
493
+ ],
494
+ ]
495
+ );
496
+
497
+ $this->add_responsive_control(
498
+ 'image_margin',
499
+ [
500
+ 'label' => __( 'Margin', 'woolentor' ),
501
+ 'type' => Controls_Manager::DIMENSIONS,
502
+ 'size_units' => [ 'px', '%', 'em' ],
503
+ 'selectors' => [
504
+ '{{WRAPPER}} .ht-category-wrap .ht-category-image' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
505
+ '{{WRAPPER}} [class*="ht-category-wrap"] [class*="ht-category-image-"]' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
506
+ ],
507
+ ]
508
+ );
509
+
510
+ $this->add_group_control(
511
+ Group_Control_Border::get_type(),
512
+ [
513
+ 'name' => 'image_border',
514
+ 'label' => __( 'Border', 'woolentor' ),
515
+ 'selector' => '{{WRAPPER}} .ht-category-wrap .ht-category-image,{{WRAPPER}} [class*="ht-category-wrap"] [class*="ht-category-image-"]',
516
+ ]
517
+ );
518
+
519
+ $this->add_responsive_control(
520
+ 'image_border_radius',
521
+ [
522
+ 'label' => __( 'Border Radius', 'woolentor' ),
523
+ 'type' => Controls_Manager::DIMENSIONS,
524
+ 'size_units' => [ 'px', '%', 'em' ],
525
+ 'selectors' => [
526
+ '{{WRAPPER}} .ht-category-wrap .ht-category-image' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
527
+ '{{WRAPPER}} .ht-category-wrap .ht-category-image a.ht-category-border::before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
528
+ '{{WRAPPER}} [class*="ht-category-wrap"] [class*="ht-category-image-"]' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
529
+ ],
530
+ ]
531
+ );
532
+
533
+ $this->end_controls_section();
534
+
535
+ // Title Style Section
536
+ $this->start_controls_section(
537
+ 'category_title_style',
538
+ [
539
+ 'label' => esc_html__( 'Title', 'woolentor' ),
540
+ 'tab' => Controls_Manager::TAB_STYLE,
541
+ ]
542
+ );
543
+
544
+ $this->add_control(
545
+ 'title_color',
546
+ [
547
+ 'label' => __( 'Color', 'woolentor' ),
548
+ 'type' => Controls_Manager::COLOR,
549
+ 'selectors' => [
550
+ '{{WRAPPER}} .ht-category-wrap .ht-category-content h3 a' => 'color: {{VALUE}}',
551
+ '{{WRAPPER}} [class*="ht-category-wrap"] [class*="ht-category-content-"] h3 a' => 'color: {{VALUE}}',
552
+ ],
553
+ ]
554
+ );
555
+
556
+ $this->add_control(
557
+ 'title_hover_color',
558
+ [
559
+ 'label' => __( 'Hover Color', 'woolentor' ),
560
+ 'type' => Controls_Manager::COLOR,
561
+ 'selectors' => [
562
+ '{{WRAPPER}} .ht-category-wrap .ht-category-content h3 a:hover' => 'color: {{VALUE}}',
563
+ '{{WRAPPER}} [class*="ht-category-wrap"] [class*="ht-category-content-"] h3 a:hover' => 'color: {{VALUE}}',
564
+ ],
565
+ ]
566
+ );
567
+
568
+ $this->add_control(
569
+ 'title_after_color',
570
+ [
571
+ 'label' => __( 'After Border Color', 'woolentor' ),
572
+ 'type' => Controls_Manager::COLOR,
573
+ 'selectors' => [
574
+ '{{WRAPPER}} .ht-category-wrap-2 .ht-category-content-2 h3::before' => 'background-color: {{VALUE}}',
575
+ ],
576
+ 'condition'=>[
577
+ 'layout'=>['2'],
578
+ ]
579
+ ]
580
+ );
581
+
582
+ $this->add_group_control(
583
+ Group_Control_Typography::get_type(),
584
+ [
585
+ 'name' => 'title_typography',
586
+ 'label' => __( 'Typography', 'woolentor' ),
587
+ 'selector' => '{{WRAPPER}} .ht-category-wrap .ht-category-content h3 a,{{WRAPPER}} [class*="ht-category-wrap"] [class*="ht-category-content-"] h3 a',
588
+ ]
589
+ );
590
+
591
+ $this->add_responsive_control(
592
+ 'title_margin',
593
+ [
594
+ 'label' => __( 'Margin', 'woolentor' ),
595
+ 'type' => Controls_Manager::DIMENSIONS,
596
+ 'size_units' => [ 'px', '%', 'em' ],
597
+ 'selectors' => [
598
+ '{{WRAPPER}} .ht-category-wrap .ht-category-content h3' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
599
+ '{{WRAPPER}} [class*="ht-category-wrap"] [class*="ht-category-content-"] h3' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
600
+ ],
601
+ ]
602
+ );
603
+
604
+ $this->end_controls_section();
605
+
606
+ // Count Style Section
607
+ $this->start_controls_section(
608
+ 'category_count_style',
609
+ [
610
+ 'label' => esc_html__( 'Count', 'woolentor' ),
611
+ 'tab' => Controls_Manager::TAB_STYLE,
612
+ ]
613
+ );
614
+
615
+ $this->add_control(
616
+ 'count_color',
617
+ [
618
+ 'label' => __( 'Color', 'woolentor' ),
619
+ 'type' => Controls_Manager::COLOR,
620
+ 'selectors' => [
621
+ '{{WRAPPER}} .ht-category-wrap [class*="ht-category-content"] span' => 'color: {{VALUE}}',
622
+ ],
623
+ ]
624
+ );
625
+
626
+ $this->add_control(
627
+ 'count_before_color',
628
+ [
629
+ 'label' => __( 'Before Border Color', 'woolentor' ),
630
+ 'type' => Controls_Manager::COLOR,
631
+ 'selectors' => [
632
+ '{{WRAPPER}} .ht-category-wrap [class*="ht-category-content"] span::before' => 'background-color: {{VALUE}}',
633
+ ],
634
+ ]
635
+ );
636
+
637
+ $this->add_group_control(
638
+ Group_Control_Typography::get_type(),
639
+ [
640
+ 'name' => 'count_typography',
641
+ 'label' => __( 'Typography', 'woolentor' ),
642
+ 'selector' => '{{WRAPPER}} .ht-category-wrap [class*="ht-category-content"] span',
643
+ ]
644
+ );
645
+
646
+ $this->end_controls_section();
647
+
648
+ // Slider Button style
649
+ $this->start_controls_section(
650
+ 'products-slider-controller-style',
651
+ [
652
+ 'label' => esc_html__( 'Slider Controller Style', 'woolentor' ),
653
+ 'tab' => Controls_Manager::TAB_STYLE,
654
+ 'condition' => [
655
+ 'slider_on' => 'yes',
656
+ ]
657
+ ]
658
+ );
659
+
660
+ $this->start_controls_tabs('product_sliderbtn_style_tabs');
661
+
662
+ // Slider Button style Normal
663
+ $this->start_controls_tab(
664
+ 'product_sliderbtn_style_normal_tab',
665
+ [
666
+ 'label' => __( 'Normal', 'woolentor' ),
667
+ ]
668
+ );
669
+
670
+ $this->add_control(
671
+ 'button_style_heading',
672
+ [
673
+ 'label' => __( 'Navigation Arrow', 'woolentor' ),
674
+ 'type' => Controls_Manager::HEADING,
675
+ ]
676
+ );
677
+
678
+ $this->add_responsive_control(
679
+ 'nvigation_position',
680
+ [
681
+ 'label' => __( 'Position', 'woolentor' ),
682
+ 'type' => Controls_Manager::SLIDER,
683
+ 'size_units' => [ 'px', '%' ],
684
+ 'range' => [
685
+ 'px' => [
686
+ 'min' => 0,
687
+ 'max' => 1000,
688
+ 'step' => 1,
689
+ ],
690
+ '%' => [
691
+ 'min' => 0,
692
+ 'max' => 100,
693
+ ],
694
+ ],
695
+ 'selectors' => [
696
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'top: {{SIZE}}{{UNIT}};',
697
+ ],
698
+ ]
699
+ );
700
+
701
+ $this->add_control(
702
+ 'button_color',
703
+ [
704
+ 'label' => __( 'Color', 'woolentor' ),
705
+ 'type' => Controls_Manager::COLOR,
706
+ 'selectors' => [
707
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'color: {{VALUE}};',
708
+ ],
709
+ ]
710
+ );
711
+
712
+ $this->add_control(
713
+ 'button_bg_color',
714
+ [
715
+ 'label' => __( 'Background Color', 'woolentor' ),
716
+ 'type' => Controls_Manager::COLOR,
717
+ 'selectors' => [
718
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'background-color: {{VALUE}} !important;',
719
+ ],
720
+ ]
721
+ );
722
+
723
+ $this->add_group_control(
724
+ Group_Control_Border::get_type(),
725
+ [
726
+ 'name' => 'button_border',
727
+ 'label' => __( 'Border', 'woolentor' ),
728
+ 'selector' => '{{WRAPPER}} .product-slider .slick-arrow',
729
+ ]
730
+ );
731
+
732
+ $this->add_responsive_control(
733
+ 'button_border_radius',
734
+ [
735
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
736
+ 'type' => Controls_Manager::DIMENSIONS,
737
+ 'selectors' => [
738
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
739
+ ],
740
+ ]
741
+ );
742
+
743
+ $this->add_responsive_control(
744
+ 'button_padding',
745
+ [
746
+ 'label' => __( 'Padding', 'woolentor' ),
747
+ 'type' => Controls_Manager::DIMENSIONS,
748
+ 'size_units' => [ 'px', '%', 'em' ],
749
+ 'selectors' => [
750
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
751
+ ],
752
+ ]
753
+ );
754
+
755
+ $this->add_control(
756
+ 'button_style_dots_heading',
757
+ [
758
+ 'label' => __( 'Navigation Dots', 'woolentor' ),
759
+ 'type' => Controls_Manager::HEADING,
760
+ ]
761
+ );
762
+
763
+ $this->add_responsive_control(
764
+ 'dots_position',
765
+ [
766
+ 'label' => __( 'Position', 'woolentor' ),
767
+ 'type' => Controls_Manager::SLIDER,
768
+ 'size_units' => [ 'px', '%' ],
769
+ 'range' => [
770
+ 'px' => [
771
+ 'min' => 0,
772
+ 'max' => 1000,
773
+ 'step' => 1,
774
+ ],
775
+ '%' => [
776
+ 'min' => 0,
777
+ 'max' => 100,
778
+ ],
779
+ ],
780
+ 'selectors' => [
781
+ '{{WRAPPER}} .product-slider .slick-dots' => 'left: {{SIZE}}{{UNIT}};',
782
+ ],
783
+ ]
784
+ );
785
+
786
+ $this->add_control(
787
+ 'dots_bg_color',
788
+ [
789
+ 'label' => __( 'Background Color', 'woolentor' ),
790
+ 'type' => Controls_Manager::COLOR,
791
+ 'selectors' => [
792
+ '{{WRAPPER}} .product-slider .slick-dots li button' => 'background-color: {{VALUE}} !important;',
793
+ ],
794
+ ]
795
+ );
796
+
797
+ $this->add_group_control(
798
+ Group_Control_Border::get_type(),
799
+ [
800
+ 'name' => 'dots_border',
801
+ 'label' => __( 'Border', 'woolentor' ),
802
+ 'selector' => '{{WRAPPER}} .product-slider .slick-dots li button',
803
+ ]
804
+ );
805
+
806
+ $this->add_responsive_control(
807
+ 'dots_border_radius',
808
+ [
809
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
810
+ 'type' => Controls_Manager::DIMENSIONS,
811
+ 'selectors' => [
812
+ '{{WRAPPER}} .product-slider .slick-dots li button' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
813
+ ],
814
+ ]
815
+ );
816
+
817
+ $this->end_controls_tab();// Normal button style end
818
+
819
+ // Button style Hover
820
+ $this->start_controls_tab(
821
+ 'product_sliderbtn_style_hover_tab',
822
+ [
823
+ 'label' => __( 'Hover', 'woolentor' ),
824
+ ]
825
+ );
826
+
827
+ $this->add_control(
828
+ 'button_style_arrow_heading',
829
+ [
830
+ 'label' => __( 'Navigation', 'woolentor' ),
831
+ 'type' => Controls_Manager::HEADING,
832
+ ]
833
+ );
834
+
835
+ $this->add_control(
836
+ 'button_hover_color',
837
+ [
838
+ 'label' => __( 'Color', 'woolentor' ),
839
+ 'type' => Controls_Manager::COLOR,
840
+ 'selectors' => [
841
+ '{{WRAPPER}} .product-slider .slick-arrow:hover' => 'color: {{VALUE}};',
842
+ ],
843
+ ]
844
+ );
845
+
846
+ $this->add_control(
847
+ 'button_hover_bg_color',
848
+ [
849
+ 'label' => __( 'Background', 'woolentor' ),
850
+ 'type' => Controls_Manager::COLOR,
851
+ 'selectors' => [
852
+ '{{WRAPPER}} .product-slider .slick-arrow:hover' => 'background-color: {{VALUE}} !important;',
853
+ ],
854
+ ]
855
+ );
856
+
857
+ $this->add_group_control(
858
+ Group_Control_Border::get_type(),
859
+ [
860
+ 'name' => 'button_hover_border',
861
+ 'label' => __( 'Border', 'woolentor' ),
862
+ 'selector' => '{{WRAPPER}} .product-slider .slick-arrow:hover',
863
+ ]
864
+ );
865
+
866
+ $this->add_responsive_control(
867
+ 'button_hover_border_radius',
868
+ [
869
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
870
+ 'type' => Controls_Manager::DIMENSIONS,
871
+ 'selectors' => [
872
+ '{{WRAPPER}} .product-slider .slick-arrow:hover' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
873
+ ],
874
+ ]
875
+ );
876
+
877
+
878
+ $this->add_control(
879
+ 'button_style_dotshov_heading',
880
+ [
881
+ 'label' => __( 'Navigation Dots', 'woolentor' ),
882
+ 'type' => Controls_Manager::HEADING,
883
+ ]
884
+ );
885
+
886
+ $this->add_control(
887
+ 'dots_hover_bg_color',
888
+ [
889
+ 'label' => __( 'Background Color', 'woolentor' ),
890
+ 'type' => Controls_Manager::COLOR,
891
+ 'selectors' => [
892
+ '{{WRAPPER}} .product-slider .slick-dots li button:hover' => 'background-color: {{VALUE}} !important;',
893
+ '{{WRAPPER}} .product-slider .slick-dots li.slick-active button' => 'background-color: {{VALUE}} !important;',
894
+ ],
895
+ ]
896
+ );
897
+
898
+ $this->add_group_control(
899
+ Group_Control_Border::get_type(),
900
+ [
901
+ 'name' => 'dots_border_hover',
902
+ 'label' => __( 'Border', 'woolentor' ),
903
+ 'selector' => '{{WRAPPER}} .product-slider .slick-dots li button:hover',
904
+ ]
905
+ );
906
+
907
+ $this->add_responsive_control(
908
+ 'dots_border_radius_hover',
909
+ [
910
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
911
+ 'type' => Controls_Manager::DIMENSIONS,
912
+ 'selectors' => [
913
+ '{{WRAPPER}} .product-slider .slick-dots li button:hover' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
914
+ ],
915
+ ]
916
+ );
917
+
918
+ $this->end_controls_tab();// Hover button style end
919
+
920
+ $this->end_controls_tabs();
921
+
922
+ $this->end_controls_section(); // Tab option end
923
+
924
+ }
925
+
926
+
927
+ protected function render( $instance = [] ) {
928
+ $settings = $this->get_settings_for_display();
929
+
930
+ $display_type = $settings['category_display_type'];
931
+ $order = ! empty( $settings['catorder'] ) ? $settings['catorder'] : '';
932
+
933
+ $column = $settings['category_grid_column'];
934
+ $layout = $settings['layout'];
935
+
936
+ $collumval = 'wl-col-1';
937
+ if( $column !='' ){
938
+ $collumval = 'wl-col-'.$column;
939
+ }
940
+
941
+ $catargs = array(
942
+ 'orderby' => 'name',
943
+ 'order' => $order,
944
+ 'hide_empty' => true,
945
+ );
946
+
947
+ if( $display_type == 'single_cat' ){
948
+ $product_categories = $settings['product_categories'];
949
+ $product_cats = str_replace( ' ', '', $product_categories );
950
+ $catargs['slug'] = $product_cats;
951
+ }
952
+ elseif( $display_type == 'multiple_cat' ){
953
+ $product_categories = $settings['multi_categories'];
954
+ $product_cats = str_replace(' ', '', $product_categories);
955
+ $catargs['slug'] = $product_cats;
956
+ }else{
957
+ $catargs['slug'] = '';
958
+ }
959
+ $prod_categories = get_terms( 'product_cat', $catargs );
960
+
961
+ if( $display_type == 'all_cat' ){
962
+ $limitcount = $settings['limitcount'];
963
+ }else{
964
+ $limitcount = -1;
965
+ }
966
+
967
+ $size = $settings['thumbnailsize_size'];
968
+ $image_size = Null;
969
+ if( $size === 'custom' ){
970
+ $image_size = [
971
+ $settings['thumbnailsize_custom_dimension']['width'],
972
+ $settings['thumbnailsize_custom_dimension']['height']
973
+ ];
974
+ }else{
975
+ $image_size = $size;
976
+ }
977
+
978
+
979
+ // Slider Options
980
+ if( $settings['slider_on'] === 'yes' ){
981
+
982
+ $is_rtl = is_rtl();
983
+ $direction = $is_rtl ? 'rtl' : 'ltr';
984
+ $slider_settings = [
985
+ 'arrows' => ('yes' === $settings['slarrows']),
986
+ 'dots' => ('yes' === $settings['sldots']),
987
+ 'autoplay' => ('yes' === $settings['slautolay']),
988
+ 'autoplay_speed' => absint($settings['slautoplay_speed']),
989
+ 'animation_speed' => absint($settings['slanimation_speed']),
990
+ 'pause_on_hover' => ('yes' === $settings['slpause_on_hover']),
991
+ 'rtl' => $is_rtl,
992
+ ];
993
+
994
+ $slider_responsive_settings = [
995
+ 'product_items' => $settings['slitems'],
996
+ 'scroll_columns' => $settings['slscroll_columns'],
997
+ 'tablet_width' => $settings['sltablet_width'],
998
+ 'tablet_display_columns' => $settings['sltablet_display_columns'],
999
+ 'tablet_scroll_columns' => $settings['sltablet_scroll_columns'],
1000
+ 'mobile_width' => $settings['slmobile_width'],
1001
+ 'mobile_display_columns' => $settings['slmobile_display_columns'],
1002
+ 'mobile_scroll_columns' => $settings['slmobile_scroll_columns'],
1003
+
1004
+ ];
1005
+ $slider_settings = array_merge( $slider_settings, $slider_responsive_settings );
1006
+ }else{
1007
+ $slider_settings = '';
1008
+ }
1009
+
1010
+ $counter = $bgc = 0;
1011
+ $thumbnails = '';
1012
+
1013
+ $placeholder_image = sprintf( '<img src="%s" alt="%s" />', esc_url( wc_placeholder_img_src( 'woocommerce_single' ) ), esc_html__( 'Awaiting category image', 'woolentor' ) );
1014
+
1015
+ echo '<div class="wl-row '.( $settings['no_gutters'] === 'yes' ? 'wlno-gutters' : '' ).' '.( $settings['slider_on'] === 'yes' ? 'product-slider' : '' ).' " data-settings='.wp_json_encode( $slider_settings ).'>';
1016
+ foreach ( $prod_categories as $key => $prod_cat ):
1017
+ $counter++;
1018
+ $bgc++;
1019
+
1020
+ $cat_thumb_id = get_term_meta( $prod_cat->term_id, 'thumbnail_id', true );
1021
+
1022
+ $cat_thumb = wp_get_attachment_image( $cat_thumb_id, $image_size );
1023
+
1024
+ $term_link = get_term_link( $prod_cat, 'product_cat' );
1025
+
1026
+ $thumbnails = $cat_thumb;
1027
+
1028
+ ?>
1029
+ <div class="<?php echo esc_attr( $collumval ); ?>">
1030
+
1031
+ <?php if( '1' === $layout ): ?>
1032
+ <div class="ht-category-wrap">
1033
+ <?php if( !empty( $thumbnails ) ): ?>
1034
+ <div class="ht-category-image ht-category-image-zoom">
1035
+ <a class="ht-category-border" href="<?php echo esc_url( $term_link ); ?>">
1036
+ <?php echo $thumbnails; ?>
1037
+ </a>
1038
+ </div>
1039
+ <?php endif; ?>
1040
+
1041
+ <div class="ht-category-content">
1042
+ <h3><a href="<?php echo esc_url( $term_link ); ?>"><?php echo esc_html__( $prod_cat->name, 'woolentor' ); ?></a></h3>
1043
+ <?php
1044
+ if( $settings['show_count'] === 'yes' ){
1045
+ echo '<span>'.esc_html__( $prod_cat->count, 'woolentor' ).'</span>';
1046
+ }
1047
+ ?>
1048
+ </div>
1049
+ </div>
1050
+
1051
+ <?php elseif( '2' === $layout ):?>
1052
+ <div class="ht-category-wrap-2">
1053
+ <div class="ht-category-content-2">
1054
+ <h3><a href="<?php echo esc_url( $term_link ); ?>"><?php echo esc_html__( $prod_cat->name, 'woolentor' ); ?></a></h3>
1055
+ </div>
1056
+ <?php if( !empty( $thumbnails ) ):?>
1057
+ <div class="ht-category-image-2">
1058
+ <a href="<?php echo esc_url( $term_link ); ?>">
1059
+ <?php echo $thumbnails; ?>
1060
+ </a>
1061
+ </div>
1062
+ <?php endif; ?>
1063
+ </div>
1064
+
1065
+ <?php elseif( '3' === $layout ):?>
1066
+ <div class="ht-category-wrap">
1067
+ <?php if( !empty( $thumbnails ) ): ?>
1068
+ <div class="ht-category-image ht-category-image-zoom">
1069
+ <a class="ht-category-border-2" href="<?php echo esc_url( $term_link ); ?>">
1070
+ <?php echo $thumbnails; ?>
1071
+ </a>
1072
+ </div>
1073
+ <?php else: ?>
1074
+ <div class="ht-category-image ht-category-image-zoom">
1075
+ <a class="ht-category-border-2" href="<?php echo esc_url( $term_link ); ?>">
1076
+ <?php echo $placeholder_image; ?>
1077
+ </a>
1078
+ </div>
1079
+ <?php endif; ?>
1080
+ <div class="ht-category-content-3 ht-category-content-3-bg<?php echo $bgc; ?>">
1081
+ <h3><a href="<?php echo esc_url( $term_link ); ?>"><?php echo esc_html__( $prod_cat->name, 'woolentor' ); ?></a></h3>
1082
+ </div>
1083
+ </div>
1084
+
1085
+ <?php elseif( '4' === $layout ):?>
1086
+ <div class="ht-category-wrap">
1087
+ <?php if( !empty( $thumbnails ) ):?>
1088
+ <div class="ht-category-image ht-category-image-zoom">
1089
+ <a href="<?php echo esc_url( $term_link ); ?>">
1090
+ <?php echo $thumbnails; ?>
1091
+ </a>
1092
+ </div>
1093
+ <?php endif; ?>
1094
+ <div class="ht-category-content-4">
1095
+ <h3>
1096
+ <a href="<?php echo esc_url( $term_link ); ?>"><?php echo esc_html__( $prod_cat->name, 'woolentor' ); ?></a>
1097
+ <?php
1098
+ if( $settings['show_count'] === 'yes' ){
1099
+ echo '<span>('.esc_html__( $prod_cat->count, 'woolentor' ).')</span>';
1100
+ }
1101
+ ?>
1102
+ </h3>
1103
+ </div>
1104
+ </div>
1105
+ <?php else:?>
1106
+ <div class="ht-category-wrap">
1107
+ <?php if( !empty( $thumbnails ) ):?>
1108
+ <div class="ht-category-image-3 ht-category-image-zoom">
1109
+ <a href="<?php echo esc_url( $term_link ); ?>">
1110
+ <?php echo $thumbnails; ?>
1111
+ </a>
1112
+ </div>
1113
+ <?php endif; ?>
1114
+ <div class="ht-category-content-5">
1115
+ <h3><a href="<?php echo esc_url( $term_link ); ?>"><?php echo esc_html__( $prod_cat->name, 'woolentor' ); ?></a></h3>
1116
+ </div>
1117
+ </div>
1118
+
1119
+ <?php endif; ?>
1120
+
1121
+ </div>
1122
+ <?php
1123
+ if( $bgc == 4 ){ $bgc = 0; }
1124
+ if( $counter == $limitcount ) { break; }
1125
+ endforeach;
1126
+ echo '</div>';
1127
+ }
1128
+
1129
+ }
1130
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Category_Grid_Element() );
includes/addons/wl_faq.php ADDED
@@ -0,0 +1,948 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_Faq_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wl-faq';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: FAQ', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-accordion';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return [ 'woolentor-addons' ];
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return [ 'woolentor-faq' ];
26
+ }
27
+
28
+ public function get_script_depends(){
29
+ return [ 'woolentor-accordion-min','woolentor-widgets-scripts' ];
30
+ }
31
+
32
+ public function get_keywords(){
33
+ return ['faq','question','answer'];
34
+ }
35
+
36
+ protected function _register_controls() {
37
+
38
+ $this->start_controls_section(
39
+ 'content_section',
40
+ [
41
+ 'label' => esc_html__( 'Content', 'woolentor' ),
42
+ ]
43
+ );
44
+
45
+ $repeater = new Repeater();
46
+
47
+ $repeater->add_control(
48
+ 'content_source',
49
+ [
50
+ 'label' => esc_html__( 'Select Content Source', 'woolentor' ),
51
+ 'type' => Controls_Manager::SELECT,
52
+ 'default' => 'custom',
53
+ 'options' => [
54
+ 'custom' => esc_html__( 'Custom', 'woolentor' ),
55
+ "elementor" => esc_html__( 'Elementor Template', 'woolentor' ),
56
+ ],
57
+ 'label_block'=>true,
58
+ ]
59
+ );
60
+
61
+ $repeater->add_control(
62
+ 'title',
63
+ [
64
+ 'label' => esc_html__( 'Title', 'woolentor' ),
65
+ 'type' => Controls_Manager::TEXT,
66
+ 'default' => esc_html__( 'FAQ Title', 'woolentor' ),
67
+ 'placeholder' => esc_html__( 'Type your faq title here', 'woolentor' ),
68
+ 'label_block'=>true,
69
+ 'dynamic' => [
70
+ 'active' => true,
71
+ ],
72
+ ]
73
+ );
74
+
75
+ $repeater->add_control(
76
+ 'content',
77
+ [
78
+ 'label' => esc_html__( 'Content', 'woolentor' ),
79
+ 'type' => Controls_Manager::WYSIWYG,
80
+ 'default' => '<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua.</p>',
81
+ 'condition' => [
82
+ 'content_source' =>'custom',
83
+ ],
84
+ 'dynamic' => [
85
+ 'active' => true,
86
+ ],
87
+ ]
88
+ );
89
+
90
+ $repeater->add_control(
91
+ 'template_id',
92
+ [
93
+ 'label' => esc_html__( 'Select Template', 'woolentor' ),
94
+ 'type' => Controls_Manager::SELECT,
95
+ 'default' => '0',
96
+ 'options' => woolentor_elementor_template(),
97
+ 'condition' => [
98
+ 'content_source' =>'elementor',
99
+ ],
100
+ 'label_block'=>true,
101
+ ]
102
+ );
103
+
104
+ $repeater->add_control(
105
+ 'individual_icon',
106
+ [
107
+ 'label' => esc_html__( 'Do you want to individual icon ?', 'woolentor' ),
108
+ 'type' => Controls_Manager::SWITCHER,
109
+ 'label_on' => esc_html__( 'Yes', 'woolentor' ),
110
+ 'label_off' => esc_html__( 'No', 'woolentor' ),
111
+ 'return_value' => 'yes',
112
+ 'default' => 'no',
113
+ ]
114
+ );
115
+
116
+ $repeater->add_control(
117
+ 'indopen_icon',
118
+ [
119
+ 'label' => esc_html__( 'Open Icon', 'woolentor' ),
120
+ 'type' => Controls_Manager::ICONS,
121
+ 'label_block' => true,
122
+ 'fa4compatibility' => 'indopenicon',
123
+ 'condition'=>[
124
+ 'individual_icon'=>'yes',
125
+ ],
126
+ ]
127
+ );
128
+
129
+ $repeater->add_control(
130
+ 'indclose_icon',
131
+ [
132
+ 'label' => esc_html__( 'Close Icon', 'woolentor' ),
133
+ 'type' => Controls_Manager::ICONS,
134
+ 'label_block' => true,
135
+ 'fa4compatibility' => 'indcloseicon',
136
+ 'condition'=>[
137
+ 'individual_icon'=>'yes',
138
+ ],
139
+ ]
140
+ );
141
+
142
+ $this->add_control(
143
+ 'accordion_list',
144
+ [
145
+ 'type' => Controls_Manager::REPEATER,
146
+ 'fields' => $repeater->get_controls(),
147
+ 'default' => [
148
+ [
149
+ 'title' => esc_html__( 'Words To Live By', 'woolentor' ),
150
+ 'content' => '<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua.</p>',
151
+ 'content_source'=>'custom',
152
+ ],
153
+ [
154
+ 'title' => esc_html__( 'Producing Perfume From Home', 'woolentor' ),
155
+ 'content' => '<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua.</p>',
156
+ 'content_source'=>'custom',
157
+ ],
158
+ [
159
+ 'title' => esc_html__( 'The Basics Of Western Astrology Explained', 'woolentor' ),
160
+ 'content' => '<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua.</p>',
161
+ 'content_source'=>'custom',
162
+ ],
163
+ [
164
+ 'title' => esc_html__( 'What Curling Irons Are The Best Ones', 'woolentor' ),
165
+ 'content' => '<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua.</p>',
166
+ 'content_source'=>'custom',
167
+ ]
168
+ ],
169
+ 'title_field' => '{{{ title }}}',
170
+ ]
171
+ );
172
+
173
+ $this->end_controls_section();
174
+
175
+ // Additional Options area Start
176
+ $this->start_controls_section(
177
+ 'aditional_options',
178
+ [
179
+ 'label' => esc_html__( 'Additional Options', 'woolentor' ),
180
+ ]
181
+ );
182
+
183
+ $this->add_control(
184
+ 'show_item',
185
+ [
186
+ 'label' => esc_html__( 'Show First Item', 'woolentor' ),
187
+ 'type' => Controls_Manager::SWITCHER,
188
+ 'label_on' => esc_html__( 'Yes', 'woolentor' ),
189
+ 'label_off' => esc_html__( 'No', 'woolentor' ),
190
+ 'return_value' => 'yes',
191
+ 'default' => 'yes',
192
+ 'separator'=>'after',
193
+ ]
194
+ );
195
+
196
+ $this->add_control(
197
+ 'custom_icon',
198
+ [
199
+ 'label' => esc_html__( 'Custom Icon', 'woolentor' ),
200
+ 'type' => Controls_Manager::SWITCHER,
201
+ 'label_on' => esc_html__( 'Yes', 'woolentor' ),
202
+ 'label_off' => esc_html__( 'No', 'woolentor' ),
203
+ 'return_value' => 'yes',
204
+ 'default' => 'no',
205
+ ]
206
+ );
207
+
208
+ $this->add_control(
209
+ 'open_icon',
210
+ [
211
+ 'label' => esc_html__( 'Open Icon', 'woolentor' ),
212
+ 'type' => Controls_Manager::ICONS,
213
+ 'label_block' => true,
214
+ 'fa4compatibility' => 'openicon',
215
+ 'condition'=>[
216
+ 'custom_icon'=>'yes',
217
+ ],
218
+ ]
219
+ );
220
+
221
+ $this->add_control(
222
+ 'close_icon',
223
+ [
224
+ 'label' => esc_html__( 'Close Icon', 'woolentor' ),
225
+ 'type' => Controls_Manager::ICONS,
226
+ 'label_block' => true,
227
+ 'fa4compatibility' => 'closeicon',
228
+ 'condition'=>[
229
+ 'custom_icon'=>'yes',
230
+ ],
231
+ ]
232
+ );
233
+
234
+ $this->add_control(
235
+ 'icon_position',
236
+ [
237
+ 'label' => esc_html__( 'Icon Position', 'woolentor' ),
238
+ 'type' => Controls_Manager::SELECT,
239
+ 'default' => 'before',
240
+ 'options' => [
241
+ 'before'=> esc_html__( 'Before Title', 'woolentor' ),
242
+ 'after' => esc_html__( 'After Title', 'woolentor' ),
243
+ ],
244
+ 'label_block'=>true,
245
+ 'separator'=>'after',
246
+ ]
247
+ );
248
+
249
+ $this->end_controls_section();
250
+
251
+ // Accordion item style tab section
252
+ $this->start_controls_section(
253
+ 'accordion_item_style',
254
+ [
255
+ 'label' => esc_html__( 'FAQ Item', 'woolentor' ),
256
+ 'tab' => Controls_Manager::TAB_STYLE,
257
+ ]
258
+ );
259
+
260
+ $this->add_responsive_control(
261
+ 'accordion_item_spacing',
262
+ [
263
+ 'label' => esc_html__( 'FAQ Item Spacing', 'woolentor' ),
264
+ 'type' => Controls_Manager::SLIDER,
265
+ 'range' => [
266
+ 'px' => [
267
+ 'min' => 0,
268
+ 'max' => 150,
269
+ ],
270
+ ],
271
+ 'default' => [
272
+ 'size' => 12,
273
+ ],
274
+ 'selectors' => [
275
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card + .htwoolentor-faq-card' => 'margin-top: {{SIZE}}{{UNIT}};',
276
+ ],
277
+ ]
278
+ );
279
+
280
+ $this->add_group_control(
281
+ Group_Control_Border::get_type(),
282
+ [
283
+ 'name' => 'accordion_item_border',
284
+ 'label' => esc_html__( 'Border', 'woolentor' ),
285
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card',
286
+ ]
287
+ );
288
+
289
+ $this->add_responsive_control(
290
+ 'accordion_item_border_radius',
291
+ [
292
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
293
+ 'type' => Controls_Manager::DIMENSIONS,
294
+ 'selectors' => [
295
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
296
+ ],
297
+ ]
298
+ );
299
+
300
+ $this->add_group_control(
301
+ Group_Control_Background::get_type(),
302
+ [
303
+ 'name' => 'accordion_item_background',
304
+ 'label' => esc_html__( 'Background', 'woolentor' ),
305
+ 'types' => [ 'classic', 'gradient' ],
306
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card',
307
+ ]
308
+ );
309
+
310
+ $this->add_group_control(
311
+ Group_Control_Box_Shadow::get_type(),
312
+ [
313
+ 'name' => 'accordion_item_box_shadow',
314
+ 'label' => esc_html__( 'Box Shadow', 'woolentor' ),
315
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card',
316
+ ]
317
+ );
318
+
319
+ $this->add_responsive_control(
320
+ 'accordion_item_padding',
321
+ [
322
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
323
+ 'type' => Controls_Manager::DIMENSIONS,
324
+ 'size_units' => [ 'px', '%', 'em' ],
325
+ 'selectors' => [
326
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
327
+ ],
328
+ 'separator' => 'before',
329
+ ]
330
+ );
331
+
332
+ $this->end_controls_section();
333
+
334
+ // Title style tab start
335
+ $this->start_controls_section(
336
+ 'accordion_title_style',
337
+ [
338
+ 'label' => esc_html__( 'FAQ Title', 'woolentor' ),
339
+ 'tab' => Controls_Manager::TAB_STYLE,
340
+ ]
341
+ );
342
+
343
+ $this->add_responsive_control(
344
+ 'title_align',
345
+ [
346
+ 'label' => esc_html__( 'Alignment', 'woolentor' ),
347
+ 'type' => Controls_Manager::CHOOSE,
348
+ 'options' => [
349
+ 'start' => [
350
+ 'title' => esc_html__( 'Left', 'woolentor' ),
351
+ 'icon' => 'fa fa-align-left',
352
+ ],
353
+ 'center' => [
354
+ 'title' => esc_html__( 'Center', 'woolentor' ),
355
+ 'icon' => 'fa fa-align-center',
356
+ ],
357
+ 'end' => [
358
+ 'title' => esc_html__( 'Right', 'woolentor' ),
359
+ 'icon' => 'fa fa-align-right',
360
+ ],
361
+ ],
362
+ 'selectors' => [
363
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-head' => 'justify-content: {{VALUE}};',
364
+ ],
365
+ ]
366
+ );
367
+
368
+ $this->start_controls_tabs('accordion_title_style_tabs');
369
+
370
+ // Accordion Title Normal tab Start
371
+ $this->start_controls_tab(
372
+ 'accordion_title_style_normal_tab',
373
+ [
374
+ 'label' => esc_html__( 'Normal', 'woolentor' ),
375
+ ]
376
+ );
377
+
378
+ $this->add_group_control(
379
+ Group_Control_Background::get_type(),
380
+ [
381
+ 'name' => 'title_normal_background',
382
+ 'label' => esc_html__( 'Background', 'woolentor' ),
383
+ 'types' => [ 'classic', 'gradient' ],
384
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head',
385
+ ]
386
+ );
387
+
388
+ $this->add_responsive_control(
389
+ 'accordion_title_padding',
390
+ [
391
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
392
+ 'type' => Controls_Manager::DIMENSIONS,
393
+ 'size_units' => [ 'px', '%', 'em' ],
394
+ 'selectors' => [
395
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
396
+ ],
397
+ 'separator' => 'before',
398
+ ]
399
+ );
400
+
401
+ $this->add_group_control(
402
+ Group_Control_Border::get_type(),
403
+ [
404
+ 'name' => 'accordion_title_border',
405
+ 'label' => esc_html__( 'Border', 'woolentor' ),
406
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head',
407
+ ]
408
+ );
409
+
410
+ $this->add_responsive_control(
411
+ 'accordion_title_border_radius',
412
+ [
413
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
414
+ 'type' => Controls_Manager::DIMENSIONS,
415
+ 'selectors' => [
416
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
417
+ ],
418
+ 'separator' => 'before',
419
+ ]
420
+ );
421
+
422
+ $this->add_group_control(
423
+ Group_Control_Box_Shadow::get_type(),
424
+ [
425
+ 'name' => 'title_box_shadow',
426
+ 'label' => esc_html__( 'Box Shadow', 'woolentor' ),
427
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head',
428
+ 'separator' => 'before',
429
+ ]
430
+ );
431
+
432
+ $this->add_control(
433
+ 'accordion_title_color',
434
+ [
435
+ 'label' => esc_html__( 'Color', 'woolentor' ),
436
+ 'type' => Controls_Manager::COLOR,
437
+ 'selectors' => [
438
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head' => 'color: {{VALUE}};',
439
+ ],
440
+ 'separator' => 'before',
441
+ ]
442
+ );
443
+
444
+ $this->add_group_control(
445
+ Group_Control_Typography::get_type(),
446
+ [
447
+ 'name' => 'title_typography',
448
+ 'label' => esc_html__( 'Typography', 'woolentor' ),
449
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-head',
450
+ 'separator' => 'before',
451
+ ]
452
+ );
453
+
454
+ $this->end_controls_tab(); // Accordion Title Normal tab End
455
+
456
+ // Accordion Title Active tab Start
457
+ $this->start_controls_tab(
458
+ 'accordion_title_style_active_tab',
459
+ [
460
+ 'label' => esc_html__( 'Active', 'woolentor' ),
461
+ ]
462
+ );
463
+ $this->add_group_control(
464
+ Group_Control_Background::get_type(),
465
+ [
466
+ 'name' => 'activebackground',
467
+ 'label' => esc_html__( 'Background', 'woolentor' ),
468
+ 'types' => [ 'classic', 'gradient' ],
469
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head',
470
+ ]
471
+ );
472
+
473
+ $this->add_control(
474
+ 'accordion_title_active_color',
475
+ [
476
+ 'label' => esc_html__( 'Color', 'woolentor' ),
477
+ 'type' => Controls_Manager::COLOR,
478
+ 'selectors' => [
479
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head' => 'color: {{VALUE}};',
480
+ ],
481
+ 'separator' => 'before',
482
+ ]
483
+ );
484
+
485
+ $this->add_group_control(
486
+ Group_Control_Border::get_type(),
487
+ [
488
+ 'name' => 'accordion_title_active_border',
489
+ 'label' => esc_html__( 'Border', 'woolentor' ),
490
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head',
491
+ ]
492
+ );
493
+
494
+ $this->add_responsive_control(
495
+ 'accordion_title_active_border_radius',
496
+ [
497
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
498
+ 'type' => Controls_Manager::DIMENSIONS,
499
+ 'selectors' => [
500
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
501
+ ],
502
+ 'separator' => 'before',
503
+ ]
504
+ );
505
+
506
+ $this->add_responsive_control(
507
+ 'accordion_title_active_padding',
508
+ [
509
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
510
+ 'type' => Controls_Manager::DIMENSIONS,
511
+ 'size_units' => [ 'px', '%', 'em' ],
512
+ 'selectors' => [
513
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
514
+ ],
515
+ 'separator' => 'before',
516
+ ]
517
+ );
518
+
519
+ $this->add_group_control(
520
+ Group_Control_Box_Shadow::get_type(),
521
+ [
522
+ 'name' => 'active_title_box_shadow',
523
+ 'label' => esc_html__( 'Box Shadow', 'woolentor' ),
524
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head',
525
+ 'separator' => 'before',
526
+ ]
527
+ );
528
+
529
+ $this->end_controls_tab(); // FAQ Title Active tab End
530
+
531
+ $this->end_controls_tabs();
532
+
533
+ $this->end_controls_section();
534
+
535
+
536
+ // Content style tab start
537
+ $this->start_controls_section(
538
+ 'accordion_content_style',
539
+ [
540
+ 'label' => esc_html__( 'FAQ Content', 'woolentor' ),
541
+ 'tab' => Controls_Manager::TAB_STYLE,
542
+ ]
543
+ );
544
+
545
+ $this->add_control(
546
+ 'accordion_content_color',
547
+ [
548
+ 'label' => esc_html__( 'Color', 'woolentor' ),
549
+ 'type' => Controls_Manager::COLOR,
550
+ 'selectors' => [
551
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-content' => 'color: {{VALUE}};',
552
+ ],
553
+ 'separator' => 'before',
554
+ ]
555
+ );
556
+
557
+ $this->add_group_control(
558
+ Group_Control_Typography::get_type(),
559
+ [
560
+ 'name' => 'content_typography',
561
+ 'label' => esc_html__( 'Typography', 'woolentor' ),
562
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-content',
563
+ ]
564
+ );
565
+
566
+ $this->add_responsive_control(
567
+ 'accordion_content_align',
568
+ [
569
+ 'label' => esc_html__( 'Alignment', 'woolentor' ),
570
+ 'type' => Controls_Manager::CHOOSE,
571
+ 'options' => [
572
+ 'left' => [
573
+ 'title' => esc_html__( 'Left', 'woolentor' ),
574
+ 'icon' => 'fa fa-align-left',
575
+ ],
576
+ 'center' => [
577
+ 'title' => esc_html__( 'Center', 'woolentor' ),
578
+ 'icon' => 'fa fa-align-center',
579
+ ],
580
+ 'right' => [
581
+ 'title' => esc_html__( 'Right', 'woolentor' ),
582
+ 'icon' => 'fa fa-align-right',
583
+ ],
584
+ ],
585
+ 'selectors' => [
586
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-content' => 'text-align: {{VALUE}};',
587
+ ],
588
+ ]
589
+ );
590
+
591
+ $this->add_responsive_control(
592
+ 'accordion_content_padding',
593
+ [
594
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
595
+ 'type' => Controls_Manager::DIMENSIONS,
596
+ 'selectors' => [
597
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card .htwoolentor-faq-content' => 'padding: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
598
+ ],
599
+ 'separator' => 'before',
600
+ ]
601
+ );
602
+
603
+ $this->end_controls_section();
604
+
605
+ // Icon style tab start
606
+ $this->start_controls_section(
607
+ 'accordion_icon_style',
608
+ [
609
+ 'label' => esc_html__( 'FAQ Icon', 'woolentor' ),
610
+ 'tab' => Controls_Manager::TAB_STYLE,
611
+ ]
612
+ );
613
+
614
+ // FAQ Icon tabs Start
615
+ $this->start_controls_tabs('woolentor_faq_icon_style_tabs');
616
+
617
+ // FAQ Icon normal tab Start
618
+ $this->start_controls_tab(
619
+ 'accordion_icon_style_tab',
620
+ [
621
+ 'label' => esc_html__( 'Normal', 'woolentor' ),
622
+ ]
623
+ );
624
+
625
+ $this->add_control(
626
+ 'accordion_icon_indecator_color',
627
+ [
628
+ 'label' => esc_html__( 'Color', 'woolentor' ),
629
+ 'type' => Controls_Manager::COLOR,
630
+ 'selectors' => [
631
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-indicator::before' => 'background-color: {{VALUE}};',
632
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-indicator::after' => 'background-color: {{VALUE}};',
633
+ ],
634
+ 'separator' => 'before',
635
+ 'condition'=>[
636
+ 'custom_icon!'=>'yes',
637
+ ],
638
+ ]
639
+ );
640
+
641
+ $this->add_group_control(
642
+ Group_Control_Background::get_type(),
643
+ [
644
+ 'name' => 'iconbackground',
645
+ 'label' => esc_html__( 'Background', 'woolentor' ),
646
+ 'types' => [ 'classic', 'gradient' ],
647
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-icon',
648
+ 'condition'=>[
649
+ 'custom_icon'=>'yes',
650
+ ],
651
+ ]
652
+ );
653
+
654
+ $this->add_control(
655
+ 'accordion_icon_color',
656
+ [
657
+ 'label' => esc_html__( 'Color', 'woolentor' ),
658
+ 'type' => Controls_Manager::COLOR,
659
+ 'selectors' => [
660
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-icon' => 'color: {{VALUE}};',
661
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-icon svg *' => 'stroke: {{VALUE}};fill:{{VALUE}};',
662
+ ],
663
+ 'separator' => 'before',
664
+ 'condition'=>[
665
+ 'custom_icon'=>'yes',
666
+ ],
667
+ ]
668
+ );
669
+
670
+ $this->add_group_control(
671
+ Group_Control_Border::get_type(),
672
+ [
673
+ 'name' => 'accordion_icon_border',
674
+ 'label' => esc_html__( 'Border', 'woolentor' ),
675
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-icon',
676
+ 'condition'=>[
677
+ 'custom_icon'=>'yes',
678
+ ],
679
+ ]
680
+ );
681
+
682
+ $this->add_responsive_control(
683
+ 'accordion_icon_border_radius',
684
+ [
685
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
686
+ 'type' => Controls_Manager::DIMENSIONS,
687
+ 'selectors' => [
688
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-icon' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
689
+ ],
690
+ 'separator' => 'before',
691
+ 'condition'=>[
692
+ 'custom_icon'=>'yes',
693
+ ],
694
+ ]
695
+ );
696
+
697
+ $this->add_group_control(
698
+ Group_Control_Box_Shadow::get_type(),
699
+ [
700
+ 'name' => 'icon_box_shadow',
701
+ 'label' => esc_html__( 'Box Shadow', 'woolentor' ),
702
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-icon',
703
+ 'separator' => 'before',
704
+ 'condition'=>[
705
+ 'custom_icon'=>'yes',
706
+ ],
707
+ ]
708
+ );
709
+
710
+ $this->add_responsive_control(
711
+ 'accordion_icon_lineheight',
712
+ [
713
+ 'label' => esc_html__( 'Icon Line Height', 'woolentor' ),
714
+ 'type' => Controls_Manager::SLIDER,
715
+ 'range' => [
716
+ 'px' => [
717
+ 'min' => 0,
718
+ 'max' => 150,
719
+ ],
720
+ ],
721
+ 'selectors' => [
722
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-icon' => 'line-height: {{SIZE}}{{UNIT}};',
723
+ ],
724
+ 'condition'=>[
725
+ 'custom_icon'=>'yes',
726
+ ],
727
+ ]
728
+ );
729
+
730
+ $this->add_responsive_control(
731
+ 'accordion_icon_width',
732
+ [
733
+ 'label' => esc_html__( 'Icon Width', 'woolentor' ),
734
+ 'type' => Controls_Manager::SLIDER,
735
+ 'range' => [
736
+ 'px' => [
737
+ 'min' => 0,
738
+ 'max' => 200,
739
+ ],
740
+ ],
741
+ 'selectors' => [
742
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card:not(.is-active) .htwoolentor-faq-head .htwoolentor-faq-head-icon' => 'width: {{SIZE}}{{UNIT}};',
743
+ ],
744
+ 'condition'=>[
745
+ 'custom_icon'=>'yes',
746
+ ],
747
+ ]
748
+ );
749
+
750
+ $this->end_controls_tab(); // Accordion Icon normal tab End
751
+
752
+ // Accordion Icon Active tab Start
753
+ $this->start_controls_tab(
754
+ 'accordion_active_icon_style_tab',
755
+ [
756
+ 'label' => esc_html__( 'Active', 'woolentor' ),
757
+ ]
758
+ );
759
+
760
+ $this->add_control(
761
+ 'accordion_icon_active_indecator_color',
762
+ [
763
+ 'label' => esc_html__( 'Color', 'woolentor' ),
764
+ 'type' => Controls_Manager::COLOR,
765
+ 'selectors' => [
766
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-indicator::before' => 'background-color: {{VALUE}};',
767
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-indicator::after' => 'background-color: {{VALUE}};',
768
+ ],
769
+ 'separator' => 'before',
770
+ 'condition'=>[
771
+ 'custom_icon!'=>'yes',
772
+ ],
773
+ ]
774
+ );
775
+
776
+ $this->add_group_control(
777
+ Group_Control_Background::get_type(),
778
+ [
779
+ 'name' => 'iconactivebackground',
780
+ 'label' => esc_html__( 'Background', 'woolentor' ),
781
+ 'types' => [ 'classic', 'gradient' ],
782
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon',
783
+ 'condition'=>[
784
+ 'custom_icon'=>'yes',
785
+ ],
786
+ ]
787
+ );
788
+
789
+ $this->add_control(
790
+ 'accordion_active_icon_color',
791
+ [
792
+ 'label' => esc_html__( 'Color', 'woolentor' ),
793
+ 'type' => Controls_Manager::COLOR,
794
+ 'selectors' => [
795
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon' => 'color: {{VALUE}};',
796
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon svg *' => 'stroke: {{VALUE}};fill:{{VALUE}};',
797
+ ],
798
+ 'separator' => 'before',
799
+ 'condition'=>[
800
+ 'custom_icon'=>'yes',
801
+ ],
802
+ ]
803
+ );
804
+
805
+ $this->add_group_control(
806
+ Group_Control_Border::get_type(),
807
+ [
808
+ 'name' => 'accordion_active_icon_border',
809
+ 'label' => esc_html__( 'Border', 'woolentor' ),
810
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon',
811
+ 'condition'=>[
812
+ 'custom_icon'=>'yes',
813
+ ],
814
+ ]
815
+ );
816
+
817
+ $this->add_responsive_control(
818
+ 'accordion_active_icon_border_radius',
819
+ [
820
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
821
+ 'type' => Controls_Manager::DIMENSIONS,
822
+ 'selectors' => [
823
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
824
+ ],
825
+ 'separator' => 'before',
826
+ 'condition'=>[
827
+ 'custom_icon'=>'yes',
828
+ ],
829
+ ]
830
+ );
831
+
832
+ $this->add_group_control(
833
+ Group_Control_Box_Shadow::get_type(),
834
+ [
835
+ 'name' => 'icon_active_box_shadow',
836
+ 'label' => esc_html__( 'Box Shadow', 'woolentor' ),
837
+ 'selector' => '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon',
838
+ 'separator' => 'before',
839
+ 'condition'=>[
840
+ 'custom_icon'=>'yes',
841
+ ],
842
+ ]
843
+ );
844
+
845
+ $this->add_control(
846
+ 'accordion_active_icon_lineheight',
847
+ [
848
+ 'label' => esc_html__( 'Icon Line Height', 'woolentor' ),
849
+ 'type' => Controls_Manager::SLIDER,
850
+ 'range' => [
851
+ 'px' => [
852
+ 'min' => 0,
853
+ 'max' => 150,
854
+ ],
855
+ ],
856
+ 'selectors' => [
857
+ '{{WRAPPER}} .htwoolentor-faq .htwoolentor-faq-card.is-active .htwoolentor-faq-head .htwoolentor-faq-head-icon' => 'line-height: {{SIZE}}{{UNIT}};',
858
+ ],
859
+ 'condition'=>[
860
+ 'custom_icon'=>'yes',
861
+ ],
862
+ ]
863
+ );
864
+
865
+ $this->end_controls_tab(); // Accordion Icon Active tab End
866
+
867
+ $this->end_controls_tabs();
868
+
869
+ $this->end_controls_section(); // Icon style tabs end
870
+
871
+
872
+ }
873
+
874
+ protected function render( $instance = [] ) {
875
+ $settings = $this->get_settings_for_display();
876
+ $accordion_list = $this->get_settings_for_display('accordion_list');
877
+ $id = $this->get_id();
878
+
879
+ $this->add_render_attribute( 'area_attr', 'class', 'htwoolentor-faq htmove-icon-pos-'.$settings['icon_position'] );
880
+ $this->add_render_attribute( 'area_attr', 'id', 'htwoolentor-faq-'.$id );
881
+
882
+
883
+ $accordion_settings = [
884
+ 'showitem' => ( 'yes' === $settings['show_item'] ),
885
+ ];
886
+ $this->add_render_attribute( 'area_attr', 'data-settings', wp_json_encode( $accordion_settings ) );
887
+
888
+ // Icon
889
+ $open_icon = ( !empty( $settings['open_icon']['value'] ) ? '<span class="htwoolentor-faq-head-icon htwoolentor-faq-open-icon">'.woolentor_render_icon( $settings,'open_icon', 'openicon' ).'</span>' : '' );
890
+
891
+ $close_icon = ( !empty( $settings['close_icon']['value'] ) ? '<span class="htwoolentor-faq-head-icon htwoolentor-faq-close-icon">'.woolentor_render_icon( $settings,'close_icon', 'closeicon' ).'</span>' : '' );
892
+
893
+ $icon = '<span class="htwoolentor-faq-head-indicator"></span>';
894
+ if( !empty( $settings['open_icon']['value'] ) || !empty( $settings['close_icon']['value'] )){
895
+ $icon = $open_icon.$close_icon;
896
+ }
897
+
898
+ ?>
899
+ <div <?php echo $this->get_render_attribute_string( 'area_attr' ); ?> >
900
+ <?php
901
+ if( is_array( $accordion_list ) ){
902
+ foreach ( $accordion_list as $accordion ){
903
+
904
+ $title = ( !empty( $accordion['title'] ) ? '<span class="htwoolentor-faq-head-text">'.$accordion['title'].'</span>' : '' );
905
+
906
+ if( $accordion['individual_icon'] == 'yes' ){
907
+ $ind_open_icon = ( !empty( $accordion['indopen_icon']['value'] ) ? '<span class="htwoolentor-faq-head-icon htwoolentor-faq-open-icon">'.woolentor_render_icon( $accordion,'indopen_icon', 'indopenicon' ).'</span>' : '' );
908
+
909
+ $ind_close_icon = ( !empty( $accordion['indclose_icon']['value'] ) ? '<span class="htwoolentor-faq-head-icon htwoolentor-faq-close-icon">'.woolentor_render_icon( $accordion,'indclose_icon', 'indcloseicon' ).'</span>' : '' );
910
+
911
+ $open_close_icon = $ind_open_icon.$ind_close_icon;
912
+
913
+ }else{
914
+ $open_close_icon = $icon;
915
+ }
916
+
917
+ ?>
918
+ <div class="htwoolentor-faq-card">
919
+ <?php
920
+ if( $settings['icon_position'] == 'after'){
921
+ echo sprintf( '<div class="htwoolentor-faq-head">%2$s %1$s</div>',$open_close_icon, $title );
922
+ }else{
923
+ echo sprintf( '<div class="htwoolentor-faq-head">%1$s %2$s</div>',$open_close_icon, $title );
924
+ }
925
+ ?>
926
+ <div class="htwoolentor-faq-body">
927
+ <div class="htwoolentor-faq-content">
928
+ <?php
929
+ if ( $accordion['content_source'] == 'custom' && !empty( $accordion['content'] ) ) {
930
+ echo wp_kses_post( $accordion['content'] );
931
+ } elseif ( $accordion['content_source'] == "elementor" && !empty( $accordion['template_id'] )) {
932
+ echo Plugin::instance()->frontend->get_builder_content_for_display( $accordion['template_id'] );
933
+ }
934
+ ?>
935
+ </div>
936
+ </div>
937
+ </div>
938
+ <?php
939
+ }
940
+ }
941
+ ?>
942
+ </div>
943
+ <?php
944
+
945
+ }
946
+
947
+ }
948
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Faq_Element() );
includes/addons/wl_onepage_slider.php ADDED
@@ -0,0 +1,646 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
+
5
+ class WL_OnePage_Slider_Element extends Widget_Base {
6
+
7
+ public function get_name() {
8
+ return 'wl-onepage-slider';
9
+ }
10
+
11
+ public function get_title() {
12
+ return __( 'WL: One page slider', 'woolentor' );
13
+ }
14
+
15
+ public function get_icon() {
16
+ return 'eicon-slider-video';
17
+ }
18
+
19
+ public function get_categories() {
20
+ return [ 'woolentor-addons' ];
21
+ }
22
+
23
+ public function get_style_depends(){
24
+ return ['slick','elementor-icons-shared-0-css','elementor-icons-fa-brands','elementor-icons-fa-regular','elementor-icons-fa-solid','woolentor-slider','woolentor-widgets'];
25
+ }
26
+
27
+ public function get_script_depends() {
28
+ return ['one-page-nav','woolentor-widgets-scripts'];
29
+ }
30
+
31
+ public function get_keywords(){
32
+ return ['slider','onepage slider','fullpage','fullslider'];
33
+ }
34
+
35
+ protected function _register_controls() {
36
+
37
+ $this->start_controls_section(
38
+ 'section_content',
39
+ [
40
+ 'label' => esc_html__( 'Slider', 'woolentor' ),
41
+ ]
42
+ );
43
+
44
+ $repeater = new Repeater();
45
+
46
+ $repeater->add_control(
47
+ 'slider_image',
48
+ [
49
+ 'label' => esc_html__( 'Image', 'woolentor' ),
50
+ 'type' => Controls_Manager::MEDIA,
51
+ 'default' => [
52
+ 'url' => Utils::get_placeholder_image_src(),
53
+ ],
54
+ ]
55
+ );
56
+
57
+ $repeater->start_controls_tabs('slider_item_tabs');
58
+
59
+ $repeater->start_controls_tab(
60
+ 'content_tab',
61
+ [
62
+ 'label' => esc_html__( 'Content', 'woolentor' ),
63
+ ]
64
+ );
65
+
66
+ $repeater->add_control(
67
+ 'slider_title',
68
+ [
69
+ 'label' => esc_html__( 'Title', 'woolentor' ),
70
+ 'type' => Controls_Manager::TEXT,
71
+ 'placeholder' => esc_html__( 'Type your title here', 'woolentor' ),
72
+ 'label_block'=>true,
73
+ ]
74
+ );
75
+
76
+ $repeater->add_control(
77
+ 'slider_subtitle',
78
+ [
79
+ 'label' => esc_html__( 'Sub Title', 'woolentor' ),
80
+ 'type' => Controls_Manager::TEXT,
81
+ 'placeholder' => esc_html__( 'Type your sub title here', 'woolentor' ),
82
+ 'label_block'=>true,
83
+ ]
84
+ );
85
+
86
+ $repeater->add_control(
87
+ 'slider_buttontxt',
88
+ [
89
+ 'label' => esc_html__( 'Button Text', 'woolentor' ),
90
+ 'type' => Controls_Manager::TEXT,
91
+ 'placeholder' => esc_html__( 'Type your button text here', 'woolentor' ),
92
+ 'label_block'=>true,
93
+ ]
94
+ );
95
+
96
+ $repeater->add_control(
97
+ 'slider_buttonlink',
98
+ [
99
+ 'label' => esc_html__( 'Button Link', 'woolentor' ),
100
+ 'type' => Controls_Manager::TEXT,
101
+ 'placeholder' => esc_html__( 'Type your button link here', 'woolentor' ),
102
+ 'label_block'=>true,
103
+ ]
104
+ );
105
+
106
+ $repeater->add_control(
107
+ 'show_video_btn',
108
+ [
109
+ 'label' => esc_html__( 'Video Button', 'woolentor' ),
110
+ 'type' => Controls_Manager::SWITCHER,
111
+ ]
112
+ );
113
+
114
+ $repeater->add_control(
115
+ 'video_link',
116
+ [
117
+ 'label' => esc_html__( 'Video Link', 'woolentor' ),
118
+ 'type' => Controls_Manager::TEXT,
119
+ 'label_block'=>true,
120
+ 'condition'=>[
121
+ 'show_video_btn'=>'yes',
122
+ ],
123
+ ]
124
+ );
125
+
126
+ $repeater->add_control(
127
+ 'video_icon',
128
+ [
129
+ 'label' => esc_html__( 'Video Icon', 'woolentor' ),
130
+ 'type' => Controls_Manager::ICONS,
131
+ 'default' => [
132
+ 'value' => 'fas fa-play',
133
+ 'library' => 'solid',
134
+ ],
135
+ 'fa4compatibility' => 'videoicon',
136
+ 'condition'=>[
137
+ 'show_video_btn'=>'yes',
138
+ ],
139
+ ]
140
+ );
141
+
142
+ $repeater->end_controls_tab();
143
+
144
+ // Slider Item Style
145
+ $repeater->start_controls_tab(
146
+ 'style_tab',
147
+ [
148
+ 'label' => esc_html__( 'Style', 'woolentor' ),
149
+ ]
150
+ );
151
+
152
+ // Area Style
153
+ $repeater->add_control(
154
+ 'ind_area_heading',
155
+ [
156
+ 'label' => esc_html__( 'Area', 'woolentor' ),
157
+ 'type' => Controls_Manager::HEADING,
158
+ 'separator' => 'before',
159
+ ]
160
+ );
161
+
162
+ $repeater->add_responsive_control(
163
+ 'ind_content_align',
164
+ [
165
+ 'label' => esc_html__( 'Alignment', 'woolentor' ),
166
+ 'type' => Controls_Manager::CHOOSE,
167
+ 'options' => [
168
+ 'left' => [
169
+ 'title' => esc_html__( 'Left', 'woolentor' ),
170
+ 'icon' => 'fa fa-align-left',
171
+ ],
172
+ 'center' => [
173
+ 'title' => esc_html__( 'Center', 'woolentor' ),
174
+ 'icon' => 'fa fa-align-center',
175
+ ],
176
+ 'right' => [
177
+ 'title' => esc_html__( 'Right', 'woolentor' ),
178
+ 'icon' => 'fa fa-align-right',
179
+ ],
180
+ ],
181
+ 'selectors' => [
182
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-full-slider-content' => 'text-align: {{VALUE}};',
183
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-video-content' => 'text-align: {{VALUE}};',
184
+ ],
185
+ ]
186
+ );
187
+
188
+ $repeater->add_group_control(
189
+ Group_Control_Background::get_type(),
190
+ [
191
+ 'name' => 'int_content_background',
192
+ 'label' => __( 'Background', 'woolentor' ),
193
+ 'types' => [ 'classic', 'gradient' ],
194
+ 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}}.ht-single-full-slider',
195
+ 'exclude'=>['image'],
196
+ 'fields_options'=>[
197
+ 'background'=>[
198
+ 'label' => esc_html__( 'Area Background Type', 'woolentor' ),
199
+ ]
200
+ ]
201
+ ]
202
+ );
203
+
204
+ $repeater->add_control(
205
+ 'ind_title_heading',
206
+ [
207
+ 'label' => esc_html__( 'Title', 'woolentor' ),
208
+ 'type' => Controls_Manager::HEADING,
209
+ 'separator' => 'before',
210
+ ]
211
+ );
212
+
213
+ $repeater->add_control(
214
+ 'ind_title_color',
215
+ [
216
+ 'label' => esc_html__( 'Color', 'woolentor' ),
217
+ 'type' => Controls_Manager::COLOR,
218
+ 'selectors' => [
219
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-full-slider-content h1' => 'color: {{VALUE}}',
220
+ ],
221
+ ]
222
+ );
223
+
224
+ $repeater->add_group_control(
225
+ Group_Control_Typography::get_type(),
226
+ [
227
+ 'name' => 'int_title_typography',
228
+ 'label' => esc_html__( 'Typography', 'woolentor' ),
229
+ 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}} .ht-full-slider-content h1',
230
+ ]
231
+ );
232
+
233
+ $repeater->add_responsive_control(
234
+ 'ind_title_margin',
235
+ [
236
+ 'label' => esc_html__( 'Margin', 'woolentor' ),
237
+ 'type' => Controls_Manager::DIMENSIONS,
238
+ 'size_units' => [ 'px', '%', 'em' ],
239
+ 'selectors' => [
240
+ '{{WRAPPER}} {{WRAPPER}} {{CURRENT_ITEM}} .ht-full-slider-content h1' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
241
+ ],
242
+ ]
243
+ );
244
+
245
+ // Sub Title
246
+ $repeater->add_control(
247
+ 'ind_sub_title_heading',
248
+ [
249
+ 'label' => esc_html__( 'Sub Title', 'woolentor' ),
250
+ 'type' => Controls_Manager::HEADING,
251
+ 'separator' => 'before',
252
+ ]
253
+ );
254
+
255
+ $repeater->add_control(
256
+ 'ind_sub_title_color',
257
+ [
258
+ 'label' => esc_html__( 'Color', 'woolentor' ),
259
+ 'type' => Controls_Manager::COLOR,
260
+ 'selectors' => [
261
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-full-slider-content h2' => 'color: {{VALUE}}',
262
+ ],
263
+ ]
264
+ );
265
+
266
+ $repeater->add_group_control(
267
+ Group_Control_Typography::get_type(),
268
+ [
269
+ 'name' => 'int_subtitle_typography',
270
+ 'label' => esc_html__( 'Typography', 'woolentor' ),
271
+ 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}} .ht-full-slider-content h2',
272
+ ]
273
+ );
274
+
275
+ $repeater->add_responsive_control(
276
+ 'ind_subtitle_margin',
277
+ [
278
+ 'label' => esc_html__( 'Margin', 'woolentor' ),
279
+ 'type' => Controls_Manager::DIMENSIONS,
280
+ 'size_units' => [ 'px', '%', 'em' ],
281
+ 'selectors' => [
282
+ '{{WRAPPER}} {{WRAPPER}} {{CURRENT_ITEM}} .ht-full-slider-content h2' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
283
+ ],
284
+ ]
285
+ );
286
+
287
+ $repeater->add_control(
288
+ 'ind_button_heading',
289
+ [
290
+ 'label' => esc_html__( 'Button', 'woolentor' ),
291
+ 'type' => Controls_Manager::HEADING,
292
+ 'separator' => 'before',
293
+ ]
294
+ );
295
+
296
+ $repeater->add_responsive_control(
297
+ 'ind_button_padding',
298
+ [
299
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
300
+ 'type' => Controls_Manager::DIMENSIONS,
301
+ 'size_units' => [ 'px', '%', 'em' ],
302
+ 'selectors' => [
303
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-btn-style a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
304
+ ],
305
+ ]
306
+ );
307
+
308
+ $repeater->add_control(
309
+ 'ind_button_color',
310
+ [
311
+ 'label' => esc_html__( 'Color', 'woolentor' ),
312
+ 'type' => Controls_Manager::COLOR,
313
+ 'selectors' => [
314
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-btn-style a' => 'color: {{VALUE}}',
315
+ ],
316
+ ]
317
+ );
318
+
319
+ $repeater->add_control(
320
+ 'ind_button_hover_color',
321
+ [
322
+ 'label' => esc_html__( 'Hover Color', 'woolentor' ),
323
+ 'type' => Controls_Manager::COLOR,
324
+ 'selectors' => [
325
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-btn-style a:hover' => 'color: {{VALUE}}',
326
+ ],
327
+ ]
328
+ );
329
+
330
+ $repeater->add_group_control(
331
+ Group_Control_Typography::get_type(),
332
+ [
333
+ 'name' => 'int_button_typography',
334
+ 'label' => esc_html__( 'Typography', 'woolentor' ),
335
+ 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}} .ht-btn-style a',
336
+ ]
337
+ );
338
+
339
+ $repeater->add_group_control(
340
+ Group_Control_Background::get_type(),
341
+ [
342
+ 'name' => 'int_button_background',
343
+ 'label' => __( 'Background', 'woolentor' ),
344
+ 'types' => [ 'classic', 'gradient' ],
345
+ 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}} .ht-btn-style a',
346
+ 'exclude'=>['image'],
347
+ 'fields_options'=>[
348
+ 'background'=>[
349
+ 'label' => esc_html__( 'Background Type', 'woolentor' ),
350
+ ]
351
+ ]
352
+ ]
353
+ );
354
+
355
+ $repeater->add_group_control(
356
+ Group_Control_Background::get_type(),
357
+ [
358
+ 'name' => 'int_button_hover_background',
359
+ 'label' => __( 'Hover Background', 'woolentor' ),
360
+ 'types' => [ 'classic', 'gradient' ],
361
+ 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}} .ht-btn-style a:hover,{{WRAPPER}} {{CURRENT_ITEM}} .ht-btn-style a::after',
362
+ 'exclude'=>['image'],
363
+ 'fields_options'=>[
364
+ 'background'=>[
365
+ 'label' => esc_html__( 'Hover Background Type', 'woolentor' ),
366
+ ]
367
+ ]
368
+ ]
369
+ );
370
+
371
+ $repeater->add_control(
372
+ 'ind_play_button_heading',
373
+ [
374
+ 'label' => esc_html__( 'Video Button', 'woolentor' ),
375
+ 'type' => Controls_Manager::HEADING,
376
+ 'separator' => 'before',
377
+ 'condition'=>[
378
+ 'show_video_btn'=>'yes',
379
+ ],
380
+ ]
381
+ );
382
+
383
+ $repeater->add_control(
384
+ 'ind_play_button_color',
385
+ [
386
+ 'label' => esc_html__( 'Color', 'woolentor' ),
387
+ 'type' => Controls_Manager::COLOR,
388
+ 'selectors' => [
389
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-video-content .ht-video-icon a' => 'color: {{VALUE}};border-color:{{VALUE}};',
390
+ ],
391
+ 'condition'=>[
392
+ 'show_video_btn'=>'yes',
393
+ ],
394
+ ]
395
+ );
396
+
397
+ $repeater->add_control(
398
+ 'ind_play_button_hover_color',
399
+ [
400
+ 'label' => esc_html__( 'Hover Color', 'woolentor' ),
401
+ 'type' => Controls_Manager::COLOR,
402
+ 'selectors' => [
403
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-video-content .ht-video-icon a:hover' => 'color: {{VALUE}};border-color:{{VALUE}};',
404
+ ],
405
+ 'condition'=>[
406
+ 'show_video_btn'=>'yes',
407
+ ],
408
+ ]
409
+ );
410
+
411
+ $repeater->add_responsive_control(
412
+ 'ind_play_button_size',
413
+ [
414
+ 'label' => esc_html__( 'Font Size', 'woolentor' ),
415
+ 'type' => Controls_Manager::SLIDER,
416
+ 'size_units' => [ 'px', '%' ],
417
+ 'selectors' => [
418
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-video-content .ht-video-icon a' => 'font-size: {{SIZE}}{{UNIT}};',
419
+ ],
420
+ 'condition'=>[
421
+ 'show_video_btn'=>'yes',
422
+ ],
423
+ ]
424
+ );
425
+
426
+ $repeater->add_responsive_control(
427
+ 'ind_play_button_width',
428
+ [
429
+ 'label' => esc_html__( 'Width', 'woolentor' ),
430
+ 'type' => Controls_Manager::SLIDER,
431
+ 'size_units' => [ 'px', '%' ],
432
+ 'selectors' => [
433
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-video-content .ht-video-icon a' => 'width: {{SIZE}}{{UNIT}};',
434
+ ],
435
+ 'condition'=>[
436
+ 'show_video_btn'=>'yes',
437
+ ],
438
+ ]
439
+ );
440
+
441
+ $repeater->add_responsive_control(
442
+ 'ind_play_button_height',
443
+ [
444
+ 'label' => esc_html__( 'Height', 'woolentor' ),
445
+ 'type' => Controls_Manager::SLIDER,
446
+ 'size_units' => [ 'px', '%' ],
447
+ 'selectors' => [
448
+ '{{WRAPPER}} {{CURRENT_ITEM}} .ht-video-content .ht-video-icon a' => 'height: {{SIZE}}{{UNIT}};',
449
+ ],
450
+ 'condition'=>[
451
+ 'show_video_btn'=>'yes',
452
+ ],
453
+ ]
454
+ );
455
+
456
+ $repeater->end_controls_tab();
457
+
458
+ $repeater->end_controls_tabs();
459
+
460
+
461
+
462
+ $this->add_control(
463
+ 'slider_list',
464
+ [
465
+ 'type' => Controls_Manager::REPEATER,
466
+ 'fields' => $repeater->get_controls(),
467
+ 'default' => [
468
+ [
469
+ 'slider_title' => esc_html__( 'Boho Dreams', 'woolentor' ),
470
+ 'slider_subtitle' => esc_html__( 'Ruffled Poplin Dress', 'woolentor' ),
471
+ 'slider_buttontxt' => esc_html__( 'Shop now', 'woolentor' ),
472
+ 'slider_buttonlink' => esc_html__( '#', 'woolentor' ),
473
+ ],
474
+ [
475
+ 'slider_title' => 'ready to wear<br/>clothing made for a<br/>true contemporary woman',
476
+ 'slider_buttontxt' => esc_html__( 'Shop now', 'woolentor' ),
477
+ 'slider_buttonlink' => esc_html__( '#', 'woolentor' ),
478
+ ],
479
+ [
480
+ 'slider_title' => esc_html__( 'Zippers cotton jogger', 'woolentor' ),
481
+ 'slider_buttontxt' => esc_html__( 'Shop now', 'woolentor' ),
482
+ 'slider_buttonlink' => esc_html__( '#', 'woolentor' ),
483
+ ],
484
+ ],
485
+ 'title_field' => '{{{ slider_title }}}',
486
+ ]
487
+ );
488
+
489
+ $this->end_controls_section();
490
+
491
+ // Pagination style tab start
492
+ $this->start_controls_section(
493
+ 'slider_pagination_style',
494
+ [
495
+ 'label' => esc_html__( 'Pagination', 'woolentor' ),
496
+ 'tab' => Controls_Manager::TAB_STYLE,
497
+ ]
498
+ );
499
+
500
+ $this->add_responsive_control(
501
+ 'pagination_width',
502
+ [
503
+ 'label' => esc_html__( 'Width', 'woolentor' ),
504
+ 'type' => Controls_Manager::SLIDER,
505
+ 'size_units' => [ 'px', '%' ],
506
+ 'selectors' => [
507
+ '{{WRAPPER}} .ht-full-slider-area .ht-slider-pagination ul li a' => 'width: {{SIZE}}{{UNIT}};',
508
+ ],
509
+ ]
510
+ );
511
+
512
+ $this->add_responsive_control(
513
+ 'pagination_height',
514
+ [
515
+ 'label' => esc_html__( 'Height', 'woolentor' ),
516
+ 'type' => Controls_Manager::SLIDER,
517
+ 'size_units' => [ 'px', '%' ],
518
+ 'selectors' => [
519
+ '{{WRAPPER}} .ht-full-slider-area .ht-slider-pagination ul li a' => 'height: {{SIZE}}{{UNIT}};',
520
+ ],
521
+ ]
522
+ );
523
+
524
+ $this->add_group_control(
525
+ Group_Control_Border::get_type(),
526
+ [
527
+ 'name' => 'pagination_border',
528
+ 'label' => esc_html__( 'Border', 'woolentor' ),
529
+ 'selector' => '{{WRAPPER}} .ht-full-slider-area .ht-slider-pagination ul li a',
530
+ ]
531
+ );
532
+
533
+ $this->add_responsive_control(
534
+ 'pagination_border_radius',
535
+ [
536
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
537
+ 'type' => Controls_Manager::DIMENSIONS,
538
+ 'size_units' => [ 'px', '%', 'em' ],
539
+ 'selectors' => [
540
+ '{{WRAPPER}} .ht-full-slider-area .ht-slider-pagination ul li a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
541
+ ],
542
+ ]
543
+ );
544
+
545
+ $this->add_group_control(
546
+ Group_Control_Background::get_type(),
547
+ [
548
+ 'name' => 'pagination_background',
549
+ 'label' => esc_html__( 'Background', 'woolentor' ),
550
+ 'types' => [ 'classic', 'gradient' ],
551
+ 'selector' => '{{WRAPPER}} .ht-full-slider-area .ht-slider-pagination ul li:not(.current) a',
552
+ 'exclude'=>['image'],
553
+ 'fields_options'=>[
554
+ 'background'=>[
555
+ 'label' => esc_html__( 'Background Type', 'woolentor' ),
556
+ ]
557
+ ]
558
+ ]
559
+ );
560
+
561
+ $this->add_group_control(
562
+ Group_Control_Background::get_type(),
563
+ [
564
+ 'name' => 'pagination_hover_background',
565
+ 'label' => esc_html__( 'Background', 'woolentor' ),
566
+ 'types' => [ 'classic', 'gradient' ],
567
+ 'selector' => '{{WRAPPER}} .ht-full-slider-area .ht-slider-pagination ul li a:hover,{{WRAPPER}} .ht-full-slider-area .ht-slider-pagination ul li.current a',
568
+ 'exclude'=>['image'],
569
+ 'fields_options'=>[
570
+ 'background'=>[
571
+ 'label' => esc_html__( 'Hover Background Type', 'woolentor' ),
572
+ ]
573
+ ]
574
+ ]
575
+ );
576
+
577
+ $this->end_controls_section();
578
+
579
+ }
580
+
581
+
582
+ protected function render( $instance = [] ) {
583
+
584
+ $settings = $this->get_settings_for_display();
585
+
586
+ $slider_list = $this->get_settings_for_display('slider_list');
587
+ $id = $this->get_id();
588
+
589
+ if( is_array( $slider_list ) ){
590
+ ?>
591
+ <div class="ht-full-slider-area">
592
+
593
+ <div class="ht-slider-pagination">
594
+ <ul id="ht-nav">
595
+ <?php
596
+ $counter = 0;
597
+ foreach ( $slider_list as $slider ){
598
+ $counter++;
599
+ $class = ( 1 == $counter ) ? 'current' : '';
600
+ echo sprintf('<li class="%2$s"><a href="#%1$s">%3$s</a></li>', $id.$slider['_id'], $class, $slider['_id'] );
601
+ }
602
+ ?>
603
+ </ul>
604
+ </div>
605
+
606
+ <?php
607
+ $bg_color = 0;
608
+ foreach ( $slider_list as $slider ):
609
+ $bg_color++;
610
+ $image_url = !empty( $slider['slider_image']['id'] ) ? 'background-image:url('.$slider['slider_image']['url'].')' : '';
611
+
612
+ $bg_color = ( $bg_color > 5 ) ? 1 : $bg_color;
613
+ ?>
614
+ <div id="<?php echo esc_attr( $id.$slider['_id'] ); ?>" class="ht-single-full-slider ht-full-slider-bg-color-<?php echo $bg_color; ?> ht-slider-align-items-center ht-jarallax-img ht-parallax-active elementor-repeater-item-<?php echo $slider['_id']; ?>" style="<?php echo esc_attr( $image_url ); ?>">
615
+ <div class="ht-container">
616
+ <div class="<?php echo ( 'yes' === $slider['show_video_btn'] ) ? 'ht-video-content' : 'ht-full-slider-content'; ?>">
617
+ <?php
618
+ if( 'yes' === $slider['show_video_btn'] ){
619
+ $pl_icon = !empty( $slider['video_icon']['value'] ) ? woolentor_render_icon( $slider,'video_icon', 'videoicon' ) : '<i class="fas fa-play"></i>';
620
+ $pl_btn = sprintf( '<a class="ht-video-popup" href="%1$s">%2$s</a>', $slider['video_link'], $pl_icon );
621
+ echo sprintf( '<div class="ht-video-icon wow fadeInUp" data-wow-delay="%1$s">%2$s</div>','0.5s', $pl_btn );
622
+
623
+ echo sprintf('<h3 class="wow fadeInUp" data-wow-delay="%1$s">%2$s</h3>','.7s', $slider['slider_subtitle']);
624
+
625
+ }else{
626
+ echo sprintf('<h2 class="wow fadeInUp" data-wow-delay="%1$s">%2$s</h2>','.5s', $slider['slider_subtitle']);
627
+ echo sprintf('<h1 class="wow fadeInUp" data-wow-delay="%1$s">%2$s</h1>','.7s', $slider['slider_title']);
628
+ if( !empty( $slider['slider_buttontxt'] ) ){
629
+ echo sprintf( '<div class="ht-btn-style wow fadeInUp" data-wow-delay="%1$s"><a href="%2$s">%3$s</a></div>','.9s',$slider['slider_buttonlink'], $slider['slider_buttontxt'] );
630
+ }
631
+ }
632
+ ?>
633
+
634
+ </div>
635
+ </div>
636
+ </div>
637
+ <?php endforeach; ?>
638
+
639
+ </div>
640
+ <?php
641
+ }
642
+
643
+ }
644
+
645
+ }
646
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_OnePage_Slider_Element() );
includes/addons/wl_product_filter.php CHANGED
@@ -57,6 +57,20 @@ class WL_Product_Filter_Element extends Widget_Base {
57
  'options' => $filter_by + woolentor_get_taxonomies(),
58
  'separator' => 'before',
59
  'label_block' => true,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  ]
61
  );
62
 
@@ -573,7 +587,7 @@ class WL_Product_Filter_Element extends Widget_Base {
573
  $this->add_control(
574
  'slider_lavel_options',
575
  [
576
- 'label' => esc_html__( 'Price Lavel', 'woolentor' ),
577
  'type' => Controls_Manager::HEADING,
578
  'separator' => 'before',
579
  ]
@@ -582,7 +596,7 @@ class WL_Product_Filter_Element extends Widget_Base {
582
  $this->add_control(
583
  'price_lavel_color',
584
  [
585
- 'label' => esc_html__( 'Lavel Color', 'woolentor' ),
586
  'type' => Controls_Manager::COLOR,
587
  'selectors' => [
588
  '{{WRAPPER}} .woolentor_price_label' => 'color: {{VALUE}}',
@@ -751,17 +765,32 @@ class WL_Product_Filter_Element extends Widget_Base {
751
  echo !empty( $settings['wl_filter_area_title'] ) ? '<h2 class="wl_filter_title">'.$settings['wl_filter_area_title'].'</h2>' : '';
752
 
753
  if( 'search_form' === $filter_type ):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
754
  ?>
755
- <form class="wl_product_search_form" role="search" method="get" action="<?php echo esc_url( $current_url ); ?>">
756
- <input type="search" placeholder="<?php echo esc_attr_x( 'Search Products&hellip;', 'placeholder', 'woolentor' ); ?>" value="<?php echo get_search_query(); ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label', 'woolentor' ); ?>" />
757
  <button type="submit"><i class="fa fa-search"></i></button>
758
- <input type="hidden" name="post_type" value="product" />
759
  </form>
760
 
761
  <?php elseif( 'price_by' === $filter_type ):
762
- $step = 10;
763
  // Find min and max price in current result set.
764
- $prices = $this->get_filtered_price();
 
765
  $min_price = $prices['min'];
766
  $max_price = $prices['max'];
767
 
@@ -975,58 +1004,6 @@ class WL_Product_Filter_Element extends Widget_Base {
975
 
976
  }
977
 
978
- protected function get_filtered_price() {
979
- global $wpdb;
980
-
981
- if( is_shop() ){
982
-
983
- $args = wc()->query->get_main_query();
984
-
985
- $tax_query = isset( $args->tax_query->queries ) ? $args->tax_query->queries : array();
986
- $meta_query = isset( $args->query_vars['meta_query'] ) ? $args->query_vars['meta_query'] : array();
987
-
988
- foreach ( $meta_query + $tax_query as $key => $query ) {
989
- if ( ! empty( $query['price_filter'] ) || ! empty( $query['rating_filter'] ) ) {
990
- unset( $meta_query[ $key ] );
991
- }
992
- }
993
-
994
- $meta_query = new \WP_Meta_Query( $meta_query );
995
- $tax_query = new \WP_Tax_Query( $tax_query );
996
-
997
- $meta_query_sql = $meta_query->get_sql( 'post', $wpdb->posts, 'ID' );
998
- $tax_query_sql = $tax_query->get_sql( $wpdb->posts, 'ID' );
999
-
1000
- $sql = "SELECT min( FLOOR( price_meta.meta_value ) ) as min_price, max( CEILING( price_meta.meta_value ) ) as max_price FROM {$wpdb->posts} ";
1001
- $sql .= " LEFT JOIN {$wpdb->postmeta} as price_meta ON {$wpdb->posts}.ID = price_meta.post_id " . $tax_query_sql['join'] . $meta_query_sql['join'];
1002
- $sql .= " WHERE {$wpdb->posts}.post_type IN ('product')
1003
- AND {$wpdb->posts}.post_status = 'publish'
1004
- AND price_meta.meta_key IN ('_price')
1005
- AND price_meta.meta_value > '' ";
1006
- $sql .= $tax_query_sql['where'] . $meta_query_sql['where'];
1007
-
1008
- if ( !Plugin::instance()->editor->is_edit_mode() ) {
1009
- $search = !empty( \WC_Query::get_main_search_query_sql() ) ? \WC_Query::get_main_search_query_sql() : '';
1010
- if ( $search ) {
1011
- $sql .= ' AND ' . $search;
1012
- }
1013
- }
1014
-
1015
- $prices = $wpdb->get_row( $sql ); // WPCS: unprepared SQL ok.
1016
-
1017
- return [
1018
- 'min' => floor( $prices->min_price ),
1019
- 'max' => ceil( $prices->max_price )
1020
- ];
1021
- }else{
1022
- return [
1023
- 'min' => 10,
1024
- 'max' => 20
1025
- ];
1026
- }
1027
-
1028
- }
1029
-
1030
 
1031
  }
1032
  Plugin::instance()->widgets_manager->register_widget_type( new WL_Product_Filter_Element() );
57
  'options' => $filter_by + woolentor_get_taxonomies(),
58
  'separator' => 'before',
59
  'label_block' => true,
60
+ 'default'=>'search_form',
61
+ ]
62
+ );
63
+
64
+ $this->add_control(
65
+ 'redirect_form_url',
66
+ [
67
+ 'label' => esc_html__( 'Redirect Custom URL', 'woolentor' ),
68
+ 'type' => Controls_Manager::TEXT,
69
+ 'placeholder' => get_home_url( null, 'custom-search-page' ),
70
+ 'label_block'=>true,
71
+ 'condition' => [
72
+ 'wl_filter_type' => 'search_form'
73
+ ],
74
  ]
75
  );
76
 
587
  $this->add_control(
588
  'slider_lavel_options',
589
  [
590
+ 'label' => esc_html__( 'Price Label', 'woolentor' ),
591
  'type' => Controls_Manager::HEADING,
592
  'separator' => 'before',
593
  ]
596
  $this->add_control(
597
  'price_lavel_color',
598
  [
599
+ 'label' => esc_html__( 'Label Color', 'woolentor' ),
600
  'type' => Controls_Manager::COLOR,
601
  'selectors' => [
602
  '{{WRAPPER}} .woolentor_price_label' => 'color: {{VALUE}}',
765
  echo !empty( $settings['wl_filter_area_title'] ) ? '<h2 class="wl_filter_title">'.$settings['wl_filter_area_title'].'</h2>' : '';
766
 
767
  if( 'search_form' === $filter_type ):
768
+
769
+ if ( isset( $_GET['q'] ) || isset( $_GET['s'] ) ) {
770
+ $s = !empty( $_GET['s'] ) ? $_GET['s'] : '';
771
+ $q = !empty( $_GET['q'] ) ? $_GET['q'] : '';
772
+ $search_value = !empty( $q ) ? $q : $s;
773
+ }else{
774
+ $search_value = '';
775
+ }
776
+
777
+ if( !empty( $settings['redirect_form_url'] ) ){
778
+ $form_action = $settings['redirect_form_url'];
779
+ }else{
780
+ $form_action = $current_url;
781
+ }
782
+
783
  ?>
784
+ <form class="wl_product_search_form" role="search" method="get" action="<?php echo esc_url( $form_action ); ?>">
785
+ <input type="search" placeholder="<?php echo esc_attr_x( 'Search Products&hellip;', 'placeholder', 'woolentor' ); ?>" value="<?php echo esc_attr( $search_value ); ?>" name="q" title="<?php echo esc_attr_x( 'Search for:', 'label', 'woolentor' ); ?>" />
786
  <button type="submit"><i class="fa fa-search"></i></button>
 
787
  </form>
788
 
789
  <?php elseif( 'price_by' === $filter_type ):
790
+ $step = 1;
791
  // Find min and max price in current result set.
792
+ $prices = function_exists('woolentor_minmax_price_limit') ? woolentor_minmax_price_limit() : array('min' => 10,'max' => 20);
793
+
794
  $min_price = $prices['min'];
795
  $max_price = $prices['max'];
796
 
1004
 
1005
  }
1006
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1007
 
1008
  }
1009
  Plugin::instance()->widgets_manager->register_widget_type( new WL_Product_Filter_Element() );
includes/addons/wl_product_horizontal_filter.php ADDED
@@ -0,0 +1,1210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_Product_Horizontal_Filter_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wl-product-horizontal-filter';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: Product Horizontal Filter', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-filter';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return ['woolentor-addons'];
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return ['elementor-icons-shared-0-css','elementor-icons-fa-brands','elementor-icons-fa-regular','elementor-icons-fa-solid','woolentor-select2','woolentor-widgets'];
26
+ }
27
+
28
+ public function get_script_depends() {
29
+ return ['select2-min'];
30
+ }
31
+
32
+ public function get_keywords(){
33
+ return ['woolentor','shop','filter','product filter','horizontal'];
34
+ }
35
+
36
+ protected function _register_controls() {
37
+
38
+ $filter_by = [
39
+ 'price_by' => esc_html__( 'Price', 'woolentor' ),
40
+ 'sort_by' => esc_html__( 'Sort By', 'woolentor' ),
41
+ 'order_by' => esc_html__( 'Order By', 'woolentor' )
42
+ ];
43
+ $prices = function_exists('woolentor_minmax_price_limit') ? woolentor_minmax_price_limit() : array('min' => 10,'max' => 20);
44
+
45
+ $this->start_controls_section(
46
+ 'section_content',
47
+ [
48
+ 'label' => esc_html__( 'Filter', 'woolentor' ),
49
+ ]
50
+ );
51
+
52
+ $repeater = new Repeater();
53
+
54
+ $repeater->add_control(
55
+ 'wl_filter_title',
56
+ [
57
+ 'label' => esc_html__( 'Filter Title', 'woolentor' ),
58
+ 'type' => Controls_Manager::TEXT,
59
+ 'label_block' => true,
60
+ ]
61
+ );
62
+
63
+ $repeater->add_control(
64
+ 'wl_filter_placeholder',
65
+ [
66
+ 'label' => esc_html__( 'Filter Placeholder', 'woolentor' ),
67
+ 'type' => Controls_Manager::TEXT,
68
+ 'label_block' => true,
69
+ ]
70
+ );
71
+
72
+ $repeater->add_control(
73
+ 'wl_filter_type',
74
+ [
75
+ 'label' => esc_html__( 'Filter Type', 'woolentor' ),
76
+ 'type' => Controls_Manager::SELECT2,
77
+ 'options' => $filter_by + woolentor_get_taxonomies(),
78
+ 'label_block' => true,
79
+ ]
80
+ );
81
+
82
+ $repeater->add_responsive_control(
83
+ 'wl_filter_width',
84
+ [
85
+ 'label' => esc_html__( 'Max Width', 'woolentor' ),
86
+ 'type' => Controls_Manager::SLIDER,
87
+ 'size_units' => [ 'px', '%' ],
88
+ 'range' => [
89
+ 'px' => [
90
+ 'min' => 0,
91
+ 'max' => 1000,
92
+ 'step' => 1,
93
+ ],
94
+ '%' => [
95
+ 'min' => 0,
96
+ 'max' => 100,
97
+ ],
98
+ ],
99
+ 'selectors' => [
100
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-single-item{{CURRENT_ITEM}} .select2-container .select2-search--inline .select2-search__field' => 'max-width: {{SIZE}}{{UNIT}};',
101
+ ],
102
+ ]
103
+ );
104
+
105
+ $this->add_control(
106
+ 'wl_filter_list',
107
+ [
108
+ 'label' => esc_html__( 'Filter List', 'woolentor' ),
109
+ 'type' => Controls_Manager::REPEATER,
110
+ 'fields' => $repeater->get_controls(),
111
+ 'default' => [
112
+ [
113
+ 'wl_filter_title' => esc_html__( 'Sort By', 'woolentor' ),
114
+ 'wl_filter_placeholder' => esc_html__( 'Sort By', 'woolentor' ),
115
+ 'wl_filter_type' => 'sort_by',
116
+ ],
117
+ [
118
+ 'wl_filter_title' => esc_html__( 'Order By', 'woolentor' ),
119
+ 'wl_filter_placeholder' => esc_html__( 'Order By', 'woolentor' ),
120
+ 'wl_filter_type' => 'order_by',
121
+ ],
122
+ [
123
+ 'wl_filter_title' => esc_html__( 'Pricing', 'woolentor' ),
124
+ 'wl_filter_placeholder' => esc_html__( 'Pricing', 'woolentor' ),
125
+ 'wl_filter_type' => 'price_by',
126
+ ],
127
+ ],
128
+ 'title_field' => '{{{ wl_filter_title }}}',
129
+ ]
130
+ );
131
+
132
+ $price_range = new Repeater();
133
+
134
+ $price_range->add_control(
135
+ 'min_price',
136
+ [
137
+ 'label' => esc_html__( 'Min Price', 'woolentor' ),
138
+ 'type' => Controls_Manager::NUMBER,
139
+ 'default' => floor( $prices['min'] ),
140
+ ]
141
+ );
142
+
143
+ $price_range->add_control(
144
+ 'max_price',
145
+ [
146
+ 'label' => esc_html__( 'Max Price', 'woolentor' ),
147
+ 'type' => Controls_Manager::NUMBER,
148
+ 'default' => ceil( $prices['max'] ),
149
+ ]
150
+ );
151
+
152
+ $price_range->add_control(
153
+ 'price_seprator',
154
+ [
155
+ 'label' => esc_html__( 'Filter Placeholder', 'woolentor' ),
156
+ 'type' => Controls_Manager::TEXT,
157
+ 'label_block' => true,
158
+ 'default'=> esc_html__( 'to', 'woolentor' ),
159
+ ]
160
+ );
161
+
162
+ $this->add_control(
163
+ 'price_range_list',
164
+ [
165
+ 'label' => esc_html__( 'Price Range', 'woolentor' ),
166
+ 'type' => Controls_Manager::REPEATER,
167
+ 'fields' => $price_range->get_controls(),
168
+ 'separator' => 'before',
169
+ 'default' => [
170
+ [
171
+ 'min_price' => floor( $prices['min'] ),
172
+ 'max_price' => ceil( $prices['max'] ),
173
+ 'price_seprator' => esc_html__( 'to', 'woolentor' ),
174
+ ],
175
+ ],
176
+ 'title_field' => esc_html__( 'Price: {{{ min_price }}} {{{ price_seprator }}} {{{ max_price }}}', 'woolentor' ),
177
+ ]
178
+ );
179
+
180
+ $this->end_controls_section();
181
+
182
+ // Additional Option
183
+ $this->start_controls_section(
184
+ 'section_additional_option',
185
+ [
186
+ 'label' => esc_html__( 'Additional Options', 'woolentor' ),
187
+ ]
188
+ );
189
+
190
+ $this->add_control(
191
+ 'wl_filter_area_title',
192
+ [
193
+ 'label' => esc_html__( 'Title', 'woolentor' ),
194
+ 'type' => Controls_Manager::TEXT,
195
+ 'default'=>esc_html__( 'Filter', 'woolentor' ),
196
+ 'label_block' => true,
197
+ ]
198
+ );
199
+
200
+ $this->add_control(
201
+ 'show_search_form',
202
+ [
203
+ 'label' => esc_html__( 'Search Form', 'woolentor' ),
204
+ 'type' => Controls_Manager::SWITCHER,
205
+ 'default'=>'yes',
206
+ ]
207
+ );
208
+
209
+ $this->add_control(
210
+ 'redirect_form_url',
211
+ [
212
+ 'label' => esc_html__( 'Redirect Custom URL', 'woolentor' ),
213
+ 'type' => Controls_Manager::TEXT,
214
+ 'placeholder' => get_home_url( null, 'custom-search-page' ),
215
+ 'label_block'=>true,
216
+ 'condition' => [
217
+ 'show_search_form' => 'yes'
218
+ ],
219
+ ]
220
+ );
221
+
222
+ $this->add_control(
223
+ 'show_filter_label',
224
+ [
225
+ 'label' => esc_html__( 'Show Filter Label', 'woolentor' ),
226
+ 'type' => Controls_Manager::SWITCHER,
227
+ ]
228
+ );
229
+
230
+ $this->add_control(
231
+ 'show_filter_btton',
232
+ [
233
+ 'label' => esc_html__( 'Show Filter Button', 'woolentor' ),
234
+ 'type' => Controls_Manager::SWITCHER,
235
+ 'default'=>'yes',
236
+ ]
237
+ );
238
+
239
+ $this->add_control(
240
+ 'form_field_placeholder',
241
+ [
242
+ 'label' => esc_html__( 'Search Form Placeholder', 'woolentor' ),
243
+ 'type' => Controls_Manager::TEXT,
244
+ 'default'=>esc_html__( 'Search Products...', 'woolentor' ),
245
+ 'separator'=>'before',
246
+ 'label_block' => true,
247
+ 'condition'=>[
248
+ 'show_search_form'=>'yes',
249
+ ]
250
+ ]
251
+ );
252
+
253
+ $this->add_control(
254
+ 'form_submit_button_icon',
255
+ [
256
+ 'label' => esc_html__( 'Search Button Icon', 'woolentor' ),
257
+ 'type' => Controls_Manager::ICONS,
258
+ 'default' => [
259
+ 'value' => 'fa fa-search',
260
+ 'library' => 'solid',
261
+ ],
262
+ 'fa4compatibility' => 'formsubmitbuttonicon',
263
+ 'condition'=>[
264
+ 'show_search_form'=>'yes',
265
+ ]
266
+ ]
267
+ );
268
+
269
+ $this->add_control(
270
+ 'filter_button_icon',
271
+ [
272
+ 'label' => esc_html__( 'Filter Button Icon', 'woolentor' ),
273
+ 'type' => Controls_Manager::ICONS,
274
+ 'default' => [
275
+ 'value' => 'fas fa-filter',
276
+ 'library' => 'solid',
277
+ ],
278
+ 'fa4compatibility' => 'filterbuttonicon',
279
+ 'condition'=>[
280
+ 'show_filter_btton'=>'yes',
281
+ ]
282
+ ]
283
+ );
284
+
285
+ $this->end_controls_section();
286
+
287
+ // Area Style Section
288
+ $this->start_controls_section(
289
+ 'wlproduct_filter_area_style',
290
+ [
291
+ 'label' => esc_html__( 'Area', 'woolentor' ),
292
+ 'tab' => Controls_Manager::TAB_STYLE,
293
+ ]
294
+ );
295
+
296
+ $this->add_group_control(
297
+ \Elementor\Group_Control_Border::get_type(),
298
+ [
299
+ 'name' => 'area_border',
300
+ 'label' => esc_html__( 'Border', 'woolentor' ),
301
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area',
302
+ ]
303
+ );
304
+
305
+ $this->add_responsive_control(
306
+ 'area_border_radius',
307
+ [
308
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
309
+ 'type' => Controls_Manager::DIMENSIONS,
310
+ 'size_units' => [ 'px', '%', 'em' ],
311
+ 'selectors' => [
312
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
313
+ ],
314
+ ]
315
+ );
316
+
317
+ $this->add_responsive_control(
318
+ 'area_padding',
319
+ [
320
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
321
+ 'type' => Controls_Manager::DIMENSIONS,
322
+ 'size_units' => [ 'px', '%', 'em' ],
323
+ 'selectors' => [
324
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
325
+ ],
326
+ ]
327
+ );
328
+
329
+ $this->add_responsive_control(
330
+ 'area_margin',
331
+ [
332
+ 'label' => esc_html__( 'Margin', 'woolentor' ),
333
+ 'type' => Controls_Manager::DIMENSIONS,
334
+ 'size_units' => [ 'px', '%', 'em' ],
335
+ 'selectors' => [
336
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
337
+ ],
338
+ ]
339
+ );
340
+
341
+ $this->add_group_control(
342
+ \Elementor\Group_Control_Background::get_type(),
343
+ [
344
+ 'name' => 'area_background',
345
+ 'label' => esc_html__( 'Background', 'woolentor' ),
346
+ 'types' => [ 'classic', 'gradient' ],
347
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area',
348
+ ]
349
+ );
350
+
351
+ $this->add_group_control(
352
+ \Elementor\Group_Control_Box_Shadow::get_type(),
353
+ [
354
+ 'name' => 'area_box_shadow',
355
+ 'label' => esc_html__( 'Box Shadow', 'woolentor' ),
356
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-heaer-box-area',
357
+ ]
358
+ );
359
+
360
+ $this->end_controls_section();
361
+
362
+ // Title Style Section
363
+ $this->start_controls_section(
364
+ 'wlproduct_filter_title_style',
365
+ [
366
+ 'label' => esc_html__( 'Title', 'woolentor' ),
367
+ 'tab' => Controls_Manager::TAB_STYLE,
368
+ 'condition'=>[
369
+ 'wl_filter_area_title!'=>''
370
+ ]
371
+ ]
372
+ );
373
+
374
+ $this->add_control(
375
+ 'title_color',
376
+ [
377
+ 'label' => esc_html__( 'Color', 'woolentor' ),
378
+ 'type' => Controls_Manager::COLOR,
379
+ 'selectors' => [
380
+ '{{WRAPPER}} h2.wl_hoz_filter_title' => 'color: {{VALUE}}',
381
+ ],
382
+ ]
383
+ );
384
+
385
+ $this->add_group_control(
386
+ \Elementor\Group_Control_Typography::get_type(),
387
+ [
388
+ 'name' => 'title_typography',
389
+ 'label' => esc_html__( 'Typography', 'woolentor' ),
390
+ 'selector' => '{{WRAPPER}} h2.wl_hoz_filter_title',
391
+ ]
392
+ );
393
+
394
+ $this->add_group_control(
395
+ \Elementor\Group_Control_Border::get_type(),
396
+ [
397
+ 'name' => 'title_border',
398
+ 'label' => esc_html__( 'Border', 'woolentor' ),
399
+ 'selector' => '{{WRAPPER}} h2.wl_hoz_filter_title',
400
+ ]
401
+ );
402
+
403
+ $this->add_responsive_control(
404
+ 'title_padding',
405
+ [
406
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
407
+ 'type' => Controls_Manager::DIMENSIONS,
408
+ 'size_units' => [ 'px', '%', 'em' ],
409
+ 'selectors' => [
410
+ '{{WRAPPER}} h2.wl_hoz_filter_title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
411
+ ],
412
+ ]
413
+ );
414
+
415
+ $this->add_responsive_control(
416
+ 'title_margin',
417
+ [
418
+ 'label' => esc_html__( 'Margin', 'woolentor' ),
419
+ 'type' => Controls_Manager::DIMENSIONS,
420
+ 'size_units' => [ 'px', '%', 'em' ],
421
+ 'selectors' => [
422
+ '{{WRAPPER}} h2.wl_hoz_filter_title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
423
+ ],
424
+ ]
425
+ );
426
+
427
+ $this->end_controls_section();
428
+
429
+ // Filter Label Style Section
430
+ $this->start_controls_section(
431
+ 'wlproduct_filter_label_style',
432
+ [
433
+ 'label' => esc_html__( 'Label', 'woolentor' ),
434
+ 'tab' => Controls_Manager::TAB_STYLE,
435
+ 'condition'=>[
436
+ 'show_filter_label'=>'yes'
437
+ ]
438
+ ]
439
+ );
440
+
441
+ $this->add_control(
442
+ 'filter_label_color',
443
+ [
444
+ 'label' => esc_html__( 'Color', 'woolentor' ),
445
+ 'type' => Controls_Manager::COLOR,
446
+ 'selectors' => [
447
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item label' => 'color: {{VALUE}}',
448
+ ],
449
+ ]
450
+ );
451
+
452
+ $this->add_group_control(
453
+ \Elementor\Group_Control_Typography::get_type(),
454
+ [
455
+ 'name' => 'filter_label_typography',
456
+ 'label' => esc_html__( 'Typography', 'woolentor' ),
457
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item label',
458
+ ]
459
+ );
460
+
461
+ $this->add_group_control(
462
+ \Elementor\Group_Control_Border::get_type(),
463
+ [
464
+ 'name' => 'filter_label_border',
465
+ 'label' => esc_html__( 'Border', 'woolentor' ),
466
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item label',
467
+ ]
468
+ );
469
+
470
+ $this->add_responsive_control(
471
+ 'filter_label_padding',
472
+ [
473
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
474
+ 'type' => Controls_Manager::DIMENSIONS,
475
+ 'size_units' => [ 'px', '%', 'em' ],
476
+ 'selectors' => [
477
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
478
+ ],
479
+ ]
480
+ );
481
+
482
+ $this->add_responsive_control(
483
+ 'filter_label_margin',
484
+ [
485
+ 'label' => esc_html__( 'Margin', 'woolentor' ),
486
+ 'type' => Controls_Manager::DIMENSIONS,
487
+ 'size_units' => [ 'px', '%', 'em' ],
488
+ 'selectors' => [
489
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap .woolentor-filter-single-item label' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
490
+ ],
491
+ ]
492
+ );
493
+
494
+ $this->end_controls_section();
495
+
496
+ // Search Form Style Section
497
+ $this->start_controls_section(
498
+ 'wlproduct_filter_search_form_style',
499
+ [
500
+ 'label' => esc_html__( 'Search Form', 'woolentor' ),
501
+ 'tab' => Controls_Manager::TAB_STYLE,
502
+ 'condition'=>[
503
+ 'show_search_form'=>'yes'
504
+ ]
505
+ ]
506
+ );
507
+
508
+ $this->add_control(
509
+ 'form_inputbox',
510
+ [
511
+ 'label' => esc_html__( 'Input Box', 'woolentor' ),
512
+ 'type' => Controls_Manager::HEADING,
513
+ 'separator' => 'after',
514
+ ]
515
+ );
516
+
517
+ $this->add_control(
518
+ 'inputbox_color',
519
+ [
520
+ 'label' => esc_html__( 'Color', 'woolentor' ),
521
+ 'type' => Controls_Manager::COLOR,
522
+ 'selectors' => [
523
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-box' => 'color: {{VALUE}}',
524
+ ],
525
+ ]
526
+ );
527
+
528
+ $this->add_group_control(
529
+ \Elementor\Group_Control_Background::get_type(),
530
+ [
531
+ 'name' => 'inputbox_background',
532
+ 'label' => esc_html__( 'Background', 'woolentor' ),
533
+ 'types' => [ 'classic', 'gradient' ],
534
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-box',
535
+ ]
536
+ );
537
+
538
+ $this->add_group_control(
539
+ \Elementor\Group_Control_Typography::get_type(),
540
+ [
541
+ 'name' => 'inputbox_typography',
542
+ 'label' => esc_html__( 'Typography', 'woolentor' ),
543
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-box',
544
+ ]
545
+ );
546
+
547
+ $this->add_group_control(
548
+ \Elementor\Group_Control_Border::get_type(),
549
+ [
550
+ 'name' => 'inputbox_border',
551
+ 'label' => esc_html__( 'Border', 'woolentor' ),
552
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-box',
553
+ ]
554
+ );
555
+
556
+ $this->add_responsive_control(
557
+ 'inputbox_border_radius',
558
+ [
559
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
560
+ 'type' => Controls_Manager::DIMENSIONS,
561
+ 'size_units' => [ 'px', '%', 'em' ],
562
+ 'selectors' => [
563
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-box' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
564
+ ],
565
+ ]
566
+ );
567
+
568
+ $this->add_responsive_control(
569
+ 'inputbox_padding',
570
+ [
571
+ 'label' => esc_html__( 'Padding', 'woolentor' ),
572
+ 'type' => Controls_Manager::DIMENSIONS,
573
+ 'size_units' => [ 'px', '%', 'em' ],
574
+ 'selectors' => [
575
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-box' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
576
+ ],
577
+ ]
578
+ );
579
+
580
+ $this->add_control(
581
+ 'form_submit_button',
582
+ [
583
+ 'label' => esc_html__( 'Submit Button', 'woolentor' ),
584
+ 'type' => Controls_Manager::HEADING,
585
+ 'separator' => 'before',
586
+ ]
587
+ );
588
+
589
+ $this->start_controls_tabs('submit_button_style_tabs');
590
+
591
+ // Button Normal Style
592
+ $this->start_controls_tab(
593
+ 'submit_button_style_normal_tab',
594
+ [
595
+ 'label' => esc_html__( 'Normal', 'woolentor' ),
596
+ ]
597
+ );
598
+
599
+ $this->add_control(
600
+ 'submit_button_color',
601
+ [
602
+ 'label' => esc_html__( 'Color', 'woolentor' ),
603
+ 'type' => Controls_Manager::COLOR,
604
+ 'selectors' => [
605
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-inner-btn' => 'color: {{VALUE}}',
606
+ ],
607
+ ]
608
+ );
609
+
610
+ $this->add_responsive_control(
611
+ 'submit_button_icon_size',
612
+ [
613
+ 'label' => esc_html__( 'Font Size', 'woolentor' ),
614
+ 'type' => Controls_Manager::SLIDER,
615
+ 'selectors' => [
616
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-inner-btn' => 'font-size: {{SIZE}}{{UNIT}};',
617
+ ],
618
+ ]
619
+ );
620
+
621
+ $this->end_controls_tab();
622
+
623
+ // Button Hover Style
624
+ $this->start_controls_tab(
625
+ 'submit_button_style_hover_tab',
626
+ [
627
+ 'label' => esc_html__( 'Hover', 'woolentor' ),
628
+ ]
629
+ );
630
+ $this->add_control(
631
+ 'submit_button_hover_color',
632
+ [
633
+ 'label' => esc_html__( 'Color', 'woolentor' ),
634
+ 'type' => Controls_Manager::COLOR,
635
+ 'selectors' => [
636
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-header-top-area .woolentor-search-input-box .input-inner-btn:hover' => 'color: {{VALUE}}',
637
+ ],
638
+ ]
639
+ );
640
+
641
+ $this->end_controls_tab();
642
+
643
+ $this->end_controls_tabs();
644
+
645
+ $this->end_controls_section();
646
+
647
+ // Filter Menu
648
+ $this->start_controls_section(
649
+ 'wlproduct_filter_menu_style',
650
+ [
651
+ 'label' => esc_html__( 'Filter Menu', 'woolentor' ),
652
+ 'tab' => Controls_Manager::TAB_STYLE,
653
+ ]
654
+ );
655
+
656
+ $this->add_control(
657
+ 'menu_label_placeholder_color',
658
+ [
659
+ 'label' => esc_html__( 'Placeholder Color', 'woolentor' ),
660
+ 'type' => Controls_Manager::COLOR,
661
+ 'selectors' => [
662
+ '{{WRAPPER}} .woolentor-filter-single-item .select2-container--default .select2-selection--single .select2-selection__placeholder' => 'color: {{VALUE}}',
663
+ '{{WRAPPER}} .woolentor-filter-single-item .select2-container .select2-search--inline .select2-search__field::-webkit-input-placeholder' => 'color: {{VALUE}};opacity:1;',
664
+ '{{WRAPPER}} .woolentor-filter-single-item .select2-container .select2-search--inline .select2-search__field::-moz-placeholder' => 'color: {{VALUE}};opacity:1;',
665
+ '{{WRAPPER}} .woolentor-filter-single-item .select2-container .select2-search--inline .select2-search__field:-ms-input-placeholder' => 'color: {{VALUE}};opacity:1;',
666
+ ],
667
+ ]
668
+ );
669
+
670
+ $this->add_group_control(
671
+ \Elementor\Group_Control_Border::get_type(),
672
+ [
673
+ 'name' => 'menu_label_border',
674
+ 'label' => esc_html__( 'Border', 'woolentor' ),
675
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .select2-container .select2-selection--single,{{WRAPPER}} .woolentor-horizontal-filter-wrap .select2-container .select2-selection--multiple',
676
+ ]
677
+ );
678
+
679
+ $this->add_responsive_control(
680
+ 'menu_label_border_radius',
681
+ [
682
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
683
+ 'type' => Controls_Manager::DIMENSIONS,
684
+ 'size_units' => [ 'px', '%', 'em' ],
685
+ 'selectors' => [
686
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .select2-container .select2-selection--single' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
687
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .select2-container .select2-selection--multiple' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
688
+ ],
689
+ ]
690
+ );
691
+
692
+ $this->add_control(
693
+ 'menu_label_color',
694
+ [
695
+ 'label' => esc_html__( 'Color', 'woolentor' ),
696
+ 'type' => Controls_Manager::COLOR,
697
+ 'selectors' => [
698
+ '{{WRAPPER}} .woolentor-select-drop .select2-results__option' => 'color: {{VALUE}}',
699
+ '{{WRAPPER}} .woolentor-select-drop .select2-results__option::before' => 'border-color: {{VALUE}}',
700
+ ],
701
+ ]
702
+ );
703
+
704
+ $this->add_control(
705
+ 'menu_label_hover_color',
706
+ [
707
+ 'label' => esc_html__( 'Hover Color', 'woolentor' ),
708
+ 'type' => Controls_Manager::COLOR,
709
+ 'selectors' => [
710
+ '{{WRAPPER}} .woolentor-select-drop .select2-container--default .select2-results__option--highlighted[aria-selected="true"]' => 'color: {{VALUE}}',
711
+ ],
712
+ ]
713
+ );
714
+
715
+ $this->add_group_control(
716
+ \Elementor\Group_Control_Background::get_type(),
717
+ [
718
+ 'name' => 'menu_label_hover_background',
719
+ 'label' => esc_html__( 'Background', 'woolentor' ),
720
+ 'types' => [ 'classic', 'gradient' ],
721
+ 'fields_options'=>[
722
+ 'background'=>[
723
+ 'label' => esc_html__( 'Hover Background', 'woolentor' ),
724
+ ],
725
+ ],
726
+ 'exclude'=>['image'],
727
+ 'selector' => '{{WRAPPER}} .woolentor-select-drop .select2-container--default .select2-results__option--highlighted[aria-selected="true"]',
728
+ ]
729
+ );
730
+
731
+ $this->add_responsive_control(
732
+ 'menu_alignment',
733
+ [
734
+ 'label' => esc_html__( 'Alignment', 'woolentor' ),
735
+ 'type' => Controls_Manager::CHOOSE,
736
+ 'options' => [
737
+ 'flex-start' => [
738
+ 'title' => esc_html__( 'Left', 'woolentor' ),
739
+ 'icon' => 'fa fa-align-left',
740
+ ],
741
+ 'center' => [
742
+ 'title' => esc_html__( 'Center', 'woolentor' ),
743
+ 'icon' => 'fa fa-align-center',
744
+ ],
745
+ 'flex-end' => [
746
+ 'title' => esc_html__( 'Right', 'woolentor' ),
747
+ 'icon' => 'fa fa-align-right',
748
+ ],
749
+ ],
750
+ 'selectors' => [
751
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-filter-field-wrap' => 'justify-content: {{VALUE}};',
752
+ ],
753
+ 'default' => 'center',
754
+ ]
755
+ );
756
+
757
+ $this->end_controls_section();
758
+
759
+ // Filter Button Style Section
760
+ $this->start_controls_section(
761
+ 'wlproduct_filter_button_style',
762
+ [
763
+ 'label' => esc_html__( 'Filter Button', 'woolentor' ),
764
+ 'tab' => Controls_Manager::TAB_STYLE,
765
+ 'condition'=>[
766
+ 'show_filter_btton'=>'yes'
767
+ ]
768
+ ]
769
+ );
770
+ $this->start_controls_tabs('filter_button_style_tabs');
771
+
772
+ // Button Normal Style
773
+ $this->start_controls_tab(
774
+ 'filter_button_style_normal_tab',
775
+ [
776
+ 'label' => esc_html__( 'Normal', 'woolentor' ),
777
+ ]
778
+ );
779
+
780
+ $this->add_control(
781
+ 'filter_button_color',
782
+ [
783
+ 'label' => esc_html__( 'Color', 'woolentor' ),
784
+ 'type' => Controls_Manager::COLOR,
785
+ 'selectors' => [
786
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-search-filter-custom .filter-icon' => 'color: {{VALUE}}',
787
+ ],
788
+ ]
789
+ );
790
+
791
+ $this->add_responsive_control(
792
+ 'filter_button_icon_size',
793
+ [
794
+ 'label' => esc_html__( 'Font Size', 'woolentor' ),
795
+ 'type' => Controls_Manager::SLIDER,
796
+ 'selectors' => [
797
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-search-filter-custom .filter-icon' => 'font-size: {{SIZE}}{{UNIT}};',
798
+ ],
799
+ ]
800
+ );
801
+
802
+ $this->add_group_control(
803
+ \Elementor\Group_Control_Background::get_type(),
804
+ [
805
+ 'name' => 'filter_button_background',
806
+ 'label' => esc_html__( 'Background', 'woolentor' ),
807
+ 'types' => [ 'classic', 'gradient' ],
808
+ 'exclude'=>['image'],
809
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-search-filter-custom .filter-icon',
810
+ ]
811
+ );
812
+
813
+ $this->end_controls_tab();
814
+
815
+ // Button Hover Style
816
+ $this->start_controls_tab(
817
+ 'filter_button_style_hover_tab',
818
+ [
819
+ 'label' => esc_html__( 'Hover', 'woolentor' ),
820
+ ]
821
+ );
822
+ $this->add_control(
823
+ 'filter_button_hover_color',
824
+ [
825
+ 'label' => esc_html__( 'Color', 'woolentor' ),
826
+ 'type' => Controls_Manager::COLOR,
827
+ 'selectors' => [
828
+ '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-search-filter-custom .filter-icon:hover' => 'color: {{VALUE}}',
829
+ ],
830
+ ]
831
+ );
832
+
833
+ $this->add_group_control(
834
+ \Elementor\Group_Control_Background::get_type(),
835
+ [
836
+ 'name' => 'filter_button_hover_background',
837
+ 'label' => esc_html__( 'Background', 'woolentor' ),
838
+ 'types' => [ 'classic', 'gradient' ],
839
+ 'exclude'=>['image'],
840
+ 'selector' => '{{WRAPPER}} .woolentor-horizontal-filter-wrap .woolentor-search-filter-custom .filter-icon:hover',
841
+ ]
842
+ );
843
+
844
+
845
+ $this->end_controls_tab();
846
+
847
+ $this->end_controls_tabs();
848
+
849
+ $this->end_controls_section();
850
+
851
+
852
+ }
853
+
854
+
855
+ protected function render( $instance = [] ) {
856
+ $settings = $this->get_settings_for_display();
857
+ $id = $this->get_id();
858
+ $currency_symbol = get_woocommerce_currency_symbol();
859
+
860
+ $filter_list = $settings['wl_filter_list'];
861
+
862
+
863
+ global $wp;
864
+ if ( '' == get_option('permalink_structure' ) ) {
865
+ $current_url = remove_query_arg(array('page', 'paged'), add_query_arg($wp->query_string, '', home_url($wp->request)));
866
+ } else {
867
+ $current_url = preg_replace('%\/page/[0-9]+%', '', home_url(trailingslashit($wp->request)));
868
+ }
869
+
870
+ if( !empty( $settings['form_submit_button_icon']['value'] ) ){
871
+ $submit_btton_icon = woolentor_render_icon( $settings, 'form_submit_button_icon', 'formsubmitbuttonicon' );
872
+ }else{
873
+ $submit_btton_icon = '<i class="fa fa-search"></i>';
874
+ }
875
+
876
+ if( !empty( $settings['filter_button_icon']['value'] ) ){
877
+ $filter_btton_icon = woolentor_render_icon( $settings, 'filter_button_icon', 'filterbuttonicon' );
878
+ }else{
879
+ $filter_btton_icon = '<i class="fas fa-filter"></i>';
880
+ }
881
+
882
+ ?>
883
+ <div class="woolentor-horizontal-filter-wrap">
884
+ <!-- Heaer Box Area Start -->
885
+ <div class="woolentor-heaer-box-area">
886
+
887
+ <div class="woolentor-filter-header-top-area">
888
+ <div class="woolentor-header-left-side">
889
+ <?php
890
+ if( !empty( $settings['wl_filter_area_title'] ) ){
891
+ echo '<h2 class="wl_hoz_filter_title">'.$settings['wl_filter_area_title'].'</h2>';
892
+ }
893
+ ?>
894
+ </div>
895
+ <div class="woolentor-header-right-side">
896
+ <?php
897
+ if( $settings['show_search_form'] === 'yes' ):
898
+
899
+ if ( isset( $_GET['q'] ) || isset( $_GET['s'] ) ) {
900
+ $s = !empty( $_GET['s'] ) ? $_GET['s'] : '';
901
+ $q = !empty( $_GET['q'] ) ? $_GET['q'] : '';
902
+ $search_value = !empty( $q ) ? $q : $s;
903
+ }else{
904
+ $search_value = '';
905
+ }
906
+
907
+ if( !empty( $settings['redirect_form_url'] ) ){
908
+ $form_action = $settings['redirect_form_url'];
909
+ }else{
910
+ $form_action = $current_url;
911
+ }
912
+
913
+ ?>
914
+ <form class="woolentor-header-search-form" role="search" method="get" action="<?php echo esc_url( $form_action ); ?>">
915
+ <div class="woolentor-search-input-box">
916
+ <input class="input-box" type="search" placeholder="<?php echo esc_attr_x( $settings['form_field_placeholder'], 'placeholder', 'woolentor' ); ?>" value="<?php echo esc_attr( $search_value ); ?>" name="q" title="<?php echo esc_attr_x( 'Search for:', 'label', 'woolentor' ); ?>" />
917
+ <button class="input-inner-btn" type="submit"><?php echo $submit_btton_icon; ?></button>
918
+ </div>
919
+ </form>
920
+ <?php endif; ?>
921
+
922
+ <?php if( $settings['show_filter_btton'] == 'yes' ): ?>
923
+ <div class="woolentor-search-filter-custom">
924
+ <a href="#" id="filter-toggle-<?php echo $id; ?>" class="filter-icon"><?php echo $filter_btton_icon; ?></a>
925
+ </div>
926
+ <?php endif; ?>
927
+ </div>
928
+ </div>
929
+
930
+ <div id="filter-item-<?php echo $id; ?>" class="filter-item">
931
+ <div class="woolentor-filter-field-area">
932
+ <div class="woolentor-filter-field-wrap">
933
+ <?php
934
+ if( isset( $filter_list ) ){
935
+ foreach ( $filter_list as $filter_key => $filter_item ) {
936
+
937
+ $filter_label = '';
938
+ if( 'yes' === $settings['show_filter_label'] ){
939
+ $filter_label = '<label for="woolentor-field-for-'.$filter_item['_id'].'">'.$filter_item['wl_filter_title'].'</label>';
940
+ }
941
+
942
+ if( 'sort_by' === $filter_item['wl_filter_type'] ){
943
+ $wlsort = ( isset( $_GET['wlsort'] ) && !empty( $_GET['wlsort'] ) ) ? $_GET['wlsort'] : '';
944
+ ?>
945
+ <div class="woolentor-filter-single-item woolentor-states-input-auto elementor-repeater-item-<?php echo $filter_item['_id']; ?>">
946
+ <?php echo $filter_label; ?>
947
+ <select name="wl_sort" id="woolentor-field-for-<?php echo $filter_item['_id']; ?>" class="woolentor-onchange-single-item woolentor-single-select-<?php echo $id; ?>" data-minimum-results-for-search="Infinity" data-placeholder="<?php echo $filter_item['wl_filter_placeholder']; ?>">
948
+ <?php
949
+ if( !empty( $filter_item['wl_filter_placeholder'] ) ){echo '<option></option>';}
950
+ ?>
951
+ <option value="&wlsort=ASC" <?php selected( 'ASC', $wlsort, true ); ?> ><?php echo esc_html__( 'ASC', 'woolentor' ); ?></option>
952
+ <option value="&wlsort=DESC" <?php selected( 'DESC', $wlsort, true ); ?> ><?php echo esc_html__( 'DESC', 'woolentor' ); ?></option>
953
+ </select>
954
+ </div>
955
+ <?php
956
+
957
+ }elseif( 'order_by' === $filter_item['wl_filter_type'] ){
958
+ $wlorder_by = ( isset( $_GET['wlorder_by'] ) && !empty( $_GET['wlorder_by'] ) ) ? $_GET['wlorder_by'] : '';
959
+ ?>
960
+ <div class="woolentor-filter-single-item woolentor-states-input-auto elementor-repeater-item-<?php echo $filter_item['_id']; ?>">
961
+ <?php echo $filter_label; ?>
962
+ <select name="wl_order_by_sort" id="woolentor-field-for-<?php echo $filter_item['_id']; ?>" class="woolentor-onchange-single-item woolentor-single-select-<?php echo $id; ?>" data-minimum-results-for-search="Infinity" data-placeholder="<?php echo $filter_item['wl_filter_placeholder']; ?>">
963
+ <?php
964
+ if( !empty( $filter_item['wl_filter_placeholder'] ) ){echo '<option></option>';}
965
+
966
+ foreach ( woolentor_order_by_opts() as $key => $opt_data ) {
967
+ echo '<option value="&wlorder_by='.esc_attr( $key ).'" '.selected( $key, $wlorder_by, false ).'>'.esc_html__( $opt_data, 'woolentor' ).'</option>';
968
+ }
969
+ ?>
970
+ </select>
971
+ </div>
972
+ <?php
973
+
974
+ }elseif( 'price_by' === $filter_item['wl_filter_type'] ){
975
+
976
+ $cmin_price = ( isset( $_GET['min_price'] ) && !empty( $_GET['min_price'] ) ) ? $_GET['min_price'] : '';
977
+ $cmax_price = ( isset( $_GET['max_price'] ) && !empty( $_GET['max_price'] ) ) ? $_GET['max_price'] : '';
978
+
979
+ $current_price = [ $cmin_price, $cmax_price ];
980
+
981
+ $psl_placeholder = '';
982
+ if( empty( $cmin_price ) ){
983
+ $psl_placeholder = 'data-placeholder="'.esc_attr( !empty( $filter_item['wl_filter_placeholder'] ) ? $filter_item['wl_filter_placeholder'] : '' ).'"';
984
+ }
985
+
986
+ $price_range_list = $settings['price_range_list'];
987
+
988
+ if( isset( $price_range_list ) ):
989
+ ?>
990
+ <div class="woolentor-filter-single-item woolentor-states-input-auto elementor-repeater-item-<?php echo $filter_item['_id']; ?>">
991
+ <?php echo $filter_label; ?>
992
+ <select id="woolentor-field-for-<?php echo $filter_item['_id']; ?>" class="woolentor-onchange-single-item woolentor-price-filter woolentor-single-select-<?php echo $id; ?>" data-minimum-results-for-search="Infinity" <?php echo $psl_placeholder; ?> >
993
+ <?php
994
+ if( !empty( $filter_item['wl_filter_placeholder'] ) && empty( $cmin_price ) ){echo '<option></option>';}
995
+
996
+ foreach ( $price_range_list as $key => $price_range ) {
997
+
998
+ $individual = [$price_range['min_price'], $price_range['max_price'] ];
999
+ $diff = array_diff( $individual, $current_price );
1000
+
1001
+ $pselected = 0;
1002
+ if( count( $diff ) == 0 ) {
1003
+ $pselected = 1;
1004
+ }
1005
+
1006
+ $generate_price = sprintf('%s%s %s %s%s',$currency_symbol,$price_range['min_price'], $price_range['price_seprator'],$currency_symbol,$price_range['max_price'] );
1007
+
1008
+ echo sprintf("<option value='%s' data-min_price='&min_price=%s' data-max_price='&max_price=%s' %s>%s</option>", $key, $price_range['min_price'], $price_range['max_price'], selected( $pselected, 1, false ), $generate_price );
1009
+ }
1010
+
1011
+ ?>
1012
+ </select>
1013
+ </div>
1014
+ <?php
1015
+ endif;
1016
+
1017
+ }else{
1018
+ $terms = get_terms( $filter_item['wl_filter_type'] );
1019
+ if ( !empty( $terms ) ){
1020
+
1021
+ $taxonomy_data = get_taxonomy( $filter_item['wl_filter_type'] );
1022
+
1023
+ $filter_name = $filter_item['wl_filter_type'];
1024
+ $str = substr( $filter_item['wl_filter_type'], 0, 3 );
1025
+ if( 'pa_' === $str ){
1026
+ $filter_name = 'filter_' . wc_attribute_taxonomy_slug( $filter_item['wl_filter_type'] );
1027
+ }
1028
+
1029
+ $selected_taxonomies = ( isset( $_GET[$filter_name] ) && !empty( $_GET[$filter_name] ) ) ? explode( ',', $_GET[$filter_name] ) : array();
1030
+
1031
+ $sl_placeholder = '';
1032
+ if( count( $selected_taxonomies ) != 1 ){
1033
+ $sl_placeholder = 'data-placeholder="'.esc_attr( !empty( $filter_item['wl_filter_placeholder'] ) ? $filter_item['wl_filter_placeholder'] : $taxonomy_data->labels->singular_name ).'"';
1034
+ }
1035
+
1036
+ echo '<div class="woolentor-filter-single-item woolentor-states-input-auto elementor-repeater-item-'.$filter_item['_id'].'">';
1037
+ echo $filter_label;
1038
+ echo '<select name="wltaxonomies['.$filter_item['wl_filter_type'].'][]" class="woolentor-onchange-multiple-item woolentor-multiple-select-'.$id.'" '.$sl_placeholder.' multiple="multiple">';
1039
+
1040
+ foreach ( $terms as $term ){
1041
+ $link = $this->generate_term_link( $filter_item['wl_filter_type'], $term, null );
1042
+
1043
+ $selected = 0;
1044
+ if( in_array( $term->slug, $selected_taxonomies ) ) {
1045
+ $selected = 1;
1046
+ }
1047
+
1048
+ echo sprintf('<option value="%1$s" %3$s>%2$s</option>', $link['link'], $term->name, selected( $selected, 1, false ) );
1049
+ }
1050
+
1051
+ echo '</select></div>';
1052
+
1053
+ }
1054
+
1055
+ }
1056
+
1057
+ }
1058
+ }
1059
+ ?>
1060
+ </div>
1061
+ <div class="woolentor-select-drop woolentor-single-select-drop-<?php echo $id; ?>"></div>
1062
+ <div class="woolentor-select-drop woolentor-multiple-select-drop-<?php echo $id; ?>"></div>
1063
+ </div>
1064
+ </div>
1065
+ </div>
1066
+ <!-- Heaer Box Area End -->
1067
+ </div>
1068
+
1069
+ <script type="text/javascript">
1070
+ ;jQuery(document).ready(function($) {
1071
+ 'use strict';
1072
+
1073
+ var id = '<?php echo $id; ?>';
1074
+
1075
+ // Localize Text
1076
+ var selectTxt = '<?php echo esc_html__( 'select', 'woolentor' ); ?>',
1077
+ ofTxt = '<?php echo esc_html__( 'of', 'woolentor' ); ?>';
1078
+
1079
+ // Filter Toggle
1080
+ $('#filter-toggle-'+id).on('click', function(e){
1081
+ e.preventDefault()
1082
+ $('#filter-item-'+id).slideToggle()
1083
+ })
1084
+
1085
+
1086
+ $('.woolentor-single-select-'+id).select2({
1087
+ dropdownParent: $('.woolentor-single-select-drop-'+id),
1088
+ });
1089
+ $('.woolentor-multiple-select-'+id).select2({
1090
+ // closeOnSelect : false,
1091
+ allowHtml: true,
1092
+ allowClear: true,
1093
+ dropdownParent: $('.woolentor-multiple-select-drop-'+id),
1094
+ });
1095
+
1096
+ $('.woolentor-filter-single-item select').on('change', function (e) {
1097
+ var output = $(this).siblings('span.select2').find('ul');
1098
+ var total = e.currentTarget.length;
1099
+ var count = output.find('li').length - 0;
1100
+ if(count >= 3) {
1101
+ output.html("<li>"+count+" "+ofTxt+" "+total+" "+selectTxt+"</li>")
1102
+ }
1103
+ });
1104
+
1105
+ // Filter product
1106
+ var current_url = '<?php echo $current_url.'?wlfilter=1'; ?>';
1107
+ $('.woolentor-filter-single-item select.woolentor-onchange-single-item').on('change', function () {
1108
+ var sort_key = $(this).val();
1109
+ if ( sort_key ) {
1110
+ window.location = current_url + sort_key;
1111
+ }
1112
+ return false;
1113
+ });
1114
+
1115
+ // Price Filter
1116
+ $('.woolentor-filter-single-item select.woolentor-price-filter').on( 'change', function(){
1117
+ var selected = $(this).find('option:selected'),
1118
+ min_price = selected.data('min_price'),
1119
+ max_price = selected.data('max_price'),
1120
+ location = min_price + max_price;
1121
+
1122
+ if ( location ) {
1123
+ window.location = current_url + location;
1124
+ }
1125
+
1126
+ });
1127
+
1128
+ // Texanomies Filter
1129
+ var previouslySelected = [];
1130
+ $('.woolentor-filter-single-item select.woolentor-onchange-multiple-item').on('change', function () {
1131
+ // Get newly selected elements
1132
+ var currentlySelected = $(this).val();
1133
+ if( currentlySelected != null ){
1134
+
1135
+ if( currentlySelected.length == 0 ){
1136
+ window.location = current_url;
1137
+ }else{
1138
+ var newSelections = currentlySelected.filter(function (element) {
1139
+ return previouslySelected.indexOf(element) == -1;
1140
+ });
1141
+ previouslySelected = currentlySelected;
1142
+ if (newSelections.length) {
1143
+ // If there are multiple new selections, we'll take the last in the list
1144
+ var lastSelected = newSelections.reverse()[0];
1145
+ }
1146
+ if ( lastSelected ) {
1147
+ window.location = lastSelected;
1148
+ }
1149
+ }
1150
+
1151
+ }else{
1152
+ window.location = current_url;
1153
+ }
1154
+ return false;
1155
+ });
1156
+
1157
+
1158
+ });
1159
+ </script>
1160
+ <?php
1161
+ }
1162
+
1163
+ protected function generate_term_link( $filter_type, $term, $current_url ) {
1164
+
1165
+ $filter_name = $filter_type;
1166
+ $str = substr( $filter_type, 0, 3 );
1167
+ if( 'pa_' === $str ){
1168
+ $filter_name = 'filter_' . wc_attribute_taxonomy_slug( $filter_type );
1169
+ }
1170
+
1171
+ $current_filter = isset( $_GET[ $filter_name ] ) ? explode( ',', wc_clean( wp_unslash( $_GET[ $filter_name ] ) ) ) : array();
1172
+ $option_is_set = in_array( $term->slug, $current_filter, true );
1173
+
1174
+ // Generate choosen Class
1175
+ if( in_array( $term->slug, $current_filter ) ){
1176
+ $active_class = 'wlchosen';
1177
+ }else{
1178
+ $active_class = '';
1179
+ }
1180
+
1181
+ // Term Link
1182
+ $current_filter = array_map( 'sanitize_title', $current_filter );
1183
+ if ( ! in_array( $term->slug, $current_filter, true ) ) {
1184
+ $current_filter[] = $term->slug;
1185
+ }
1186
+ $link = remove_query_arg( $filter_name, $current_url );
1187
+
1188
+ foreach ( $current_filter as $key => $value ) {
1189
+ if ( $option_is_set && $value === $term->slug ) {
1190
+ unset( $current_filter[ $key ] );
1191
+ }
1192
+ }
1193
+
1194
+ if ( ! empty( $current_filter ) ) {
1195
+ asort( $current_filter );
1196
+ $link = add_query_arg( 'wlfilter', '1', $link );
1197
+ $link = add_query_arg( $filter_name, implode( ',', $current_filter ), $link );
1198
+
1199
+ $link = str_replace( '%2C', ',', $link );
1200
+ }
1201
+ return [
1202
+ 'link' => $link,
1203
+ 'class' => $active_class,
1204
+ ];
1205
+
1206
+ }
1207
+
1208
+
1209
+ }
1210
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Product_Horizontal_Filter_Element() );
includes/addons/wl_product_video_gallery.php CHANGED
@@ -43,7 +43,7 @@ class WL_Product_Video_Gallery_ELement extends Widget_Base {
43
  $this->start_controls_section(
44
  'product_thumbnails_content',
45
  array(
46
- 'label' => __( 'Video Thumbanails', 'woolentor' ),
47
  'tab' => Controls_Manager::TAB_CONTENT,
48
  )
49
  );
43
  $this->start_controls_section(
44
  'product_thumbnails_content',
45
  array(
46
+ 'label' => __( 'Video Thumbnails', 'woolentor' ),
47
  'tab' => Controls_Manager::TAB_CONTENT,
48
  )
49
  );
includes/addons/wl_store_features.php ADDED
@@ -0,0 +1,578 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_Store_Features_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wl-store-feature';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: Store Feature', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-checkbox';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return array( 'woolentor-addons' );
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return [ 'woolentor-store-feature' ];
26
+ }
27
+
28
+ public function get_keywords(){
29
+ return ['feature','store'];
30
+ }
31
+
32
+ protected function _register_controls() {
33
+
34
+ $this->start_controls_section(
35
+ 'section_content',
36
+ [
37
+ 'label' => esc_html__( 'Store Feature', 'woolentor' ),
38
+ ]
39
+ );
40
+
41
+ $this->add_control(
42
+ 'feature_style',
43
+ [
44
+ 'label' => __( 'Layout', 'woolentor' ),
45
+ 'type' => Controls_Manager::SELECT,
46
+ 'default' => '1',
47
+ 'options' => [
48
+ '1' => __( 'Layout One', 'woolentor' ),
49
+ '2' => __( 'Layout Two', 'woolentor' ),
50
+ '3' => __( 'Layout Three', 'woolentor' ),
51
+ '4' => __( 'Layout Four', 'woolentor' ),
52
+ '5' => __( 'Layout Five', 'woolentor' ),
53
+ ],
54
+ ]
55
+ );
56
+
57
+ $this->add_control(
58
+ 'icon_type',
59
+ [
60
+ 'label' => esc_html__( 'Icon Type', 'woolentor' ),
61
+ 'type' => Controls_Manager::CHOOSE,
62
+ 'options' => [
63
+ 'icon' => [
64
+ 'title' => esc_html__( 'Icon', 'woolentor' ),
65
+ 'icon' => 'eicon-editor-italic',
66
+ ],
67
+ 'image' => [
68
+ 'title' => esc_html__( 'Image', 'woolentor' ),
69
+ 'icon' => 'eicon-image',
70
+ ],
71
+ ],
72
+ 'default' => 'image',
73
+ 'toggle' => false,
74
+ ]
75
+ );
76
+
77
+ $this->add_control(
78
+ 'feature_icon',
79
+ [
80
+ 'label' => esc_html__( 'Icon', 'woolentor' ),
81
+ 'type' => Controls_Manager::ICONS,
82
+ 'label_block' => true,
83
+ 'fa4compatibility' => 'featureicon',
84
+ 'condition'=>[
85
+ 'icon_type'=>'icon'
86
+ ],
87
+ ]
88
+ );
89
+
90
+ $this->add_control(
91
+ 'feature_image',
92
+ [
93
+ 'label' => esc_html__( 'Image','woolentor' ),
94
+ 'type' => Controls_Manager::MEDIA,
95
+ 'condition'=>[
96
+ 'icon_type'=>'image'
97
+ ],
98
+ ]
99
+ );
100
+
101
+ $this->add_control(
102
+ 'feature_title',
103
+ [
104
+ 'label' => esc_html__( 'Title', 'woolentor' ),
105
+ 'type' => Controls_Manager::TEXT,
106
+ 'default'=>esc_html__( 'Free shipping', 'woolentor' ),
107
+ 'label_block'=>true,
108
+ ]
109
+ );
110
+
111
+ $this->add_control(
112
+ 'feature_sub_title',
113
+ [
114
+ 'label' => esc_html__( 'Sub Title', 'woolentor' ),
115
+ 'type' => Controls_Manager::TEXT,
116
+ 'default'=>esc_html__( 'Start from $100', 'woolentor' ),
117
+ 'label_block'=>true,
118
+ ]
119
+ );
120
+
121
+ $this->end_controls_section();
122
+
123
+ // Area Style Section
124
+ $this->start_controls_section(
125
+ 'feature_area_style',
126
+ [
127
+ 'label' => esc_html__( 'Area', 'woolentor' ),
128
+ 'tab' => Controls_Manager::TAB_STYLE,
129
+ ]
130
+ );
131
+
132
+ $this->add_responsive_control(
133
+ 'feature_area_align',
134
+ [
135
+ 'label' => __( 'Alignment', 'woolentor' ),
136
+ 'type' => Controls_Manager::CHOOSE,
137
+ 'options' => [
138
+ 'left' => [
139
+ 'title' => __( 'Left', 'woolentor' ),
140
+ 'icon' => 'fa fa-align-left',
141
+ ],
142
+ 'center' => [
143
+ 'title' => __( 'Center', 'woolentor' ),
144
+ 'icon' => 'fa fa-align-center',
145
+ ],
146
+ 'right' => [
147
+ 'title' => __( 'Right', 'woolentor' ),
148
+ 'icon' => 'fa fa-align-right',
149
+ ],
150
+ 'justify' => [
151
+ 'title' => __( 'Justified', 'woolentor' ),
152
+ 'icon' => 'fa fa-align-justify',
153
+ ],
154
+ ],
155
+ 'selectors' => [
156
+ '{{WRAPPER}} .ht-feature-wrap' => 'text-align: {{VALUE}};',
157
+ '{{WRAPPER}} .ht-feature-style-2 .ht-feature-content' => 'text-align: {{VALUE}};',
158
+ ],
159
+ 'default' => 'center',
160
+ ]
161
+ );
162
+
163
+ $this->add_group_control(
164
+ Group_Control_Border::get_type(),
165
+ [
166
+ 'name' => 'feature_area_border',
167
+ 'label' => __( 'Border', 'woolentor' ),
168
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap .ht-feature-inner',
169
+ ]
170
+ );
171
+
172
+ $this->add_group_control(
173
+ Group_Control_Border::get_type(),
174
+ [
175
+ 'name' => 'feature_area_hover_border',
176
+ 'label' => __( 'Hover Border', 'woolentor' ),
177
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap:hover .ht-feature-inner',
178
+ 'fields_options'=>[
179
+ 'border'=>[
180
+ 'label' => __( 'Hover Border Type', 'woolentor' ),
181
+ ],
182
+ ],
183
+ ]
184
+ );
185
+
186
+ $this->add_responsive_control(
187
+ 'feature_area_padding',
188
+ [
189
+ 'label' => __( 'Area Padding', 'woolentor' ),
190
+ 'type' => Controls_Manager::DIMENSIONS,
191
+ 'size_units' => [ 'px', '%', 'em' ],
192
+ 'selectors' => [
193
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
194
+ ],
195
+ 'separator'=>'before',
196
+ ]
197
+ );
198
+
199
+ $this->add_responsive_control(
200
+ 'feature_area_margin',
201
+ [
202
+ 'label' => __( 'Area Margin', 'woolentor' ),
203
+ 'type' => Controls_Manager::DIMENSIONS,
204
+ 'size_units' => [ 'px', '%', 'em' ],
205
+ 'selectors' => [
206
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-inner' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
207
+ ],
208
+ ]
209
+ );
210
+
211
+ $this->add_group_control(
212
+ \Elementor\Group_Control_Background::get_type(),
213
+ [
214
+ 'name' => 'feature_area_background',
215
+ 'label' => __( 'Background', 'woolentor' ),
216
+ 'types' => [ 'classic', 'gradient' ],
217
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap',
218
+ ]
219
+ );
220
+
221
+ $this->add_group_control(
222
+ Group_Control_Box_Shadow::get_type(),
223
+ [
224
+ 'name' => 'area_box_shadow',
225
+ 'label' => __( 'Box Shadow', 'woolentor' ),
226
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap',
227
+ ]
228
+ );
229
+
230
+ $this->end_controls_section();
231
+
232
+ /* Image Style */
233
+ $this->start_controls_section(
234
+ 'feature_icon_image_style',
235
+ [
236
+ 'label' => esc_html__( 'Image/Icon', 'woolentor' ),
237
+ 'tab' => Controls_Manager::TAB_STYLE,
238
+ 'conditions' => [
239
+ 'relation' => 'or',
240
+ 'terms' => [
241
+ [
242
+ 'name' => 'feature_image[id]',
243
+ 'operator' => '!=',
244
+ 'value' => '',
245
+ ],
246
+ [
247
+ 'name' => 'feature_icon[value]',
248
+ 'operator' => '!=',
249
+ 'value' => '',
250
+ ],
251
+ ],
252
+ ],
253
+
254
+ ]
255
+ );
256
+
257
+ $this->add_control(
258
+ 'icon_color',
259
+ [
260
+ 'label' => __( 'Icon Color', 'woolentor' ),
261
+ 'type' => Controls_Manager::COLOR,
262
+ 'selectors' => [
263
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-img i' => 'color: {{VALUE}}',
264
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-img svg *' => 'color: {{VALUE}}',
265
+ ],
266
+ 'condition'=>[
267
+ 'feature_icon[value]!'=>'',
268
+ ]
269
+ ]
270
+ );
271
+
272
+ $this->add_control(
273
+ 'icon_hover_color',
274
+ [
275
+ 'label' => __( 'Icon Hover Color', 'woolentor' ),
276
+ 'type' => Controls_Manager::COLOR,
277
+ 'selectors' => [
278
+ '{{WRAPPER}} .ht-feature-wrap:hover .ht-feature-img i' => 'color: {{VALUE}}',
279
+ '{{WRAPPER}} .ht-feature-wrap:hover .ht-feature-img svg *' => 'color: {{VALUE}}',
280
+ ],
281
+ 'condition'=>[
282
+ 'feature_icon[value]!'=>'',
283
+ ]
284
+ ]
285
+ );
286
+
287
+ $this->add_responsive_control(
288
+ 'icon_size',
289
+ [
290
+ 'label' => __( 'Icon Size', 'woolentor' ),
291
+ 'type' => Controls_Manager::SLIDER,
292
+ 'size_units' => [ 'px', '%' ],
293
+ 'selectors' => [
294
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-img i' => 'font-size: {{SIZE}}{{UNIT}};',
295
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-img svg' => 'width: {{SIZE}}{{UNIT}};height: {{SIZE}}{{UNIT}};',
296
+ ],
297
+ 'condition'=>[
298
+ 'feature_icon[value]!'=>'',
299
+ ]
300
+ ]
301
+ );
302
+
303
+
304
+ $this->start_controls_tabs('image_icon_style_tabs');
305
+
306
+ $this->start_controls_tab(
307
+ 'image_icon_style_normal_tab',
308
+ [
309
+ 'label' => __( 'Normal', 'woolentor' ),
310
+ ]
311
+ );
312
+
313
+ $this->add_group_control(
314
+ Group_Control_Background::get_type(),
315
+ [
316
+ 'name' => 'feature_icon_background',
317
+ 'label' => __( 'Background', 'woolentor' ),
318
+ 'types' => [ 'classic', 'gradient' ],
319
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap .ht-feature-img',
320
+ ]
321
+ );
322
+
323
+ $this->add_group_control(
324
+ Group_Control_Border::get_type(),
325
+ [
326
+ 'name' => 'feature_icon_border',
327
+ 'label' => __( 'Border', 'woolentor' ),
328
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap .ht-feature-img',
329
+ ]
330
+ );
331
+
332
+ $this->add_responsive_control(
333
+ 'feature_icon_border_radius',
334
+ [
335
+ 'label' => __( 'Border Radius', 'woolentor' ),
336
+ 'type' => Controls_Manager::DIMENSIONS,
337
+ 'size_units' => [ 'px', '%', 'em' ],
338
+ 'selectors' => [
339
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
340
+ ],
341
+ ]
342
+ );
343
+
344
+ $this->add_responsive_control(
345
+ 'feature_icon_padding',
346
+ [
347
+ 'label' => __( 'Padding', 'woolentor' ),
348
+ 'type' => Controls_Manager::DIMENSIONS,
349
+ 'size_units' => [ 'px', '%', 'em' ],
350
+ 'selectors' => [
351
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
352
+ ],
353
+ 'separator'=>'before',
354
+ ]
355
+ );
356
+
357
+ $this->add_responsive_control(
358
+ 'feature_icon_margin',
359
+ [
360
+ 'label' => __( 'Margin', 'woolentor' ),
361
+ 'type' => Controls_Manager::DIMENSIONS,
362
+ 'size_units' => [ 'px', '%', 'em' ],
363
+ 'selectors' => [
364
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-img' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
365
+ ],
366
+ ]
367
+ );
368
+
369
+ $this->end_controls_tab();
370
+
371
+ $this->start_controls_tab(
372
+ 'image_icon_style_hover_tab',
373
+ [
374
+ 'label' => __( 'Hover', 'woolentor' ),
375
+ ]
376
+ );
377
+ $this->add_group_control(
378
+ Group_Control_Background::get_type(),
379
+ [
380
+ 'name' => 'feature_icon_hover_background',
381
+ 'label' => __( 'Background', 'woolentor' ),
382
+ 'types' => [ 'classic', 'gradient' ],
383
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap:hover .ht-feature-img',
384
+ ]
385
+ );
386
+
387
+ $this->add_group_control(
388
+ Group_Control_Border::get_type(),
389
+ [
390
+ 'name' => 'feature_icon_hover_border',
391
+ 'label' => __( 'Border', 'woolentor' ),
392
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap:hover .ht-feature-img',
393
+ ]
394
+ );
395
+
396
+ $this->end_controls_tab();
397
+
398
+ $this->end_controls_tabs();
399
+
400
+ $this->end_controls_section();
401
+
402
+ // Content area style
403
+ $this->start_controls_section(
404
+ 'feature_content_style',
405
+ [
406
+ 'label' => esc_html__( 'Content Area', 'woolentor' ),
407
+ 'tab' => Controls_Manager::TAB_STYLE,
408
+ ]
409
+ );
410
+
411
+ $this->add_group_control(
412
+ Group_Control_Border::get_type(),
413
+ [
414
+ 'name' => 'feature_content_area_border',
415
+ 'label' => __( 'Border', 'woolentor' ),
416
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap .ht-feature-content',
417
+ ]
418
+ );
419
+
420
+ $this->add_responsive_control(
421
+ 'feature_content_area_padding',
422
+ [
423
+ 'label' => __( 'Padding', 'woolentor' ),
424
+ 'type' => Controls_Manager::DIMENSIONS,
425
+ 'size_units' => [ 'px', '%', 'em' ],
426
+ 'selectors' => [
427
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
428
+ ],
429
+ 'separator'=>'before',
430
+ ]
431
+ );
432
+
433
+ $this->add_responsive_control(
434
+ 'feature_content_area_margin',
435
+ [
436
+ 'label' => __( 'Margin', 'woolentor' ),
437
+ 'type' => Controls_Manager::DIMENSIONS,
438
+ 'size_units' => [ 'px', '%', 'em' ],
439
+ 'selectors' => [
440
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-content' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
441
+ ],
442
+ ]
443
+ );
444
+
445
+ $this->end_controls_section();
446
+
447
+ // Title style
448
+ $this->start_controls_section(
449
+ 'feature_title_style',
450
+ [
451
+ 'label' => esc_html__( 'Title', 'woolentor' ),
452
+ 'tab' => Controls_Manager::TAB_STYLE,
453
+ 'condition'=>[
454
+ 'feature_title!'=>'',
455
+ ]
456
+ ]
457
+ );
458
+
459
+ $this->add_control(
460
+ 'feature_title_color',
461
+ [
462
+ 'label' => __( 'Color', 'woolentor' ),
463
+ 'type' => Controls_Manager::COLOR,
464
+ 'selectors' => [
465
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-content h4' => 'color: {{VALUE}}',
466
+ ],
467
+ ]
468
+ );
469
+
470
+ $this->add_group_control(
471
+ Group_Control_Typography::get_type(),
472
+ [
473
+ 'name' => 'feature_title_typography',
474
+ 'label' => __( 'Typography', 'woolentor' ),
475
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap .ht-feature-content h4',
476
+ ]
477
+ );
478
+
479
+ $this->add_responsive_control(
480
+ 'feature_title_margin',
481
+ [
482
+ 'label' => __( 'Margin', 'woolentor' ),
483
+ 'type' => Controls_Manager::DIMENSIONS,
484
+ 'size_units' => [ 'px', '%', 'em' ],
485
+ 'selectors' => [
486
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-content h4' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
487
+ ],
488
+ ]
489
+ );
490
+
491
+ $this->end_controls_section();
492
+
493
+ // SubTitle style
494
+ $this->start_controls_section(
495
+ 'feature_subtitle_style',
496
+ [
497
+ 'label' => esc_html__( 'Sub Title', 'woolentor' ),
498
+ 'tab' => Controls_Manager::TAB_STYLE,
499
+ 'condition'=>[
500
+ 'feature_sub_title!'=>'',
501
+ ]
502
+ ]
503
+ );
504
+
505
+ $this->add_control(
506
+ 'feature_sub_title_color',
507
+ [
508
+ 'label' => __( 'Color', 'woolentor' ),
509
+ 'type' => Controls_Manager::COLOR,
510
+ 'selectors' => [
511
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-content p' => 'color: {{VALUE}}',
512
+ ],
513
+ ]
514
+ );
515
+
516
+ $this->add_group_control(
517
+ Group_Control_Typography::get_type(),
518
+ [
519
+ 'name' => 'feature_sub_title_typography',
520
+ 'label' => __( 'Typography', 'woolentor' ),
521
+ 'selector' => '{{WRAPPER}} .ht-feature-wrap .ht-feature-content p',
522
+ ]
523
+ );
524
+
525
+ $this->add_responsive_control(
526
+ 'feature_sub_title_margin',
527
+ [
528
+ 'label' => __( 'Margin', 'woolentor' ),
529
+ 'type' => Controls_Manager::DIMENSIONS,
530
+ 'size_units' => [ 'px', '%', 'em' ],
531
+ 'selectors' => [
532
+ '{{WRAPPER}} .ht-feature-wrap .ht-feature-content p' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
533
+ ],
534
+ ]
535
+ );
536
+
537
+ $this->end_controls_section();
538
+
539
+ }
540
+
541
+
542
+ protected function render( $instance = [] ) {
543
+ $settings = $this->get_settings_for_display();
544
+
545
+ $this->add_render_attribute( 'area_attr', 'class', 'ht-feature-wrap ht-feature-style-'.$settings['feature_style'] );
546
+
547
+ $icon = '';
548
+ if( 'icon' === $settings['icon_type'] ){
549
+ $icon = woolentor_render_icon( $settings, 'feature_icon', 'featureicon' );
550
+ }else{
551
+ $icon = Group_Control_Image_Size::get_attachment_image_html( $settings, 'full', 'feature_image' );
552
+ }
553
+
554
+ ?>
555
+ <div <?php echo $this->get_render_attribute_string( 'area_attr' ); ?> >
556
+ <div class="ht-feature-inner">
557
+ <?php
558
+ if( !empty( $icon ) ){
559
+ echo '<div class="ht-feature-img">'.$icon.'</div>';
560
+ }
561
+ ?>
562
+ <div class="ht-feature-content">
563
+ <?php
564
+ if( !empty( $settings['feature_title'] ) ){
565
+ echo '<h4>'.$settings['feature_title'].'</h4>';
566
+ }
567
+ if( !empty( $settings['feature_sub_title'] ) ){
568
+ echo '<p>'.$settings['feature_sub_title'].'</p>';
569
+ }
570
+ ?>
571
+ </div>
572
+ </div>
573
+ </div>
574
+ <?php
575
+ }
576
+
577
+ }
578
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Store_Features_Element() );
includes/addons/wl_testimonial.php ADDED
@@ -0,0 +1,1273 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WL_Testimonial_Element extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'wl-testimonial';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'WL: Testimonial', 'woolentor' );
14
+ }
15
+
16
+ public function get_icon() {
17
+ return 'eicon-comments';
18
+ }
19
+
20
+ public function get_categories() {
21
+ return array( 'woolentor-addons' );
22
+ }
23
+
24
+ public function get_style_depends(){
25
+ return ['elementor-icons-shared-0-css','elementor-icons-fa-brands','elementor-icons-fa-regular','elementor-icons-fa-solid','woolentor-testimonial','woolentor-widgets'];
26
+ }
27
+
28
+ public function get_script_depends() {
29
+ return ['slick','woolentor-widgets-scripts'];
30
+ }
31
+
32
+ public function get_keywords(){
33
+ return ['woolentor','review','testimonial','product review','customer review','client say'];
34
+ }
35
+
36
+ protected function _register_controls() {
37
+
38
+ $this->start_controls_section(
39
+ 'testimonial_content',
40
+ [
41
+ 'label' => __( 'Testimonial', 'woolentor' ),
42
+ ]
43
+ );
44
+
45
+ $this->add_control(
46
+ 'testimonial_layout',
47
+ [
48
+ 'label' => __( 'Style', 'woolentor' ),
49
+ 'type' => Controls_Manager::SELECT,
50
+ 'default' => '1',
51
+ 'options' => [
52
+ '1' => __( 'Style One', 'woolentor' ),
53
+ '2' => __( 'Style Two', 'woolentor' ),
54
+ '3' => __( 'Style Three', 'woolentor' ),
55
+ '4' => __( 'Style Four', 'woolentor' ),
56
+ ],
57
+ ]
58
+ );
59
+
60
+ $this->add_control(
61
+ 'testimonial_type',
62
+ [
63
+ 'label' => __( 'Review Type', 'woolentor' ),
64
+ 'type' => Controls_Manager::SELECT,
65
+ 'default' => 'custom',
66
+ 'options' => [
67
+ 'custom' => __( 'Custom', 'woolentor' ),
68
+ ],
69
+ 'description' => sprintf( __( 'Product Wise Rating/Review Display is available in WooLentor Pro. <a href="%s" target="_blank">Purchase WooLentor Pro</a>', 'woolentor' ), esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?reviewwidget' ) ),
70
+ ]
71
+ );
72
+
73
+ $repeater = new Repeater();
74
+
75
+ $repeater->add_control(
76
+ 'client_name',
77
+ [
78
+ 'label' => __( 'Name', 'woolentor' ),
79
+ 'type' => Controls_Manager::TEXT,
80
+ 'default' => __('Anna Miller','woolentor'),
81
+ ]
82
+ );
83
+
84
+ $repeater->add_control(
85
+ 'client_designation',
86
+ [
87
+ 'label' => __( 'Designation', 'woolentor' ),
88
+ 'type' => Controls_Manager::TEXT,
89
+ 'default' => __('Designer','woolentor'),
90
+ ]
91
+ );
92
+
93
+ $repeater->add_control(
94
+ 'client_rating',
95
+ [
96
+ 'label' => __( 'Client Rating', 'woolentor' ),
97
+ 'type' => Controls_Manager::NUMBER,
98
+ 'min' => 1,
99
+ 'max' => 5,
100
+ 'step' => 1,
101
+ ]
102
+ );
103
+
104
+ $repeater->add_control(
105
+ 'client_image',
106
+ [
107
+ 'label' => __( 'Image', 'woolentor' ),
108
+ 'type' => Controls_Manager::MEDIA,
109
+ ]
110
+ );
111
+
112
+ $repeater->add_group_control(
113
+ Group_Control_Image_Size::get_type(),
114
+ [
115
+ 'name' => 'client_imagesize',
116
+ 'default' => 'full',
117
+ 'separator' => 'none',
118
+ ]
119
+ );
120
+
121
+ $repeater->add_control(
122
+ 'client_say',
123
+ [
124
+ 'label' => __( 'Client Say', 'woolentor' ),
125
+ 'type' => Controls_Manager::TEXTAREA,
126
+ 'default' => __('“ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, laboris consequat. ”','woolentor'),
127
+ ]
128
+ );
129
+
130
+ $this->add_control(
131
+ 'testimonial_list',
132
+ [
133
+ 'type' => Controls_Manager::REPEATER,
134
+ 'condition'=>[
135
+ 'testimonial_type' => 'custom',
136
+ ],
137
+ 'fields' => $repeater->get_controls(),
138
+ 'default' => [
139
+
140
+ [
141
+ 'client_name' => __('Anna Miller','woolentor'),
142
+ 'client_designation' => __( 'Designer','woolentor' ),
143
+ 'client_say' => __( '“ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, laboris consequat. ”', 'woolentor' ),
144
+ ],
145
+
146
+ [
147
+ 'client_name' => __('Kevin Walker','woolentor'),
148
+ 'client_designation' => __( 'Developer','woolentor' ),
149
+ 'client_say' => __( '“ Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore Lorem ipsum dolor sit amet, consectetur adipisicing elit ”', 'woolentor' ),
150
+ ],
151
+
152
+ [
153
+ 'client_name' => __('Ruth Pierce','woolentor'),
154
+ 'client_designation' => __( 'Customer','woolentor' ),
155
+ 'client_say' => __( '“ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, laboris consequat. ”', 'woolentor' ),
156
+ ],
157
+ ],
158
+ 'title_field' => '{{{ client_name }}}',
159
+ ]
160
+ );
161
+
162
+ $this->add_control(
163
+ 'slider_on',
164
+ [
165
+ 'label' => __( 'Slider On', 'woolentor' ),
166
+ 'type' => Controls_Manager::SWITCHER,
167
+ 'return_value' => 'yes',
168
+ 'separator'=>'before',
169
+ ]
170
+ );
171
+
172
+ $this->end_controls_section();
173
+
174
+ // Column
175
+ $this->start_controls_section(
176
+ 'section_column_option',
177
+ [
178
+ 'label' => __( 'Columns', 'woolentor' ),
179
+ 'condition'=>[
180
+ 'slider_on!'=>'yes',
181
+ ]
182
+ ]
183
+ );
184
+
185
+ $this->add_responsive_control(
186
+ 'column',
187
+ [
188
+ 'label' => esc_html__( 'Columns', 'woolentor' ),
189
+ 'type' => Controls_Manager::SELECT,
190
+ 'default' => '3',
191
+ 'options' => [
192
+ '1' => esc_html__( 'One', 'woolentor' ),
193
+ '2' => esc_html__( 'Two', 'woolentor' ),
194
+ '3' => esc_html__( 'Three', 'woolentor' ),
195
+ '4' => esc_html__( 'Four', 'woolentor' ),
196
+ '5' => esc_html__( 'Five', 'woolentor' ),
197
+ '6' => esc_html__( 'Six', 'woolentor' ),
198
+ '7' => esc_html__( 'Seven', 'woolentor' ),
199
+ '8' => esc_html__( 'Eight', 'woolentor' ),
200
+ '9' => esc_html__( 'Nine', 'woolentor' ),
201
+ '10'=> esc_html__( 'Ten', 'woolentor' ),
202
+ ],
203
+ 'label_block' => true,
204
+ 'prefix_class' => 'wl-columns%s-',
205
+ ]
206
+ );
207
+
208
+ $this->add_control(
209
+ 'no_gutters',
210
+ [
211
+ 'label' => esc_html__( 'No Gutters', 'woolentor' ),
212
+ 'type' => Controls_Manager::SWITCHER,
213
+ 'label_on' => esc_html__( 'Yes', 'woolentor' ),
214
+ 'label_off' => esc_html__( 'No', 'woolentor' ),
215
+ 'return_value' => 'yes',
216
+ 'default' => 'no',
217
+ ]
218
+ );
219
+
220
+ $this->add_responsive_control(
221
+ 'item_space',
222
+ [
223
+ 'label' => esc_html__( 'Space', 'woolentor' ),
224
+ 'type' => Controls_Manager::SLIDER,
225
+ 'size_units' => [ 'px', '%' ],
226
+ 'range' => [
227
+ 'px' => [
228
+ 'min' => 0,
229
+ 'max' => 1000,
230
+ 'step' => 1,
231
+ ],
232
+ '%' => [
233
+ 'min' => 0,
234
+ 'max' => 100,
235
+ ],
236
+ ],
237
+ 'default' => [
238
+ 'unit' => 'px',
239
+ 'size' => 15,
240
+ ],
241
+ 'condition'=>[
242
+ 'no_gutters!'=>'yes',
243
+ ],
244
+ 'selectors' => [
245
+ '{{WRAPPER}} .wl-row > [class*="col-"]' => 'padding: 0 {{SIZE}}{{UNIT}};',
246
+ ],
247
+ ]
248
+ );
249
+
250
+ $this->add_responsive_control(
251
+ 'item_bottom_space',
252
+ [
253
+ 'label' => esc_html__( 'Bottom Space', 'woolentor' ),
254
+ 'type' => Controls_Manager::SLIDER,
255
+ 'size_units' => [ 'px', '%' ],
256
+ 'range' => [
257
+ 'px' => [
258
+ 'min' => 0,
259
+ 'max' => 1000,
260
+ 'step' => 1,
261
+ ],
262
+ '%' => [
263
+ 'min' => 0,
264
+ 'max' => 100,
265
+ ],
266
+ ],
267
+ 'default' => [
268
+ 'unit' => 'px',
269
+ 'size' => 30,
270
+ ],
271
+ 'condition'=>[
272
+ 'no_gutters!'=>'yes',
273
+ ],
274
+ 'selectors' => [
275
+ '{{WRAPPER}} .wl-row > [class*="col-"]' => 'margin-bottom:{{SIZE}}{{UNIT}};',
276
+ ],
277
+ ]
278
+ );
279
+
280
+ $this->end_controls_section();
281
+
282
+ // Slider Option
283
+ $this->start_controls_section(
284
+ 'section_slider_option',
285
+ [
286
+ 'label' => esc_html__( 'Slider Option', 'woolentor' ),
287
+ 'condition'=>[
288
+ 'slider_on'=>'yes',
289
+ ]
290
+ ]
291
+ );
292
+
293
+ $this->add_control(
294
+ 'slitems',
295
+ [
296
+ 'label' => esc_html__( 'Slider Items', 'woolentor' ),
297
+ 'type' => Controls_Manager::NUMBER,
298
+ 'min' => 1,
299
+ 'step' => 1,
300
+ 'default' => 2
301
+ ]
302
+ );
303
+
304
+ $this->add_control(
305
+ 'slarrows',
306
+ [
307
+ 'label' => esc_html__( 'Slider Arrow', 'woolentor' ),
308
+ 'type' => Controls_Manager::SWITCHER,
309
+ 'return_value' => 'yes',
310
+ 'default' => 'yes',
311
+ ]
312
+ );
313
+
314
+ $this->add_control(
315
+ 'sldots',
316
+ [
317
+ 'label' => esc_html__( 'Slider dots', 'woolentor' ),
318
+ 'type' => Controls_Manager::SWITCHER,
319
+ 'return_value' => 'yes',
320
+ 'default' => 'no'
321
+ ]
322
+ );
323
+
324
+ $this->add_control(
325
+ 'slpause_on_hover',
326
+ [
327
+ 'type' => Controls_Manager::SWITCHER,
328
+ 'label_off' => __('No', 'woolentor'),
329
+ 'label_on' => __('Yes', 'woolentor'),
330
+ 'return_value' => 'yes',
331
+ 'default' => 'yes',
332
+ 'label' => __('Pause on Hover?', 'woolentor'),
333
+ ]
334
+ );
335
+
336
+ $this->add_control(
337
+ 'slautolay',
338
+ [
339
+ 'label' => esc_html__( 'Slider autoplay', 'woolentor' ),
340
+ 'type' => Controls_Manager::SWITCHER,
341
+ 'return_value' => 'yes',
342
+ 'separator' => 'before',
343
+ 'default' => 'no'
344
+ ]
345
+ );
346
+
347
+ $this->add_control(
348
+ 'slautoplay_speed',
349
+ [
350
+ 'label' => __('Autoplay speed', 'woolentor'),
351
+ 'type' => Controls_Manager::NUMBER,
352
+ 'default' => 3000,
353
+ 'condition' => [
354
+ 'slautolay' => 'yes',
355
+ ]
356
+ ]
357
+ );
358
+
359
+
360
+ $this->add_control(
361
+ 'slanimation_speed',
362
+ [
363
+ 'label' => __('Autoplay animation speed', 'woolentor'),
364
+ 'type' => Controls_Manager::NUMBER,
365
+ 'default' => 300,
366
+ 'condition' => [
367
+ 'slautolay' => 'yes',
368
+ ]
369
+ ]
370
+ );
371
+
372
+ $this->add_control(
373
+ 'slscroll_columns',
374
+ [
375
+ 'label' => __('Slider item to scroll', 'woolentor'),
376
+ 'type' => Controls_Manager::NUMBER,
377
+ 'min' => 1,
378
+ 'step' => 1,
379
+ 'default' => 2,
380
+ ]
381
+ );
382
+
383
+ $this->add_control(
384
+ 'heading_tablet',
385
+ [
386
+ 'label' => __( 'Tablet', 'woolentor' ),
387
+ 'type' => Controls_Manager::HEADING,
388
+ 'separator' => 'after',
389
+ ]
390
+ );
391
+
392
+ $this->add_control(
393
+ 'sltablet_display_columns',
394
+ [
395
+ 'label' => __('Slider Items', 'woolentor'),
396
+ 'type' => Controls_Manager::NUMBER,
397
+ 'min' => 1,
398
+ 'step' => 1,
399
+ 'default' => 2,
400
+ ]
401
+ );
402
+
403
+ $this->add_control(
404
+ 'sltablet_scroll_columns',
405
+ [
406
+ 'label' => __('Slider item to scroll', 'woolentor'),
407
+ 'type' => Controls_Manager::NUMBER,
408
+ 'min' => 1,
409
+ 'step' => 1,
410
+ 'default' => 2,
411
+ ]
412
+ );
413
+
414
+ $this->add_control(
415
+ 'sltablet_width',
416
+ [
417
+ 'label' => __('Tablet Resolution', 'woolentor'),
418
+ 'description' => __('The resolution to the tablet.', 'woolentor'),
419
+ 'type' => Controls_Manager::NUMBER,
420
+ 'default' => 750,
421
+ ]
422
+ );
423
+
424
+ $this->add_control(
425
+ 'heading_mobile',
426
+ [
427
+ 'label' => __( 'Mobile Phone', 'woolentor' ),
428
+ 'type' => Controls_Manager::HEADING,
429
+ 'separator' => 'after',
430
+ ]
431
+ );
432
+
433
+ $this->add_control(
434
+ 'slmobile_display_columns',
435
+ [
436
+ 'label' => __('Slider Items', 'woolentor'),
437
+ 'type' => Controls_Manager::NUMBER,
438
+ 'min' => 1,
439
+ 'step' => 1,
440
+ 'default' => 1,
441
+ ]
442
+ );
443
+
444
+ $this->add_control(
445
+ 'slmobile_scroll_columns',
446
+ [
447
+ 'label' => __('Slider item to scroll', 'woolentor'),
448
+ 'type' => Controls_Manager::NUMBER,
449
+ 'min' => 1,
450
+ 'step' => 1,
451
+ 'default' => 1,
452
+ ]
453
+ );
454
+
455
+ $this->add_control(
456
+ 'slmobile_width',
457
+ [
458
+ 'label' => __('Mobile Resolution', 'woolentor'),
459
+ 'description' => __('The resolution to mobile.', 'woolentor'),
460
+ 'type' => Controls_Manager::NUMBER,
461
+ 'default' => 480,
462
+ ]
463
+ );
464
+
465
+ $this->end_controls_section();
466
+
467
+ // Style style start
468
+ $this->start_controls_section(
469
+ 'testimonial_area_style',
470
+ [
471
+ 'label' => __( 'Item', 'woolentor' ),
472
+ 'tab' => Controls_Manager::TAB_STYLE,
473
+ ]
474
+ );
475
+
476
+ $this->add_group_control(
477
+ Group_Control_Border::get_type(),
478
+ [
479
+ 'name' => 'item_border',
480
+ 'label' => __( 'Border', 'woolentor' ),
481
+ 'selector' => '{{WRAPPER}} .ht-single-testimonial-wrap',
482
+ ]
483
+ );
484
+
485
+ $this->add_responsive_control(
486
+ 'item_border_radius',
487
+ [
488
+ 'label' => __( 'Border Radius', 'woolentor' ),
489
+ 'type' => Controls_Manager::DIMENSIONS,
490
+ 'size_units' => [ 'px', '%', 'em' ],
491
+ 'selectors' => [
492
+ '{{WRAPPER}} .ht-single-testimonial-wrap' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
493
+ ],
494
+ ]
495
+ );
496
+
497
+ $this->add_responsive_control(
498
+ 'item_padding',
499
+ [
500
+ 'label' => __( 'Padding', 'woolentor' ),
501
+ 'type' => Controls_Manager::DIMENSIONS,
502
+ 'size_units' => [ 'px', '%', 'em' ],
503
+ 'selectors' => [
504
+ '{{WRAPPER}} .ht-single-testimonial-wrap' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
505
+ ],
506
+ ]
507
+ );
508
+
509
+ $this->add_responsive_control(
510
+ 'item_margin',
511
+ [
512
+ 'label' => __( 'Margin', 'woolentor' ),
513
+ 'type' => Controls_Manager::DIMENSIONS,
514
+ 'size_units' => [ 'px', '%', 'em' ],
515
+ 'selectors' => [
516
+ '{{WRAPPER}} .ht-single-testimonial-wrap' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
517
+ ],
518
+ ]
519
+ );
520
+
521
+ $this->end_controls_section();
522
+
523
+ // Style image style start
524
+ $this->start_controls_section(
525
+ 'testimonial_image_style',
526
+ [
527
+ 'label' => __( 'Image', 'woolentor' ),
528
+ 'tab' => Controls_Manager::TAB_STYLE,
529
+ ]
530
+ );
531
+
532
+ $this->add_group_control(
533
+ Group_Control_Border::get_type(),
534
+ [
535
+ 'name' => 'testimonial_image_border',
536
+ 'label' => __( 'Border', 'woolentor' ),
537
+ 'selector' => '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] img',
538
+ ]
539
+ );
540
+
541
+ $this->add_responsive_control(
542
+ 'testimonial_image_border_radius',
543
+ [
544
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
545
+ 'type' => Controls_Manager::DIMENSIONS,
546
+ 'selectors' => [
547
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] img' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
548
+ ],
549
+ ]
550
+ );
551
+
552
+ $this->add_control(
553
+ 'testimonial_image_area_border_color',
554
+ [
555
+ 'label' => __( 'Image Area Border Color', 'woolentor' ),
556
+ 'type' => Controls_Manager::COLOR,
557
+ 'selectors' => [
558
+ '{{WRAPPER}} .ht-single-testimonial-wrap .ht-client-info-wrap.ht-client-info-border' => 'border-color: {{VALUE}};',
559
+ ],
560
+ 'condition'=>[
561
+ 'testimonial_layout'=>'3',
562
+ ]
563
+ ]
564
+ );
565
+
566
+ $this->end_controls_section(); // Style Testimonial image style end
567
+
568
+ // Style Testimonial name style start
569
+ $this->start_controls_section(
570
+ 'testimonial_name_style',
571
+ [
572
+ 'label' => __( 'Name', 'woolentor' ),
573
+ 'tab' => Controls_Manager::TAB_STYLE,
574
+ ]
575
+ );
576
+
577
+ $this->add_control(
578
+ 'testimonial_name_color',
579
+ [
580
+ 'label' => __( 'Color', 'woolentor' ),
581
+ 'type' => Controls_Manager::COLOR,
582
+ 'selectors' => [
583
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] h4' => 'color: {{VALUE}};',
584
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"]:before' => 'background-color: {{VALUE}};',
585
+ ],
586
+ ]
587
+ );
588
+
589
+ $this->add_group_control(
590
+ Group_Control_Typography::get_type(),
591
+ [
592
+ 'name' => 'testimonial_name_typography',
593
+ 'selector' => '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] h4',
594
+ ]
595
+ );
596
+
597
+ $this->add_responsive_control(
598
+ 'testimonial_name_margin',
599
+ [
600
+ 'label' => __( 'Margin', 'woolentor' ),
601
+ 'type' => Controls_Manager::DIMENSIONS,
602
+ 'size_units' => [ 'px', '%', 'em' ],
603
+ 'selectors' => [
604
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] h4' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
605
+ ],
606
+ 'separator' =>'before',
607
+ ]
608
+ );
609
+
610
+ $this->add_responsive_control(
611
+ 'testimonial_name_padding',
612
+ [
613
+ 'label' => __( 'Padding', 'woolentor' ),
614
+ 'type' => Controls_Manager::DIMENSIONS,
615
+ 'size_units' => [ 'px', '%', 'em' ],
616
+ 'selectors' => [
617
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] h4' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
618
+ ],
619
+ 'separator' =>'before',
620
+ ]
621
+ );
622
+
623
+ $this->end_controls_section(); // Style Testimonial name style end
624
+
625
+ // Style Testimonial designation style start
626
+ $this->start_controls_section(
627
+ 'testimonial_designation_style',
628
+ [
629
+ 'label' => __( 'Designation', 'woolentor' ),
630
+ 'tab' => Controls_Manager::TAB_STYLE,
631
+ ]
632
+ );
633
+
634
+ $this->add_control(
635
+ 'testimonial_designation_color',
636
+ [
637
+ 'label' => __( 'Color', 'woolentor' ),
638
+ 'type' => Controls_Manager::COLOR,
639
+ 'selectors' => [
640
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] span' => 'color: {{VALUE}};',
641
+ ],
642
+ ]
643
+ );
644
+
645
+ $this->add_group_control(
646
+ Group_Control_Typography::get_type(),
647
+ [
648
+ 'name' => 'testimonial_designation_typography',
649
+ 'selector' => '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] span',
650
+ ]
651
+ );
652
+
653
+ $this->add_responsive_control(
654
+ 'testimonial_designation_margin',
655
+ [
656
+ 'label' => __( 'Margin', 'woolentor' ),
657
+ 'type' => Controls_Manager::DIMENSIONS,
658
+ 'size_units' => [ 'px', '%', 'em' ],
659
+ 'selectors' => [
660
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] span' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
661
+ ],
662
+ 'separator' =>'before',
663
+ ]
664
+ );
665
+
666
+ $this->add_responsive_control(
667
+ 'testimonial_designation_padding',
668
+ [
669
+ 'label' => __( 'Padding', 'woolentor' ),
670
+ 'type' => Controls_Manager::DIMENSIONS,
671
+ 'size_units' => [ 'px', '%', 'em' ],
672
+ 'selectors' => [
673
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-info"] span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
674
+ ],
675
+ 'separator' =>'before',
676
+ ]
677
+ );
678
+
679
+ $this->end_controls_section(); // Style Testimonial designation style end
680
+
681
+ // Style Testimonial designation style start
682
+ $this->start_controls_section(
683
+ 'testimonial_clientsay_style',
684
+ [
685
+ 'label' => __( 'Client say', 'woolentor' ),
686
+ 'tab' => Controls_Manager::TAB_STYLE,
687
+ ]
688
+ );
689
+
690
+ $this->add_control(
691
+ 'testimonial_clientsay_color',
692
+ [
693
+ 'label' => __( 'Color', 'woolentor' ),
694
+ 'type' => Controls_Manager::COLOR,
695
+ 'selectors' => [
696
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-content"] p' => 'color: {{VALUE}};',
697
+ ],
698
+ ]
699
+ );
700
+
701
+ $this->add_group_control(
702
+ Group_Control_Typography::get_type(),
703
+ [
704
+ 'name' => 'testimonial_clientsay_typography',
705
+ 'selector' => '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-content"] p',
706
+ ]
707
+ );
708
+
709
+ $this->add_responsive_control(
710
+ 'testimonial_clientsay_margin',
711
+ [
712
+ 'label' => __( 'Margin', 'woolentor' ),
713
+ 'type' => Controls_Manager::DIMENSIONS,
714
+ 'size_units' => [ 'px', '%', 'em' ],
715
+ 'selectors' => [
716
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-content"] p' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
717
+ ],
718
+ 'separator' =>'before',
719
+ ]
720
+ );
721
+
722
+ $this->add_responsive_control(
723
+ 'testimonial_clientsay_padding',
724
+ [
725
+ 'label' => __( 'Padding', 'woolentor' ),
726
+ 'type' => Controls_Manager::DIMENSIONS,
727
+ 'size_units' => [ 'px', '%', 'em' ],
728
+ 'selectors' => [
729
+ '{{WRAPPER}} .ht-single-testimonial-wrap [class*="ht-client-content"] p' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
730
+ ],
731
+ 'separator' =>'before',
732
+ ]
733
+ );
734
+
735
+ $this->end_controls_section(); // Style Testimonial designation style end
736
+
737
+ // Style Testimonial designation style start
738
+ $this->start_controls_section(
739
+ 'testimonial_clientrating_style',
740
+ [
741
+ 'label' => __( 'Rating', 'woolentor' ),
742
+ 'tab' => Controls_Manager::TAB_STYLE,
743
+ ]
744
+ );
745
+
746
+ $this->add_control(
747
+ 'testimonial_clientrating_color',
748
+ [
749
+ 'label' => __( 'Color', 'woolentor' ),
750
+ 'type' => Controls_Manager::COLOR,
751
+ 'selectors' => [
752
+ '{{WRAPPER}} .ht-single-testimonial-wrap .ht-client-rating ul li i' => 'color: {{VALUE}};',
753
+ ],
754
+ ]
755
+ );
756
+
757
+ $this->add_responsive_control(
758
+ 'testimonial_clientrating_size',
759
+ [
760
+ 'label' => __( 'Font Size', 'woolentor' ),
761
+ 'type' => Controls_Manager::SLIDER,
762
+ 'size_units' => [ 'px', '%' ],
763
+ 'selectors' => [
764
+ '{{WRAPPER}} .ht-single-testimonial-wrap .ht-client-rating ul li i' => 'font-size: {{SIZE}}{{UNIT}};',
765
+ ],
766
+ ]
767
+ );
768
+
769
+ $this->add_responsive_control(
770
+ 'testimonial_clientrating_margin',
771
+ [
772
+ 'label' => __( 'Margin', 'woolentor' ),
773
+ 'type' => Controls_Manager::DIMENSIONS,
774
+ 'size_units' => [ 'px', '%', 'em' ],
775
+ 'selectors' => [
776
+ '{{WRAPPER}} .ht-single-testimonial-wrap .ht-client-rating ul' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
777
+ ],
778
+ 'separator' =>'before',
779
+ ]
780
+ );
781
+
782
+ $this->end_controls_section(); // Style Testimonial designation style end
783
+
784
+ // Slider Button style
785
+ $this->start_controls_section(
786
+ 'products-slider-controller-style',
787
+ [
788
+ 'label' => esc_html__( 'Slider Controller Style', 'woolentor' ),
789
+ 'tab' => Controls_Manager::TAB_STYLE,
790
+ 'condition' => [
791
+ 'slider_on' => 'yes',
792
+ ]
793
+ ]
794
+ );
795
+
796
+ $this->start_controls_tabs('product_sliderbtn_style_tabs');
797
+
798
+ // Slider Button style Normal
799
+ $this->start_controls_tab(
800
+ 'product_sliderbtn_style_normal_tab',
801
+ [
802
+ 'label' => __( 'Normal', 'woolentor' ),
803
+ ]
804
+ );
805
+
806
+ $this->add_control(
807
+ 'button_style_heading',
808
+ [
809
+ 'label' => __( 'Navigation Arrow', 'woolentor' ),
810
+ 'type' => Controls_Manager::HEADING,
811
+ ]
812
+ );
813
+
814
+ $this->add_responsive_control(
815
+ 'nvigation_position',
816
+ [
817
+ 'label' => __( 'Position', 'woolentor' ),
818
+ 'type' => Controls_Manager::SLIDER,
819
+ 'size_units' => [ 'px', '%' ],
820
+ 'range' => [
821
+ 'px' => [
822
+ 'min' => 0,
823
+ 'max' => 1000,
824
+ 'step' => 1,
825
+ ],
826
+ '%' => [
827
+ 'min' => 0,
828
+ 'max' => 100,
829
+ ],
830
+ ],
831
+ 'selectors' => [
832
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'top: {{SIZE}}{{UNIT}};',
833
+ ],
834
+ ]
835
+ );
836
+
837
+ $this->add_control(
838
+ 'button_color',
839
+ [
840
+ 'label' => __( 'Color', 'woolentor' ),
841
+ 'type' => Controls_Manager::COLOR,
842
+ 'selectors' => [
843
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'color: {{VALUE}};',
844
+ ],
845
+ ]
846
+ );
847
+
848
+ $this->add_control(
849
+ 'button_bg_color',
850
+ [
851
+ 'label' => __( 'Background Color', 'woolentor' ),
852
+ 'type' => Controls_Manager::COLOR,
853
+ 'selectors' => [
854
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'background-color: {{VALUE}} !important;',
855
+ ],
856
+ ]
857
+ );
858
+
859
+ $this->add_group_control(
860
+ Group_Control_Border::get_type(),
861
+ [
862
+ 'name' => 'button_border',
863
+ 'label' => __( 'Border', 'woolentor' ),
864
+ 'selector' => '{{WRAPPER}} .product-slider .slick-arrow',
865
+ ]
866
+ );
867
+
868
+ $this->add_responsive_control(
869
+ 'button_border_radius',
870
+ [
871
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
872
+ 'type' => Controls_Manager::DIMENSIONS,
873
+ 'selectors' => [
874
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
875
+ ],
876
+ ]
877
+ );
878
+
879
+ $this->add_responsive_control(
880
+ 'button_padding',
881
+ [
882
+ 'label' => __( 'Padding', 'woolentor' ),
883
+ 'type' => Controls_Manager::DIMENSIONS,
884
+ 'size_units' => [ 'px', '%', 'em' ],
885
+ 'selectors' => [
886
+ '{{WRAPPER}} .product-slider .slick-arrow' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
887
+ ],
888
+ ]
889
+ );
890
+
891
+ $this->add_control(
892
+ 'button_style_dots_heading',
893
+ [
894
+ 'label' => __( 'Navigation Dots', 'woolentor' ),
895
+ 'type' => Controls_Manager::HEADING,
896
+ ]
897
+ );
898
+
899
+ $this->add_responsive_control(
900
+ 'dots_position',
901
+ [
902
+ 'label' => __( 'Position', 'woolentor' ),
903
+ 'type' => Controls_Manager::SLIDER,
904
+ 'size_units' => [ 'px', '%' ],
905
+ 'range' => [
906
+ 'px' => [
907
+ 'min' => 0,
908
+ 'max' => 1000,
909
+ 'step' => 1,
910
+ ],
911
+ '%' => [
912
+ 'min' => 0,
913
+ 'max' => 100,
914
+ ],
915
+ ],
916
+ 'selectors' => [
917
+ '{{WRAPPER}} .product-slider .slick-dots' => 'left: {{SIZE}}{{UNIT}};',
918
+ ],
919
+ ]
920
+ );
921
+
922
+ $this->add_control(
923
+ 'dots_bg_color',
924
+ [
925
+ 'label' => __( 'Background Color', 'woolentor' ),
926
+ 'type' => Controls_Manager::COLOR,
927
+ 'selectors' => [
928
+ '{{WRAPPER}} .product-slider .slick-dots li button' => 'background-color: {{VALUE}} !important;',
929
+ ],
930
+ ]
931
+ );
932
+
933
+ $this->add_group_control(
934
+ Group_Control_Border::get_type(),
935
+ [
936
+ 'name' => 'dots_border',
937
+ 'label' => __( 'Border', 'woolentor' ),
938
+ 'selector' => '{{WRAPPER}} .product-slider .slick-dots li button',
939
+ ]
940
+ );
941
+
942
+ $this->add_responsive_control(
943
+ 'dots_border_radius',
944
+ [
945
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
946
+ 'type' => Controls_Manager::DIMENSIONS,
947
+ 'selectors' => [
948
+ '{{WRAPPER}} .product-slider .slick-dots li button' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
949
+ ],
950
+ ]
951
+ );
952
+
953
+ $this->end_controls_tab();// Normal button style end
954
+
955
+ // Button style Hover
956
+ $this->start_controls_tab(
957
+ 'product_sliderbtn_style_hover_tab',
958
+ [
959
+ 'label' => __( 'Hover', 'woolentor' ),
960
+ ]
961
+ );
962
+
963
+ $this->add_control(
964
+ 'button_style_arrow_heading',
965
+ [
966
+ 'label' => __( 'Navigation', 'woolentor' ),
967
+ 'type' => Controls_Manager::HEADING,
968
+ ]
969
+ );
970
+
971
+ $this->add_control(
972
+ 'button_hover_color',
973
+ [
974
+ 'label' => __( 'Color', 'woolentor' ),
975
+ 'type' => Controls_Manager::COLOR,
976
+ 'selectors' => [
977
+ '{{WRAPPER}} .product-slider .slick-arrow:hover' => 'color: {{VALUE}};',
978
+ ],
979
+ ]
980
+ );
981
+
982
+ $this->add_control(
983
+ 'button_hover_bg_color',
984
+ [
985
+ 'label' => __( 'Background', 'woolentor' ),
986
+ 'type' => Controls_Manager::COLOR,
987
+ 'selectors' => [
988
+ '{{WRAPPER}} .product-slider .slick-arrow:hover' => 'background-color: {{VALUE}} !important;',
989
+ ],
990
+ ]
991
+ );
992
+
993
+ $this->add_group_control(
994
+ Group_Control_Border::get_type(),
995
+ [
996
+ 'name' => 'button_hover_border',
997
+ 'label' => __( 'Border', 'woolentor' ),
998
+ 'selector' => '{{WRAPPER}} .product-slider .slick-arrow:hover',
999
+ ]
1000
+ );
1001
+
1002
+ $this->add_responsive_control(
1003
+ 'button_hover_border_radius',
1004
+ [
1005
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
1006
+ 'type' => Controls_Manager::DIMENSIONS,
1007
+ 'selectors' => [
1008
+ '{{WRAPPER}} .product-slider .slick-arrow:hover' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
1009
+ ],
1010
+ ]
1011
+ );
1012
+
1013
+
1014
+ $this->add_control(
1015
+ 'button_style_dotshov_heading',
1016
+ [
1017
+ 'label' => __( 'Navigation Dots', 'woolentor' ),
1018
+ 'type' => Controls_Manager::HEADING,
1019
+ ]
1020
+ );
1021
+
1022
+ $this->add_control(
1023
+ 'dots_hover_bg_color',
1024
+ [
1025
+ 'label' => __( 'Background Color', 'woolentor' ),
1026
+ 'type' => Controls_Manager::COLOR,
1027
+ 'selectors' => [
1028
+ '{{WRAPPER}} .product-slider .slick-dots li button:hover' => 'background-color: {{VALUE}} !important;',
1029
+ '{{WRAPPER}} .product-slider .slick-dots li.slick-active button' => 'background-color: {{VALUE}} !important;',
1030
+ ],
1031
+ ]
1032
+ );
1033
+
1034
+ $this->add_group_control(
1035
+ Group_Control_Border::get_type(),
1036
+ [
1037
+ 'name' => 'dots_border_hover',
1038
+ 'label' => __( 'Border', 'woolentor' ),
1039
+ 'selector' => '{{WRAPPER}} .product-slider .slick-dots li button:hover',
1040
+ ]
1041
+ );
1042
+
1043
+ $this->add_responsive_control(
1044
+ 'dots_border_radius_hover',
1045
+ [
1046
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
1047
+ 'type' => Controls_Manager::DIMENSIONS,
1048
+ 'selectors' => [
1049
+ '{{WRAPPER}} .product-slider .slick-dots li button:hover' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
1050
+ ],
1051
+ ]
1052
+ );
1053
+
1054
+ $this->end_controls_tab();// Hover button style end
1055
+
1056
+ $this->end_controls_tabs();
1057
+
1058
+ $this->end_controls_section(); // Tab option end
1059
+
1060
+ }
1061
+
1062
+
1063
+ protected function render( $instance = [] ) {
1064
+
1065
+ $settings = $this->get_settings_for_display();
1066
+ $column = $this->get_settings_for_display('column');
1067
+
1068
+ $collumval = 'wl-col-1';
1069
+ if( $column !='' ){
1070
+ $collumval = 'wl-col-'.$column;
1071
+ }
1072
+
1073
+ // Generate review
1074
+ $testimonial_list = [];
1075
+ if( 'custom' === $settings['testimonial_type'] ){
1076
+ foreach ( $settings['testimonial_list'] as $testimonial ){
1077
+ $testimonial_list[] = array(
1078
+ 'image' => Group_Control_Image_Size::get_attachment_image_html( $testimonial, 'client_imagesize', 'client_image' ),
1079
+ 'name' => $testimonial['client_name'],
1080
+ 'designation' => $testimonial['client_designation'],
1081
+ 'ratting' => $testimonial['client_rating'],
1082
+ 'message' => $testimonial['client_say'],
1083
+ );
1084
+ }
1085
+ }
1086
+
1087
+ // Slider Options
1088
+ if( $settings['slider_on'] === 'yes' ){
1089
+
1090
+ $is_rtl = is_rtl();
1091
+ $direction = $is_rtl ? 'rtl' : 'ltr';
1092
+ $slider_settings = [
1093
+ 'arrows' => ('yes' === $settings['slarrows']),
1094
+ 'dots' => ('yes' === $settings['sldots']),
1095
+ 'autoplay' => ('yes' === $settings['slautolay']),
1096
+ 'autoplay_speed' => absint($settings['slautoplay_speed']),
1097
+ 'animation_speed' => absint($settings['slanimation_speed']),
1098
+ 'pause_on_hover' => ('yes' === $settings['slpause_on_hover']),
1099
+ 'rtl' => $is_rtl,
1100
+ ];
1101
+
1102
+ $slider_responsive_settings = [
1103
+ 'product_items' => $settings['slitems'],
1104
+ 'scroll_columns' => $settings['slscroll_columns'],
1105
+ 'tablet_width' => $settings['sltablet_width'],
1106
+ 'tablet_display_columns' => $settings['sltablet_display_columns'],
1107
+ 'tablet_scroll_columns' => $settings['sltablet_scroll_columns'],
1108
+ 'mobile_width' => $settings['slmobile_width'],
1109
+ 'mobile_display_columns' => $settings['slmobile_display_columns'],
1110
+ 'mobile_scroll_columns' => $settings['slmobile_scroll_columns'],
1111
+
1112
+ ];
1113
+ $slider_settings = array_merge( $slider_settings, $slider_responsive_settings );
1114
+ }else{
1115
+ $slider_settings = '';
1116
+ }
1117
+
1118
+ $this->add_render_attribute( 'area_attr', 'class', 'wl-row wlb-testimonial-style-'.$settings['testimonial_layout'] );
1119
+
1120
+ if( $settings['no_gutters'] === 'yes' ){
1121
+ $this->add_render_attribute( 'area_attr', 'class', 'wlno-gutters' );
1122
+ }
1123
+ if( $settings['slider_on'] === 'yes' ){
1124
+ $this->add_render_attribute( 'area_attr', 'class', 'product-slider' );
1125
+ $this->add_render_attribute( 'area_attr', 'data-settings', wp_json_encode( $slider_settings ) );
1126
+ }
1127
+
1128
+
1129
+ echo '<div '.$this->get_render_attribute_string( 'area_attr' ).'>';
1130
+
1131
+ foreach ( $testimonial_list as $testimonial ):
1132
+ ?>
1133
+ <div class="<?php echo esc_attr( $collumval ); ?>">
1134
+ <div class="ht-single-testimonial-wrap">
1135
+
1136
+ <?php if( $settings['testimonial_layout'] === '1' ): ?>
1137
+ <?php
1138
+ if( !empty( $testimonial['message'] ) ){
1139
+ echo sprintf( '<div class="ht-client-content ht-client-content-border"><p>%1$s</p>%2$s</div>', $testimonial['message'], $this->ratting( $testimonial['ratting'] ) );
1140
+ }
1141
+ ?>
1142
+ <div class="ht-client-info">
1143
+ <?php
1144
+ if( !empty( $testimonial['image'] ) ){
1145
+ echo $testimonial['image'];
1146
+ }
1147
+
1148
+ if( !empty( $testimonial['name'] ) ){
1149
+ echo '<h4>'.$testimonial['name'].'</h4>';
1150
+ }
1151
+
1152
+ if( !empty( $testimonial['designation'] ) ){
1153
+ echo '<span>'.$testimonial['designation'].'</span>';
1154
+ }
1155
+ ?>
1156
+ </div>
1157
+
1158
+ <?php elseif( $settings['testimonial_layout'] === '2' ): ?>
1159
+ <div class="ht-client-info-wrap-2">
1160
+ <?php
1161
+ if( !empty( $testimonial['image'] ) ){
1162
+ echo sprintf( '<div class="ht-client-img-2">%1$s</div>', $testimonial['image'] );
1163
+ }
1164
+ ?>
1165
+ <div class="ht-client-info-3">
1166
+ <?php
1167
+ if( !empty( $testimonial['name'] ) || !empty( $testimonial['designation'] ) ){
1168
+ echo sprintf('<h4>%1$s<span>%2$s</span></h4>', $testimonial['name'], $testimonial['designation'] );
1169
+ }
1170
+ if( !empty( $testimonial['ratting'] ) ){
1171
+ echo $this->ratting( $testimonial['ratting'] );
1172
+ }
1173
+ ?>
1174
+ </div>
1175
+ </div>
1176
+ <?php
1177
+ if( !empty( $testimonial['message'] ) ){
1178
+ echo sprintf( '<div class="ht-client-content"><p class="ht-width-dec">%1$s</p></div>', $testimonial['message'] );
1179
+ }
1180
+ ?>
1181
+
1182
+ <?php elseif( $settings['testimonial_layout'] === '3' ): ?>
1183
+ <div class="ht-client-info-wrap ht-client-info-border">
1184
+ <?php
1185
+ if( !empty( $testimonial['image'] ) ){
1186
+ echo sprintf( '<div class="ht-client-img">%1$s</div>', $testimonial['image'] );
1187
+ }
1188
+ ?>
1189
+ <div class="ht-client-info-2">
1190
+ <?php
1191
+ if( !empty( $testimonial['name'] ) ){
1192
+ echo '<h4>'.$testimonial['name'].'</h4>';
1193
+ }
1194
+
1195
+ if( !empty( $testimonial['designation'] ) ){
1196
+ echo '<span>'.$testimonial['designation'].'</span>';
1197
+ }
1198
+
1199
+ if( !empty( $testimonial['ratting'] ) ){
1200
+ echo $this->ratting( $testimonial['ratting'] );
1201
+ }
1202
+ ?>
1203
+ </div>
1204
+ </div>
1205
+ <?php
1206
+ if( !empty( $testimonial['message'] ) ){
1207
+ echo sprintf( '<div class="ht-client-content"><p">%1$s</p></div>', $testimonial['message'] );
1208
+ }
1209
+ ?>
1210
+
1211
+ <?php else: ?>
1212
+ <div class="ht-client-info-wrap-2">
1213
+ <?php
1214
+ if( !empty( $testimonial['image'] ) ){
1215
+ echo sprintf( '<div class="ht-client-img-2">%1$s</div>', $testimonial['image'] );
1216
+ }
1217
+ ?>
1218
+ <div class="ht-client-info-3">
1219
+ <?php
1220
+ if( !empty( $testimonial['name'] ) || !empty( $testimonial['designation'] ) ){
1221
+ echo sprintf('<h4>%1$s<span>%2$s</span></h4>', $testimonial['name'], $testimonial['designation'] );
1222
+ }
1223
+
1224
+ if( !empty( $testimonial['ratting'] ) ){
1225
+ echo $this->ratting( $testimonial['ratting'] );
1226
+ }
1227
+ ?>
1228
+ </div>
1229
+ </div>
1230
+ <?php
1231
+ if( !empty( $testimonial['message'] ) ){
1232
+ echo sprintf( '<div class="ht-client-content"><p>%1$s</p></div>', $testimonial['message'] );
1233
+ }
1234
+ ?>
1235
+
1236
+ <?php endif; ?>
1237
+
1238
+ </div>
1239
+ </div>
1240
+ <?php
1241
+ endforeach;
1242
+
1243
+ echo '</div>';
1244
+
1245
+
1246
+ }
1247
+
1248
+ public function ratting( $ratting_num ){
1249
+ if( !empty( $ratting_num ) ){
1250
+ $rating = $ratting_num;
1251
+ $rating_whole = floor( $ratting_num );
1252
+ $rating_fraction = $rating - $rating_whole;
1253
+ $ratting_html = '<div class="ht-client-rating"><ul>';
1254
+ for( $i = 1; $i <= 5; $i++ ){
1255
+ if( $i <= $rating_whole ){
1256
+ $ratting_html .= '<li><i class="fas fa-star"></i></li>';
1257
+ } else {
1258
+ if( $rating_fraction != 0 ){
1259
+ $ratting_html .= '<li><i class="fas fa-star-half-alt"></i></li>';
1260
+ $rating_fraction = 0;
1261
+ } else {
1262
+ $ratting_html .= '<li><i class="far fa-star"></i></li>';
1263
+ }
1264
+ }
1265
+ }
1266
+ $ratting_html .= '</ul></div>';
1267
+
1268
+ return $ratting_html;
1269
+ }
1270
+ }
1271
+
1272
+ }
1273
+ Plugin::instance()->widgets_manager->register_widget_type( new WL_Testimonial_Element() );
includes/admin/admin-init.php CHANGED
@@ -15,6 +15,7 @@ class Woolentor_Admin_Setting{
15
  public function woolentor_admin_settings_page() {
16
  require_once('include/class.settings-api.php');
17
  require_once('include/template-library.php');
 
18
  if( is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') ){
19
  require_once WOOLENTOR_ADDONS_PL_PATH_PRO.'includes/admin/admin-setting.php';
20
  }else{
@@ -29,14 +30,47 @@ class Woolentor_Admin_Setting{
29
 
30
  if( $hook === 'woolentor_page_woolentor' or $hook === 'woolentor_page_woolentor_templates' ){
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  wp_enqueue_style( 'woolentor-admin' );
33
  // wp core styles
34
  wp_enqueue_style( 'wp-jquery-ui-dialog' );
 
35
  // wp core scripts
36
  wp_enqueue_script( 'jquery-ui-dialog' );
37
 
 
 
 
 
 
 
 
 
38
  wp_enqueue_script( 'woolentor-admin-main' );
39
 
 
 
 
 
 
 
 
 
40
  }
41
 
42
  }
15
  public function woolentor_admin_settings_page() {
16
  require_once('include/class.settings-api.php');
17
  require_once('include/template-library.php');
18
+ require_once('include/class.extension-manager.php');
19
  if( is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') ){
20
  require_once WOOLENTOR_ADDONS_PL_PATH_PRO.'includes/admin/admin-setting.php';
21
  }else{
30
 
31
  if( $hook === 'woolentor_page_woolentor' or $hook === 'woolentor_page_woolentor_templates' ){
32
 
33
+ wp_enqueue_style( 'simple-line-icons-wl' );
34
+
35
+ wp_enqueue_style(
36
+ 'fonticonpicker',
37
+ WOOLENTOR_ADDONS_PL_URL . 'assets/lib/iconpicker/css/jquery.fonticonpicker.min.css',
38
+ array(),
39
+ WOOLENTOR_VERSION
40
+ );
41
+
42
+ wp_enqueue_style(
43
+ 'fonticonpicker-bootstrap',
44
+ WOOLENTOR_ADDONS_PL_URL . 'assets/lib/iconpicker/css/jquery.fonticonpicker.bootstrap.min.css',
45
+ array(),
46
+ WOOLENTOR_VERSION
47
+ );
48
+
49
  wp_enqueue_style( 'woolentor-admin' );
50
  // wp core styles
51
  wp_enqueue_style( 'wp-jquery-ui-dialog' );
52
+
53
  // wp core scripts
54
  wp_enqueue_script( 'jquery-ui-dialog' );
55
 
56
+ wp_enqueue_script(
57
+ 'fonticonpicker',
58
+ WOOLENTOR_ADDONS_PL_URL . 'assets/lib/iconpicker/js/jquery.fonticonpicker.min.js',
59
+ array( 'jquery' ),
60
+ WOOLENTOR_VERSION,
61
+ TRUE
62
+ );
63
+
64
  wp_enqueue_script( 'woolentor-admin-main' );
65
 
66
+ wp_localize_script(
67
+ 'woolentor-admin-main',
68
+ 'woolentor_fields',
69
+ [
70
+ 'iconset' => Woolentor_Icon_List::icon_sets(),
71
+ ]
72
+ );
73
+
74
  }
75
 
76
  }
includes/admin/assets/css/admin_optionspanel.css CHANGED
@@ -1,3 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  #woolentor_woo_template_tabs .description span, #woolentor_rename_label_tabs .description span,#woolentor_sales_notification_tabs .description span{
2
  color: #ff0000;
3
  }
@@ -12,6 +83,9 @@
12
  float: left;
13
  margin-bottom: 30px;
14
  padding: 0 15px;
 
 
 
15
  width: 25%;
16
  }
17
  .woolentor-single-theme img{
@@ -36,6 +110,8 @@
36
  .woolentor-themes-row {
37
  margin-left: -15px;
38
  overflow: hidden;
 
 
39
  }
40
  .woolentor-template-area {
41
  overflow: hidden;
@@ -59,7 +135,7 @@
59
  }
60
 
61
  .woolentor-admin-tab-area {
62
- margin: 30px 0 20px;
63
  }
64
  .woolentor-admin-tabs {
65
  list-style: outside none none;
@@ -91,9 +167,6 @@
91
  #woolentor_elements_tabs h2 {
92
  display: none;
93
  }
94
- #woolentor_elements_tabs{
95
- margin-top: 15px;
96
- }
97
  .wlopen-element-toggle {
98
  display: inline-block;
99
  padding: 7px 15px;
@@ -110,14 +183,23 @@
110
  #woolentor_elements_tabs table tr.woolentor_table_row{
111
  border: 1px solid #ddd;
112
  float: left;
113
- margin-bottom: 5px;
114
- margin-right: 5px;
115
- padding: 0 20px;
 
 
 
 
 
116
  }
117
- #woolentor_elements_tabs table tr td,#woolentor_elements_tabs table tr th{
 
 
 
 
 
118
  padding-right: 0;
119
  }
120
-
121
  #woolentor_elements_tabs table tr.htmega_title_row{
122
  border: medium none;
123
  display: block;
@@ -135,7 +217,7 @@
135
  /* Check box */
136
  .htoptions_element_checkbox label {
137
  padding: 2px;
138
- width: 43px;
139
  height: 15px;
140
  background-color: #2c3e50;
141
  border-radius: 60px;
@@ -185,13 +267,48 @@
185
  }
186
  .htoptions_element_checkbox input:checked + label::after {
187
  background-color: #22b9ff;
188
- margin-left: 23px;
189
  }
190
 
191
  .woolentor_table_row span{
192
  color: #FF0000;
193
  }
194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  /* Popup Box */
196
  .wldialog-content {
197
  text-align: center;
@@ -214,8 +331,18 @@
214
  padding: 0 15px;
215
  }
216
  .woolentor-document-section {
217
- margin-top: 25px;
218
  overflow: hidden;
 
 
 
 
 
 
 
 
 
 
 
219
  }
220
  .wooolentor-section-title {
221
  font-size: 20px;
@@ -278,6 +405,130 @@
278
  font-size: 16px;
279
  }
280
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
281
  /*
282
  * Template Laibrary Start
283
  */
@@ -365,133 +616,9 @@
365
  margin: 20px 0 15px;
366
  }
367
 
368
- /*#tp-grid {
369
- margin-left: 0 !important;
370
- margin-top: 35px !important;
371
- }
372
- .tp-grid{
373
- overflow: hidden !important;
374
- }
375
- #tp-grid li {
376
- width: 20% !important;
377
- }
378
- #htmega-tmp-name {
379
- text-transform: uppercase;
380
- }
381
- .tp-grid .httemplate-action{
382
- display: none;
383
- }
384
-
385
- .htpackage-tp-title {
386
- background: #fff;
387
- display: block;
388
- width: 100%;
389
- padding: 15px;
390
- position: absolute;
391
- bottom: 20px;
392
- left: 0;
393
- box-sizing: border-box;
394
- text-align: center;
395
- }
396
- .htpackage-tp-title h3{
397
- text-transform: capitalize;
398
- font-size: 16px;
399
- font-weight: 700;
400
- color: #000;
401
- margin: 0;
402
- }
403
- .htpackage-tp-title p {
404
- margin: 5px 0 0;
405
- }
406
- .htpackage-tp-title span {
407
- margin-right: 5px;
408
- }
409
-
410
- .htmega-loader {
411
- text-align: center;
412
- }
413
- #htmegaclose {
414
- cursor: pointer;
415
- font-size: 16px;
416
- display: none;
417
- transition: 0.4s;
418
- }
419
- #htmegaclose:hover{
420
- color: #d30c5c;
421
- }
422
- .htmega-topbar {
423
- display: none;
424
- justify-content: space-between;
425
- margin-right: 15px;
426
- align-items: center;
427
- background: #fff;
428
- padding: 15px 16px;
429
- }
430
- .htmega-topbar h3{
431
- margin: 0;
432
- }
433
-
434
- .httemplate-row .htsingle-templates-laibrary {
435
- float: left;
436
- margin-bottom: 30px;
437
- padding: 0 15px;
438
- width: 100%;
439
- }
440
- .httemplate-row .htsingle-templates-laibrary img{
441
- width: 100%;
442
- }
443
- .httemplate-thumbnails {
444
- overflow: hidden;
445
- position: relative;
446
- }
447
- .httemplate-content {
448
- background: #fff none repeat scroll 0 0;
449
- padding: 15px;
450
- text-align: center;
451
- }
452
- .httemplate-content h3 {
453
- font-size: 16px;
454
- margin: 0;
455
- }
456
- .httemplate-content span {
457
- color: red;
458
- display: none;
459
- }
460
- .httemplate-tags {
461
- color: #888;
462
- margin-top: 5px;
463
- }
464
-
465
- .httemplate-action {
466
- background: #333 none repeat scroll 0 0;
467
- bottom: 0;
468
- display: flex;
469
- flex-wrap: wrap;
470
- justify-content: space-between;
471
- left: 0;
472
- position: absolute;
473
- right: 0;
474
- z-index: 2;
475
- transition: 0.4s;
476
- }*/
477
  .httemplate-row .htsingle-templates-laibrary *, .httemplate-row .htsingle-templates-laibrary *::after, .httemplate-row .htsingle-templates-laibrary *::before,.httemplate-row .htsingle-templates-laibrary {
478
  box-sizing: border-box;
479
  }
480
- /*.httemplate-action a {
481
- color: #fff;
482
- flex: 0 0 50%;
483
- font-size: 14px;
484
- padding: 12px 20px;
485
- text-align: center;
486
- text-decoration: none;
487
- transition: all 0.4s ease 0s;
488
- }
489
- .httemplate-action a:first-child:not(:last-child) {
490
- border-right: 1px solid rgba(255,255,255, 0.2);
491
- }
492
- .httemplate-action a:hover{
493
- background: #0085ba none repeat scroll 0 0;
494
- }*/
495
 
496
  /*Pop Up*/
497
  .httemplate-popupcontent {
@@ -608,10 +735,7 @@
608
 
609
  /* Large Device :1200px. */
610
  @media (min-width: 1200px) and (max-width: 1400px) {
611
-
612
- #tp-grid li {
613
- width: 25% !important;
614
- }
615
  .woolentor-single-theme {
616
  width: 33.333%;
617
  }
@@ -620,23 +744,22 @@
620
 
621
  /* Normal desktop :992px. */
622
  @media (min-width: 992px) and (max-width: 1199px) {
623
-
624
- #tp-grid li {
625
- width: 40% !important;
626
- }
627
  .woolentor-single-theme {
628
  width: 50%;
629
  }
 
 
 
 
 
 
630
 
631
  }
632
 
633
 
634
  /* Tablet desktop :768px. */
635
  @media (min-width: 768px) and (max-width: 991px) {
636
-
637
- #tp-grid li {
638
- width: 40% !important;
639
- }
640
 
641
  .woolentor-single-theme {
642
  width: 50%;
@@ -645,14 +768,21 @@
645
  width: 33%;
646
  }
647
 
 
 
 
 
 
 
 
 
 
 
648
  }
649
 
650
  /* small mobile :320px. */
651
  @media (max-width: 767px) {
652
 
653
- #tp-grid li {
654
- width: 90% !important;
655
- }
656
  .woolentor-single-theme {
657
  width: 100%;
658
  }
@@ -660,16 +790,42 @@
660
  width: 90%;
661
  }
662
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
663
  }
664
 
665
  /* Large Mobile :480px. */
666
  @media only screen and (min-width: 480px) and (max-width: 767px) {
667
 
668
- #tp-grid li {
669
- width: 40% !important;
670
- }
671
  .woolentor-single-theme {
672
  width: 50%;
673
  }
674
 
 
 
 
 
675
  }
1
+ h2.element_section_title.margin_0 {
2
+ margin: 0;
3
+ }
4
+ .woolentor-setting-area h2.nav-tab-wrapper{
5
+ position: relative;
6
+ padding: 15px 10px;
7
+ border: 1px solid #ccc;
8
+ border-radius: 7px;
9
+ display: flex;
10
+ flex-wrap: wrap;
11
+ list-style: none;
12
+ margin-bottom: 25px;
13
+ }
14
+
15
+ .woolentor-setting-area h2.nav-tab-wrapper a{
16
+ display: block;
17
+ line-height: 30px;
18
+ padding: 5px 15px;
19
+ border-radius: 7px;
20
+ background-color: transparent;
21
+ font-weight: 500;
22
+ font-size: 16px;
23
+ text-transform: capitalize;
24
+ border: 0;
25
+ position: relative;
26
+ }
27
+ .woolentor-setting-area h2.nav-tab-wrapper a:first-child {
28
+ margin-left: 0;
29
+ }
30
+ .woolentor-setting-area h2.nav-tab-wrapper a:before {
31
+ content: "";
32
+ position: absolute;
33
+ left: 4px;
34
+ top: calc(100% + -1px);
35
+ width: calc(100% - 7px);
36
+ border-radius: 0 0 10px 10px;
37
+ height: 3px;
38
+ opacity: 0;
39
+ }
40
+ .woolentor-setting-area h2.nav-tab-wrapper a.nav-tab-active{
41
+ background-color: #fff;
42
+ color: #428bfa;
43
+ box-shadow: 0 4px 12px rgb(0 0 0 / 10%);
44
+ }
45
+ .woolentor-setting-area h2.nav-tab-wrapper a.nav-tab-active::before {
46
+ background-color: #428bfa;
47
+ opacity: 1;
48
+ }
49
+
50
+ .woolentor-setting-area .metabox-holder{
51
+ background-color: #fff;
52
+ border-radius: 7px;
53
+ }
54
+
55
+ .woolentor-setting-area .metabox-holder .group{
56
+ padding: 25px 0 25px 20px;
57
+ }
58
+ #wpbody-content .woolentor-setting-area .metabox-holder {
59
+ padding-top: 0;
60
+ }
61
+ .woolentor-setting-area p.submit {
62
+ margin-bottom: 0;
63
+ padding-bottom: 0;
64
+ }
65
+ .woolentor-setting-area h2{
66
+ margin-top: 0;
67
+ }
68
+ .woolentor-style-tab-title h3{
69
+ margin-top: 0;
70
+ }
71
+
72
  #woolentor_woo_template_tabs .description span, #woolentor_rename_label_tabs .description span,#woolentor_sales_notification_tabs .description span{
73
  color: #ff0000;
74
  }
83
  float: left;
84
  margin-bottom: 30px;
85
  padding: 0 15px;
86
+ width: 33%;
87
+ }
88
+ .woolentor-pro .woolentor-single-theme{
89
  width: 25%;
90
  }
91
  .woolentor-single-theme img{
110
  .woolentor-themes-row {
111
  margin-left: -15px;
112
  overflow: hidden;
113
+ display: flex;
114
+ flex-flow: wrap;
115
  }
116
  .woolentor-template-area {
117
  overflow: hidden;
135
  }
136
 
137
  .woolentor-admin-tab-area {
138
+ margin: 0 0 20px;
139
  }
140
  .woolentor-admin-tabs {
141
  list-style: outside none none;
167
  #woolentor_elements_tabs h2 {
168
  display: none;
169
  }
 
 
 
170
  .wlopen-element-toggle {
171
  display: inline-block;
172
  padding: 7px 15px;
183
  #woolentor_elements_tabs table tr.woolentor_table_row{
184
  border: 1px solid #ddd;
185
  float: left;
186
+ margin: 0 5px 5px 0px;
187
+ padding: 0 14px;
188
+ }
189
+ #woolentor_elements_tabs table tr th {
190
+ padding: 15px 0 14px 0;
191
+ width: 226px;
192
+ line-height: 1;
193
+ vertical-align: middle;
194
  }
195
+ @media (min-width: 1366px) and (max-width: 1479px) {
196
+ #woolentor_elements_tabs table tr th {
197
+ width: 198px;
198
+ }
199
+ }
200
+ #woolentor_elements_tabs table tr td, #woolentor_elements_tabs table tr th {
201
  padding-right: 0;
202
  }
 
203
  #woolentor_elements_tabs table tr.htmega_title_row{
204
  border: medium none;
205
  display: block;
217
  /* Check box */
218
  .htoptions_element_checkbox label {
219
  padding: 2px;
220
+ width: 35px;
221
  height: 15px;
222
  background-color: #2c3e50;
223
  border-radius: 60px;
267
  }
268
  .htoptions_element_checkbox input:checked + label::after {
269
  background-color: #22b9ff;
270
+ margin-left: 14px;
271
  }
272
 
273
  .woolentor_table_row span{
274
  color: #FF0000;
275
  }
276
 
277
+ /* Dimensions Field */
278
+ .htoption_dimensions li {
279
+ float: left;
280
+ width: 75px;
281
+ }
282
+ .htoption_dimensions li input {
283
+ display: block;
284
+ text-align: center;
285
+ width: 100%;
286
+ border-color: #d5dadf;
287
+ height: 30px;
288
+ border-left: none;
289
+ border-radius: 0;
290
+ padding: 4px 4px 4px 0;
291
+ }
292
+ .htoption_dimensions li input:focus{
293
+ outline: none;
294
+ box-shadow: none;
295
+ border:1px solid #007cba !important;
296
+ }
297
+ .htoption_dimensions li:first-child input {
298
+ border-left: 1px solid #d5dadf;
299
+ border-radius: 3px 0 0 3px;
300
+ }
301
+ .htoption_dimensions li:last-child input {
302
+ border-right: 1px solid #d5dadf;
303
+ border-radius: 0 3px 3px 0;
304
+ }
305
+ .htoption_dimensions li label {
306
+ display: block !important;
307
+ text-align: center;
308
+ font-size: 13px;
309
+ text-transform: uppercase;
310
+ }
311
+
312
  /* Popup Box */
313
  .wldialog-content {
314
  text-align: center;
331
  padding: 0 15px;
332
  }
333
  .woolentor-document-section {
 
334
  overflow: hidden;
335
+ margin-left: -15px;
336
+ display: flex;
337
+ }
338
+ .woolentor-general-tabs .woolentor-document-section .woolentor-column a{
339
+ display: block;
340
+ }
341
+ .woolentor-general-tabs .woolentor-document-section .woolentor-column a img{
342
+ width: 100%;
343
+ }
344
+ .different-pro-free {
345
+ margin-left: -15px;
346
  }
347
  .wooolentor-section-title {
348
  font-size: 20px;
405
  font-size: 16px;
406
  }
407
 
408
+ /* Sidebar Add banner */
409
+ .htoptions-area {
410
+ width: 75%;
411
+ float: left;
412
+ }
413
+ .htoptions-area + .htoptions-sidebar-adds-area {
414
+ width: 22%;
415
+ float: right;
416
+ }
417
+
418
+ .htoption-banner-area {
419
+ background: #fff;
420
+ font-size: 14px;
421
+ line-height: 24px;
422
+ color: #444444;
423
+ padding: 30px;
424
+ box-shadow: 0 0 28px rgba(0,0,0,0.1);
425
+ }
426
+
427
+ .htoption-banner-area .htoption-logo {
428
+ text-align: center;
429
+ margin-bottom: 20px;
430
+ }
431
+ .htoption-logo img {
432
+ width: 90px;
433
+ }
434
+ .htoption-banner-area .htoption-intro {
435
+ text-align: center;
436
+ margin-bottom: 45px;
437
+ }
438
+ .htoption-banner-area .htoption-intro p {
439
+ line-height: 25px;
440
+ }
441
+
442
+ ul.htoption-feature{
443
+ margin: 0;
444
+ padding: 0;
445
+ list-style: none;
446
+ }
447
+ ul.htoption-feature li {
448
+ position: relative;
449
+ margin: 0;
450
+ padding: 0 0 0 30px;
451
+ }
452
+ ul.htoption-feature li::before {
453
+ position: absolute;
454
+ content: url(../images/icon/check.png);
455
+ width: 15px;
456
+ height: 20px;
457
+ top: 4px;
458
+ left: 0;
459
+ margin: 0;
460
+ }
461
+ ul.htoption-feature li + li {
462
+ margin-top: 15px;
463
+ }
464
+ .htoption-action-btn {
465
+ text-align: center;
466
+ margin-top: 45px;
467
+ }
468
+ .htoption-action-btn a.htoption-btn {
469
+ background: #2bc48a;
470
+ font-size: 14px;
471
+ line-height: 24px;
472
+ color: #fff;
473
+ border: 1px solid #2bc48a;
474
+ padding: 5px 5px 5px 20px;
475
+ border-radius: 25px;
476
+ outline: 0;
477
+ transition: 0.4s;
478
+ display: inline-block;
479
+ text-decoration: none;
480
+ transition: 0.4s;
481
+ }
482
+ .htoption-action-btn a.htoption-btn:hover{
483
+ background: #3aab80;
484
+ box-shadow: 0 0 28px rgba(0,0,0,0.1);
485
+ }
486
+ .htoption-action-btn a.htoption-btn .htoption-btn-icon {
487
+ width: 40px;
488
+ height: 40px;
489
+ background-color: #fff;
490
+ border-radius: 100%;
491
+ display: inline-block;
492
+ text-align: center;
493
+ line-height: 40px;
494
+ margin-left: 15px;
495
+ }
496
+
497
+ .htoption-rating-area {
498
+ display: -webkit-box;
499
+ display: -ms-flexbox;
500
+ display: flex;
501
+ -ms-flex-wrap: wrap;
502
+ flex-wrap: wrap;
503
+ -webkit-box-align: center;
504
+ -ms-flex-align: center;
505
+ align-items: center;
506
+ font-size: 14px;
507
+ line-height: 24px;
508
+ color: #444444;
509
+ padding: 30px;
510
+ background: #fff;
511
+ box-shadow: 0 0 28px rgba(0,0,0,0.1);
512
+ margin-top: 45px;
513
+ }
514
+ .htoption-rating-area .htoption-rating-icon {
515
+ -webkit-box-flex: 0;
516
+ -ms-flex: 0 0 auto;
517
+ flex: 0 0 auto;
518
+ width: auto;
519
+ max-width: none;
520
+ padding-right: 20px;
521
+ }
522
+ .htoption-rating-area .htoption-rating-intro {
523
+ -ms-flex-preferred-size: 0;
524
+ flex-basis: 0;
525
+ -webkit-box-flex: 1;
526
+ -ms-flex-positive: 1;
527
+ flex-grow: 1;
528
+ width: 100%;
529
+ max-width: 100%;
530
+ }
531
+
532
  /*
533
  * Template Laibrary Start
534
  */
616
  margin: 20px 0 15px;
617
  }
618
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
619
  .httemplate-row .htsingle-templates-laibrary *, .httemplate-row .htsingle-templates-laibrary *::after, .httemplate-row .htsingle-templates-laibrary *::before,.httemplate-row .htsingle-templates-laibrary {
620
  box-sizing: border-box;
621
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
622
 
623
  /*Pop Up*/
624
  .httemplate-popupcontent {
735
 
736
  /* Large Device :1200px. */
737
  @media (min-width: 1200px) and (max-width: 1400px) {
738
+
 
 
 
739
  .woolentor-single-theme {
740
  width: 33.333%;
741
  }
744
 
745
  /* Normal desktop :992px. */
746
  @media (min-width: 992px) and (max-width: 1199px) {
747
+
 
 
 
748
  .woolentor-single-theme {
749
  width: 50%;
750
  }
751
+ .htoption-action-btn a.htoption-btn .htoption-btn-icon{
752
+ display: none;
753
+ }
754
+ .htoption-action-btn a.htoption-btn{
755
+ padding: 5px 20px 5px 20px;
756
+ }
757
 
758
  }
759
 
760
 
761
  /* Tablet desktop :768px. */
762
  @media (min-width: 768px) and (max-width: 991px) {
 
 
 
 
763
 
764
  .woolentor-single-theme {
765
  width: 50%;
768
  width: 33%;
769
  }
770
 
771
+ .htoptions-area {
772
+ width: 100%;
773
+ float: none;
774
+ }
775
+ .htoptions-area + .htoptions-sidebar-adds-area {
776
+ width: 100%;
777
+ float: none;
778
+ margin-top: 40px;
779
+ }
780
+
781
  }
782
 
783
  /* small mobile :320px. */
784
  @media (max-width: 767px) {
785
 
 
 
 
786
  .woolentor-single-theme {
787
  width: 100%;
788
  }
790
  width: 90%;
791
  }
792
 
793
+ .htoptions-area {
794
+ width: 100%;
795
+ float: none;
796
+ }
797
+ .htoptions-area + .htoptions-sidebar-adds-area {
798
+ width: 100%;
799
+ float: none;
800
+ margin-top: 30px;
801
+ }
802
+ .different-pro-free .woolentor-admin-row,.woolentor-document-section{
803
+ flex-flow: column;
804
+ }
805
+ .features-list-area {
806
+ margin: 0 0 15px;
807
+ }
808
+ .woolentor-style-tab-bottom img{
809
+ width: 100%;
810
+ }
811
+ .woolentor-setting-area h2.nav-tab-wrapper a {
812
+ margin-right: 0;
813
+ }
814
+ .woolentor-setting-area h2 {
815
+ padding: 0;
816
+ }
817
+
818
  }
819
 
820
  /* Large Mobile :480px. */
821
  @media only screen and (min-width: 480px) and (max-width: 767px) {
822
 
 
 
 
823
  .woolentor-single-theme {
824
  width: 50%;
825
  }
826
 
827
+ .woolentor-document-section{
828
+ flex-flow: row;
829
+ }
830
+
831
  }
includes/admin/assets/css/tmp-style.css CHANGED
@@ -643,7 +643,7 @@ body {
643
 
644
  /* Scroll Top Top */
645
  .htwpt-scrollToTop, .htwpt-groupScrollToTop {
646
- font-size: 12px;
647
  font-weight: 600;
648
  position: fixed;
649
  z-index: 99;
643
 
644
  /* Scroll Top Top */
645
  .htwpt-scrollToTop, .htwpt-groupScrollToTop {
646
+ font-size: 0;
647
  font-weight: 600;
648
  position: fixed;
649
  z-index: 99;
includes/admin/assets/images/extension/email-candy-pro.png ADDED
Binary file
includes/admin/assets/images/extension/just-tables-pro.png ADDED
Binary file
includes/admin/assets/images/extension/multicurrencypro.png ADDED
Binary file
includes/admin/assets/images/extension/whols-pro.png ADDED
Binary file
includes/admin/assets/images/icon/check.png ADDED
Binary file
includes/admin/assets/images/icon/plus.png ADDED
Binary file
includes/admin/assets/images/icon/rating.png ADDED
Binary file
includes/admin/assets/images/logo.png ADDED
Binary file
includes/admin/assets/images/pricing/life_time_agency.png ADDED
Binary file
includes/admin/assets/images/pricing/life_time_five_website.png ADDED
Binary file
includes/admin/assets/images/pricing/life_time_single_website.png ADDED
Binary file
includes/admin/assets/images/pricing/one_year_agency.png ADDED
Binary file
includes/admin/assets/images/pricing/one_year_five_website.png ADDED
Binary file
includes/admin/assets/images/pricing/one_year_single_website.png ADDED
Binary file
includes/admin/assets/js/install_manager.js CHANGED
@@ -31,7 +31,7 @@
31
  e.preventDefault();
32
  var $card = $( '.htwptemplata-plugin-' + args.slug ),
33
  $button = $card.find( '.button' );
34
- $button.text( WLTM.buttontxt.installing ).addClass( 'updating-message' );
35
  },
36
 
37
  /**
@@ -70,11 +70,11 @@
70
 
71
  $message.removeClass( 'install-now installed button-disabled updated-message' )
72
  .addClass( 'updating-message' )
73
- .html( WLTM.buttontxt.activating );
74
 
75
  setTimeout( function() {
76
  $.ajax( {
77
- url: WLTM.ajaxurl,
78
  type: 'POST',
79
  data: {
80
  action : 'woolentor_ajax_plugin_activation',
@@ -85,7 +85,7 @@
85
  $message.removeClass( 'button-primary install-now activate-now updating-message' )
86
  .attr( 'disabled', 'disabled' )
87
  .addClass( 'disabled' )
88
- .text( WLTM.buttontxt.active );
89
 
90
  } else {
91
  $message.removeClass( 'updating-message' );
@@ -110,10 +110,10 @@
110
  return;
111
  }
112
 
113
- $button.addClass( 'updating-message button-primary' ).html( WLTM.buttontxt.activating );
114
 
115
  $.ajax( {
116
- url: WLTM.ajaxurl,
117
  type: 'POST',
118
  data: {
119
  action : 'woolentor_ajax_plugin_activation',
@@ -124,7 +124,7 @@
124
  $button.removeClass( 'button-primary install-now activate-now updating-message' )
125
  .attr( 'disabled', 'disabled' )
126
  .addClass( 'disabled' )
127
- .text( WLTM.buttontxt.active );
128
  }
129
  });
130
 
@@ -163,7 +163,7 @@
163
  e.preventDefault();
164
  var $card = $( '.htwptemplata-theme-' + args.slug ),
165
  $button = $card.find( '.button' );
166
- $button.text( WLTM.buttontxt.installing ).addClass( 'updating-message' );
167
  },
168
 
169
  /**
@@ -202,11 +202,11 @@
202
 
203
  $message.removeClass( 'install-now installed button-disabled updated-message' )
204
  .addClass( 'updating-message' )
205
- .html( WLTM.buttontxt.activating );
206
 
207
  setTimeout( function() {
208
  $.ajax( {
209
- url: WLTM.ajaxurl,
210
  type: 'POST',
211
  data: {
212
  action : 'woolentor_ajax_theme_activation',
@@ -217,7 +217,7 @@
217
  $message.removeClass( 'button-primary install-now activate-now updating-message' )
218
  .attr( 'disabled', 'disabled' )
219
  .addClass( 'disabled' )
220
- .text( WLTM.buttontxt.active );
221
 
222
  } else {
223
  $message.removeClass( 'updating-message' );
@@ -242,10 +242,10 @@
242
  return;
243
  }
244
 
245
- $button.addClass( 'updating-message button-primary' ).html( WLTM.buttontxt.activating );
246
 
247
  $.ajax( {
248
- url: WLTM.ajaxurl,
249
  type: 'POST',
250
  data: {
251
  action : 'woolentor_ajax_theme_activation',
@@ -256,7 +256,7 @@
256
  $button.removeClass( 'button-primary install-now activate-now updating-message' )
257
  .attr( 'disabled', 'disabled' )
258
  .addClass( 'disabled' )
259
- .text( WLTM.buttontxt.active );
260
  }
261
  });
262
 
@@ -266,7 +266,7 @@
266
  };
267
 
268
  /**
269
- * Initialize WooLentortemplataPluginManager
270
  */
271
  $( document ).ready( function() {
272
  WooLentortemplataPluginManager.init();
31
  e.preventDefault();
32
  var $card = $( '.htwptemplata-plugin-' + args.slug ),
33
  $button = $card.find( '.button' );
34
+ $button.text( WLIM.buttontxt.installing ).addClass( 'updating-message' );
35
  },
36
 
37
  /**
70
 
71
  $message.removeClass( 'install-now installed button-disabled updated-message' )
72
  .addClass( 'updating-message' )
73
+ .html( WLIM.buttontxt.activating );
74
 
75
  setTimeout( function() {
76
  $.ajax( {
77
+ url: WLIM.ajaxurl,
78
  type: 'POST',
79
  data: {
80
  action : 'woolentor_ajax_plugin_activation',
85
  $message.removeClass( 'button-primary install-now activate-now updating-message' )
86
  .attr( 'disabled', 'disabled' )
87
  .addClass( 'disabled' )
88
+ .text( WLIM.buttontxt.active );
89
 
90
  } else {
91
  $message.removeClass( 'updating-message' );
110
  return;
111
  }
112
 
113
+ $button.addClass( 'updating-message button-primary' ).html( WLIM.buttontxt.activating );
114
 
115
  $.ajax( {
116
+ url: WLIM.ajaxurl,
117
  type: 'POST',
118
  data: {
119
  action : 'woolentor_ajax_plugin_activation',
124
  $button.removeClass( 'button-primary install-now activate-now updating-message' )
125
  .attr( 'disabled', 'disabled' )
126
  .addClass( 'disabled' )
127
+ .text( WLIM.buttontxt.active );
128
  }
129
  });
130
 
163
  e.preventDefault();
164
  var $card = $( '.htwptemplata-theme-' + args.slug ),
165
  $button = $card.find( '.button' );
166
+ $button.text( WLIM.buttontxt.installing ).addClass( 'updating-message' );
167
  },
168
 
169
  /**
202
 
203
  $message.removeClass( 'install-now installed button-disabled updated-message' )
204
  .addClass( 'updating-message' )
205
+ .html( WLIM.buttontxt.activating );
206
 
207
  setTimeout( function() {
208
  $.ajax( {
209
+ url: WLIM.ajaxurl,
210
  type: 'POST',
211
  data: {
212
  action : 'woolentor_ajax_theme_activation',
217
  $message.removeClass( 'button-primary install-now activate-now updating-message' )
218
  .attr( 'disabled', 'disabled' )
219
  .addClass( 'disabled' )
220
+ .text( WLIM.buttontxt.active );
221
 
222
  } else {
223
  $message.removeClass( 'updating-message' );
242
  return;
243
  }
244
 
245
+ $button.addClass( 'updating-message button-primary' ).html( WLIM.buttontxt.activating );
246
 
247
  $.ajax( {
248
+ url: WLIM.ajaxurl,
249
  type: 'POST',
250
  data: {
251
  action : 'woolentor_ajax_theme_activation',
256
  $button.removeClass( 'button-primary install-now activate-now updating-message' )
257
  .attr( 'disabled', 'disabled' )
258
  .addClass( 'disabled' )
259
+ .text( WLIM.buttontxt.active );
260
  }
261
  });
262
 
266
  };
267
 
268
  /**
269
+ * Initialize
270
  */
271
  $( document ).ready( function() {
272
  WooLentortemplataPluginManager.init();
includes/admin/assets/js/woolentor-admin.js CHANGED
@@ -13,26 +13,43 @@
13
  }
14
  woolentor_admin_tabs( $(".woolentor-admin-tabs"), '.woolentor-admin-tab-pane' );
15
 
16
- var contenttypeval = admin_wllocalize_data.contenttype;
17
- if( contenttypeval == 'fakes' ){
18
- $(".notification_fake").show();
19
- $(".notification_real").hide();
20
- }else{
21
- $(".notification_fake").hide();
22
- $(".notification_real").show();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  }
24
- // When Change radio button
25
- $(".notification_content_type .radio").on('change',function(){
26
- if( $(this).is(":checked") ){
27
- contenttypeval = $(this).val();
28
- }
29
- if( contenttypeval == 'fakes' ){
30
- $(".notification_fake").show();
31
- $(".notification_real").hide();
32
  }else{
33
- $(".notification_fake").hide();
34
- $(".notification_real").show();
35
  }
36
- });
37
 
38
  })(jQuery);
13
  }
14
  woolentor_admin_tabs( $(".woolentor-admin-tabs"), '.woolentor-admin-tab-pane' );
15
 
16
+ // Check Save data wise
17
+ WooLentorConditionField( admin_wllocalize_data.option_data['contenttype'], 'fakes', '.notification_fake' );
18
+ WooLentorConditionField( admin_wllocalize_data.option_data['contenttype'], 'actual', '.notification_real' );
19
+ WooLentorConditionField( admin_wllocalize_data.option_data['side_mini_cart'], 'on', '.side_mini_cart_field' );
20
+ WooLentorConditionField( admin_wllocalize_data.option_data['enablecustomlayout'], 'on', '.depend_enable_custom_layout' );
21
+ WooLentorConditionField( admin_wllocalize_data.option_data['enablerenamelabel'], 'on', '.depend_enable_rename_label' );
22
+ WooLentorConditionField( admin_wllocalize_data.option_data['single_product_sticky_add_to_cart'], 'on', '.depend_single_product_sticky_add_to_cart' );
23
+
24
+ // After On change
25
+ WooLentorOnChangeField('.notification_content_type .radio', 'radio', '.notification_fake', 'fakes' );
26
+ WooLentorOnChangeField('.notification_content_type .radio', 'radio', '.notification_real', 'actual' );
27
+ WooLentorOnChangeField('.side_mini_cart .checkbox', 'radio', '.side_mini_cart_field', 'on' );
28
+ WooLentorOnChangeField('.enablecustomlayout .checkbox', 'radio', '.depend_enable_custom_layout', 'on' );
29
+ WooLentorOnChangeField('.enablerenamelabel .checkbox', 'radio', '.depend_enable_rename_label', 'on' );
30
+ WooLentorOnChangeField('.single_product_sticky_add_to_cart .checkbox', 'radio', '.depend_single_product_sticky_add_to_cart', 'on' );
31
+
32
+ function WooLentorOnChangeField( field, type = 'select', selector, condition_value ){
33
+ $(field).on('change',function(){
34
+ var change_value = '';
35
+ if( type === 'radio' ){
36
+ if( $(this).is(":checked") ){
37
+ change_value = $(this).val();
38
+ }
39
+ }else{
40
+ change_value = $(this).val();
41
+ }
42
+ WooLentorConditionField( change_value, condition_value, selector );
43
+ });
44
  }
45
+
46
+ // Hide || Show
47
+ function WooLentorConditionField( value, condition_value, selector ){
48
+ if( value === condition_value ){
49
+ $(selector).show();
 
 
 
50
  }else{
51
+ $(selector).hide();
 
52
  }
53
+ }
54
 
55
  })(jQuery);
includes/admin/include/admin-setting.php CHANGED
@@ -11,12 +11,13 @@ class Woolentor_Admin_Settings {
11
 
12
  add_action( 'admin_init', [ $this, 'admin_init' ] );
13
  add_action( 'admin_menu', [ $this, 'admin_menu' ], 220 );
 
14
  add_action( 'wsa_form_bottom_woolentor_general_tabs', [ $this, 'woolentor_html_general_tabs' ] );
15
  add_action( 'wsa_form_top_woolentor_elements_tabs', [ $this, 'woolentor_html_popup_box' ] );
16
  add_action( 'wsa_form_bottom_woolentor_themes_library_tabs', [ $this, 'woolentor_html_themes_library_tabs' ] );
17
 
18
- add_action( 'wsa_form_top_woolentor_style_tabs', array( $this, 'style_tab_html' ) );
19
- add_action( 'wsa_form_bottom_woolentor_style_tabs', array( $this, 'style_tab_bottom_html' ) );
20
 
21
  add_action( 'wsa_form_bottom_woolentor_buy_pro_tabs', [ $this, 'woolentor_html_buy_pro_tabs' ] );
22
 
@@ -130,13 +131,14 @@ class Woolentor_Admin_Settings {
130
  array(
131
  'name' => 'shoppageproductlimit',
132
  'label' => __( 'Product Limit', 'woolentor' ),
133
- 'desc' => wp_kses_post( 'You can handle the product limit for the Shop page', 'woolentor' ),
134
  'min' => 1,
135
  'max' => 100,
136
  'step' => '1',
137
  'type' => 'number',
138
- 'std' => '10',
139
- 'sanitize_callback' => 'floatval'
 
140
  ),
141
 
142
  array(
@@ -145,16 +147,28 @@ class Woolentor_Admin_Settings {
145
  'desc' => __( 'You can select a custom template for the product details page layout', 'woolentor' ),
146
  'type' => 'select',
147
  'default' => '0',
148
- 'options' => woolentor_elementor_template()
 
149
  ),
150
 
151
  array(
152
  'name' => 'productarchivepage',
153
- 'label' => __( 'Product Archive Page Template', 'woolentor' ),
154
  'desc' => __( 'You can select a custom template for the Shop page layout', 'woolentor' ),
155
  'type' => 'select',
156
  'default' => '0',
157
- 'options' => woolentor_elementor_template()
 
 
 
 
 
 
 
 
 
 
 
158
  ),
159
 
160
  array(
@@ -166,7 +180,7 @@ class Woolentor_Admin_Settings {
166
  'options' => array(
167
  'select'=>'Select a template for the cart page layout',
168
  ),
169
- 'class'=>'proelement',
170
  ),
171
 
172
  array(
@@ -178,7 +192,7 @@ class Woolentor_Admin_Settings {
178
  'options' => array(
179
  'select'=>'Select a template for the Checkout page layout',
180
  ),
181
- 'class'=>'proelement',
182
  ),
183
 
184
  array(
@@ -190,7 +204,7 @@ class Woolentor_Admin_Settings {
190
  'options' => array(
191
  'select'=>'Select a template for the Thank you page layout',
192
  ),
193
- 'class'=>'proelement',
194
  ),
195
 
196
  array(
@@ -202,7 +216,7 @@ class Woolentor_Admin_Settings {
202
  'options' => array(
203
  'select'=>'Select Template',
204
  ),
205
- 'class'=>'proelement',
206
  ),
207
 
208
  array(
@@ -214,7 +228,7 @@ class Woolentor_Admin_Settings {
214
  'options' => array(
215
  'select'=>'Select Template',
216
  ),
217
- 'class'=>'proelement',
218
  ),
219
 
220
  array(
@@ -226,7 +240,7 @@ class Woolentor_Admin_Settings {
226
  'options' => array(
227
  'select'=>'Select Template',
228
  ),
229
- 'class'=>'proelement',
230
  ),
231
 
232
  ),
@@ -313,6 +327,46 @@ class Woolentor_Admin_Settings {
313
  'class'=>'woolentor_table_row',
314
  ),
315
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
316
  array(
317
  'name' => 'wl_brand',
318
  'label' => __( 'Brand Logo', 'woolentor' ),
@@ -337,6 +391,14 @@ class Woolentor_Admin_Settings {
337
  'class'=>'woolentor_table_row',
338
  ),
339
 
 
 
 
 
 
 
 
 
340
  array(
341
  'name' => 'wb_product_title',
342
  'label' => __( 'Product Title', 'woolentor' ),
@@ -481,6 +543,22 @@ class Woolentor_Admin_Settings {
481
  'class'=>'woolentor_table_row',
482
  ),
483
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
484
  array(
485
  'name' => 'wl_custom_archive_layoutp',
486
  'label' => __( 'Product Archive Layout <span>( Pro )</span>', 'woolentor' ),
@@ -489,6 +567,14 @@ class Woolentor_Admin_Settings {
489
  'class'=>'woolentor_table_row pro',
490
  ),
491
 
 
 
 
 
 
 
 
 
492
  array(
493
  'name' => 'wl_cart_tablep',
494
  'label' => __( 'Product Cart Table <span>( Pro )</span>', 'woolentor' ),
@@ -715,7 +801,7 @@ class Woolentor_Admin_Settings {
715
 
716
  array(
717
  'name' => 'wl_stock_progress_barp',
718
- 'label' => __( 'Stock Progressbar <span>( Pro )</span>', 'woolentor' ),
719
  'type' => 'checkbox',
720
  'default' => 'off',
721
  'class'=>'woolentor_table_row pro',
@@ -744,6 +830,14 @@ class Woolentor_Admin_Settings {
744
  'class'=>'woolentor_table_row pro',
745
  ),
746
 
 
 
 
 
 
 
 
 
747
  ),
748
 
749
  'woolentor_themes_library_tabs' => array(),
@@ -755,13 +849,14 @@ class Woolentor_Admin_Settings {
755
  'desc' => __( 'Enable', 'woolentor' ),
756
  'type' => 'checkbox',
757
  'default' => 'off',
758
- 'class'=>'woolentor_table_row',
759
  ),
760
 
761
  array(
762
  'name' => 'shop_page_heading',
763
  'headding' => __( 'Shop Page', 'woolentor' ),
764
  'type' => 'title',
 
765
  ),
766
 
767
  array(
@@ -769,13 +864,15 @@ class Woolentor_Admin_Settings {
769
  'label' => __( 'Add to Cart Button Text', 'woolentor' ),
770
  'desc' => __( 'Change the Add to Cart button text for the Shop page.', 'woolentor' ),
771
  'type' => 'text',
772
- 'placeholder' => __( 'Add to Cart', 'woolentor' )
 
773
  ),
774
 
775
  array(
776
  'name' => 'product_details_page_heading',
777
  'headding' => __( 'Product Details Page', 'woolentor' ),
778
  'type' => 'title',
 
779
  ),
780
 
781
  array(
@@ -783,7 +880,8 @@ class Woolentor_Admin_Settings {
783
  'label' => __( 'Add to Cart Button Text', 'woolentor' ),
784
  'desc' => __( 'Change the Add to Cart button text for the Product details page.', 'woolentor' ),
785
  'type' => 'text',
786
- 'placeholder' => __( 'Add to Cart', 'woolentor' )
 
787
  ),
788
 
789
  array(
@@ -792,7 +890,7 @@ class Woolentor_Admin_Settings {
792
  'desc' => __( 'Change the tab title for the product description. <span>( Pro )</span>', 'woolentor' ),
793
  'type' => 'text',
794
  'placeholder' => __( 'Description', 'woolentor' ),
795
- 'class'=>'proelement',
796
  ),
797
 
798
  array(
@@ -800,8 +898,8 @@ class Woolentor_Admin_Settings {
800
  'label' => __( 'Additional Information', 'woolentor' ),
801
  'desc' => __( 'Change the tab title for the product additional information <span>( Pro )</span>', 'woolentor' ),
802
  'type' => 'text',
803
- 'placeholder' => __( 'Additiona information', 'woolentor' ),
804
- 'class'=>'proelement',
805
  ),
806
 
807
  array(
@@ -810,13 +908,14 @@ class Woolentor_Admin_Settings {
810
  'desc' => __( 'Change the tab title for the product review <span>( Pro )</span>', 'woolentor' ),
811
  'type' => 'text',
812
  'placeholder' => __( 'Reviews', 'woolentor' ),
813
- 'class'=>'proelement',
814
  ),
815
 
816
  array(
817
  'name' => 'checkout_page_headingp',
818
  'headding' => __( 'Checkout Page', 'woolentor' ),
819
  'type' => 'title',
 
820
  ),
821
 
822
  array(
@@ -825,7 +924,7 @@ class Woolentor_Admin_Settings {
825
  'desc' => __( 'Change the label for the First name field <span>( Pro )</span>', 'woolentor' ),
826
  'type' => 'text',
827
  'placeholder' => __( 'First name', 'woolentor' ),
828
- 'class'=>'proelement',
829
  ),
830
 
831
  array(
@@ -834,7 +933,7 @@ class Woolentor_Admin_Settings {
834
  'desc' => __( 'Change the label for the Last name field <span>( Pro )</span>', 'woolentor' ),
835
  'type' => 'text',
836
  'placeholder' => __( 'Last name', 'woolentor' ),
837
- 'class'=>'proelement',
838
  ),
839
 
840
  array(
@@ -843,7 +942,7 @@ class Woolentor_Admin_Settings {
843
  'desc' => __( 'Change the label for the Company field. <span>( Pro )</span>', 'woolentor' ),
844
  'type' => 'text',
845
  'placeholder' => __( 'Company name', 'woolentor' ),
846
- 'class'=>'proelement',
847
  ),
848
 
849
  array(
@@ -852,7 +951,7 @@ class Woolentor_Admin_Settings {
852
  'desc' => __( 'Change the label for the Street address field. <span>( Pro )</span>', 'woolentor' ),
853
  'type' => 'text',
854
  'placeholder' => __( 'Street address', 'woolentor' ),
855
- 'class'=>'proelement',
856
  ),
857
 
858
  array(
@@ -861,7 +960,7 @@ class Woolentor_Admin_Settings {
861
  'desc' => __( 'Change the label for the Optional address field. <span>( Pro )</span>', 'woolentor' ),
862
  'type' => 'text',
863
  'placeholder' => __( 'Address Optional', 'woolentor' ),
864
- 'class'=>'proelement',
865
  ),
866
 
867
  array(
@@ -870,7 +969,7 @@ class Woolentor_Admin_Settings {
870
  'desc' => __( 'Change the label for the Town/City field. <span>( Pro )</span>', 'woolentor' ),
871
  'type' => 'text',
872
  'placeholder' => __( 'Town / City', 'woolentor' ),
873
- 'class'=>'proelement',
874
  ),
875
 
876
  array(
@@ -879,7 +978,7 @@ class Woolentor_Admin_Settings {
879
  'desc' => __( 'Change the label for the Postcode / ZIP field. <span>( Pro )</span>', 'woolentor' ),
880
  'type' => 'text',
881
  'placeholder' => __( 'Postcode / ZIP', 'woolentor' ),
882
- 'class'=>'proelement',
883
  ),
884
 
885
  array(
@@ -888,7 +987,7 @@ class Woolentor_Admin_Settings {
888
  'desc' => __( 'Change the label for the State field. <span>( Pro )</span>', 'woolentor' ),
889
  'type' => 'text',
890
  'placeholder' => __( 'State', 'woolentor' ),
891
- 'class'=>'proelement',
892
  ),
893
 
894
  array(
@@ -897,7 +996,7 @@ class Woolentor_Admin_Settings {
897
  'desc' => __( 'Change the label for the Phone field. <span>( Pro )</span>', 'woolentor' ),
898
  'type' => 'text',
899
  'placeholder' => __( 'Phone', 'woolentor' ),
900
- 'class'=>'proelement',
901
  ),
902
 
903
  array(
@@ -906,7 +1005,7 @@ class Woolentor_Admin_Settings {
906
  'desc' => __( 'Change the label for the Email address field. <span>( Pro )</span>', 'woolentor' ),
907
  'type' => 'text',
908
  'placeholder' => __( 'Email address', 'woolentor' ),
909
- 'class'=>'proelement',
910
  ),
911
 
912
  array(
@@ -915,7 +1014,7 @@ class Woolentor_Admin_Settings {
915
  'desc' => __( 'Change the label for the Country field. <span>( Pro )</span>', 'woolentor' ),
916
  'type' => 'text',
917
  'placeholder' => __( 'Country', 'woolentor' ),
918
- 'class'=>'proelement',
919
  ),
920
 
921
  array(
@@ -924,7 +1023,7 @@ class Woolentor_Admin_Settings {
924
  'desc' => __( 'Change the label for the Order notes field. <span>( Pro )</span>', 'woolentor' ),
925
  'type' => 'text',
926
  'placeholder' => __( 'Order notes', 'woolentor' ),
927
- 'class'=>'proelement',
928
  ),
929
 
930
  array(
@@ -933,7 +1032,7 @@ class Woolentor_Admin_Settings {
933
  'desc' => __( 'Change the label for the Place order field. <span>( Pro )</span>', 'woolentor' ),
934
  'type' => 'text',
935
  'placeholder' => __( 'Place order', 'woolentor' ),
936
- 'class'=>'proelement',
937
  ),
938
 
939
  ),
@@ -946,7 +1045,7 @@ class Woolentor_Admin_Settings {
946
  'desc' => __( 'Enable', 'woolentor' ),
947
  'type' => 'checkbox',
948
  'default' => 'off',
949
- 'class'=>'woolentor_table_row',
950
  ),
951
 
952
  array(
@@ -957,7 +1056,7 @@ class Woolentor_Admin_Settings {
957
  'default' => 'actual',
958
  'options' => array(
959
  'actual' => __('Real','woolentor'),
960
- 'fakes' => __('Fakes','woolentor'),
961
  ),
962
  'class'=>'proelement',
963
  ),
@@ -988,8 +1087,8 @@ class Woolentor_Admin_Settings {
988
 
989
  array(
990
  'name' => 'notification_loadduration',
991
- 'label' => __( 'Loading Time', 'woolentor' ),
992
- 'desc' => __( 'Set the time duration to load the notifications.', 'woolentor' ),
993
  'type' => 'select',
994
  'default' => '3',
995
  'options' => array(
@@ -1012,6 +1111,18 @@ class Woolentor_Admin_Settings {
1012
  ),
1013
  ),
1014
 
 
 
 
 
 
 
 
 
 
 
 
 
1015
  array(
1016
  'name' => 'notification_time_intp',
1017
  'label' => __( 'Time Interval', 'woolentor' ),
@@ -1090,7 +1201,7 @@ class Woolentor_Admin_Settings {
1090
  array(
1091
  'name' => 'background_colorp',
1092
  'label' => __( 'Background Color', 'woolentor' ),
1093
- 'desc' => wp_kses_post( 'Set the background color of the notification. <span>( Pro )</span>', 'woolentor' ),
1094
  'type' => 'color',
1095
  'class' => 'notification_real proelement',
1096
  ),
@@ -1098,7 +1209,7 @@ class Woolentor_Admin_Settings {
1098
  array(
1099
  'name' => 'heading_colorp',
1100
  'label' => __( 'Heading Color', 'woolentor' ),
1101
- 'desc' => wp_kses_post( 'Set the heading color of the notification. <span>( Pro )</span>', 'woolentor' ),
1102
  'type' => 'color',
1103
  'class' => 'notification_real proelement',
1104
  ),
@@ -1106,7 +1217,7 @@ class Woolentor_Admin_Settings {
1106
  array(
1107
  'name' => 'content_colorp',
1108
  'label' => __( 'Content Color', 'woolentor' ),
1109
- 'desc' => wp_kses_post( 'Set the content color of the notification. <span>( Pro )</span>', 'woolentor' ),
1110
  'type' => 'color',
1111
  'class' => 'notification_real proelement',
1112
  ),
@@ -1114,7 +1225,7 @@ class Woolentor_Admin_Settings {
1114
  array(
1115
  'name' => 'cross_colorp',
1116
  'label' => __( 'Cross Icon Color', 'woolentor' ),
1117
- 'desc' => wp_kses_post( 'Set the cross icon color of the notification. <span>( Pro )</span>', 'woolentor' ),
1118
  'type' => 'color',
1119
  'class' => 'proelement',
1120
  ),
@@ -1126,7 +1237,7 @@ class Woolentor_Admin_Settings {
1126
  array(
1127
  'name' => 'loadproductlimit',
1128
  'label' => __( 'Load Products in Elementor Addons', 'woolentor' ),
1129
- 'desc' => wp_kses_post( 'Set the number of products to load in Elementor Addons', 'woolentor' ),
1130
  'min' => 1,
1131
  'max' => 100,
1132
  'step' => '1',
@@ -1139,7 +1250,7 @@ class Woolentor_Admin_Settings {
1139
  array(
1140
  'name' => 'ajaxsearch',
1141
  'label' => __( 'Ajax Search Widget', 'woolentor' ),
1142
- 'desc' => wp_kses_post( 'AJAX Search Widget', 'woolentor' ),
1143
  'type' => 'checkbox',
1144
  'default' => 'off',
1145
  'class'=>'woolentor_table_row',
@@ -1148,7 +1259,7 @@ class Woolentor_Admin_Settings {
1148
  array(
1149
  'name' => 'ajaxcart_singleproduct',
1150
  'label' => __( 'Single Product Ajax Add To Cart', 'woolentor' ),
1151
- 'desc' => wp_kses_post( 'AJAX Add to Cart on Single Product page', 'woolentor' ),
1152
  'type' => 'checkbox',
1153
  'default' => 'off',
1154
  'class'=>'woolentor_table_row',
@@ -1157,7 +1268,7 @@ class Woolentor_Admin_Settings {
1157
  array(
1158
  'name' => 'single_product_sticky_add_to_cartp',
1159
  'label' => __( 'Single Product Sticky Add To Cart <span>( Pro )</span>', 'woolentor' ),
1160
- 'desc' => wp_kses_post( 'Sticky Add to Cart on Single Product page', 'woolentor' ),
1161
  'type' => 'checkbox',
1162
  'default' => 'off',
1163
  'class' => 'woolentor_table_row pro',
@@ -1183,6 +1294,14 @@ class Woolentor_Admin_Settings {
1183
  'class' =>'woolentor_table_row proelement',
1184
  ),
1185
 
 
 
 
 
 
 
 
 
1186
  ),
1187
 
1188
  'woolentor_style_tabs' => array(
@@ -1190,7 +1309,7 @@ class Woolentor_Admin_Settings {
1190
  array(
1191
  'name' => 'content_area_bg',
1192
  'label' => __( 'Content area background', 'woolentor' ),
1193
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1194
  'type' => 'color',
1195
  'default'=>'#ffffff',
1196
  ),
@@ -1204,14 +1323,14 @@ class Woolentor_Admin_Settings {
1204
  array(
1205
  'name' => 'title_color',
1206
  'label' => __( 'Title color', 'woolentor' ),
1207
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1208
  'type' => 'color',
1209
  'default'=>'#444444',
1210
  ),
1211
  array(
1212
  'name' => 'title_hover_color',
1213
  'label' => __( 'Title hover color', 'woolentor' ),
1214
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1215
  'type' => 'color',
1216
  'default'=>'#dc9a0e',
1217
  ),
@@ -1225,14 +1344,14 @@ class Woolentor_Admin_Settings {
1225
  array(
1226
  'name' => 'sale_price_color',
1227
  'label' => __( 'Sale price color', 'woolentor' ),
1228
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1229
  'type' => 'color',
1230
  'default'=>'#444444',
1231
  ),
1232
  array(
1233
  'name' => 'regular_price_color',
1234
  'label' => __( 'Regular price color', 'woolentor' ),
1235
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1236
  'type' => 'color',
1237
  'default'=>'#444444',
1238
  ),
@@ -1246,14 +1365,14 @@ class Woolentor_Admin_Settings {
1246
  array(
1247
  'name' => 'category_color',
1248
  'label' => __( 'Category color', 'woolentor' ),
1249
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1250
  'type' => 'color',
1251
  'default'=>'#444444',
1252
  ),
1253
  array(
1254
  'name' => 'category_hover_color',
1255
  'label' => __( 'Category hover color', 'woolentor' ),
1256
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1257
  'type' => 'color',
1258
  'default'=>'#dc9a0e',
1259
  ),
@@ -1267,7 +1386,7 @@ class Woolentor_Admin_Settings {
1267
  array(
1268
  'name' => 'desc_color',
1269
  'label' => __( 'Description color', 'woolentor' ),
1270
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1271
  'type' => 'color',
1272
  'default'=>'#444444',
1273
  ),
@@ -1281,14 +1400,14 @@ class Woolentor_Admin_Settings {
1281
  array(
1282
  'name' => 'empty_rating_color',
1283
  'label' => __( 'Empty rating color', 'woolentor' ),
1284
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1285
  'type' => 'color',
1286
  'default'=>'#aaaaaa',
1287
  ),
1288
  array(
1289
  'name' => 'rating_color',
1290
  'label' => __( 'Rating color', 'woolentor' ),
1291
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1292
  'type' => 'color',
1293
  'default'=>'#dc9a0e',
1294
  ),
@@ -1302,7 +1421,7 @@ class Woolentor_Admin_Settings {
1302
  array(
1303
  'name' => 'badge_color',
1304
  'label' => __( 'Badge color', 'woolentor' ),
1305
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1306
  'type' => 'color',
1307
  'default'=>'#444444',
1308
  ),
@@ -1316,21 +1435,21 @@ class Woolentor_Admin_Settings {
1316
  array(
1317
  'name' => 'tooltip_color',
1318
  'label' => __( 'Tool tip color', 'woolentor' ),
1319
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1320
  'type' => 'color',
1321
  'default'=>'#ffffff',
1322
  ),
1323
  array(
1324
  'name' => 'btn_color',
1325
  'label' => __( 'Button color', 'woolentor' ),
1326
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1327
  'type' => 'color',
1328
  'default'=>'#000000',
1329
  ),
1330
  array(
1331
  'name' => 'btn_hover_color',
1332
  'label' => __( 'Button hover color', 'woolentor' ),
1333
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1334
  'type' => 'color',
1335
  'default'=>'#dc9a0e',
1336
  ),
@@ -1344,28 +1463,28 @@ class Woolentor_Admin_Settings {
1344
  array(
1345
  'name' => 'list_btn_color',
1346
  'label' => __( 'List View Button color', 'woolentor' ),
1347
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1348
  'type' => 'color',
1349
  'default'=>'#000000',
1350
  ),
1351
  array(
1352
  'name' => 'list_btn_hover_color',
1353
  'label' => __( 'List View Button Hover color', 'woolentor' ),
1354
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1355
  'type' => 'color',
1356
  'default'=>'#dc9a0e',
1357
  ),
1358
  array(
1359
  'name' => 'list_btn_bg_color',
1360
  'label' => __( 'List View Button background color', 'woolentor' ),
1361
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1362
  'type' => 'color',
1363
  'default'=>'#ffffff',
1364
  ),
1365
  array(
1366
  'name' => 'list_btn_hover_bg_color',
1367
  'label' => __( 'List View Button hover background color', 'woolentor' ),
1368
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1369
  'type' => 'color',
1370
  'default'=>'#ff3535',
1371
  ),
@@ -1379,7 +1498,7 @@ class Woolentor_Admin_Settings {
1379
  array(
1380
  'name' => 'counter_color',
1381
  'label' => __( 'Counter timer color', 'woolentor' ),
1382
- 'desc' => wp_kses_post( 'Default Color for universal layout.', 'woolentor' ),
1383
  'type' => 'color',
1384
  'default'=>'#ffffff',
1385
  ),
@@ -1415,6 +1534,61 @@ class Woolentor_Admin_Settings {
1415
  ];
1416
  }
1417
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1418
 
1419
  return array_merge( $settings_fields );
1420
  }
@@ -1422,11 +1596,18 @@ class Woolentor_Admin_Settings {
1422
 
1423
  function plugin_page() {
1424
 
1425
- echo '<div class="wrap">';
1426
- echo '<h2>'.esc_html__( 'WooLentor Settings','woolentor' ).'</h2>';
1427
- $this->save_message();
1428
- $this->settings_api->show_navigation();
1429
- $this->settings_api->show_forms();
 
 
 
 
 
 
 
1430
  echo '</div>';
1431
 
1432
  }
@@ -1440,6 +1621,57 @@ class Woolentor_Admin_Settings {
1440
  }
1441
  }
1442
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1443
  // Custom Markup
1444
 
1445
  // HTML Style tab Section
@@ -1447,7 +1679,7 @@ class Woolentor_Admin_Settings {
1447
  ob_start();
1448
  ?>
1449
  <div class="woolentor-style-tab-title">
1450
- <h3><?php esc_html_e( 'Universal layout style options', 'woolentor-pro' );?></h3>
1451
  </div>
1452
  <?php
1453
  echo ob_get_clean();
@@ -1459,7 +1691,7 @@ class Woolentor_Admin_Settings {
1459
  ?>
1460
  <div class="woolentor-style-tab-bottom">
1461
  <h3><?php echo esc_html__( 'Helping Screenshot:', 'woolentor' ); ?></h3>
1462
- <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/universal-layout-screen.png" alt="<?php echo esc_attr__( 'Universal layout', 'woolentor' ); ?>">
1463
  </div>
1464
  <?php
1465
  echo ob_get_clean();
@@ -1473,18 +1705,18 @@ class Woolentor_Admin_Settings {
1473
 
1474
  <div class="woolentor-document-section">
1475
  <div class="woolentor-column">
1476
- <a href="https://hasthemes.com/blog-category/woolentor/" target="_blank">
1477
- <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/video-tutorial.jpg" alt="<?php esc_attr_e( 'Video Tutorial', 'woolentor' ); ?>">
1478
  </a>
1479
  </div>
1480
  <div class="woolentor-column">
1481
  <a href="https://demo.hasthemes.com/doc/woolentor/index.html" target="_blank">
1482
- <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/online-documentation.jpg" alt="<?php esc_attr_e( 'Online Documentation', 'woolentor' ); ?>">
1483
  </a>
1484
  </div>
1485
  <div class="woolentor-column">
1486
  <a href="https://hasthemes.com/contact-us/" target="_blank">
1487
- <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/genral-contact-us.jpg" alt="<?php esc_attr_e( 'Contact Us', 'woolentor' ); ?>">
1488
  </a>
1489
  </div>
1490
  </div>
@@ -1509,7 +1741,7 @@ class Woolentor_Admin_Settings {
1509
  <li class="wldel"><del><?php echo esc_html__( 'My Account Page Builder', 'woolentor' ); ?></del></li>
1510
  <li class="wldel"><del><?php echo esc_html__( 'My Account Login page Builder', 'woolentor' ); ?></del></li>
1511
  </ul>
1512
- <a class="button button-primary" href="<?php echo esc_url( admin_url() ); ?>plugin-install.php?s=woolentor-addons&tab=search&type=term" target="_blank"><?php echo esc_html__( 'Install Now', 'woolenror' ); ?></a>
1513
  </div>
1514
  <div class="features-list-area">
1515
  <h3><?php echo esc_html__( 'WooLentor Pro', 'woolentor' ); ?></h3>
@@ -1527,7 +1759,7 @@ class Woolentor_Admin_Settings {
1527
  <li><?php echo esc_html__( 'My Account Page Builder', 'woolentor' ); ?></li>
1528
  <li><?php echo esc_html__( 'My Account Login page Builder', 'woolentor' ); ?></li>
1529
  </ul>
1530
- <a class="button button-primary" href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd" target="_blank"><?php echo esc_html__( 'Buy Now', 'woolenror' ); ?></a>
1531
  </div>
1532
  </div>
1533
 
@@ -1547,7 +1779,7 @@ class Woolentor_Admin_Settings {
1547
  <span><i class="dashicons dashicons-warning"></i></span>
1548
  <p>
1549
  <?php
1550
- echo __('Purchase our','woolentor').' <strong><a href="'.esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd' ).'" target="_blank" rel="nofollow">'.__( 'premium version', 'woolentor' ).'</a></strong> '.__('to unlock these pro elements!','woolentor');
1551
  ?>
1552
  </p>
1553
  </div>
@@ -1586,7 +1818,7 @@ class Woolentor_Admin_Settings {
1586
  <div class="woolentor-themes-area">
1587
  <div class="woolentor-themes-row">
1588
 
1589
- <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/99fy.png" alt="">
1590
  <div class="woolentor-theme-content">
1591
  <h3><?php echo esc_html__( '99Fy - Free', 'woolentor' ); ?></h3>
1592
  <p><?php echo esc_html__( '99fy is a free WooCommerce theme. 99 demos for 24 niche categories are included in this theme.', 'woolentor' ); ?></p>
@@ -1595,7 +1827,7 @@ class Woolentor_Admin_Settings {
1595
  </div>
1596
  </div>
1597
 
1598
- <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/parlo.png" alt="">
1599
  <div class="woolentor-theme-content">
1600
  <h3><?php echo esc_html__( 'Parlo - Free', 'woolentor' ); ?></h3>
1601
  <p><?php echo esc_html__( 'Parlo is a free WooCommerce theme developed by our team. You can use this for your store.', 'woolentor' );?></p>
@@ -1604,7 +1836,7 @@ class Woolentor_Admin_Settings {
1604
  </div>
1605
  </div>
1606
 
1607
- <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/99fy-pro.png" alt="">
1608
  <div class="woolentor-theme-content">
1609
  <h3><?php echo esc_html__( '99Fy Pro - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1610
  <p><?php echo esc_html__( 'Pro version of 99fy is included in WooLentor pro. It will save money for the WooLentor pro users.', 'woolentor' ); ?></p>
@@ -1612,7 +1844,7 @@ class Woolentor_Admin_Settings {
1612
  </div>
1613
  </div>
1614
 
1615
- <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/flone.png" alt="">
1616
  <div class="woolentor-theme-content">
1617
  <h3><?php echo esc_html__( 'Flone - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1618
  <p><?php echo esc_html__( 'Flone is one of our most popular WooComemrce Themes using by 1000+ stores.', 'wooLentor' );?></p>
@@ -1620,7 +1852,7 @@ class Woolentor_Admin_Settings {
1620
  </div>
1621
  </div>
1622
 
1623
- <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/parlo.png" alt="">
1624
  <div class="woolentor-theme-content">
1625
  <h3><?php echo esc_html__( 'Parlo Pro - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1626
  <p><?php echo esc_html__( 'Pro version of Parlo is included in WooLentor pro. It will save money for the WooLentor pro users.', 'wooLentor' );?></p>
@@ -1628,26 +1860,26 @@ class Woolentor_Admin_Settings {
1628
  </div>
1629
  </div>
1630
 
1631
- <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/holmes.png" alt="">
1632
  <div class="woolentor-theme-content">
1633
  <h3><?php echo esc_html__( 'Holmes - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1634
- <p><?php echo esc_html__( 'Holmes is a preimum woocommerce theme included in WooLentor pro. It will save money for the WooLentor pro users.', 'woolentor' );?></p>
1635
  <a href="http://demo.hasthemes.com/wp/holmes-preview.html" class="woolentor-button" target="_blank"><?php echo esc_html__( 'Preview', 'woolentor' ); ?></a>
1636
  </div>
1637
  </div>
1638
 
1639
- <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/daniel-home-1.png" alt="">
1640
  <div class="woolentor-theme-content">
1641
  <h3><?php echo esc_html__( 'Daniel - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1642
- <p><?php echo esc_html__( 'Daniel is a preimum woocommerce theme included in WooLentor pro. It will save money for the WooLentor pro users.', 'woolentor' ); ?></p>
1643
  <a href="http://demo.hasthemes.com/wp/daniel-preview.html" class="woolentor-button" target="_blank"><?php echo esc_html__( 'Preview', 'woolentor' ); ?></a>
1644
  </div>
1645
  </div>
1646
 
1647
- <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>/includes/admin/assets/images/hurst-home-1.png" alt="">
1648
  <div class="woolentor-theme-content">
1649
  <h3><?php echo esc_html__( 'Hurst - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1650
- <p><?php echo esc_html__( 'Hurst is a preimum woocommerce theme included in WooLentor pro. It will save money for the WooLentor pro users.', 'woolentor' ); ?></p>
1651
  <a href="http://demo.hasthemes.com/wp/hurst-preview.html" class="woolentor-button" target="_blank"><?php echo esc_html__( 'Preview', 'woolentor' ); ?></a>
1652
  </div>
1653
  </div>
@@ -1665,42 +1897,42 @@ class Woolentor_Admin_Settings {
1665
  ?>
1666
  <div class="woolentor-admin-tab-area">
1667
  <ul class="woolentor-admin-tabs">
1668
- <li><a href="#oneyear" class="wlactive"><?php echo esc_html__( 'One Year', 'woolentor' ); ?></a></li>
1669
- <li><a href="#lifetime"><?php echo esc_html__( 'Life Time', 'woolentor' ); ?></a></li>
1670
  </ul>
1671
  </div>
1672
 
1673
- <div id="oneyear" class="woolentor-admin-tab-pane wlactive">
1674
  <div class="woolentor-admin-row">
1675
 
1676
  <div class="woolentor-price-plan">
1677
- <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd" target="_blank"><img src="https://demo.hasthemes.com/pricing-plan/one_year_single_website.png" alt="<?php echo esc_attr__( 'One Year Single Website','woolentor' );?>"></a>
1678
  </div>
1679
 
1680
  <div class="woolentor-price-plan">
1681
- <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd" target="_blank"><img src="https://demo.hasthemes.com/pricing-plan/one_year_elementor_guru.png" alt="<?php echo esc_attr__( 'One Year Unlimited Website','woolentor' );?>"></a>
1682
  </div>
1683
 
1684
  <div class="woolentor-price-plan">
1685
- <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd" target="_blank"><img src="https://demo.hasthemes.com/pricing-plan/one_year_wpbundle.png" alt="<?php echo esc_attr__( 'One Year Unlimited Websites','woolentor' );?>"></a>
1686
  </div>
1687
 
1688
  </div>
1689
  </div>
1690
 
1691
- <div id="lifetime" class="woolentor-admin-tab-pane">
1692
 
1693
  <div class="woolentor-admin-row">
1694
  <div class="woolentor-price-plan">
1695
- <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd" target="_blank"><img src="https://demo.hasthemes.com/pricing-plan/life_time_single_website.png" alt="<?php echo esc_attr__( 'Life Time Single Website','woolentor' );?>"></a>
1696
  </div>
1697
 
1698
  <div class="woolentor-price-plan">
1699
- <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd" target="_blank"><img src="https://demo.hasthemes.com/pricing-plan/life_time_elementor_guru.png" alt="<?php echo esc_attr__( 'Life time Unlimited Website','woolentor' );?>"></a>
1700
  </div>
1701
 
1702
  <div class="woolentor-price-plan">
1703
- <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?fd" target="_blank"><img src="https://demo.hasthemes.com/pricing-plan/life_time_wpbundle.png" alt="<?php echo esc_attr__( 'Life Time Unlimited Websites','woolentor' );?>"></a>
1704
  </div>
1705
  </div>
1706
 
11
 
12
  add_action( 'admin_init', [ $this, 'admin_init' ] );
13
  add_action( 'admin_menu', [ $this, 'admin_menu' ], 220 );
14
+
15
  add_action( 'wsa_form_bottom_woolentor_general_tabs', [ $this, 'woolentor_html_general_tabs' ] );
16
  add_action( 'wsa_form_top_woolentor_elements_tabs', [ $this, 'woolentor_html_popup_box' ] );
17
  add_action( 'wsa_form_bottom_woolentor_themes_library_tabs', [ $this, 'woolentor_html_themes_library_tabs' ] );
18
 
19
+ add_action( 'wsa_form_top_woolentor_style_tabs', [ $this, 'style_tab_html' ] );
20
+ add_action( 'wsa_form_bottom_woolentor_style_tabs', [ $this, 'style_tab_bottom_html' ] );
21
 
22
  add_action( 'wsa_form_bottom_woolentor_buy_pro_tabs', [ $this, 'woolentor_html_buy_pro_tabs' ] );
23
 
131
  array(
132
  'name' => 'shoppageproductlimit',
133
  'label' => __( 'Product Limit', 'woolentor' ),
134
+ 'desc' => __( 'You can handle the product limit for the Shop page', 'woolentor' ),
135
  'min' => 1,
136
  'max' => 100,
137
  'step' => '1',
138
  'type' => 'number',
139
+ 'default' => '2',
140
+ 'sanitize_callback' => 'floatval',
141
+ 'class' => 'depend_enable_custom_layout',
142
  ),
143
 
144
  array(
147
  'desc' => __( 'You can select a custom template for the product details page layout', 'woolentor' ),
148
  'type' => 'select',
149
  'default' => '0',
150
+ 'options' => woolentor_elementor_template(),
151
+ 'class' => 'depend_enable_custom_layout',
152
  ),
153
 
154
  array(
155
  'name' => 'productarchivepage',
156
+ 'label' => __( 'Product Shop Page Template', 'woolentor' ),
157
  'desc' => __( 'You can select a custom template for the Shop page layout', 'woolentor' ),
158
  'type' => 'select',
159
  'default' => '0',
160
+ 'options' => woolentor_elementor_template(),
161
+ 'class' => 'depend_enable_custom_layout',
162
+ ),
163
+
164
+ array(
165
+ 'name' => 'productallarchivepage',
166
+ 'label' => __( 'Product Archive Page Template', 'woolentor' ),
167
+ 'desc' => __( 'You can select a custom template for the Product Archive page layout', 'woolentor' ),
168
+ 'type' => 'select',
169
+ 'default' => '0',
170
+ 'options' => woolentor_elementor_template(),
171
+ 'class' => 'depend_enable_custom_layout',
172
  ),
173
 
174
  array(
180
  'options' => array(
181
  'select'=>'Select a template for the cart page layout',
182
  ),
183
+ 'class'=>'proelement depend_enable_custom_layout',
184
  ),
185
 
186
  array(
192
  'options' => array(
193
  'select'=>'Select a template for the Checkout page layout',
194
  ),
195
+ 'class'=>'proelement depend_enable_custom_layout',
196
  ),
197
 
198
  array(
204
  'options' => array(
205
  'select'=>'Select a template for the Thank you page layout',
206
  ),
207
+ 'class'=>'proelement depend_enable_custom_layout',
208
  ),
209
 
210
  array(
216
  'options' => array(
217
  'select'=>'Select Template',
218
  ),
219
+ 'class'=>'proelement depend_enable_custom_layout',
220
  ),
221
 
222
  array(
228
  'options' => array(
229
  'select'=>'Select Template',
230
  ),
231
+ 'class'=>'proelement depend_enable_custom_layout',
232
  ),
233
 
234
  array(
240
  'options' => array(
241
  'select'=>'Select Template',
242
  ),
243
+ 'class'=>'proelement depend_enable_custom_layout',
244
  ),
245
 
246
  ),
327
  'class'=>'woolentor_table_row',
328
  ),
329
 
330
+ array(
331
+ 'name' => 'wl_category_grid',
332
+ 'label' => __( 'Category Grid', 'woolentor' ),
333
+ 'type' => 'checkbox',
334
+ 'default' => 'on',
335
+ 'class'=>'woolentor_table_row',
336
+ ),
337
+
338
+ array(
339
+ 'name' => 'wl_onepage_slider',
340
+ 'label' => __( 'One page slider', 'woolentor' ),
341
+ 'type' => 'checkbox',
342
+ 'default' => 'on',
343
+ 'class'=>'woolentor_table_row',
344
+ ),
345
+
346
+ array(
347
+ 'name' => 'wl_testimonial',
348
+ 'label' => __( 'Testimonial', 'woolentor' ),
349
+ 'type' => 'checkbox',
350
+ 'default' => 'on',
351
+ 'class'=>'woolentor_table_row',
352
+ ),
353
+
354
+ array(
355
+ 'name' => 'wl_store_features',
356
+ 'label' => __( 'Store Features', 'woolentor' ),
357
+ 'type' => 'checkbox',
358
+ 'default' => 'on',
359
+ 'class'=>'woolentor_table_row',
360
+ ),
361
+
362
+ array(
363
+ 'name' => 'wl_faq',
364
+ 'label' => __( 'Faq', 'woolentor' ),
365
+ 'type' => 'checkbox',
366
+ 'default' => 'on',
367
+ 'class'=>'woolentor_table_row',
368
+ ),
369
+
370
  array(
371
  'name' => 'wl_brand',
372
  'label' => __( 'Brand Logo', 'woolentor' ),
391
  'class'=>'woolentor_table_row',
392
  ),
393
 
394
+ array(
395
+ 'name' => 'wl_product_horizontal_filter',
396
+ 'label' => __( 'Product Horizontal Filter', 'woolentor' ),
397
+ 'type' => 'checkbox',
398
+ 'default' => 'on',
399
+ 'class'=>'woolentor_table_row',
400
+ ),
401
+
402
  array(
403
  'name' => 'wb_product_title',
404
  'label' => __( 'Product Title', 'woolentor' ),
543
  'class'=>'woolentor_table_row',
544
  ),
545
 
546
+ array(
547
+ 'name' => 'wl_product_expanding_gridp',
548
+ 'label' => __( 'Product Expanding Grid <span>( Pro )</span>', 'woolentor' ),
549
+ 'type' => 'checkbox',
550
+ 'default' => 'off',
551
+ 'class'=>'woolentor_table_row pro',
552
+ ),
553
+
554
+ array(
555
+ 'name' => 'wl_product_filterable_gridp',
556
+ 'label' => __( 'Product Filterable Grid <span>( Pro )</span>', 'woolentor' ),
557
+ 'type' => 'checkbox',
558
+ 'default' => 'off',
559
+ 'class'=>'woolentor_table_row pro',
560
+ ),
561
+
562
  array(
563
  'name' => 'wl_custom_archive_layoutp',
564
  'label' => __( 'Product Archive Layout <span>( Pro )</span>', 'woolentor' ),
567
  'class'=>'woolentor_table_row pro',
568
  ),
569
 
570
+ array(
571
+ 'name' => 'wl_product_pgridp',
572
+ 'label' => __( 'Product Grid <span>( Pro )</span>', 'woolentor' ),
573
+ 'type' => 'checkbox',
574
+ 'default' => 'off',
575
+ 'class'=>'woolentor_table_row pro',
576
+ ),
577
+
578
  array(
579
  'name' => 'wl_cart_tablep',
580
  'label' => __( 'Product Cart Table <span>( Pro )</span>', 'woolentor' ),
801
 
802
  array(
803
  'name' => 'wl_stock_progress_barp',
804
+ 'label' => __( 'Stock Progress Bar <span>( Pro )</span>', 'woolentor' ),
805
  'type' => 'checkbox',
806
  'default' => 'off',
807
  'class'=>'woolentor_table_row pro',
830
  'class'=>'woolentor_table_row pro',
831
  ),
832
 
833
+ array(
834
+ 'name' => 'wl_mini_cartp',
835
+ 'label' => __( 'Mini Cart <span>( Pro )</span>', 'woolentor' ),
836
+ 'type' => 'checkbox',
837
+ 'default' => 'off',
838
+ 'class'=>'woolentor_table_row pro',
839
+ ),
840
+
841
  ),
842
 
843
  'woolentor_themes_library_tabs' => array(),
849
  'desc' => __( 'Enable', 'woolentor' ),
850
  'type' => 'checkbox',
851
  'default' => 'off',
852
+ 'class' =>'woolentor_table_row enablerenamelabel',
853
  ),
854
 
855
  array(
856
  'name' => 'shop_page_heading',
857
  'headding' => __( 'Shop Page', 'woolentor' ),
858
  'type' => 'title',
859
+ 'class' => 'depend_enable_rename_label',
860
  ),
861
 
862
  array(
864
  'label' => __( 'Add to Cart Button Text', 'woolentor' ),
865
  'desc' => __( 'Change the Add to Cart button text for the Shop page.', 'woolentor' ),
866
  'type' => 'text',
867
+ 'placeholder' => __( 'Add to Cart', 'woolentor' ),
868
+ 'class' => 'depend_enable_rename_label',
869
  ),
870
 
871
  array(
872
  'name' => 'product_details_page_heading',
873
  'headding' => __( 'Product Details Page', 'woolentor' ),
874
  'type' => 'title',
875
+ 'class' => 'depend_enable_rename_label',
876
  ),
877
 
878
  array(
880
  'label' => __( 'Add to Cart Button Text', 'woolentor' ),
881
  'desc' => __( 'Change the Add to Cart button text for the Product details page.', 'woolentor' ),
882
  'type' => 'text',
883
+ 'placeholder' => __( 'Add to Cart', 'woolentor' ),
884
+ 'class' => 'depend_enable_rename_label',
885
  ),
886
 
887
  array(
890
  'desc' => __( 'Change the tab title for the product description. <span>( Pro )</span>', 'woolentor' ),
891
  'type' => 'text',
892
  'placeholder' => __( 'Description', 'woolentor' ),
893
+ 'class' => 'proelement depend_enable_rename_label',
894
  ),
895
 
896
  array(
898
  'label' => __( 'Additional Information', 'woolentor' ),
899
  'desc' => __( 'Change the tab title for the product additional information <span>( Pro )</span>', 'woolentor' ),
900
  'type' => 'text',
901
+ 'placeholder' => __( 'Additional information', 'woolentor' ),
902
+ 'class' => 'proelement depend_enable_rename_label',
903
  ),
904
 
905
  array(
908
  'desc' => __( 'Change the tab title for the product review <span>( Pro )</span>', 'woolentor' ),
909
  'type' => 'text',
910
  'placeholder' => __( 'Reviews', 'woolentor' ),
911
+ 'class' =>'proelement depend_enable_rename_label',
912
  ),
913
 
914
  array(
915
  'name' => 'checkout_page_headingp',
916
  'headding' => __( 'Checkout Page', 'woolentor' ),
917
  'type' => 'title',
918
+ 'class' => 'depend_enable_rename_label',
919
  ),
920
 
921
  array(
924
  'desc' => __( 'Change the label for the First name field <span>( Pro )</span>', 'woolentor' ),
925
  'type' => 'text',
926
  'placeholder' => __( 'First name', 'woolentor' ),
927
+ 'class' => 'proelement depend_enable_rename_label',
928
  ),
929
 
930
  array(
933
  'desc' => __( 'Change the label for the Last name field <span>( Pro )</span>', 'woolentor' ),
934
  'type' => 'text',
935
  'placeholder' => __( 'Last name', 'woolentor' ),
936
+ 'class' => 'proelement depend_enable_rename_label',
937
  ),
938
 
939
  array(
942
  'desc' => __( 'Change the label for the Company field. <span>( Pro )</span>', 'woolentor' ),
943
  'type' => 'text',
944
  'placeholder' => __( 'Company name', 'woolentor' ),
945
+ 'class' => 'proelement depend_enable_rename_label',
946
  ),
947
 
948
  array(
951
  'desc' => __( 'Change the label for the Street address field. <span>( Pro )</span>', 'woolentor' ),
952
  'type' => 'text',
953
  'placeholder' => __( 'Street address', 'woolentor' ),
954
+ 'class' => 'proelement depend_enable_rename_label',
955
  ),
956
 
957
  array(
960
  'desc' => __( 'Change the label for the Optional address field. <span>( Pro )</span>', 'woolentor' ),
961
  'type' => 'text',
962
  'placeholder' => __( 'Address Optional', 'woolentor' ),
963
+ 'class' => 'proelement depend_enable_rename_label',
964
  ),
965
 
966
  array(
969
  'desc' => __( 'Change the label for the Town/City field. <span>( Pro )</span>', 'woolentor' ),
970
  'type' => 'text',
971
  'placeholder' => __( 'Town / City', 'woolentor' ),
972
+ 'class' => 'proelement depend_enable_rename_label',
973
  ),
974
 
975
  array(
978
  'desc' => __( 'Change the label for the Postcode / ZIP field. <span>( Pro )</span>', 'woolentor' ),
979
  'type' => 'text',
980
  'placeholder' => __( 'Postcode / ZIP', 'woolentor' ),
981
+ 'class' => 'proelement depend_enable_rename_label',
982
  ),
983
 
984
  array(
987
  'desc' => __( 'Change the label for the State field. <span>( Pro )</span>', 'woolentor' ),
988
  'type' => 'text',
989
  'placeholder' => __( 'State', 'woolentor' ),
990
+ 'class' => 'proelement depend_enable_rename_label',
991
  ),
992
 
993
  array(
996
  'desc' => __( 'Change the label for the Phone field. <span>( Pro )</span>', 'woolentor' ),
997
  'type' => 'text',
998
  'placeholder' => __( 'Phone', 'woolentor' ),
999
+ 'class' => 'proelement depend_enable_rename_label',
1000
  ),
1001
 
1002
  array(
1005
  'desc' => __( 'Change the label for the Email address field. <span>( Pro )</span>', 'woolentor' ),
1006
  'type' => 'text',
1007
  'placeholder' => __( 'Email address', 'woolentor' ),
1008
+ 'class' => 'proelement depend_enable_rename_label',
1009
  ),
1010
 
1011
  array(
1014
  'desc' => __( 'Change the label for the Country field. <span>( Pro )</span>', 'woolentor' ),
1015
  'type' => 'text',
1016
  'placeholder' => __( 'Country', 'woolentor' ),
1017
+ 'class' => 'proelement depend_enable_rename_label',
1018
  ),
1019
 
1020
  array(
1023
  'desc' => __( 'Change the label for the Order notes field. <span>( Pro )</span>', 'woolentor' ),
1024
  'type' => 'text',
1025
  'placeholder' => __( 'Order notes', 'woolentor' ),
1026
+ 'class' => 'proelement depend_enable_rename_label',
1027
  ),
1028
 
1029
  array(
1032
  'desc' => __( 'Change the label for the Place order field. <span>( Pro )</span>', 'woolentor' ),
1033
  'type' => 'text',
1034
  'placeholder' => __( 'Place order', 'woolentor' ),
1035
+ 'class' => 'proelement depend_enable_rename_label',
1036
  ),
1037
 
1038
  ),
1045
  'desc' => __( 'Enable', 'woolentor' ),
1046
  'type' => 'checkbox',
1047
  'default' => 'off',
1048
+ 'class'=>'woolentor_table_row enableresalenotification',
1049
  ),
1050
 
1051
  array(
1056
  'default' => 'actual',
1057
  'options' => array(
1058
  'actual' => __('Real','woolentor'),
1059
+ 'fakes' => __('Manual','woolentor'),
1060
  ),
1061
  'class'=>'proelement',
1062
  ),
1087
 
1088
  array(
1089
  'name' => 'notification_loadduration',
1090
+ 'label' => __( 'First loading time', 'woolentor' ),
1091
+ 'desc' => __( 'When to start notification load duration.', 'woolentor' ),
1092
  'type' => 'select',
1093
  'default' => '3',
1094
  'options' => array(
1111
  ),
1112
  ),
1113
 
1114
+ array(
1115
+ 'name' => 'notification_time_showingp',
1116
+ 'label' => esc_html__( 'Notification showing time', 'woolentor' ),
1117
+ 'desc' => __( 'How long to keep the notification. <span>( Pro )</span>', 'woolentor' ),
1118
+ 'type' => 'select',
1119
+ 'default' => '5',
1120
+ 'options' => array(
1121
+ '5' =>esc_html__( '5 seconds','woolentor' ),
1122
+ ),
1123
+ 'class' => 'proelement',
1124
+ ),
1125
+
1126
  array(
1127
  'name' => 'notification_time_intp',
1128
  'label' => __( 'Time Interval', 'woolentor' ),
1201
  array(
1202
  'name' => 'background_colorp',
1203
  'label' => __( 'Background Color', 'woolentor' ),
1204
+ 'desc' => __( 'Set the background color of the notification. <span>( Pro )</span>', 'woolentor' ),
1205
  'type' => 'color',
1206
  'class' => 'notification_real proelement',
1207
  ),
1209
  array(
1210
  'name' => 'heading_colorp',
1211
  'label' => __( 'Heading Color', 'woolentor' ),
1212
+ 'desc' => __( 'Set the heading color of the notification. <span>( Pro )</span>', 'woolentor' ),
1213
  'type' => 'color',
1214
  'class' => 'notification_real proelement',
1215
  ),
1217
  array(
1218
  'name' => 'content_colorp',
1219
  'label' => __( 'Content Color', 'woolentor' ),
1220
+ 'desc' => __( 'Set the content color of the notification. <span>( Pro )</span>', 'woolentor' ),
1221
  'type' => 'color',
1222
  'class' => 'notification_real proelement',
1223
  ),
1225
  array(
1226
  'name' => 'cross_colorp',
1227
  'label' => __( 'Cross Icon Color', 'woolentor' ),
1228
+ 'desc' => __( 'Set the cross icon color of the notification. <span>( Pro )</span>', 'woolentor' ),
1229
  'type' => 'color',
1230
  'class' => 'proelement',
1231
  ),
1237
  array(
1238
  'name' => 'loadproductlimit',
1239
  'label' => __( 'Load Products in Elementor Addons', 'woolentor' ),
1240
+ 'desc' => __( 'Set the number of products to load in Elementor Addons', 'woolentor' ),
1241
  'min' => 1,
1242
  'max' => 100,
1243
  'step' => '1',
1250
  array(
1251
  'name' => 'ajaxsearch',
1252
  'label' => __( 'Ajax Search Widget', 'woolentor' ),
1253
+ 'desc' => __( 'AJAX Search Widget', 'woolentor' ),
1254
  'type' => 'checkbox',
1255
  'default' => 'off',
1256
  'class'=>'woolentor_table_row',
1259
  array(
1260
  'name' => 'ajaxcart_singleproduct',
1261
  'label' => __( 'Single Product Ajax Add To Cart', 'woolentor' ),
1262
+ 'desc' => __( 'AJAX Add to Cart on Single Product page', 'woolentor' ),
1263
  'type' => 'checkbox',
1264
  'default' => 'off',
1265
  'class'=>'woolentor_table_row',
1268
  array(
1269
  'name' => 'single_product_sticky_add_to_cartp',
1270
  'label' => __( 'Single Product Sticky Add To Cart <span>( Pro )</span>', 'woolentor' ),
1271
+ 'desc' => __( 'Sticky Add to Cart on Single Product page', 'woolentor' ),
1272
  'type' => 'checkbox',
1273
  'default' => 'off',
1274
  'class' => 'woolentor_table_row pro',
1294
  'class' =>'woolentor_table_row proelement',
1295
  ),
1296
 
1297
+ array(
1298
+ 'name' => 'multi_step_checkoutp',
1299
+ 'label' => __( 'Multi Step Checkout <span>( Pro )</span>', 'woolentor' ),
1300
+ 'type' => 'checkbox',
1301
+ 'default'=> 'off',
1302
+ 'class' =>'woolentor_table_row pro',
1303
+ ),
1304
+
1305
  ),
1306
 
1307
  'woolentor_style_tabs' => array(
1309
  array(
1310
  'name' => 'content_area_bg',
1311
  'label' => __( 'Content area background', 'woolentor' ),
1312
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1313
  'type' => 'color',
1314
  'default'=>'#ffffff',
1315
  ),
1323
  array(
1324
  'name' => 'title_color',
1325
  'label' => __( 'Title color', 'woolentor' ),
1326
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1327
  'type' => 'color',
1328
  'default'=>'#444444',
1329
  ),
1330
  array(
1331
  'name' => 'title_hover_color',
1332
  'label' => __( 'Title hover color', 'woolentor' ),
1333
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1334
  'type' => 'color',
1335
  'default'=>'#dc9a0e',
1336
  ),
1344
  array(
1345
  'name' => 'sale_price_color',
1346
  'label' => __( 'Sale price color', 'woolentor' ),
1347
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1348
  'type' => 'color',
1349
  'default'=>'#444444',
1350
  ),
1351
  array(
1352
  'name' => 'regular_price_color',
1353
  'label' => __( 'Regular price color', 'woolentor' ),
1354
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1355
  'type' => 'color',
1356
  'default'=>'#444444',
1357
  ),
1365
  array(
1366
  'name' => 'category_color',
1367
  'label' => __( 'Category color', 'woolentor' ),
1368
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1369
  'type' => 'color',
1370
  'default'=>'#444444',
1371
  ),
1372
  array(
1373
  'name' => 'category_hover_color',
1374
  'label' => __( 'Category hover color', 'woolentor' ),
1375
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1376
  'type' => 'color',
1377
  'default'=>'#dc9a0e',
1378
  ),
1386
  array(
1387
  'name' => 'desc_color',
1388
  'label' => __( 'Description color', 'woolentor' ),
1389
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1390
  'type' => 'color',
1391
  'default'=>'#444444',
1392
  ),
1400
  array(
1401
  'name' => 'empty_rating_color',
1402
  'label' => __( 'Empty rating color', 'woolentor' ),
1403
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1404
  'type' => 'color',
1405
  'default'=>'#aaaaaa',
1406
  ),
1407
  array(
1408
  'name' => 'rating_color',
1409
  'label' => __( 'Rating color', 'woolentor' ),
1410
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1411
  'type' => 'color',
1412
  'default'=>'#dc9a0e',
1413
  ),
1421
  array(
1422
  'name' => 'badge_color',
1423
  'label' => __( 'Badge color', 'woolentor' ),
1424
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1425
  'type' => 'color',
1426
  'default'=>'#444444',
1427
  ),
1435
  array(
1436
  'name' => 'tooltip_color',
1437
  'label' => __( 'Tool tip color', 'woolentor' ),
1438
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1439
  'type' => 'color',
1440
  'default'=>'#ffffff',
1441
  ),
1442
  array(
1443
  'name' => 'btn_color',
1444
  'label' => __( 'Button color', 'woolentor' ),
1445
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1446
  'type' => 'color',
1447
  'default'=>'#000000',
1448
  ),
1449
  array(
1450
  'name' => 'btn_hover_color',
1451
  'label' => __( 'Button hover color', 'woolentor' ),
1452
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1453
  'type' => 'color',
1454
  'default'=>'#dc9a0e',
1455
  ),
1463
  array(
1464
  'name' => 'list_btn_color',
1465
  'label' => __( 'List View Button color', 'woolentor' ),
1466
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1467
  'type' => 'color',
1468
  'default'=>'#000000',
1469
  ),
1470
  array(
1471
  'name' => 'list_btn_hover_color',
1472
  'label' => __( 'List View Button Hover color', 'woolentor' ),
1473
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1474
  'type' => 'color',
1475
  'default'=>'#dc9a0e',
1476
  ),
1477
  array(
1478
  'name' => 'list_btn_bg_color',
1479
  'label' => __( 'List View Button background color', 'woolentor' ),
1480
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1481
  'type' => 'color',
1482
  'default'=>'#ffffff',
1483
  ),
1484
  array(
1485
  'name' => 'list_btn_hover_bg_color',
1486
  'label' => __( 'List View Button hover background color', 'woolentor' ),
1487
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1488
  'type' => 'color',
1489
  'default'=>'#ff3535',
1490
  ),
1498
  array(
1499
  'name' => 'counter_color',
1500
  'label' => __( 'Counter timer color', 'woolentor' ),
1501
+ 'desc' => __( 'Default Color for universal layout.', 'woolentor' ),
1502
  'type' => 'color',
1503
  'default'=>'#ffffff',
1504
  ),
1534
  ];
1535
  }
1536
  }
1537
+
1538
+ // Wishsuite Addons
1539
+ if( is_plugin_active('wishsuite/wishsuite.php') ){
1540
+ $settings_fields['woolentor_elements_tabs'][] = [
1541
+ 'name' => 'wb_wishsuite_table',
1542
+ 'label' => __( 'WishSuite Table', 'woolentor' ),
1543
+ 'type' => 'checkbox',
1544
+ 'default' => 'on',
1545
+ 'class' => 'woolentor_table_row',
1546
+ ];
1547
+ }
1548
+
1549
+ // Ever Compare Addons
1550
+ if( is_plugin_active('ever-compare/ever-compare.php') ){
1551
+ $settings_fields['woolentor_elements_tabs'][] = [
1552
+ 'name' => 'wb_ever_compare_table',
1553
+ 'label' => __( 'Ever Compare', 'woolentor' ),
1554
+ 'type' => 'checkbox',
1555
+ 'default' => 'on',
1556
+ 'class' => 'woolentor_table_row',
1557
+ ];
1558
+ }
1559
+
1560
+ // JustTable Addons
1561
+ if( is_plugin_active('just-tables/just-tables.php') || is_plugin_active('just-tables-pro/just-tables-pro.php') ){
1562
+ $settings_fields['woolentor_elements_tabs'][] = [
1563
+ 'name' => 'wb_just_table',
1564
+ 'label' => __( 'JustTable', 'woolentor' ),
1565
+ 'type' => 'checkbox',
1566
+ 'default' => 'on',
1567
+ 'class' => 'woolentor_table_row',
1568
+ ];
1569
+ }
1570
+
1571
+ // whols Addons
1572
+ if( is_plugin_active('whols/whols.php') || is_plugin_active('whols-pro/whols-pro.php') ){
1573
+ $settings_fields['woolentor_elements_tabs'][] = [
1574
+ 'name' => 'wb_whols',
1575
+ 'label' => __( 'Whols', 'woolentor' ),
1576
+ 'type' => 'checkbox',
1577
+ 'default' => 'on',
1578
+ 'class' => 'woolentor_table_row',
1579
+ ];
1580
+ }
1581
+
1582
+ // Multicurrency Addons
1583
+ if( is_plugin_active('wc-multi-currency/wcmilticurrency.php') || is_plugin_active('multicurrencypro/multicurrencypro.php') ){
1584
+ $settings_fields['woolentor_elements_tabs'][] = [
1585
+ 'name' => 'wb_wc_multicurrency',
1586
+ 'label' => __( 'Multi Currency', 'woolentor' ),
1587
+ 'type' => 'checkbox',
1588
+ 'default' => 'on',
1589
+ 'class' => 'woolentor_table_row',
1590
+ ];
1591
+ }
1592
 
1593
  return array_merge( $settings_fields );
1594
  }
1596
 
1597
  function plugin_page() {
1598
 
1599
+ echo '<div class="wrap woolentor-setting-area">';
1600
+
1601
+ echo '<div class="htoptions-area">';
1602
+ echo '<h2>'.esc_html__( 'WooLentor Settings','woolentor' ).'</h2>';
1603
+ $this->save_message();
1604
+ $this->settings_api->show_navigation();
1605
+ $this->settings_api->show_forms();
1606
+ echo '</div>';
1607
+
1608
+ $side_banner_html = $this->sidebar_add_banner_html();
1609
+ echo apply_filters( 'woolentor_sidebar_adds_banner', $side_banner_html );
1610
+
1611
  echo '</div>';
1612
 
1613
  }
1621
  }
1622
  }
1623
 
1624
+ /**
1625
+ * [sidebar_add_banner_html] Pro add sidebar banner
1626
+ * @return [void]
1627
+ */
1628
+ function sidebar_add_banner_html(){
1629
+
1630
+ ob_start();
1631
+ ?>
1632
+ <div class="htoptions-sidebar-adds-area">
1633
+
1634
+ <div class="htoption-banner-area">
1635
+ <div class="htoption-banner-head">
1636
+ <div class="htoption-logo">
1637
+ <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/logo.png" alt="<?php echo esc_attr__( 'WooLentor', 'woolentor' ); ?>">
1638
+ </div>
1639
+ <div class="htoption-intro">
1640
+ <p><?php echo esc_html__( 'WooLentor is one of the most popular WooCommerce Elementor Addons on WordPress.org. It has been downloaded more than 528,763 times and 50,000 stores are using WooLentor plugin. Why not you?','woolentor' ); ?></p>
1641
+ </div>
1642
+ </div>
1643
+
1644
+ <ul class="htoption-feature">
1645
+ <li><?php echo esc_html__( '76 Elementor Elements', 'woolentor' ); ?></li>
1646
+ <li><?php echo esc_html__( '15 Product Custom Templates', 'woolentor' ); ?></li>
1647
+ <li><?php echo esc_html__( '10 Custom Shop Page Templates', 'woolentor' ); ?></li>
1648
+ <li><?php echo esc_html__( 'Cart Page, Checkout, My Account, Registration and Thank you page custom layout template', 'woolentor' ); ?></li>
1649
+ <li><?php echo esc_html__( '5 Premium WooCommerce Themes included. (Save $200)', 'woolentor' ); ?></li>
1650
+ </ul>
1651
+
1652
+ <div class="htoption-action-btn">
1653
+ <a class="htoption-btn" href="<?php echo esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db' ); ?>" target="_blank">
1654
+ <span class="htoption-btn-text"><?php echo esc_html__( 'Get Pro Now', 'woolentor' ); ?></span>
1655
+ <span class="htoption-btn-icon"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/icon/plus.png" alt="<?php echo esc_attr__( 'Get pro now', 'woolentor' ); ?>"></span>
1656
+ </a>
1657
+ </div>
1658
+ </div>
1659
+
1660
+ <div class="htoption-rating-area">
1661
+ <div class="htoption-rating-icon">
1662
+ <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/icon/rating.png" alt="<?php echo esc_attr__( 'Rating icon', 'woolentor' ); ?>">
1663
+ </div>
1664
+ <div class="htoption-rating-intro">
1665
+ <?php echo esc_html__('If you’re loving how our product has helped your business, please let the WordPress community know by','woolentor'); ?> <a target="_blank" href="https://wordpress.org/support/plugin/woolentor-addons/reviews/?filter=5#new-post"><?php echo esc_html__( 'leaving us a review on our WP repository', 'woolentor' ); ?></a>. <?php echo esc_html__( 'Which will motivate us a lot.', 'woolentor' ); ?>
1666
+ </div>
1667
+ </div>
1668
+
1669
+ </div>
1670
+ <?php
1671
+ return ob_get_clean();
1672
+
1673
+ }
1674
+
1675
  // Custom Markup
1676
 
1677
  // HTML Style tab Section
1679
  ob_start();
1680
  ?>
1681
  <div class="woolentor-style-tab-title">
1682
+ <h3><?php esc_html_e( 'Universal layout style options', 'woolentor' );?></h3>
1683
  </div>
1684
  <?php
1685
  echo ob_get_clean();
1691
  ?>
1692
  <div class="woolentor-style-tab-bottom">
1693
  <h3><?php echo esc_html__( 'Helping Screenshot:', 'woolentor' ); ?></h3>
1694
+ <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/universal-layout-screen.png" alt="<?php echo esc_attr__( 'Universal layout', 'woolentor' ); ?>">
1695
  </div>
1696
  <?php
1697
  echo ob_get_clean();
1705
 
1706
  <div class="woolentor-document-section">
1707
  <div class="woolentor-column">
1708
+ <a href="https://www.youtube.com/watch?v=_MOgvsZJ6uA&list=PLk25BQFrj7wH9zCECMNCtEvvUKkpV5TYA" target="_blank">
1709
+ <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/video-tutorial.jpg" alt="<?php esc_attr_e( 'Video Tutorial', 'woolentor' ); ?>">
1710
  </a>
1711
  </div>
1712
  <div class="woolentor-column">
1713
  <a href="https://demo.hasthemes.com/doc/woolentor/index.html" target="_blank">
1714
+ <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/online-documentation.jpg" alt="<?php esc_attr_e( 'Online Documentation', 'woolentor' ); ?>">
1715
  </a>
1716
  </div>
1717
  <div class="woolentor-column">
1718
  <a href="https://hasthemes.com/contact-us/" target="_blank">
1719
+ <img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/genral-contact-us.jpg" alt="<?php esc_attr_e( 'Contact Us', 'woolentor' ); ?>">
1720
  </a>
1721
  </div>
1722
  </div>
1741
  <li class="wldel"><del><?php echo esc_html__( 'My Account Page Builder', 'woolentor' ); ?></del></li>
1742
  <li class="wldel"><del><?php echo esc_html__( 'My Account Login page Builder', 'woolentor' ); ?></del></li>
1743
  </ul>
1744
+ <a class="button button-primary" href="<?php echo esc_url( admin_url() ); ?>plugin-install.php?s=woolentor-addons&tab=search&type=term" target="_blank"><?php echo esc_html__( 'Install Now', 'woolentor' ); ?></a>
1745
  </div>
1746
  <div class="features-list-area">
1747
  <h3><?php echo esc_html__( 'WooLentor Pro', 'woolentor' ); ?></h3>
1759
  <li><?php echo esc_html__( 'My Account Page Builder', 'woolentor' ); ?></li>
1760
  <li><?php echo esc_html__( 'My Account Login page Builder', 'woolentor' ); ?></li>
1761
  </ul>
1762
+ <a class="button button-primary" href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db" target="_blank"><?php echo esc_html__( 'Buy Now', 'woolentor' ); ?></a>
1763
  </div>
1764
  </div>
1765
 
1779
  <span><i class="dashicons dashicons-warning"></i></span>
1780
  <p>
1781
  <?php
1782
+ echo __('Purchase our','woolentor').' <strong><a href="'.esc_url( 'https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db' ).'" target="_blank" rel="nofollow">'.__( 'premium version', 'woolentor' ).'</a></strong> '.__('to unlock these pro elements!','woolentor');
1783
  ?>
1784
  </p>
1785
  </div>
1818
  <div class="woolentor-themes-area">
1819
  <div class="woolentor-themes-row">
1820
 
1821
+ <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/99fy.png" alt="">
1822
  <div class="woolentor-theme-content">
1823
  <h3><?php echo esc_html__( '99Fy - Free', 'woolentor' ); ?></h3>
1824
  <p><?php echo esc_html__( '99fy is a free WooCommerce theme. 99 demos for 24 niche categories are included in this theme.', 'woolentor' ); ?></p>
1827
  </div>
1828
  </div>
1829
 
1830
+ <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/parlo.png" alt="">
1831
  <div class="woolentor-theme-content">
1832
  <h3><?php echo esc_html__( 'Parlo - Free', 'woolentor' ); ?></h3>
1833
  <p><?php echo esc_html__( 'Parlo is a free WooCommerce theme developed by our team. You can use this for your store.', 'woolentor' );?></p>
1836
  </div>
1837
  </div>
1838
 
1839
+ <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/99fy-pro.png" alt="">
1840
  <div class="woolentor-theme-content">
1841
  <h3><?php echo esc_html__( '99Fy Pro - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1842
  <p><?php echo esc_html__( 'Pro version of 99fy is included in WooLentor pro. It will save money for the WooLentor pro users.', 'woolentor' ); ?></p>
1844
  </div>
1845
  </div>
1846
 
1847
+ <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/flone.png" alt="">
1848
  <div class="woolentor-theme-content">
1849
  <h3><?php echo esc_html__( 'Flone - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1850
  <p><?php echo esc_html__( 'Flone is one of our most popular WooComemrce Themes using by 1000+ stores.', 'wooLentor' );?></p>
1852
  </div>
1853
  </div>
1854
 
1855
+ <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/parlo.png" alt="">
1856
  <div class="woolentor-theme-content">
1857
  <h3><?php echo esc_html__( 'Parlo Pro - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1858
  <p><?php echo esc_html__( 'Pro version of Parlo is included in WooLentor pro. It will save money for the WooLentor pro users.', 'wooLentor' );?></p>
1860
  </div>
1861
  </div>
1862
 
1863
+ <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/holmes.png" alt="">
1864
  <div class="woolentor-theme-content">
1865
  <h3><?php echo esc_html__( 'Holmes - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1866
+ <p><?php echo esc_html__( 'Holmes is a premium woocommerce theme included in WooLentor pro. It will save money for the WooLentor pro users.', 'woolentor' );?></p>
1867
  <a href="http://demo.hasthemes.com/wp/holmes-preview.html" class="woolentor-button" target="_blank"><?php echo esc_html__( 'Preview', 'woolentor' ); ?></a>
1868
  </div>
1869
  </div>
1870
 
1871
+ <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/daniel-home-1.png" alt="">
1872
  <div class="woolentor-theme-content">
1873
  <h3><?php echo esc_html__( 'Daniel - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1874
+ <p><?php echo esc_html__( 'Daniel is a premium woocommerce theme included in WooLentor pro. It will save money for the WooLentor pro users.', 'woolentor' ); ?></p>
1875
  <a href="http://demo.hasthemes.com/wp/daniel-preview.html" class="woolentor-button" target="_blank"><?php echo esc_html__( 'Preview', 'woolentor' ); ?></a>
1876
  </div>
1877
  </div>
1878
 
1879
+ <div class="woolentor-single-theme"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/hurst-home-1.png" alt="">
1880
  <div class="woolentor-theme-content">
1881
  <h3><?php echo esc_html__( 'Hurst - included in WooLentor Pro', 'woolentor' ); ?> <span><?php echo esc_html__( '( Pro )', 'woolentor' ); ?></span></h3>
1882
+ <p><?php echo esc_html__( 'Hurst is a premium woocommerce theme included in WooLentor pro. It will save money for the WooLentor pro users.', 'woolentor' ); ?></p>
1883
  <a href="http://demo.hasthemes.com/wp/hurst-preview.html" class="woolentor-button" target="_blank"><?php echo esc_html__( 'Preview', 'woolentor' ); ?></a>
1884
  </div>
1885
  </div>
1897
  ?>
1898
  <div class="woolentor-admin-tab-area">
1899
  <ul class="woolentor-admin-tabs">
1900
+ <li><a href="#oneyear"><?php echo esc_html__( 'One Year', 'woolentor' ); ?></a></li>
1901
+ <li><a href="#lifetime" class="wlactive"><?php echo esc_html__( 'Lifetime', 'woolentor' ); ?></a></li>
1902
  </ul>
1903
  </div>
1904
 
1905
+ <div id="oneyear" class="woolentor-admin-tab-pane">
1906
  <div class="woolentor-admin-row">
1907
 
1908
  <div class="woolentor-price-plan">
1909
+ <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db" target="_blank"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/pricing/one_year_single_website.png" alt="<?php echo esc_attr__( 'One Year Single Website','woolentor' );?>"></a>
1910
  </div>
1911
 
1912
  <div class="woolentor-price-plan">
1913
+ <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db" target="_blank"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/pricing/one_year_five_website.png" alt="<?php echo esc_attr__( 'One Year Unlimited Website','woolentor' );?>"></a>
1914
  </div>
1915
 
1916
  <div class="woolentor-price-plan">
1917
+ <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db" target="_blank"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/pricing/one_year_agency.png" alt="<?php echo esc_attr__( 'One Year Unlimited Websites','woolentor' );?>"></a>
1918
  </div>
1919
 
1920
  </div>
1921
  </div>
1922
 
1923
+ <div id="lifetime" class="woolentor-admin-tab-pane wlactive">
1924
 
1925
  <div class="woolentor-admin-row">
1926
  <div class="woolentor-price-plan">
1927
+ <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db" target="_blank"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/pricing/life_time_single_website.png" alt="<?php echo esc_attr__( 'Lifetime Single Website','woolentor' );?>"></a>
1928
  </div>
1929
 
1930
  <div class="woolentor-price-plan">
1931
+ <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db" target="_blank"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/pricing/life_time_five_website.png" alt="<?php echo esc_attr__( 'Lifetime Unlimited Website','woolentor' );?>"></a>
1932
  </div>
1933
 
1934
  <div class="woolentor-price-plan">
1935
+ <a href="https://hasthemes.com/plugins/woolentor-pro-woocommerce-page-builder/?db" target="_blank"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/pricing/life_time_agency.png" alt="<?php echo esc_attr__( 'Lifetime Unlimited Websites','woolentor' );?>"></a>
1936
  </div>
1937
  </div>
1938
 
includes/admin/include/class.extension-manager.php ADDED
@@ -0,0 +1,364 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
3
+
4
+ class Woolentor_Extension_Manager{
5
+
6
+ // Get Instance
7
+ private static $_instance = null;
8
+ public static function instance(){
9
+ if( is_null( self::$_instance ) ){
10
+ self::$_instance = new self();
11
+ }
12
+ return self::$_instance;
13
+ }
14
+
15
+ function __construct(){
16
+ if( is_admin() ){
17
+ add_action( 'admin_menu', [ $this, 'admin_menu' ], 225 );
18
+ add_action( 'admin_enqueue_scripts', [ $this, 'scripts' ] );
19
+ }
20
+ }
21
+
22
+ // Menu for Extension
23
+ public function admin_menu() {
24
+ add_submenu_page(
25
+ 'woolentor_page',
26
+ esc_html__( 'Extension', 'woolentor' ),
27
+ esc_html__( 'Extension', 'woolentor' ),
28
+ 'manage_options',
29
+ 'woolentor_extension',
30
+ [ $this, 'render_html' ]
31
+ );
32
+ }
33
+
34
+ public function scripts( $hook ) {
35
+ if( 'woolentor_page_woolentor_extension' == $hook ){
36
+
37
+ //JS
38
+ wp_enqueue_script( 'woolentor-install-manager' );
39
+ wp_enqueue_script( 'woolentor-admin-main' );
40
+
41
+ }
42
+ }
43
+
44
+ // Extension Menu HTML
45
+ public function render_html(){
46
+
47
+ if ( ! function_exists('plugins_api') ){ include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); }
48
+
49
+ $htplugins_plugins_list = !empty( $this->get_plugins() ) ? $this->get_plugins() : array();
50
+ $palscode_plugins_list = !empty( $this->get_plugins( 'palscode' ) ) ? $this->get_plugins( 'palscode' ) : array();
51
+
52
+ $org_plugins_list = array_merge( $htplugins_plugins_list, $palscode_plugins_list );
53
+
54
+ $prepare_plugin = array();
55
+ foreach ( $org_plugins_list as $key => $plugin ) {
56
+ $prepare_plugin[$plugin['slug']] = $plugin;
57
+ }
58
+
59
+ $plugins_list = array(
60
+
61
+ 'free' => array(
62
+
63
+ array(
64
+ 'slug' => 'wishsuite',
65
+ 'location' => 'wishsuite.php',
66
+ 'name' => esc_html__( 'WishSuite', 'woolentor' )
67
+ ),
68
+ array(
69
+ 'slug' => 'ever-compare',
70
+ 'location' => 'ever-compare.php',
71
+ 'name' => esc_html__( 'EverCompare', 'woolentor' )
72
+ ),
73
+ array(
74
+ 'slug' => 'whols',
75
+ 'location' => 'whols.php',
76
+ 'name' => esc_html__( 'Whols', 'woolentor' )
77
+ ),
78
+ array(
79
+ 'slug' => 'just-tables',
80
+ 'location' => 'just-tables.php',
81
+ 'name' => esc_html__( 'JustTables', 'woolentor' )
82
+ ),
83
+ array(
84
+ 'slug' => 'wc-multi-currency',
85
+ 'location' => 'wcmilticurrency.php',
86
+ 'name' => esc_html__( 'Multi Currency', 'woolentor' )
87
+ )
88
+
89
+ ),
90
+
91
+ 'pro' => array(
92
+
93
+ array(
94
+ 'slug' => 'just-tables-pro',
95
+ 'location' => 'just-tables-pro.php',
96
+ 'name' => esc_html__( 'JustTables Pro', 'woolentor' ),
97
+ 'link' => 'https://hasthemes.com/wp/justtables/',
98
+ 'author_link'=> 'https://hasthemes.com/',
99
+ 'description'=> esc_html__( 'JustTables is an incredible WordPress plugin that lets you showcase all your WooCommerce products in a sortable and filterable table view. It allows your customers to easily navigate through different attributes of the products and compare them on a single page. This plugin will be of great help if you are looking for an easy solution that increases the chances of landing a sale on your online store.', 'woolentor' ),
100
+ ),
101
+
102
+ array(
103
+ 'slug' => 'whols-pro',
104
+ 'location' => 'whols-pro.php',
105
+ 'name' => esc_html__( 'Whols Pro – WooCommerce Wholesale Prices', 'woolentor' ),
106
+ 'link' => 'https://hasthemes.com/plugins/whols-woocommerce-wholesale-prices/',
107
+ 'author_link'=> 'https://hasthemes.com/',
108
+ 'description'=> esc_html__( 'Whols is an outstanding WordPress plugin for WooCommerce that allows store owners to set wholesale prices for the products of their online stores. This plugin enables you to show special wholesale prices to the wholesaler. Users can easily request to become a wholesale customer by filling out a simple online registration form. Once the registration is complete, the owner of the store will be able to review the request and approve the request either manually or automatically.', 'woolentor' ),
109
+ ),
110
+
111
+ array(
112
+ 'slug' => 'multicurrencypro',
113
+ 'location' => 'multicurrencypro.php',
114
+ 'name' => esc_html__( 'Multi Currency Pro for WooCommerce', 'woolentor' ),
115
+ 'link' => 'https://hasthemes.com/plugins/multi-currency-pro-for-woocommerce/',
116
+ 'author_link'=> 'https://hasthemes.com/',
117
+ 'description'=> esc_html__( 'Multi-Currency Pro for WooCommerce is a prominent currency switcher plugin for WooCommerce. This plugin allows your website or online store visitors to switch to their preferred currency or their country’s currency.', 'woolentor' ),
118
+ ),
119
+
120
+ array(
121
+ 'slug' => 'email-candy-pro',
122
+ 'location' => 'email-candy-pro.php',
123
+ 'name' => esc_html__( 'Email Candy Pro - Email customizer for WooCommerce', 'woolentor' ),
124
+ 'link' => 'https://hasthemes.com/plugins/email-candy-pro/',
125
+ 'author_link'=> 'https://hasthemes.com/',
126
+ 'description'=> esc_html__( 'Email Candy is an outstanding WordPress plugin that allows you to customize the default WooCommerce email templates and give a professional look to your WooCommerce emails. If you are tired of using the boring design of WooCommerce emails and want to create customized emails, then this plugin will come in handy.', 'woolentor' ),
127
+ ),
128
+
129
+ ),
130
+ );
131
+
132
+ echo '<div class="wrap"><h2>'.get_admin_page_title().'</h2>';
133
+
134
+ ?>
135
+ <style>
136
+ .woolentor-admin-tab-pane{
137
+ display: none;
138
+ }
139
+ .woolentor-admin-tab-pane.wlactive{
140
+ display: block;
141
+ }
142
+ .extension-admin-tab-area .filter-links li>a:focus, .extension-admin-tab-area .filter-links li>a:hover {
143
+ color: inherit;
144
+ box-shadow: none;
145
+ }
146
+ .filter-links .wlactive{
147
+ box-shadow: none;
148
+ border-bottom: 4px solid #646970;
149
+ color: #1d2327;
150
+ }
151
+ .downloaded-count{
152
+ display: block;
153
+ margin-top:5px;
154
+ }
155
+ </style>
156
+ <div class="extension-admin-tab-area wp-filter">
157
+ <ul class="woolentor-admin-tabs filter-links">
158
+ <li><a href="#free-extension" class="wlactive"><?php echo esc_html__( 'Free extension', 'woolentor' ); ?></a></li>
159
+ <li><a href="#pro-extension"><?php echo esc_html__( 'Pro extension', 'woolentor' ); ?></a></li>
160
+ </ul>
161
+ </div>
162
+
163
+ <div id="pro-extension" class="woolentor-admin-tab-pane">
164
+ <?php
165
+ foreach ( $plugins_list['pro'] as $key => $plugin ) {
166
+
167
+ $data = array(
168
+ 'slug' => isset( $plugin['slug'] ) ? $plugin['slug'] : '',
169
+ 'location' => isset( $plugin['location'] ) ? $plugin['slug'].'/'.$plugin['location'] : '',
170
+ 'name' => isset( $plugin['name'] ) ? $plugin['name'] : '',
171
+ 'image' => isset( $plugin['icon'] ) ? $plugin['icon'] : WOOLENTOR_ADDONS_PL_URL.'/includes/admin/assets/images/extension/'.$plugin['slug'].'.png',
172
+ );
173
+
174
+ if ( ! is_wp_error( $data ) ) {
175
+
176
+ // Installed but Inactive.
177
+ if ( file_exists( WP_PLUGIN_DIR . '/' . $data['location'] ) && is_plugin_inactive( $data['location'] ) ) {
178
+
179
+ $button_classes = 'button activate-now button-primary';
180
+ $button_text = esc_html__( 'Activate', 'woolentor' );
181
+
182
+ // Not Installed.
183
+ } elseif ( ! file_exists( WP_PLUGIN_DIR . '/' . $data['location'] ) ) {
184
+
185
+ $button_classes = 'button install-now';
186
+ $button_text = esc_html__( 'Install Now', 'woolentor' );
187
+
188
+ // Active.
189
+ } else {
190
+ $button_classes = 'button disabled';
191
+ $button_text = esc_html__( 'Activated', 'woolentor' );
192
+ }
193
+
194
+ ?>
195
+
196
+ <div class="plugin-card htwptemplata-plugin-<?php echo $data['slug']; ?>">
197
+
198
+ <div class="plugin-card-top">
199
+ <div class="name column-name" style="margin-right: 0;">
200
+ <h3>
201
+ <a href="<?php echo esc_url( $plugin['link'] ); ?>" target="_blank">
202
+ <?php echo $plugin['name']; ?>
203
+ <img src="<?php echo $data['image']; ?>" class="plugin-icon" alt="<?php echo $plugin['name']; ?>">
204
+ </a>
205
+ </h3>
206
+ </div>
207
+ <div class="desc column-description" style="margin-right: 0;">
208
+ <p><?php echo wp_trim_words( $plugin['description'], 23, '....'); ?></p>
209
+ <p class="authors">
210
+ <cite>
211
+ <?php echo esc_html__( 'By ', 'woolentor' ); ?>
212
+ <a href="<?php echo esc_url( $plugin['author_link'] ); ?>"><?php echo esc_html__( 'HasThemes', 'woolentor' ); ?></a>
213
+ </cite>
214
+ </p>
215
+ </div>
216
+ </div>
217
+
218
+ <div class="plugin-card-bottom">
219
+ <div class="column-updated">
220
+ <?php
221
+ if (! file_exists( WP_PLUGIN_DIR . '/' . $data['location'] ) ) {
222
+ echo '<a class="button button-primary" href="'.esc_url( $plugin['link'] ).'" target="_blank">'.esc_html__( 'Buy Now', 'woolentor' ).'</a>';
223
+ }else{
224
+ ?>
225
+ <button class="<?php echo $button_classes; ?>" data-pluginopt='<?php echo wp_json_encode( $data ); ?>'><?php echo $button_text; ?></button>
226
+ <?php } ?>
227
+ </div>
228
+ <div class="column-downloaded">
229
+ <a href="<?php echo esc_url( $plugin['link'] ) ?>" target="_blank"><?php echo esc_html__( 'More Details', 'woolentor' ); ?></a>
230
+ </div>
231
+ </div>
232
+
233
+ </div>
234
+
235
+ <?php
236
+
237
+ }
238
+
239
+ }
240
+ ?>
241
+ </div>
242
+
243
+ <?php
244
+
245
+ echo '<div id="free-extension" class="woolentor-admin-tab-pane wlactive">';
246
+
247
+ foreach ( $plugins_list['free'] as $key => $plugin ) {
248
+
249
+ $data = array(
250
+ 'slug' => isset( $plugin['slug'] ) ? $plugin['slug'] : '',
251
+ 'location' => isset( $plugin['location'] ) ? $plugin['slug'].'/'.$plugin['location'] : '',
252
+ 'name' => isset( $plugin['name'] ) ? $plugin['name'] : '',
253
+ );
254
+
255
+ if ( ! is_wp_error( $data ) ) {
256
+
257
+ // Installed but Inactive.
258
+ if ( file_exists( WP_PLUGIN_DIR . '/' . $data['location'] ) && is_plugin_inactive( $data['location'] ) ) {
259
+
260
+ $button_classes = 'button activate-now button-primary';
261
+ $button_text = esc_html__( 'Activate', 'woolentor' );
262
+
263
+ // Not Installed.
264
+ } elseif ( ! file_exists( WP_PLUGIN_DIR . '/' . $data['location'] ) ) {
265
+
266
+ $button_classes = 'button install-now';
267
+ $button_text = esc_html__( 'Install Now', 'woolentor' );
268
+
269
+ // Active.
270
+ } else {
271
+ $button_classes = 'button disabled';
272
+ $button_text = esc_html__( 'Activated', 'woolentor' );
273
+ }
274
+
275
+ if( !empty( $data['slug'] ) && isset( $prepare_plugin[$data['slug']] ) ){
276
+
277
+ ?>
278
+
279
+ <div class="plugin-card htwptemplata-plugin-<?php echo $data['slug']; ?>">
280
+
281
+ <div class="plugin-card-top">
282
+ <div class="name column-name" style="margin-right: 0;">
283
+ <h3>
284
+ <a href="<?php echo esc_url( admin_url() ) ?>/plugin-install.php?tab=plugin-information&plugin=<?php echo $data['slug']; ?>&TB_iframe=true&width=772&height=577" class="thickbox open-plugin-details-modal">
285
+ <?php echo $prepare_plugin[$data['slug']]['name']; ?>
286
+ <img src="<?php echo $prepare_plugin[$data['slug']]['icons']['1x']; ?>" class="plugin-icon" alt="<?php echo $prepare_plugin[$data['slug']]['name']; ?>">
287
+ </a>
288
+ </h3>
289
+ </div>
290
+ <div class="desc column-description" style="margin-right: 0;">
291
+ <p><?php echo wp_trim_words( $prepare_plugin[$data['slug']]['description'], 23, '....'); ?></p>
292
+ <p class="authors"> <cite><?php echo esc_html__( 'By ', 'woolentor' ).$prepare_plugin[$data['slug']]['author']; ?></cite></p>
293
+ </div>
294
+ </div>
295
+
296
+ <div class="plugin-card-bottom">
297
+ <div class="column-updated">
298
+ <button class="<?php echo $button_classes; ?>" data-pluginopt='<?php echo wp_json_encode( $data ); ?>'><?php echo $button_text; ?></button>
299
+ </div>
300
+ <div class="column-downloaded">
301
+ <a href="<?php echo esc_url( admin_url() ) ?>/plugin-install.php?tab=plugin-information&plugin=<?php echo $data['slug']; ?>&TB_iframe=true&width=772&height=577" class="thickbox open-plugin-details-modal"><?php echo esc_html__( 'More Details', 'woolentor' ); ?></a>
302
+ <span class="downloaded-count">
303
+ <?php
304
+ printf( __( '%s Active Installations' ), $this->active_install_count( $prepare_plugin[$data['slug']]['active_installs'] ) );
305
+ ?>
306
+ </span>
307
+ </div>
308
+ </div>
309
+
310
+ </div>
311
+
312
+ <?php
313
+ }
314
+
315
+ }
316
+
317
+ }
318
+
319
+ echo '</div>';
320
+
321
+ echo '</div>';
322
+
323
+
324
+ }
325
+
326
+ /**
327
+ * [active_install_count] Manage Active install count
328
+ * @param [int] $active_installs
329
+ * @return [string]
330
+ */
331
+ public function active_install_count( $active_installs ){
332
+
333
+ if ( $active_installs >= 1000000 ) {
334
+ $active_installs_millions = floor( $active_installs / 1000000 );
335
+ $active_installs_text = sprintf(
336
+ /* translators: %s: Number of millions. */
337
+ _nx( '%s+ Million', '%s+ Million', $active_installs_millions, 'Active plugin installations' ),
338
+ number_format_i18n( $active_installs_millions )
339
+ );
340
+ } elseif ( 0 === $active_installs ) {
341
+ $active_installs_text = _x( 'Less Than 10', 'Active plugin installations' );
342
+ } else {
343
+ $active_installs_text = number_format_i18n( $active_installs ) . '+';
344
+ }
345
+ return $active_installs_text;
346
+
347
+ }
348
+
349
+ /* Get Plugins list from wp.prg */
350
+ public function get_plugins( $username = 'htplugins' ){
351
+ $transient_var = 'woolentor_htplugins_list_'.$username;
352
+ $org_plugins_list = get_transient( $transient_var );
353
+ if ( false === $org_plugins_list ) {
354
+ $plugins_list_by_authoir = plugins_api( 'query_plugins', array( 'author' => $username, 'per_page'=>100 ) );
355
+ set_transient( $transient_var, $plugins_list_by_authoir->plugins, 1 * DAY_IN_SECONDS );
356
+ $org_plugins_list = $plugins_list_by_authoir->plugins;
357
+ }
358
+ return $org_plugins_list;
359
+ }
360
+
361
+
362
+ }
363
+
364
+ Woolentor_Extension_Manager::instance();
includes/admin/include/class.settings-api.php CHANGED
@@ -102,7 +102,7 @@ class Woolentor_Settings_API {
102
 
103
  if ( isset($section['desc']) && !empty($section['desc']) ) {
104
  $section['desc'] = '<div class="inside">' . $section['desc'] . '</div>';
105
- $callback = create_function('', 'echo "' . str_replace( '"', '\"', $section['desc'] ) . '";');
106
  } else if ( isset( $section['callback'] ) ) {
107
  $callback = $section['callback'];
108
  } else {
@@ -437,6 +437,35 @@ class Woolentor_Settings_API {
437
  echo $html;
438
  }
439
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
 
441
  /**
442
  * Displays a select box for creating the pages select box
@@ -567,7 +596,7 @@ class Woolentor_Settings_API {
567
  do_action( 'wsa_form_bottom_' . $form['id'], $form );
568
  if ( isset( $this->settings_fields[ $form['id'] ] ) ):
569
  ?>
570
- <div class="wl-submit-button" style="padding-left: 10px">
571
  <?php submit_button(); ?>
572
  </div>
573
  <?php endif; ?>
@@ -663,7 +692,16 @@ class Woolentor_Settings_API {
663
  // Finally, open the modal
664
  file_frame.open();
665
  });
666
- });
 
 
 
 
 
 
 
 
 
667
  </script>
668
  <?php
669
  }
102
 
103
  if ( isset($section['desc']) && !empty($section['desc']) ) {
104
  $section['desc'] = '<div class="inside">' . $section['desc'] . '</div>';
105
+ $callback = function() use ( $section ) { echo str_replace( '"', '\"', $section['desc'] ); };
106
  } else if ( isset( $section['callback'] ) ) {
107
  $callback = $section['callback'];
108
  } else {
437
  echo $html;
438
  }
439
 
440
+ /**
441
+ * Displays a DIMENSIONS for a settings field
442
+ *
443
+ * @param array $args settings field args
444
+ */
445
+ function callback_dimensions( $args ) {
446
+
447
+ $value = $this->get_option( $args['id'], $args['section'], $args['std'] );
448
+ $html = '<fieldset><ul class="htoption_dimensions">';
449
+ foreach ( $args['options'] as $key => $label ) {
450
+ $new_value = isset( $value[$key] ) ? $value[$key] : '';
451
+ $html .= '<li>';
452
+
453
+ if( 'unit' === $key ){
454
+ $html .= sprintf( '<input type="text" class="dimensionsbox" id="htoptions_sp_%1$s[%2$s][%3$s]" name="%1$s[%2$s][%3$s]" value="%4$s" />', $args['section'], $args['id'], $key, $new_value );
455
+ $html .= sprintf( '<label for="htoptions_sp_%1$s[%2$s][%3$s]">%4$s</label>', $args['section'], $args['id'], $key, $label );
456
+ }else{
457
+ $html .= sprintf( '<input type="number" class="dimensionsbox" id="htoptions_sp_%1$s[%2$s][%3$s]" name="%1$s[%2$s][%3$s]" value="%4$s" />', $args['section'], $args['id'], $key, $new_value );
458
+ $html .= sprintf( '<label for="htoptions_sp_%1$s[%2$s][%3$s]">%4$s</label>', $args['section'], $args['id'], $key, $label );
459
+ }
460
+
461
+ $html .= '</li>';
462
+ }
463
+
464
+ $html .= '</ul>'.$this->get_field_description( $args ).'</fieldset>';
465
+
466
+ echo $html;
467
+ }
468
+
469
 
470
  /**
471
  * Displays a select box for creating the pages select box
596
  do_action( 'wsa_form_bottom_' . $form['id'], $form );
597
  if ( isset( $this->settings_fields[ $form['id'] ] ) ):
598
  ?>
599
+ <div class="wl-submit-button">
600
  <?php submit_button(); ?>
601
  </div>
602
  <?php endif; ?>
692
  // Finally, open the modal
693
  file_frame.open();
694
  });
695
+
696
+ // Icon Picker
697
+ $('.woolentor_icon_picker .regular-text').fontIconPicker({
698
+ source: woolentor_fields.iconset,
699
+ emptyIcon: true,
700
+ hasSearch: true,
701
+ theme: 'fip-bootstrap'
702
+ });
703
+
704
+ });
705
  </script>
706
  <?php
707
  }
includes/admin/include/template-library.php CHANGED
@@ -9,8 +9,6 @@ class Woolentor_Template_Library{
9
  public static $endpoint = 'https://woolentor.com/library/wp-json/woolentor/v1/templates';
10
  public static $templateapi = 'https://woolentor.com/library/wp-json/woolentor/v1/templates/%s';
11
 
12
- public static $api_args = [];
13
-
14
  // Get Instance
15
  private static $_instance = null;
16
  public static function instance(){
@@ -32,11 +30,6 @@ class Woolentor_Template_Library{
32
 
33
  add_action( 'admin_enqueue_scripts', [ $this, 'scripts' ] );
34
 
35
- self::$api_args = [
36
- 'plugin_version' => WOOLENTOR_VERSION,
37
- 'url' => home_url(),
38
- ];
39
-
40
  }
41
 
42
  // Setter Endpoint
@@ -83,18 +76,23 @@ class Woolentor_Template_Library{
83
 
84
  public static function request_remote_templates_info( $force_update ) {
85
  global $wp_version;
86
- $body_args = apply_filters( 'httemplates/api/get_templates/body_args', self::$api_args );
 
87
  $request = wp_remote_get(
88
  self::get_api_endpoint(),
89
  [
90
- 'timeout' => $force_update ? 25 : 10,
91
- 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url(),
92
- 'body' => $body_args,
93
- 'sslverify' => false,
94
  ]
95
  );
 
 
 
 
 
96
  $response = json_decode( wp_remote_retrieve_body( $request ), true );
97
  return $response;
 
98
  }
99
 
100
  /**
@@ -102,12 +100,12 @@ class Woolentor_Template_Library{
102
  */
103
  public static function set_templates_info( $force_update = false ) {
104
  $transient = get_transient( self::TRANSIENT_KEY );
105
-
106
  if ( ! $transient || $force_update ) {
107
- $info = self::request_remote_templates_info( $force_update );
108
- set_transient( self::TRANSIENT_KEY, $info, DAY_IN_SECONDS );
 
 
109
  }
110
-
111
  }
112
 
113
  /**
@@ -148,56 +146,73 @@ class Woolentor_Template_Library{
148
  */
149
  public function templates_ajax_request(){
150
 
151
- if ( isset( $_REQUEST ) ) {
152
-
153
- $template_id = $_REQUEST['httemplateid'];
154
- $template_parentid = $_REQUEST['htparentid'];
155
- $template_title = $_REQUEST['httitle'];
156
- $page_title = $_REQUEST['pagetitle'];
157
-
158
- $templateurl = sprintf( self::get_api_templateapi(), $template_id );
159
- $response_data = $this->templates_get_content_remote_request( $templateurl );
160
- $defaulttitle = ucfirst( $template_parentid ) .' -> '.$template_title;
161
-
162
-
163
- $args = [
164
- 'post_type' => !empty( $page_title ) ? 'page' : 'elementor_library',
165
- 'post_status' => !empty( $page_title ) ? 'draft' : 'publish',
166
- 'post_title' => !empty( $page_title ) ? $page_title : $defaulttitle,
167
- 'post_content' => '',
168
- ];
169
-
170
- $new_post_id = wp_insert_post( $args );
171
-
172
- update_post_meta( $new_post_id, '_elementor_data', $response_data['content']['content'] );
173
- update_post_meta( $new_post_id, '_elementor_template_type', $response_data['type'] );
174
- update_post_meta( $new_post_id, '_elementor_edit_mode', 'builder' );
175
-
176
- update_post_meta( $new_post_id, '_elementor_page_settings', $response_data['page_settings'] );
177
-
178
- if ( $new_post_id && ! is_wp_error( $new_post_id ) ) {
179
- update_post_meta( $new_post_id, '_wp_page_template', !empty( $response_data['page_template'] ) ? $response_data['page_template'] : 'elementor_canvas' );
180
- }
181
-
182
  echo json_encode(
183
- array(
184
- 'id' => $new_post_id,
185
- 'edittxt' => !empty( $page_title ) ? esc_html__( 'Edit Page', 'move-pro' ) : esc_html__( 'Edit Template', 'move-pro' )
186
  )
187
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  }
189
 
190
  wp_die();
191
  }
192
 
193
  public function templates_get_content_remote_request( $templateurl ){
194
- $url = $templateurl;
195
- $response = wp_remote_get( $url, array(
196
- 'timeout' => 60,
197
- 'sslverify' => false
 
198
  ) );
 
 
 
 
 
199
  $result = json_decode( wp_remote_retrieve_body( $response ), true );
200
  return $result;
 
201
  }
202
 
203
  /*
@@ -205,9 +220,9 @@ class Woolentor_Template_Library{
205
  */
206
  public function ajax_plugin_data(){
207
  if ( isset( $_POST ) ) {
208
- $freeplugins = explode( ',', $_POST['freeplugins'] );
209
- $proplugins = explode( ',', $_POST['proplugins'] );
210
- $themeinfo = explode( ',', $_POST['requiredtheme'] );
211
  if(!empty($_POST['freeplugins'])){$this->required_plugins( $freeplugins, 'free' );}
212
  if(!empty($_POST['proplugins'])){ $this->required_plugins( $proplugins, 'pro' );}
213
  if(!empty($_POST['requiredtheme'])){ $this->required_theme( $themeinfo, 'free' );}
9
  public static $endpoint = 'https://woolentor.com/library/wp-json/woolentor/v1/templates';
10
  public static $templateapi = 'https://woolentor.com/library/wp-json/woolentor/v1/templates/%s';
11
 
 
 
12
  // Get Instance
13
  private static $_instance = null;
14
  public static function instance(){
30
 
31
  add_action( 'admin_enqueue_scripts', [ $this, 'scripts' ] );
32
 
 
 
 
 
 
33
  }
34
 
35
  // Setter Endpoint
76
 
77
  public static function request_remote_templates_info( $force_update ) {
78
  global $wp_version;
79
+
80
+ $timeout = ( $force_update ) ? 25 : 8;
81
  $request = wp_remote_get(
82
  self::get_api_endpoint(),
83
  [
84
+ 'timeout' => $timeout,
85
+ 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url()
 
 
86
  ]
87
  );
88
+
89
+ if ( is_wp_error( $request ) || 200 !== (int) wp_remote_retrieve_response_code( $request ) ) {
90
+ return [];
91
+ }
92
+
93
  $response = json_decode( wp_remote_retrieve_body( $request ), true );
94
  return $response;
95
+
96
  }
97
 
98
  /**
100
  */
101
  public static function set_templates_info( $force_update = false ) {
102
  $transient = get_transient( self::TRANSIENT_KEY );
 
103
  if ( ! $transient || $force_update ) {
104
+ if( isset( $_GET['page'] ) && 'woolentor_templates' === $_GET['page'] ){
105
+ $info = self::request_remote_templates_info( $force_update );
106
+ set_transient( self::TRANSIENT_KEY, $info, DAY_IN_SECONDS );
107
+ }
108
  }
 
109
  }
110
 
111
  /**
146
  */
147
  public function templates_ajax_request(){
148
 
149
+ if ( ! current_user_can( 'manage_options') ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  echo json_encode(
151
+ array(
152
+ 'message' => esc_html__( 'You are not permitted to import the template.', 'woolentor' )
 
153
  )
154
  );
155
+ }else{
156
+ if ( isset( $_REQUEST ) ) {
157
+
158
+ $template_id = sanitize_text_field( $_REQUEST['httemplateid'] );
159
+ $template_parentid = sanitize_text_field( $_REQUEST['htparentid'] );
160
+ $template_title = sanitize_text_field( $_REQUEST['httitle'] );
161
+ $page_title = sanitize_text_field( $_REQUEST['pagetitle'] );
162
+
163
+ $templateurl = sprintf( self::get_api_templateapi(), $template_id );
164
+ $response_data = $this->templates_get_content_remote_request( $templateurl );
165
+ $defaulttitle = ucfirst( $template_parentid ) .' -> '.$template_title;
166
+
167
+
168
+ $args = [
169
+ 'post_type' => !empty( $page_title ) ? 'page' : 'elementor_library',
170
+ 'post_status' => !empty( $page_title ) ? 'draft' : 'publish',
171
+ 'post_title' => !empty( $page_title ) ? $page_title : $defaulttitle,
172
+ 'post_content' => '',
173
+ ];
174
+
175
+ $new_post_id = wp_insert_post( $args );
176
+
177
+ update_post_meta( $new_post_id, '_elementor_data', $response_data['content']['content'] );
178
+ update_post_meta( $new_post_id, '_elementor_template_type', $response_data['type'] );
179
+ update_post_meta( $new_post_id, '_elementor_edit_mode', 'builder' );
180
+
181
+ if( isset( $response_data['page_settings'] ) ){
182
+ update_post_meta( $new_post_id, '_elementor_page_settings', $response_data['page_settings'] );
183
+ }
184
+
185
+ if ( $new_post_id && ! is_wp_error( $new_post_id ) ) {
186
+ update_post_meta( $new_post_id, '_wp_page_template', !empty( $response_data['page_template'] ) ? $response_data['page_template'] : 'elementor_canvas' );
187
+ }
188
+
189
+ echo json_encode(
190
+ array(
191
+ 'id' => $new_post_id,
192
+ 'edittxt' => !empty( $page_title ) ? esc_html__( 'Edit Page', 'woolentor' ) : esc_html__( 'Edit Template', 'woolentor' )
193
+ )
194
+ );
195
+ }
196
  }
197
 
198
  wp_die();
199
  }
200
 
201
  public function templates_get_content_remote_request( $templateurl ){
202
+ global $wp_version;
203
+
204
+ $response = wp_remote_get( $templateurl, array(
205
+ 'timeout' => 25,
206
+ 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url()
207
  ) );
208
+
209
+ if ( is_wp_error( $response ) || 200 !== (int) wp_remote_retrieve_response_code( $response ) ) {
210
+ return [];
211
+ }
212
+
213
  $result = json_decode( wp_remote_retrieve_body( $response ), true );
214
  return $result;
215
+
216
  }
217
 
218
  /*
220
  */
221
  public function ajax_plugin_data(){
222
  if ( isset( $_POST ) ) {
223
+ $freeplugins = explode( ',', sanitize_text_field( $_POST['freeplugins'] ) );
224
+ $proplugins = explode( ',', sanitize_text_field( $_POST['proplugins'] ) );
225
+ $themeinfo = explode( ',', sanitize_text_field( $_POST['requiredtheme'] ) );
226
  if(!empty($_POST['freeplugins'])){$this->required_plugins( $freeplugins, 'free' );}
227
  if(!empty($_POST['proplugins'])){ $this->required_plugins( $proplugins, 'pro' );}
228
  if(!empty($_POST['requiredtheme'])){ $this->required_theme( $themeinfo, 'free' );}
includes/archive_product_render.php CHANGED
@@ -18,7 +18,6 @@ class Archive_Products_Render extends WC_Shortcode_Products {
18
  'cache' => false,
19
  ] );
20
  $this->query_args = $this->parse_query_args();
21
-
22
  }
23
 
24
  /**
@@ -67,6 +66,7 @@ class Archive_Products_Render extends WC_Shortcode_Products {
67
  $this->is_added_product_filter = true;
68
 
69
  }elseif ( 'current_query' === $this->settings['query_post_type'] ) {
 
70
  if ( !is_page( wc_get_page_id( 'shop' ) ) && $this->settings['editor_mode'] != true ) {
71
  $query_args = $GLOBALS['wp_query']->query_vars;
72
  }
@@ -149,6 +149,12 @@ class Archive_Products_Render extends WC_Shortcode_Products {
149
 
150
  // Always query only IDs.
151
  $query_args['fields'] = 'ids';
 
 
 
 
 
 
152
  return $query_args;
153
  }
154
 
@@ -214,4 +220,4 @@ class Archive_Products_Render extends WC_Shortcode_Products {
214
  }
215
 
216
 
217
- }
18
  'cache' => false,
19
  ] );
20
  $this->query_args = $this->parse_query_args();
 
21
  }
22
 
23
  /**
66
  $this->is_added_product_filter = true;
67
 
68
  }elseif ( 'current_query' === $this->settings['query_post_type'] ) {
69
+
70
  if ( !is_page( wc_get_page_id( 'shop' ) ) && $this->settings['editor_mode'] != true ) {
71
  $query_args = $GLOBALS['wp_query']->query_vars;
72
  }
149
 
150
  // Always query only IDs.
151
  $query_args['fields'] = 'ids';
152
+
153
+ // Support WooLentor Filter
154
+ if ( isset( $_GET['q'] ) ) {
155
+ $query_args['s'] = !empty( $_GET['q'] ) ? $_GET['q'] : '';
156
+ }
157
+
158
  return $query_args;
159
  }
160
 
220
  }
221
 
222
 
223
+ }
includes/base.php CHANGED
@@ -12,6 +12,12 @@ final class Base {
12
  const MINIMUM_PHP_VERSION = '5.4';
13
  const MINIMUM_ELEMENTOR_VERSION = '2.0.0';
14
 
 
 
 
 
 
 
15
  /**
16
  * [$_instance]
17
  * @var null
@@ -78,7 +84,7 @@ final class Base {
78
  // Check WooCommerce
79
  if ( ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
80
  add_action('admin_notices', [ $this, 'admin_notic_missing_woocommerce' ] );
81
- return ;
82
  }
83
 
84
  // Plugins Setting Page
@@ -90,13 +96,21 @@ final class Base {
90
  // After Active Plugin then redirect to setting page
91
  $this->plugin_redirect_option_page();
92
 
 
 
 
 
 
 
 
 
93
  // Promo Banner
94
  if( is_admin() ){
95
- if( isset( \Woolentor_Template_Library::instance()->get_templates_info()['notices'][0]['status'] ) ){
96
- if( !is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') && ( \Woolentor_Template_Library::instance()->get_templates_info()['notices'][0]['status'] == 1 ) ){
97
  add_action( 'wp_ajax_woolentor_pro_notice', [ $this, 'ajax_dismiss' ] );
98
  add_action( 'admin_notices', [ $this, 'admin_promo_notice' ] );
99
- return ;
100
  }
101
  }
102
  }
@@ -194,7 +208,7 @@ final class Base {
194
  return;
195
  }
196
 
197
- if( \Woolentor_Template_Library::instance()->get_templates_info()['notices'] ){
198
  ?>
199
  <style type="text/css">
200
  .woolentor-admin-notice.notice {
@@ -223,7 +237,12 @@ final class Base {
223
  });
224
  </script>
225
  <?php
226
- printf( '<div class="woolentor-admin-notice is-dismissible notice notice-warning"><a href="%1$s" target="_blank"><img src="%2$s" alt="%3$s"></a><p>%4$s</p></div>', \Woolentor_Template_Library::instance()->get_templates_info()['notices'][0]['bannerlink'], \Woolentor_Template_Library::instance()->get_templates_info()['notices'][0]['bannerimage'], \Woolentor_Template_Library::instance()->get_templates_info()['notices'][0]['title'], \Woolentor_Template_Library::instance()->get_templates_info()['notices'][0]['description'] );
 
 
 
 
 
227
 
228
  }
229
  }
@@ -276,8 +295,16 @@ final class Base {
276
  if ( get_option( 'woolentor_do_activation_redirect', FALSE ) ) {
277
  delete_option('woolentor_do_activation_redirect');
278
  if( !isset( $_GET['activate-multi'] ) ){
279
- wp_redirect( admin_url("admin.php?page=woolentor") );
280
  }
 
 
 
 
 
 
 
 
281
  }
282
  }
283
 
@@ -325,6 +352,9 @@ final class Base {
325
  require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.widgets_control.php' );
326
  require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.default_data.php' );
327
  require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.icon-manager.php' );
 
 
 
328
 
329
  // Admin Setting file
330
  if( is_admin() ){
@@ -343,7 +373,7 @@ final class Base {
343
  // Builder File
344
  if( woolentor_get_option( 'enablecustomlayout', 'woolentor_woo_template_tabs', 'on' ) == 'on' ){
345
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/wl_woo_shop.php' );
346
- require( WOOLENTOR_ADDONS_PL_PATH.'includes/archive_product_render.php' );
347
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/class.product_video_gallery.php' );
348
  if( !is_admin() && !is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') && woolentor_get_option( 'enablerenamelabel', 'woolentor_rename_label_tabs', 'off' ) == 'on' ){
349
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/rename_label.php' );
12
  const MINIMUM_PHP_VERSION = '5.4';
13
  const MINIMUM_ELEMENTOR_VERSION = '2.0.0';
14
 
15
+ /**
16
+ * [$template_info]
17
+ * @var array
18
+ */
19
+ public static $template_info = [];
20
+
21
  /**
22
  * [$_instance]
23
  * @var null
84
  // Check WooCommerce
85
  if ( ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
86
  add_action('admin_notices', [ $this, 'admin_notic_missing_woocommerce' ] );
87
+ return;
88
  }
89
 
90
  // Plugins Setting Page
96
  // After Active Plugin then redirect to setting page
97
  $this->plugin_redirect_option_page();
98
 
99
+ /**
100
+ * [$template_info] Assign template data
101
+ * @var [type]
102
+ */
103
+ if( is_admin() && class_exists('\Woolentor_Template_Library') ){
104
+ self::$template_info = \Woolentor_Template_Library::instance()->get_templates_info();
105
+ }
106
+
107
  // Promo Banner
108
  if( is_admin() ){
109
+ if( isset( self::$template_info['notices'][0]['status'] ) ){
110
+ if( !is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') && ( self::$template_info['notices'][0]['status'] == 1 ) ){
111
  add_action( 'wp_ajax_woolentor_pro_notice', [ $this, 'ajax_dismiss' ] );
112
  add_action( 'admin_notices', [ $this, 'admin_promo_notice' ] );
113
+ return;
114
  }
115
  }
116
  }
208
  return;
209
  }
210
 
211
+ if( self::$template_info['notices'] ){
212
  ?>
213
  <style type="text/css">
214
  .woolentor-admin-notice.notice {
237
  });
238
  </script>
239
  <?php
240
+ $bannerLink = self::$template_info['notices'][0]['bannerlink'] ? self::$template_info['notices'][0]['bannerlink'] : '#';
241
+ $bannerTitle = self::$template_info['notices'][0]['title'] ? self::$template_info['notices'][0]['title'] : esc_html__('Promo Banner','woolentor');
242
+ $bannerDescription = self::$template_info['notices'][0]['description'] ? '<p>'.self::$template_info['notices'][0]['description'].'</p>' : '';
243
+ $bannerImage = self::$template_info['notices'][0]['bannerimage'] ? '<img src='.self::$template_info['notices'][0]['bannerimage'].' alt='.$bannerTitle.'>' : '#';
244
+
245
+ printf( '<div class="woolentor-admin-notice is-dismissible notice notice-warning"><a href="%1$s" target="_blank">%2$s</a>%3$s</div>', $bannerLink, $bannerImage, $bannerDescription );
246
 
247
  }
248
  }
295
  if ( get_option( 'woolentor_do_activation_redirect', FALSE ) ) {
296
  delete_option('woolentor_do_activation_redirect');
297
  if( !isset( $_GET['activate-multi'] ) ){
298
+ wp_redirect( admin_url("admin.php?page=woolentor_extension") );
299
  }
300
+
301
+ // Fetch Template Library Data
302
+ $transient = get_transient( \Woolentor_Template_Library::TRANSIENT_KEY );
303
+ if ( ! $transient ) {
304
+ $info = \Woolentor_Template_Library::request_remote_templates_info( true );
305
+ set_transient( \Woolentor_Template_Library::TRANSIENT_KEY, $info, DAY_IN_SECONDS );
306
+ }
307
+
308
  }
309
  }
310
 
352
  require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.widgets_control.php' );
353
  require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.default_data.php' );
354
  require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.icon-manager.php' );
355
+ require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.quickview_manage.php' );
356
+ require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.icon_list.php' );
357
+ require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.ajax_actions.php' );
358
 
359
  // Admin Setting file
360
  if( is_admin() ){
373
  // Builder File
374
  if( woolentor_get_option( 'enablecustomlayout', 'woolentor_woo_template_tabs', 'on' ) == 'on' ){
375
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/wl_woo_shop.php' );
376
+ require( WOOLENTOR_ADDONS_PL_PATH.'includes/archive_product_render.php' );
377
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/class.product_video_gallery.php' );
378
  if( !is_admin() && !is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') && woolentor_get_option( 'enablerenamelabel', 'woolentor_rename_label_tabs', 'off' ) == 'on' ){
379
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/rename_label.php' );
includes/class.sale_notification.php CHANGED
@@ -18,13 +18,13 @@ class Woolentor_Sale_Notification{
18
  add_action('wp_head',[ $this, 'woolentor_ajaxurl' ] );
19
 
20
  // ajax function
21
- add_action('wp_ajax_nopriv_woolentor_purchased_products', [ $this, 'woolentor_purchased_new_products' ] );
22
- add_action('wp_ajax_woolentor_purchased_products', [ $this, 'woolentor_purchased_new_products' ] );
23
 
24
  add_action( 'wp_footer', [ $this, 'woolentor_ajax_request' ] );
25
  }
26
 
27
- public function woolentor_purchased_new_products(){
28
 
29
  $cachekey = 'woolentor-new-products';
30
  $products = get_transient( $cachekey );
@@ -119,9 +119,10 @@ class Woolentor_Sale_Notification{
119
  // Ajax request
120
  function woolentor_ajax_request() {
121
 
122
- $duration = (int)woolentor_get_option( 'notification_loadduration','woolentor_sales_notification_tabs', '3' )*1000;
123
- $notposition = 'bottomleft';
124
- $notlayout = 'imageleft';
 
125
 
126
  //Set Your Nonce
127
  $ajax_nonce = wp_create_nonce( "woolentor-ajax-request" );
@@ -132,6 +133,11 @@ class Woolentor_Sale_Notification{
132
  var notposition = '<?php echo $notposition; ?>',
133
  notlayout = ' '+'<?php echo $notlayout; ?>';
134
 
 
 
 
 
 
135
  $('body').append('<div class="woolentor-sale-notification"><div class="woolentor-notification-content '+notposition+notlayout+'"></div></div>');
136
 
137
  var data = {
@@ -139,35 +145,52 @@ class Woolentor_Sale_Notification{
139
  security: '<?php echo $ajax_nonce; ?>',
140
  whatever: 1234
141
  };
 
142
  var intervaltime = 4000,
143
- i = 0,
144
  duration = <?php echo $duration; ?>,
 
145
  inanimation = 'fadeInLeft',
146
- outanimation = 'fadeOutRight';
 
147
 
148
  window.setTimeout( function(){
 
 
 
 
149
  $.post(
150
  ajaxurl,
151
  data,
152
  function( response ){
153
  var wlpobj = $.parseJSON( response );
154
  if( wlpobj.length > 0 ){
155
- setInterval(function() {
156
- if( i == wlpobj.length ){ i = 0; }
157
- $('.woolentor-notification-content').html('');
158
- $('.woolentor-notification-content').css('padding','15px');
159
- var ordercontent = `<div class="wlnotification_image"><img src="${wlpobj[i].image}" alt="${wlpobj[i].name}" /></div><div class="wlnotification_content"><h4><a href="${wlpobj[i].url}">${wlpobj[i].name}</a></h4><p>${wlpobj[i].buyer.city + ' ' + wlpobj[i].buyer.state + ', ' + wlpobj[i].buyer.country }.</p><h6>Price : ${wlpobj[i].price}</h6><span class="woolentor-buyername">By ${wlpobj[i].buyer.fname + ' ' + wlpobj[i].buyer.lname}</span></div><span class="wlcross">&times;</span>`;
160
- $('.woolentor-notification-content').append( ordercontent ).addClass('animated '+inanimation).removeClass(outanimation);
161
- setTimeout(function() {
162
- $('.woolentor-notification-content').removeClass(inanimation).addClass(outanimation);
163
- }, intervaltime-500 );
164
- i++;
165
- }, intervaltime );
166
  }
167
  }
168
  );
169
  }, duration );
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  // Close Button
172
  $('.woolentor-notification-content').on('click', '.wlcross', function(e){
173
  e.preventDefault()
18
  add_action('wp_head',[ $this, 'woolentor_ajaxurl' ] );
19
 
20
  // ajax function
21
+ add_action('wp_ajax_nopriv_woolentor_purchased_products', [ $this, 'purchased_new_products' ] );
22
+ add_action('wp_ajax_woolentor_purchased_products', [ $this, 'purchased_new_products' ] );
23
 
24
  add_action( 'wp_footer', [ $this, 'woolentor_ajax_request' ] );
25
  }
26
 
27
+ public function purchased_new_products(){
28
 
29
  $cachekey = 'woolentor-new-products';
30
  $products = get_transient( $cachekey );
119
  // Ajax request
120
  function woolentor_ajax_request() {
121
 
122
+ $duration = (int)woolentor_get_option( 'notification_loadduration','woolentor_sales_notification_tabs', '3' )*1000;
123
+ $showing = 5000;
124
+ $notposition = 'bottomleft';
125
+ $notlayout = 'imageleft';
126
 
127
  //Set Your Nonce
128
  $ajax_nonce = wp_create_nonce( "woolentor-ajax-request" );
133
  var notposition = '<?php echo $notposition; ?>',
134
  notlayout = ' '+'<?php echo $notlayout; ?>';
135
 
136
+ var other_text = {
137
+ price:'<?php echo esc_html__('Price :','woolentor');?>',
138
+ priceby:'<?php echo esc_html__('By','woolentor');?>',
139
+ };
140
+
141
  $('body').append('<div class="woolentor-sale-notification"><div class="woolentor-notification-content '+notposition+notlayout+'"></div></div>');
142
 
143
  var data = {
145
  security: '<?php echo $ajax_nonce; ?>',
146
  whatever: 1234
147
  };
148
+
149
  var intervaltime = 4000,
 
150
  duration = <?php echo $duration; ?>,
151
+ showing_time = <?php echo $showing; ?>,
152
  inanimation = 'fadeInLeft',
153
+ outanimation = 'fadeOutRight',
154
+ i = 0;
155
 
156
  window.setTimeout( function(){
157
+ setTimeout( function () {
158
+ $('.woolentor-notification-content').removeClass(inanimation).addClass(outanimation);
159
+ i++;
160
+ }, showing_time );
161
  $.post(
162
  ajaxurl,
163
  data,
164
  function( response ){
165
  var wlpobj = $.parseJSON( response );
166
  if( wlpobj.length > 0 ){
167
+ woolentor_notification_loop_start( wlpobj );
 
 
 
 
 
 
 
 
 
 
168
  }
169
  }
170
  );
171
  }, duration );
172
 
173
+ function woolentor_notification_loop_start( wlpobj ){
174
+
175
+ var interval = parseInt( intervaltime ) + parseInt( showing_time );
176
+ setInterval(function ( wlpobj ) {
177
+ if( i == wlpobj.length ){ i = 0; }
178
+
179
+ $('.woolentor-notification-content').html('');
180
+ $('.woolentor-notification-content').css('padding','15px');
181
+ var ordercontent = `<div class="wlnotification_image"><img src="${wlpobj[i].image}" alt="${wlpobj[i].name}" /></div><div class="wlnotification_content"><h4><a href="${wlpobj[i].url}">${wlpobj[i].name}</a></h4><p>${wlpobj[i].buyer.city + ' ' + wlpobj[i].buyer.state + ', ' + wlpobj[i].buyer.country }.</p><h6>${other_text.price+wlpobj[i].price}</h6><span class="woolentor-buyername">${other_text.priceby + ' ' + wlpobj[i].buyer.fname + ' ' + wlpobj[i].buyer.lname}</span></div><span class="wlcross">&times;</span>`;
182
+ $('.woolentor-notification-content').append( ordercontent ).addClass('animated '+inanimation).removeClass(outanimation);
183
+
184
+ var notification = wlpobj;
185
+ if ( notification != undefined ) {
186
+ setTimeout( function () {
187
+ $('.woolentor-notification-content').removeClass(inanimation).addClass(outanimation);
188
+ i++;
189
+ }, showing_time );
190
+ }
191
+ }, interval, wlpobj );
192
+ }
193
+
194
  // Close Button
195
  $('.woolentor-notification-content').on('click', '.wlcross', function(e){
196
  e.preventDefault()
includes/custom-metabox.php CHANGED
@@ -9,7 +9,7 @@
9
  'class' => '',
10
  'priority' => 80,
11
  );
12
- $tabs[] = $woolentor_tab;
13
  return $tabs;
14
  }
15
  add_filter( 'woocommerce_product_data_tabs', 'woolentor_add_wc_extra_metabox_tab' );
@@ -23,7 +23,7 @@
23
  'id' => '_saleflash_text',
24
  'label' => __( 'Custom Product Badge Text', 'woolentor' ),
25
  'placeholder' => __( 'New', 'woolentor' ),
26
- 'description' => __( 'Enter your prefered SaleFlash text. Ex: New / Free etc', 'woolentor' ),
27
  ) );
28
  echo '</div>';
29
  }
9
  'class' => '',
10
  'priority' => 80,
11
  );
12
+ $tabs['woolentor_product_badge'] = $woolentor_tab;
13
  return $tabs;
14
  }
15
  add_filter( 'woocommerce_product_data_tabs', 'woolentor_add_wc_extra_metabox_tab' );
23
  'id' => '_saleflash_text',
24
  'label' => __( 'Custom Product Badge Text', 'woolentor' ),
25
  'placeholder' => __( 'New', 'woolentor' ),
26
+ 'description' => __( 'Enter your preferred SaleFlash text. Ex: New / Free etc', 'woolentor' ),
27
  ) );
28
  echo '</div>';
29
  }
includes/helper-function.php CHANGED
@@ -11,6 +11,189 @@ function woolentor_is_elementor_version( $operator = '<', $version = '2.6.0' ) {
11
  return defined( 'ELEMENTOR_VERSION' ) && version_compare( ELEMENTOR_VERSION, $version, $operator );
12
  }
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
  /**
16
  * Taxonomy List
@@ -82,7 +265,7 @@ function woolentor_elementor_template() {
82
  }
83
  $types = array();
84
  if ( empty( $templates ) ) {
85
- $template_lists = [ '0' => __( 'Do not Saved Templates.', 'woolentor' ) ];
86
  } else {
87
  $template_lists = [ '0' => __( 'Select Template', 'woolentor' ) ];
88
  foreach ( $templates as $template ) {
@@ -115,6 +298,25 @@ function woolentor_get_option_label_text( $option, $section, $default = '' ){
115
  return $default;
116
  }
117
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  /**
119
  * Woocommerce Product last product id return
120
  */
@@ -149,6 +351,32 @@ function woolentor_html_tag_lists() {
149
  return $html_tag_list;
150
  }
151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  /*
153
  * Category list
154
  * return first one
@@ -173,6 +401,7 @@ function woolentor_get_product_category_list( $id = null, $taxonomy = 'product_c
173
  break;
174
  }else{ continue; }
175
  }
 
176
  }
177
 
178
  /*
@@ -195,6 +424,22 @@ if( class_exists('WooCommerce') ){
195
  }
196
  }
197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  /* Sale badge */
199
  function woolentor_sale_flash( $offertype = 'default' ){
200
  global $product;
@@ -226,7 +471,8 @@ if( class_exists('WooCommerce') ){
226
  }else{ echo ' '; }
227
 
228
  }else{
229
- echo '<span class="ht-product-label ht-product-label-right">'.esc_html__( 'Sale!', 'woolentor' ).'</span>';
 
230
  }
231
  }else{
232
  $out_of_stock = get_post_meta( get_the_ID(), '_stock_status', true );
@@ -363,47 +609,22 @@ if( class_exists('WooCommerce') ){
363
  }
364
  }
365
 
366
- // Quick View Markup
367
- function woolentor_quick_view_html(){
368
- echo '<div class="woocommerce" id="htwlquick-viewmodal"><div class="htwl-modal-dialog product"><div class="htwl-modal-content"><button type="button" class="htcloseqv"><span class="sli sli-close"></span></button><div class="htwl-modal-body"></div></div></div></div>';
369
- }
370
- add_action( 'woolentor_footer_render_content', 'woolentor_quick_view_html', 10 );
371
-
372
  // HTML Markup Render in footer
373
  function woolentor_html_render_infooter(){
374
  do_action( 'woolentor_footer_render_content' );
375
  }
376
  add_action( 'wp_footer', 'woolentor_html_render_infooter' );
377
 
378
- // Quick view Ajax Callback
379
- function woolentor_wc_quickview() {
380
- // Get product from request.
381
- if ( isset( $_POST['id'] ) && (int) $_POST['id'] ) {
382
- global $post, $product, $woocommerce;
383
- $id = ( int ) $_POST['id'];
384
- $post = get_post( $id );
385
- $product = get_product( $id );
386
- if ( $product ) {
387
- include ( apply_filters( 'woolentor_quickview_tmp', WOOLENTOR_ADDONS_PL_PATH.'includes/quickview-content.php' ) );
388
- }
389
- }
390
- wp_die();
391
- }
392
- add_action( 'wp_ajax_woolentor_quickview', 'woolentor_wc_quickview' );
393
- add_action( 'wp_ajax_nopriv_woolentor_quickview', 'woolentor_wc_quickview' );
394
-
395
-
396
  /**
397
  * [woolentor_stock_status]
398
  */
399
  function woolentor_stock_status( $order_text, $available_text, $product_id ){
400
 
401
- $product_id = $product_id;
402
  if ( get_post_meta( $product_id, '_manage_stock', true ) == 'yes' ) {
403
 
404
  $total_stock = get_post_meta( $product_id, 'woolentor_total_stock_quantity', true );
405
 
406
- if ( ! $total_stock ) { echo '<div class="stock-management-progressbar">'.__('Do not set stock amount for progress bar','woolentor-pro').'</div>'; return; }
407
 
408
  $current_stock = round( get_post_meta( $product_id, '_stock', true ) );
409
 
@@ -413,21 +634,37 @@ if( class_exists('WooCommerce') ){
413
  if ( $current_stock > 0 ) {
414
  echo '<div class="woolentor-stock-progress-bar">';
415
  echo '<div class="wlstock-info">';
416
- echo '<div class="wltotal-sold">' . __( $order_text, 'woolentor-pro' ) . '<span>' . esc_html( $total_sold ) . '</span></div>';
417
- echo '<div class="wlcurrent-stock">' . __( $available_text, 'woolentor-pro' ) . '<span>' . esc_html( $current_stock ) . '</span></div>';
418
  echo '</div>';
419
- echo '<div class="wlprogress-area" title="' . __( 'Sold', 'woolentor-pro' ) . ' ' . esc_attr( $percentage ) . '%">';
420
  echo '<div class="wlprogress-bar"style="width:' . esc_attr( $percentage ) . '%;"></div>';
421
  echo '</div>';
422
  echo '</div>';
423
  }else{
424
- echo '<div class="stock-management-progressbar">'.__('Do not set stock amount for progress bar','woolentor-pro').'</div>';
425
  }
426
 
427
  }
428
 
429
  }
430
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
431
  }
432
 
433
  /**
@@ -468,27 +705,76 @@ function woolentor_order_by_opts() {
468
 
469
  }
470
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
471
  /**
472
  * Usages: Compare button shortcode [yith_compare_button] From "YITH WooCommerce Compare" plugins.
473
  * Plugins URL: https://wordpress.org/plugins/yith-woocommerce-compare/
474
  * File Path: yith-woocommerce-compare/includes/class.yith-woocompare-frontend.php
475
  * The Function "woolentor_compare_button" Depends on YITH WooCommerce Compare plugins. If YITH WooCommerce Compare is installed and actived, then it will work.
476
  */
477
- function woolentor_compare_button( $buttonstyle = 1 ){
478
- if( !class_exists('YITH_Woocompare') ) return;
479
  global $product;
480
  $product_id = $product->get_id();
481
- $comp_link = home_url() . '?action=yith-woocompare-add-product';
482
- $comp_link = add_query_arg('id', $product_id, $comp_link);
483
 
484
- if( $buttonstyle == 1 ){
485
- echo do_shortcode('[yith_compare_button]');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
486
  }else{
487
- echo '<a title="'. esc_attr__('Add to Compare', 'woolentor') .'" href="'. esc_url( $comp_link ) .'" class="woolentor-compare compare" data-product_id="'. esc_attr( $product_id ) .'" rel="nofollow">'.esc_html__( 'Compare', 'woolentor' ).'</a>';
488
  }
489
 
490
  }
491
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
492
  /**
493
  * Usages: "woolentor_add_to_wishlist_button()" function is used to modify the wishlist button from "YITH WooCommerce Wishlist" plugins.
494
  * Plugins URL: https://wordpress.org/plugins/yith-woocommerce-wishlist/
@@ -497,31 +783,73 @@ function woolentor_compare_button( $buttonstyle = 1 ){
497
  */
498
 
499
  function woolentor_add_to_wishlist_button( $normalicon = '<i class="fa fa-heart-o"></i>', $addedicon = '<i class="fa fa-heart"></i>', $tooltip = 'no' ) {
500
- global $product, $yith_wcwl;
501
-
502
- if ( ! class_exists( 'YITH_WCWL' ) || empty(get_option( 'yith_wcwl_wishlist_page_id' ))) return;
503
 
504
- $url = YITH_WCWL()->get_wishlist_url();
505
- $product_type = $product->get_type();
506
- $exists = $yith_wcwl->is_product_in_wishlist( $product->get_id() );
507
- $classes = 'class="add_to_wishlist"';
508
- $add = get_option( 'yith_wcwl_add_to_wishlist_text' );
509
- $browse = get_option( 'yith_wcwl_browse_wishlist_text' );
510
- $added = get_option( 'yith_wcwl_product_added_text' );
511
 
512
  $output = '';
513
 
514
- $output .= '<div class="'.( $tooltip == 'yes' ? '' : 'tooltip_no' ).' wishlist button-default yith-wcwl-add-to-wishlist add-to-wishlist-' . esc_attr( $product->get_id() ) . '">';
515
- $output .= '<div class="yith-wcwl-add-button';
516
- $output .= $exists ? ' hide" style="display:none;"' : ' show"';
517
- $output .= '><a href="' . esc_url( htmlspecialchars( YITH_WCWL()->get_wishlist_url() ) ) . '" data-product-id="' . esc_attr( $product->get_id() ) . '" data-product-type="' . esc_attr( $product_type ) . '" ' . $classes . ' >'.$normalicon.'<span class="ht-product-action-tooltip">'.esc_html( $add ).'</span></a>';
518
- $output .= '<i class="fa fa-spinner fa-pulse ajax-loading" style="visibility:hidden"></i>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
519
  $output .= '</div>';
520
 
521
- $output .= '<div class="yith-wcwl-wishlistaddedbrowse hide" style="display:none;"><a class="" href="' . esc_url( $url ) . '">'.$addedicon.'<span class="ht-product-action-tooltip">'.esc_html( $browse ).'</span></a></div>';
522
- $output .= '<div class="yith-wcwl-wishlistexistsbrowse ' . ( $exists ? 'show' : 'hide' ) . '" style="display:' . ( $exists ? 'block' : 'none' ) . '"><a href="' . esc_url( $url ) . '" class="">'.$addedicon.'<span class="ht-product-action-tooltip">'.esc_html( $added ).'</span></a></div>';
523
- $output .= '</div>';
524
- return $output;
 
525
 
526
 
527
  }
11
  return defined( 'ELEMENTOR_VERSION' ) && version_compare( ELEMENTOR_VERSION, $version, $operator );
12
  }
13
 
14
+ /**
15
+ * [movepro_render_icon]
16
+ * @param array $settings
17
+ * @param string $new_icon new icon id
18
+ * @param string $old_icon Old icon id
19
+ * @param array $attributes icon attributes
20
+ * @return [html] html | false
21
+ */
22
+ function woolentor_render_icon( $settings = [], $new_icon = 'selected_icon', $old_icon = 'icon', $attributes = [] ){
23
+
24
+ $migrated = isset( $settings['__fa4_migrated'][$new_icon] );
25
+ $is_new = empty( $settings[$old_icon] ) && \Elementor\Icons_Manager::is_migration_allowed();
26
+
27
+ $attributes['aria-hidden'] = 'true';
28
+ $output = '';
29
+
30
+ if ( woolentor_is_elementor_version( '>=', '2.6.0' ) && ( $is_new || $migrated ) ) {
31
+
32
+ if ( empty( $settings[$new_icon]['library'] ) ) {
33
+ return false;
34
+ }
35
+
36
+ $tag = 'i';
37
+ // handler SVG Icon
38
+ if ( 'svg' === $settings[$new_icon]['library'] ) {
39
+ if ( ! isset( $settings[$new_icon]['value']['id'] ) ) {
40
+ return '';
41
+ }
42
+ $output = Elementor\Core\Files\Assets\Svg\Svg_Handler::get_inline_svg( $settings[$new_icon]['value']['id'] );
43
+
44
+ } else {
45
+ $icon_types = \Elementor\Icons_Manager::get_icon_manager_tabs();
46
+ if ( isset( $icon_types[ $settings[$new_icon]['library'] ]['render_callback'] ) && is_callable( $icon_types[ $settings[$new_icon]['library'] ]['render_callback'] ) ) {
47
+ return call_user_func_array( $icon_types[ $settings[$new_icon]['library'] ]['render_callback'], [ $settings[$new_icon], $attributes, $tag ] );
48
+ }
49
+
50
+ if ( empty( $attributes['class'] ) ) {
51
+ $attributes['class'] = $settings[$new_icon]['value'];
52
+ } else {
53
+ if ( is_array( $attributes['class'] ) ) {
54
+ $attributes['class'][] = $settings[$new_icon]['value'];
55
+ } else {
56
+ $attributes['class'] .= ' ' . $settings[$new_icon]['value'];
57
+ }
58
+ }
59
+ $output = '<' . $tag . ' ' . \Elementor\Utils::render_html_attributes( $attributes ) . '></' . $tag . '>';
60
+ }
61
+
62
+ } else {
63
+ if ( empty( $attributes['class'] ) ) {
64
+ $attributes['class'] = $settings[ $old_icon ];
65
+ } else {
66
+ if ( is_array( $attributes['class'] ) ) {
67
+ $attributes['class'][] = $settings[ $old_icon ];
68
+ } else {
69
+ $attributes['class'] .= ' ' . $settings[ $old_icon ];
70
+ }
71
+ }
72
+ $output = sprintf( '<i %s></i>', \Elementor\Utils::render_html_attributes( $attributes ) );
73
+ }
74
+
75
+ return $output;
76
+
77
+ }
78
+
79
+ /**
80
+ * [woolentor_product_query]
81
+ * @param array $query_args
82
+ * @return [array] Generate query
83
+ */
84
+ function woolentor_product_query( $query_args = [] ){
85
+
86
+ $meta_query = $tax_query = array();
87
+
88
+ $per_page = !empty( $query_args['per_page'] ) ? $query_args['per_page'] : 3;
89
+
90
+ // Tex Query
91
+ //
92
+ // Categories wise
93
+ if( isset( $query_args['categories'] ) ){
94
+ $field_name = 'slug';
95
+ $tax_query[] = array(
96
+ 'taxonomy' => 'product_cat',
97
+ 'terms' => $query_args['categories'],
98
+ 'field' => $field_name,
99
+ 'include_children' => false
100
+ );
101
+ }
102
+
103
+ // Tag wise
104
+ if( isset( $query_args['tags'] ) ){
105
+ $field_name = 'slug';
106
+ $tax_query[] = array(
107
+ 'taxonomy' => 'product_tag',
108
+ 'terms' => $query_args['tags'],
109
+ 'field' => $field_name,
110
+ 'include_children' => false
111
+ );
112
+ }
113
+
114
+ // Feature Product
115
+ if( $query_args['product_type'] == 'featured' ){
116
+ $tax_query[] = array(
117
+ 'taxonomy' => 'product_visibility',
118
+ 'field' => 'name',
119
+ 'terms' => 'featured',
120
+ 'operator' => 'IN',
121
+ );
122
+ }
123
+
124
+ // Meta Query
125
+ /**
126
+ * [$hide_out_of_stock] Check ( WooCommerce > Settings > Products > Inventory )
127
+ */
128
+ $hide_out_of_stock = get_option( 'woocommerce_hide_out_of_stock_items', 'no' );
129
+ if( 'yes' === $hide_out_of_stock ){
130
+ $meta_query[] = array(
131
+ 'key' => '_stock_status',
132
+ 'value' => 'instock',
133
+ 'compare' => '==',
134
+ );
135
+ }
136
+
137
+ $args = array(
138
+ 'post_type' => 'product',
139
+ 'post_status' => 'publish',
140
+ 'ignore_sticky_posts' => 1,
141
+ 'posts_per_page' => $per_page,
142
+ 'meta_query' => $meta_query,
143
+ 'tax_query' => $tax_query,
144
+ );
145
+
146
+ // Product Type Check
147
+ switch( $query_args['product_type'] ){
148
+
149
+ case 'sale':
150
+ $args['post__in'] = array_merge( array( 0 ), wc_get_product_ids_on_sale() );
151
+ break;
152
+
153
+ case 'best_selling':
154
+ $args['meta_key'] = 'total_sales';
155
+ $args['orderby'] = 'meta_value_num';
156
+ $args['order'] = 'desc';
157
+ break;
158
+
159
+ case 'top_rated':
160
+ $args['meta_key'] = '_wc_average_rating';
161
+ $args['orderby'] = 'meta_value_num';
162
+ $args['order'] = 'desc';
163
+ break;
164
+
165
+ case 'mixed_order':
166
+ $args['orderby'] = 'rand';
167
+ break;
168
+
169
+ case 'show_byid':
170
+ $args['post__in'] = $query_args['product_ids'];
171
+ $args['orderby'] = $query_args['product_ids'];
172
+ break;
173
+
174
+ case 'show_byid_manually':
175
+ $args['post__in'] = $query_args['product_ids'];
176
+ $args['orderby'] = $query_args['product_ids'];
177
+ break;
178
+
179
+ default: /* Recent */
180
+ $args['orderby'] = 'date';
181
+ $args['order'] = 'desc';
182
+ break;
183
+
184
+ }
185
+
186
+ /**
187
+ * Custom Order
188
+ */
189
+ if( isset( $query_args['custom_order'] ) ){
190
+ $args['orderby'] = $query_args['custom_order']['orderby'];
191
+ $args['order'] = $query_args['custom_order']['order'];
192
+ }
193
+
194
+ return $args;
195
+
196
+ }
197
 
198
  /**
199
  * Taxonomy List
265
  }
266
  $types = array();
267
  if ( empty( $templates ) ) {
268
+ $template_lists = [ '0' => __( 'No saved templates found.', 'woolentor' ) ];
269
  } else {
270
  $template_lists = [ '0' => __( 'Select Template', 'woolentor' ) ];
271
  foreach ( $templates as $template ) {
298
  return $default;
299
  }
300
 
301
+ /**
302
+ * Call a shortcode function by tag name.
303
+ *
304
+ * @param string $tag The shortcode whose function to call.
305
+ * @param array $atts The attributes to pass to the shortcode function. Optional.
306
+ * @param array $content The shortcode's content. Default is null (none).
307
+ *
308
+ * @return string|bool False on failure, the result of the shortcode on success.
309
+ */
310
+ function woolentor_do_shortcode( $tag, array $atts = array(), $content = null ) {
311
+ global $shortcode_tags;
312
+
313
+ if ( ! isset( $shortcode_tags[ $tag ] ) ) {
314
+ return false;
315
+ }
316
+
317
+ return call_user_func( $shortcode_tags[ $tag ], $atts, $content, $tag );
318
+ }
319
+
320
  /**
321
  * Woocommerce Product last product id return
322
  */
351
  return $html_tag_list;
352
  }
353
 
354
+ /*
355
+ * HTML Tag Validation
356
+ * return strig
357
+ */
358
+ function woolentor_validate_html_tag( $tag ) {
359
+ $allowed_html_tags = [
360
+ 'article',
361
+ 'aside',
362
+ 'footer',
363
+ 'header',
364
+ 'section',
365
+ 'nav',
366
+ 'main',
367
+ 'div',
368
+ 'h1',
369
+ 'h2',
370
+ 'h3',
371
+ 'h4',
372
+ 'h5',
373
+ 'h6',
374
+ 'p',
375
+ 'span',
376
+ ];
377
+ return in_array( strtolower( $tag ), $allowed_html_tags ) ? $tag : 'div';
378
+ }
379
+
380
  /*
381
  * Category list
382
  * return first one
401
  break;
402
  }else{ continue; }
403
  }
404
+
405
  }
406
 
407
  /*
424
  }
425
  }
426
 
427
+ /* Sale Flash for Single Product page */
428
+ function woolentor_show_product_sale_flash(){
429
+ global $post, $product;
430
+ if( is_a( $product, 'WC_Product' ) ){
431
+ if( $product->is_on_sale() && $product->is_in_stock() ){
432
+ echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . esc_html__( 'Sale!', 'woolentor' ) . '</span>', $post, $product );
433
+ }else{
434
+ $out_of_stock = get_post_meta( get_the_ID(), '_stock_status', true );
435
+ $out_of_stock_text = apply_filters( 'woolentor_shop_out_of_stock_text', __( 'Out of stock', 'woolentor' ) );
436
+ if ( 'outofstock' === $out_of_stock ) {
437
+ echo '<span class="outofstock onsale">'.esc_html( $out_of_stock_text ).'</span>';
438
+ }
439
+ }
440
+ }
441
+ }
442
+
443
  /* Sale badge */
444
  function woolentor_sale_flash( $offertype = 'default' ){
445
  global $product;
471
  }else{ echo ' '; }
472
 
473
  }else{
474
+ $sale_badge_text = apply_filters( 'woolentor_sale_badge_text', __( 'Sale!', 'woolentor' ) );
475
+ echo '<span class="ht-product-label ht-product-label-right">'.esc_html( $sale_badge_text ).'</span>';
476
  }
477
  }else{
478
  $out_of_stock = get_post_meta( get_the_ID(), '_stock_status', true );
609
  }
610
  }
611
 
 
 
 
 
 
 
612
  // HTML Markup Render in footer
613
  function woolentor_html_render_infooter(){
614
  do_action( 'woolentor_footer_render_content' );
615
  }
616
  add_action( 'wp_footer', 'woolentor_html_render_infooter' );
617
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
618
  /**
619
  * [woolentor_stock_status]
620
  */
621
  function woolentor_stock_status( $order_text, $available_text, $product_id ){
622
 
 
623
  if ( get_post_meta( $product_id, '_manage_stock', true ) == 'yes' ) {
624
 
625
  $total_stock = get_post_meta( $product_id, 'woolentor_total_stock_quantity', true );
626
 
627
+ if ( ! $total_stock ) { echo '<div class="stock-management-progressbar">'.__( 'Set the initial stock amount from', 'woolentor' ).' <a href="'.get_edit_post_link( $product_id ).'" target="_blank">'.__( 'here', 'woolentor' ).'</a></div>'; return; }
628
 
629
  $current_stock = round( get_post_meta( $product_id, '_stock', true ) );
630
 
634
  if ( $current_stock > 0 ) {
635
  echo '<div class="woolentor-stock-progress-bar">';
636
  echo '<div class="wlstock-info">';
637
+ echo '<div class="wltotal-sold">' . __( $order_text, 'woolentor' ) . '<span>' . esc_html( $total_sold ) . '</span></div>';
638
+ echo '<div class="wlcurrent-stock">' . __( $available_text, 'woolentor' ) . '<span>' . esc_html( $current_stock ) . '</span></div>';
639
  echo '</div>';
640
+ echo '<div class="wlprogress-area" title="' . __( 'Sold', 'woolentor' ) . ' ' . esc_attr( $percentage ) . '%">';
641
  echo '<div class="wlprogress-bar"style="width:' . esc_attr( $percentage ) . '%;"></div>';
642
  echo '</div>';
643
  echo '</div>';
644
  }else{
645
+ echo '<div class="stock-management-progressbar">'.__( 'Set the initial stock amount from', 'woolentor' ).' <a href="'.get_edit_post_link( $product_id ).'" target="_blank">'.__( 'here', 'woolentor' ).'</a></div>';
646
  }
647
 
648
  }
649
 
650
  }
651
 
652
+ /**
653
+ * [woolentor_minmax_price_limit]
654
+ * @return [array] Price Limit
655
+ */
656
+ function woolentor_minmax_price_limit() {
657
+ global $wpdb;
658
+ $min_query = "SELECT MIN( CAST( meta_value as UNSIGNED ) ) FROM {$wpdb->postmeta} WHERE meta_key = '_price'";
659
+ $max_query = "SELECT MAX( CAST( meta_value as UNSIGNED ) ) FROM {$wpdb->postmeta} WHERE meta_key = '_price'";
660
+ $value_min = $wpdb->get_var( $min_query );
661
+ $value_max = $wpdb->get_var( $max_query );
662
+ return [
663
+ 'min' => (int)$value_min,
664
+ 'max' => (int)$value_max,
665
+ ];
666
+ }
667
+
668
  }
669
 
670
  /**
705
 
706
  }
707
 
708
+ /**
709
+ * [woolentor_exist_compare_plugin]
710
+ * @return [bool]
711
+ */
712
+ function woolentor_exist_compare_plugin(){
713
+ if( class_exists('Ever_Compare') ){
714
+ return true;
715
+ }elseif( class_exists('YITH_Woocompare') ){
716
+ return true;
717
+ }else{
718
+ return false;
719
+ }
720
+ }
721
+
722
  /**
723
  * Usages: Compare button shortcode [yith_compare_button] From "YITH WooCommerce Compare" plugins.
724
  * Plugins URL: https://wordpress.org/plugins/yith-woocommerce-compare/
725
  * File Path: yith-woocommerce-compare/includes/class.yith-woocompare-frontend.php
726
  * The Function "woolentor_compare_button" Depends on YITH WooCommerce Compare plugins. If YITH WooCommerce Compare is installed and actived, then it will work.
727
  */
728
+ function woolentor_compare_button( $button_arg = array() ){
729
+
730
  global $product;
731
  $product_id = $product->get_id();
 
 
732
 
733
+ $button_style = !empty( $button_arg['style'] ) ? $button_arg['style'] : 1;
734
+
735
+ $button_title = !empty( $button_arg['title'] ) ? $button_arg['title'] : esc_html__('Add to Compare','woolentor');
736
+ $button_text = !empty( $button_arg['btn_text'] ) ? $button_arg['btn_text'] : esc_html__('Add to Compare','woolentor');
737
+ $button_added_text = !empty( $button_arg['btn_added_txt'] ) ? $button_arg['btn_added_txt'] : esc_html__( 'Product Added','woolentor' );
738
+
739
+ if( class_exists('Ever_Compare') ){
740
+ $comp_link = \EverCompare\Frontend\Manage_Compare::instance()->get_compare_page_url();
741
+ echo '<a title="'.esc_attr( $button_title ).'" href="'.esc_url( $comp_link ).'" class="htcompare-btn woolentor-compare" data-added-text="'.esc_attr( $button_added_text ).'" data-product_id="'.esc_attr( $product_id ).'">'.$button_text.'</a>';
742
+
743
+ }elseif( class_exists('YITH_Woocompare') ){
744
+ $comp_link = home_url() . '?action=yith-woocompare-add-product';
745
+ $comp_link = add_query_arg('id', $product_id, $comp_link);
746
+
747
+ if( $button_style == 1 ){
748
+ if( class_exists('YITH_Woocompare_Frontend') ){
749
+ echo do_shortcode('[yith_compare_button]');
750
+ }
751
+ }else{
752
+ echo '<a title="'. esc_attr__('Add to Compare', 'woolentor') .'" href="'. esc_url( $comp_link ) .'" class="woolentor-compare compare" data-product_id="'. esc_attr( $product_id ) .'" rel="nofollow">'.esc_html__( 'Compare', 'woolentor' ).'</a>';
753
+ }
754
  }else{
755
+ return 0;
756
  }
757
 
758
  }
759
 
760
+
761
+
762
+ /**
763
+ * [woolentor_has_wishlist_plugin]
764
+ * @return [bool]
765
+ */
766
+ function woolentor_has_wishlist_plugin(){
767
+ if( class_exists('WishSuite_Base') ){
768
+ return true;
769
+ }elseif( class_exists('YITH_WCWL') ){
770
+ return true;
771
+ }elseif( class_exists('TInvWL_Public_AddToWishlist') ){
772
+ return true;
773
+ }else{
774
+ return false;
775
+ }
776
+ }
777
+
778
  /**
779
  * Usages: "woolentor_add_to_wishlist_button()" function is used to modify the wishlist button from "YITH WooCommerce Wishlist" plugins.
780
  * Plugins URL: https://wordpress.org/plugins/yith-woocommerce-wishlist/
783
  */
784
 
785
  function woolentor_add_to_wishlist_button( $normalicon = '<i class="fa fa-heart-o"></i>', $addedicon = '<i class="fa fa-heart"></i>', $tooltip = 'no' ) {
786
+ global $product;
 
 
787
 
788
+ $product_id = $product->get_id();
 
 
 
 
 
 
789
 
790
  $output = '';
791
 
792
+ if( class_exists('WishSuite_Base') ){
793
+
794
+ $button_text = wishsuite_get_option( 'button_text','wishsuite_settings_tabs', 'Wishlist' );
795
+ $button_added_text = wishsuite_get_option( 'added_button_text','wishsuite_settings_tabs', 'Product Added' );
796
+ $button_exist_text = wishsuite_get_option( 'exist_button_text','wishsuite_settings_tabs', 'Product already added' );
797
+
798
+ $button_text = $normalicon.'<span class="wishsuite-btn-text">'.$button_text.'</span>';
799
+ $button_added_text = $addedicon.'<span class="wishsuite-btn-text">'.$button_added_text.'</span>';
800
+ $button_exist_text = $addedicon.'<span class="wishsuite-btn-text">'.$button_exist_text.'</span>';
801
+
802
+ $button_class = 'wishsuite-btn wishsuite-button wishlist'.( $tooltip == 'yes' ? '' : ' wltooltip_no' );
803
+
804
+ $button_args = [
805
+ 'btn_class' => $button_class,
806
+ 'btn_text' => $button_text,
807
+ 'btn_added_text' => $button_added_text,
808
+ 'btn_exist_text' => $button_exist_text,
809
+ ];
810
+
811
+ add_filter( 'wishsuite_button_arg', function( $button_arg ) use ( $button_args ) {
812
+
813
+ $button_arg['button_class'] = $button_args['btn_class'];
814
+
815
+ return $button_arg;
816
+ }, 90, 1 );
817
+
818
+ $output .= do_shortcode('[wishsuite_button]');
819
+ return $output;
820
+
821
+ }elseif( class_exists('TInvWL_Public_AddToWishlist') ){
822
+ ob_start();
823
+ TInvWL_Public_AddToWishlist::instance()->htmloutput();
824
+ $output .= ob_get_clean();
825
+ return $output;
826
+
827
+ }elseif( class_exists( 'YITH_WCWL' ) || !empty( get_option( 'yith_wcwl_wishlist_page_id' ) ) ){
828
+ global $yith_wcwl;
829
+ $url = YITH_WCWL()->get_wishlist_url();
830
+ $product_type = $product->get_type();
831
+ $exists = $yith_wcwl->is_product_in_wishlist( $product->get_id() );
832
+ $classes = 'class="add_to_wishlist"';
833
+ $add = get_option( 'yith_wcwl_add_to_wishlist_text' );
834
+ $browse = get_option( 'yith_wcwl_browse_wishlist_text' );
835
+ $added = get_option( 'yith_wcwl_product_added_text' );
836
+
837
+ $output .= '<div class="'.( $tooltip == 'yes' ? '' : 'tooltip_no' ).' wishlist button-default yith-wcwl-add-to-wishlist add-to-wishlist-' . esc_attr( $product->get_id() ) . '">';
838
+ $output .= '<div class="yith-wcwl-add-button';
839
+ $output .= $exists ? ' hide" style="display:none;"' : ' show"';
840
+ $output .= '><a href="' . esc_url( htmlspecialchars( YITH_WCWL()->get_wishlist_url() ) ) . '" data-product-id="' . esc_attr( $product->get_id() ) . '" data-product-type="' . esc_attr( $product_type ) . '" ' . $classes . ' >'.$normalicon.'<span class="ht-product-action-tooltip">'.esc_html( $add ).'</span></a>';
841
+ $output .= '<i class="fa fa-spinner fa-pulse ajax-loading" style="visibility:hidden"></i>';
842
+ $output .= '</div>';
843
+
844
+ $output .= '<div class="yith-wcwl-wishlistaddedbrowse hide" style="display:none;"><a class="" href="' . esc_url( $url ) . '">'.$addedicon.'<span class="ht-product-action-tooltip">'.esc_html( $browse ).'</span></a></div>';
845
+ $output .= '<div class="yith-wcwl-wishlistexistsbrowse ' . ( $exists ? 'show' : 'hide' ) . '" style="display:' . ( $exists ? 'block' : 'none' ) . '"><a href="' . esc_url( $url ) . '" class="">'.$addedicon.'<span class="ht-product-action-tooltip">'.esc_html( $added ).'</span></a></div>';
846
  $output .= '</div>';
847
 
848
+ return $output;
849
+
850
+ }else{
851
+ return 0;
852
+ }
853
 
854
 
855
  }
includes/quickview-content.php CHANGED
@@ -8,51 +8,45 @@ if ( ! defined( 'ABSPATH' ) ) {
8
  }
9
 
10
  global $product;
11
- $post_thumbnail_id = $product->get_image_id();
12
- $attachment_ids = $product->get_gallery_image_ids();
 
 
 
 
 
 
 
 
 
 
13
 
14
  ?>
15
- <div class="ht-row">
16
 
17
  <div class="ht-col-md-5 ht-col-sm-5 ht-col-xs-12">
18
  <div class="ht-qwick-view-left">
19
  <div class="ht-quick-view-learg-img">
20
- <?php if ( has_post_thumbnail() ): ?>
21
- <div class="ht-quick-view-single images">
22
- <?php
23
- $html = wc_get_gallery_image_html( $post_thumbnail_id, true );
24
- echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', $html, $post_thumbnail_id );
25
- ?>
26
- </div>
27
- <?php endif;
28
  if ( $attachment_ids ) {
 
29
  foreach ( $attachment_ids as $attachment_id ) {
30
  $i++;
31
- ?>
32
- <div class="ht-quick-view-single">
33
- <?php
34
- $html = wc_get_gallery_image_html( $attachment_id, true );
35
- echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', $html, $attachment_id );
36
- ?>
37
- </div>
38
- <?php
 
39
  }
40
  }
41
  ?>
42
-
43
  </div>
44
 
45
  <div class="ht-quick-view-thumbnails">
46
- <?php if ( has_post_thumbnail() ): ?>
47
-
48
- <div class="ht-quick-thumb-single">
49
- <?php
50
- $thumbnail_src = wp_get_attachment_image_src( $post_thumbnail_id, 'woocommerce_gallery_thumbnail' );
51
- echo '<img src=" '.$thumbnail_src[0].' " alt="'.get_the_title().'">';
52
- ?>
53
- </div>
54
-
55
- <?php endif; ?>
56
  <?php
57
  if ( $attachment_ids && $product->get_image_id() ) {
58
  foreach ( $attachment_ids as $attachment_id ) {
8
  }
9
 
10
  global $product;
11
+ // $post_thumbnail_id = $product->get_image_id();
12
+ // $attachment_ids = $product->get_gallery_image_ids();
13
+
14
+ $attachment_ids = $product->get_gallery_image_ids() ? $product->get_gallery_image_ids() : array();
15
+ if ( $product->get_image_id() ){
16
+ $attachment_ids = array( 'wlquick_thumbnail_id' => $product->get_image_id() ) + $attachment_ids;
17
+ }
18
+
19
+ // Placeholder image set
20
+ if( empty( $attachment_ids ) ){
21
+ $attachment_ids = array( 'wlquick_thumbnail_id' => get_option( 'woocommerce_placeholder_image', 0 ) );
22
+ }
23
 
24
  ?>
25
+ <div <?php wc_product_class( 'ht-row' ); ?>>
26
 
27
  <div class="ht-col-md-5 ht-col-sm-5 ht-col-xs-12">
28
  <div class="ht-qwick-view-left">
29
  <div class="ht-quick-view-learg-img">
30
+ <?php
 
 
 
 
 
 
 
31
  if ( $attachment_ids ) {
32
+ $i = 0;
33
  foreach ( $attachment_ids as $attachment_id ) {
34
  $i++;
35
+
36
+ $html = wc_get_gallery_image_html( $attachment_id, true );
37
+
38
+ if( $i == 1 ){
39
+ echo '<div class="ht-quick-view-single wl-quickview-first-image">'.apply_filters( 'woocommerce_single_product_image_thumbnail_html', $html, $attachment_id ).'</div>';
40
+ }else{
41
+ echo '<div class="ht-quick-view-single">'.apply_filters( 'woocommerce_single_product_image_thumbnail_html', $html, $attachment_id ).'</div>';
42
+ }
43
+
44
  }
45
  }
46
  ?>
 
47
  </div>
48
 
49
  <div class="ht-quick-view-thumbnails">
 
 
 
 
 
 
 
 
 
 
50
  <?php
51
  if ( $attachment_ids && $product->get_image_id() ) {
52
  foreach ( $attachment_ids as $attachment_id ) {
includes/widgets/ajax-search/base.php CHANGED
@@ -15,10 +15,6 @@ class WooLentor_Ajax_Search_Base{
15
  */
16
  public function __construct() {
17
 
18
- // ajax callback
19
- add_action( 'wp_ajax_woolentor_ajax_search', [ $this, 'ajax_search_callback' ] );
20
- add_action( 'wp_ajax_nopriv_woolentor_ajax_search', [ $this, 'ajax_search_callback' ] );
21
-
22
  //Register Shortcode
23
  add_shortcode( 'woolentorsearch', [ $this, 'shortcode' ] );
24
 
@@ -84,7 +80,9 @@ class WooLentor_Ajax_Search_Base{
84
  <?php endif; ?>
85
  <div class="woolentor_psa_content">
86
  <h3><?php echo wp_trim_words( get_the_title(), 5 ); ?></h3>
87
- <?php woocommerce_template_single_price() ?>
 
 
88
  </div>
89
  </a>
90
  </div>
@@ -100,7 +98,6 @@ class WooLentor_Ajax_Search_Base{
100
  public function shortcode( $atts = array(), $content = '' ) {
101
 
102
  wp_enqueue_style( 'woolentor-ajax-search' );
103
- wp_enqueue_script( 'jquery-nicescroll' );
104
  wp_enqueue_script( 'woolentor-ajax-search' );
105
 
106
  extract( shortcode_atts( array(
15
  */
16
  public function __construct() {
17
 
 
 
 
 
18
  //Register Shortcode
19
  add_shortcode( 'woolentorsearch', [ $this, 'shortcode' ] );
20
 
80
  <?php endif; ?>
81
  <div class="woolentor_psa_content">
82
  <h3><?php echo wp_trim_words( get_the_title(), 5 ); ?></h3>
83
+ <div class="woolentor_psa_price">
84
+ <?php woocommerce_template_single_price() ?>
85
+ </div>
86
  </div>
87
  </a>
88
  </div>
98
  public function shortcode( $atts = array(), $content = '' ) {
99
 
100
  wp_enqueue_style( 'woolentor-ajax-search' );
 
101
  wp_enqueue_script( 'woolentor-ajax-search' );
102
 
103
  extract( shortcode_atts( array(
includes/widgets/ajax-search/widget-product-search-ajax.php CHANGED
@@ -18,11 +18,11 @@ class WooLentor_Product_Search_Ajax_Widget extends WP_Widget{
18
  * Output
19
  */
20
  public function widget( $args, $instance ) {
21
- $title = apply_filters( 'widget_title', $instance[ 'title' ] );
22
  echo $args['before_widget'];
23
  if( !empty( $instance['title'] ) ){ echo $args['before_title'] . $title . $args['after_title']; }
24
  $shortcode_atts = [
25
- 'limit' => 'limit="'.$instance[ 'limit' ].'"',
26
  ];
27
  echo do_shortcode( sprintf( '[woolentorsearch %s]', implode(' ', $shortcode_atts ) ) );
28
  echo $args['after_widget'];
18
  * Output
19
  */
20
  public function widget( $args, $instance ) {
21
+ $title = apply_filters( 'widget_title', ( !empty( $instance[ 'title' ] ) ? $instance[ 'title' ] : '' ) );
22
  echo $args['before_widget'];
23
  if( !empty( $instance['title'] ) ){ echo $args['before_title'] . $title . $args['after_title']; }
24
  $shortcode_atts = [
25
+ 'limit' => 'limit="'.( !empty( $instance[ 'limit' ] ) ? $instance[ 'limit' ]:'' ).'"',
26
  ];
27
  echo do_shortcode( sprintf( '[woolentorsearch %s]', implode(' ', $shortcode_atts ) ) );
28
  echo $args['after_widget'];
includes/wl_woo_shop.php CHANGED
@@ -1,151 +1,223 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  /**
3
- * Single Product Custom Layout
4
- */
5
- class Woolentor_Woo_Custom_Template_Layout{
 
 
 
 
 
 
6
 
 
7
 
8
- public static $wl_woo_elementor_template = array();
9
 
10
- private static $_instance = null;
11
- public static function instance() {
12
- if ( is_null( self::$_instance ) ) {
13
- self::$_instance = new self();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  }
15
- return self::$_instance;
16
- }
17
-
18
- function __construct(){
19
- add_action('init', array( $this, 'init' ) );
20
  }
21
 
22
- public function init(){
23
 
24
- // Product details page
25
- add_filter( 'wc_get_template_part', array( $this, 'wl_get_product_page_template' ), 99, 3 );
26
- add_filter( 'template_include', array( $this, 'wl_get_product_elementor_template' ), 100 );
27
- add_action( 'woolentor_woocommerce_product_content', array( $this, 'wl_get_product_content_elementor' ), 5 );
28
- add_action( 'woolentor_woocommerce_product_content', array( $this, 'wl_get_default_product_data' ), 10 );
29
 
30
- // Product Archive Page
31
- add_action('template_redirect', array($this, 'woolentor_product_archive_template'), 999);
32
- add_filter('template_include', array($this, 'woolentor_redirect_product_archive_template'), 999);
33
- add_action( 'woolentor_woocommerce_archive_product_content', array( $this, 'woolentor_archive_product_page_content') );
 
 
 
 
 
 
 
34
  }
 
35
 
36
- public function wl_get_product_page_template( $template, $slug, $name ) {
37
- if ( 'content' === $slug && 'single-product' === $name ) {
38
- if ( Woolentor_Woo_Custom_Template_Layout::wl_woo_custom_product_template() ) {
39
- $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product.php';
40
- }
41
  }
42
- return $template;
43
  }
 
 
44
 
45
- //Based on elementor template
46
- public function wl_get_product_elementor_template( $template ) {
47
- if ( is_embed() ) {
48
- return $template;
49
- }
50
- if ( is_singular( 'product' ) ) {
51
- $templateid = get_page_template_slug( woolentor_get_option( 'singleproductpage', 'woolentor_woo_template_tabs', '0' ) );
 
52
  if ( 'elementor_header_footer' === $templateid ) {
53
  $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product-fullwidth.php';
54
  } elseif ( 'elementor_canvas' === $templateid ) {
55
  $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product-canvas.php';
56
  }
57
  }
58
- return $template;
59
  }
 
 
60
 
61
- public static function wl_get_product_content_elementor( $post ) {
62
- if ( Woolentor_Woo_Custom_Template_Layout::wl_woo_custom_product_template() ) {
63
- $wltemplateid = woolentor_get_option( 'singleproductpage', 'woolentor_woo_template_tabs', '0' );
64
- $wlindividualid = get_post_meta( get_the_ID(), '_selectproduct_layout', true ) ? get_post_meta( get_the_ID(), '_selectproduct_layout', true ) : '0';
65
- if( $wlindividualid != '0' ){ $wltemplateid = $wlindividualid; }
66
- echo Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $wltemplateid );
67
- } else {
68
- the_content();
69
- }
70
  }
 
71
 
72
- // product data
73
- public function wl_get_default_product_data() {
74
- WC()->structured_data->generate_product_data();
75
- }
76
 
77
- public static function wl_woo_custom_product_template() {
78
- $templatestatus = false;
79
- if ( is_product() ) {
80
- global $post;
81
- if ( ! isset( self::$wl_woo_elementor_template[ $post->ID ] ) ) {
82
- $single_product_default = woolentor_get_option( 'singleproductpage', 'woolentor_woo_template_tabs', '0' );
83
- if ( ! empty( $single_product_default ) && 'default' !== $single_product_default ) {
84
- $templatestatus = true;
85
- self::$wl_woo_elementor_template[ $post->ID ] = true;
86
- }
87
- } else {
88
- $templatestatus = self::$wl_woo_elementor_template[ $post->ID ];
89
- }
90
  }
91
- return apply_filters( 'wl_woo_custom_product_template', $templatestatus );
92
  }
 
 
93
 
94
- /*
95
- * Archive Page
96
- */
97
- public function woolentor_product_archive_template() {
98
- $archive_template_id = 0;
99
- if ( defined('WOOCOMMERCE_VERSION') ) {
100
- $termobj = get_queried_object();
101
- if ( is_shop() || ( is_tax('product_cat') && is_product_category() ) || ( is_tax('product_tag') && is_product_tag() ) || ( isset( $termobj->taxonomy ) && is_tax( $termobj->taxonomy ) ) ) {
102
- $product_achive_custom_page_id = woolentor_get_option( 'productarchivepage', 'woolentor_woo_template_tabs', '0' );
103
-
104
- // Meta value
105
- $wltermlayoutid = 0;
106
- if(( is_tax('product_cat') && is_product_category() ) || ( is_tax('product_tag') && is_product_tag() )){
107
- $wltermlayoutid = get_term_meta( $termobj->term_id, 'wooletor_selectcategory_layout', true ) ? get_term_meta( $termobj->term_id, 'wooletor_selectcategory_layout', true ) : '0';
 
 
 
 
 
 
 
 
 
108
  }
109
- if( $wltermlayoutid != '0' ){
110
- $archive_template_id = $wltermlayoutid;
111
- }else{
112
- if (!empty($product_achive_custom_page_id)) {
113
- $archive_template_id = $product_achive_custom_page_id;
114
- }
 
115
  }
116
- return $archive_template_id;
117
  }
118
  return $archive_template_id;
119
  }
120
- }
121
 
122
- public function woolentor_redirect_product_archive_template($template){
123
- $archive_template_id = $this->woolentor_product_archive_template();
124
- $templatefile = array();
125
- $templatefile[] = 'wl-woo-templates/archive-product.php';
126
- if( $archive_template_id != '0' ){
127
- $template = locate_template( $templatefile );
128
- if ( ! $template || ( ! empty( $status_options['template_debug_mode'] ) && current_user_can( 'manage_options' ) ) ){
129
- $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product.php';
130
- }
131
- $page_template_slug = get_page_template_slug( $archive_template_id );
132
- if ( 'elementor_header_footer' === $page_template_slug ) {
133
- $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product-fullwidth.php';
134
- } elseif ( 'elementor_canvas' === $page_template_slug ) {
135
- $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product-canvas.php';
136
- }
137
- }
138
- return $template;
139
  }
 
140
 
141
- // Element Content
142
- public function woolentor_archive_product_page_content( $post ){
143
- $archive_template_id = $this->woolentor_product_archive_template();
144
- if( $archive_template_id != '0' ){
145
- echo Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $archive_template_id );
146
- }else{ the_content(); }
 
 
 
 
 
 
 
 
 
147
  }
 
 
148
 
 
 
 
 
 
 
149
  }
150
 
151
- Woolentor_Woo_Custom_Template_Layout::instance();
 
 
1
  <?php
2
+ /**
3
+ * Single Product Custom Layout
4
+ */
5
+ class Woolentor_Woo_Custom_Template_Layout{
6
+
7
+
8
+ public static $wl_woo_elementor_template = array();
9
+
10
+ private static $_instance = null;
11
+ public static function instance() {
12
+ if ( is_null( self::$_instance ) ) {
13
+ self::$_instance = new self();
14
+ }
15
+ return self::$_instance;
16
+ }
17
+
18
+ function __construct(){
19
+ add_action('init', array( $this, 'init' ) );
20
+ }
21
+
22
+ public function init(){
23
+
24
+ // Manage Body classes
25
+ add_filter( 'body_class',array( $this, 'body_classes' ) );
26
+
27
+ // Product details page
28
+ add_filter( 'wc_get_template_part', array( $this, 'wl_get_product_page_template' ), 99, 3 );
29
+ add_filter( 'template_include', array( $this, 'wl_get_product_elementor_template' ), 100 );
30
+ add_action( 'woolentor_woocommerce_product_content', array( $this, 'wl_get_product_content_elementor' ), 5 );
31
+ add_action( 'woolentor_woocommerce_product_content', array( $this, 'wl_get_default_product_data' ), 10 );
32
+
33
+ // Product Archive Page
34
+ add_action('template_redirect', array( $this, 'woolentor_product_archive_template' ), 999 );
35
+ add_filter('template_include', array( $this, 'woolentor_redirect_product_archive_template' ), 999 );
36
+ add_action( 'woolentor_woocommerce_archive_product_content', array( $this, 'woolentor_archive_product_page_content' ) );
37
+ }
38
+
39
  /**
40
+ * [body_classes]
41
+ * @param [array] $classes
42
+ * @return [array]
43
+ */
44
+ public function body_classes( $classes ){
45
+
46
+ $class_prefix = 'elementor-page-';
47
+
48
+ if ( is_product() && false !== $this->has_template( 'singleproductpage' ) ) {
49
 
50
+ $classes[] = $class_prefix.$this->has_template( 'singleproductpage' );
51
 
52
+ }elseif( is_checkout() && false !== $this->has_template( 'productcheckoutpage' ) ){
53
 
54
+ $classes[] = $class_prefix.$this->has_template( 'productcheckoutpage' );
55
+
56
+ }elseif( is_shop() && false !== $this->has_template( 'productarchivepage' ) ){
57
+
58
+ $classes[] = $class_prefix.$this->has_template( 'productarchivepage' );
59
+
60
+ }elseif ( is_account_page() ) {
61
+ if ( is_user_logged_in() && false !== $this->has_template( 'productmyaccountpage' ) ) {
62
+ $classes[] = $class_prefix.$this->has_template( 'productmyaccountpage' );
63
+ }else{
64
+ if( false !== $this->has_template( 'productmyaccountloginpage' ) ){
65
+ $classes[] = $class_prefix.$this->has_template( 'productmyaccountloginpage' );
66
+ }
67
+ }
68
+ }else{
69
+ if ( is_cart() && ! WC()->cart->is_empty() && false !== $this->has_template( 'productcartpage' ) ) {
70
+ $classes[] = $class_prefix.$this->has_template( 'productcartpage' );
71
+ }else{
72
+ if( false !== $this->has_template( 'productemptycartpage' ) ){
73
+ $classes[] = $class_prefix.$this->has_template( 'productemptycartpage' );
74
+ }
75
  }
 
 
 
 
 
76
  }
77
 
78
+ return $classes;
79
 
80
+ }
 
 
 
 
81
 
82
+ /**
83
+ * [has_template]
84
+ * @param [string] $field_key
85
+ * @return boolean | int
86
+ */
87
+ public function has_template( $field_key ){
88
+ $template_id = woolentor_get_option( $field_key, 'woolentor_woo_template_tabs', '0' );
89
+ if( '0' !== $template_id ){
90
+ return $template_id;
91
+ }else{
92
+ return false;
93
  }
94
+ }
95
 
96
+ public function wl_get_product_page_template( $template, $slug, $name ) {
97
+ if ( 'content' === $slug && 'single-product' === $name ) {
98
+ if ( Woolentor_Woo_Custom_Template_Layout::wl_woo_custom_product_template() ) {
99
+ $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product.php';
 
100
  }
 
101
  }
102
+ return $template;
103
+ }
104
 
105
+ //Based on elementor template
106
+ public function wl_get_product_elementor_template( $template ) {
107
+ if ( is_embed() ) {
108
+ return $template;
109
+ }
110
+ if ( is_singular( 'product' ) ) {
111
+ if ( Woolentor_Woo_Custom_Template_Layout::wl_woo_custom_product_template() ) {
112
+ $templateid = get_page_template_slug( self::single_product_tmp_id() );
113
  if ( 'elementor_header_footer' === $templateid ) {
114
  $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product-fullwidth.php';
115
  } elseif ( 'elementor_canvas' === $templateid ) {
116
  $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product-canvas.php';
117
  }
118
  }
 
119
  }
120
+ return $template;
121
+ }
122
 
123
+ public static function wl_get_product_content_elementor() {
124
+ if ( Woolentor_Woo_Custom_Template_Layout::wl_woo_custom_product_template() ) {
125
+ $wltemplateid = self::single_product_tmp_id();
126
+ echo Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $wltemplateid );
127
+ } else {
128
+ the_content();
 
 
 
129
  }
130
+ }
131
 
132
+ // product data
133
+ public function wl_get_default_product_data() {
134
+ WC()->structured_data->generate_product_data();
135
+ }
136
 
137
+ public static function single_product_tmp_id(){
138
+ $wltemplateid = woolentor_get_option( 'singleproductpage', 'woolentor_woo_template_tabs', '0' );
139
+ $wlindividualid = get_post_meta( get_the_ID(), '_selectproduct_layout', true ) ? get_post_meta( get_the_ID(), '_selectproduct_layout', true ) : '0';
140
+ if( $wlindividualid != '0' ){ $wltemplateid = $wlindividualid; }
141
+ return $wltemplateid;
142
+ }
143
+
144
+ public static function wl_woo_custom_product_template() {
145
+ $templatestatus = false;
146
+ if ( is_product() ) {
147
+ if( !empty( self::single_product_tmp_id() ) && '0' !== self::single_product_tmp_id() ){
148
+ $templatestatus = true;
 
149
  }
 
150
  }
151
+ return apply_filters( 'wl_woo_custom_product_template', $templatestatus );
152
+ }
153
 
154
+ /*
155
+ * Archive Page
156
+ */
157
+ public function woolentor_product_archive_template() {
158
+ $archive_template_id = 0;
159
+ if ( defined('WOOCOMMERCE_VERSION') ) {
160
+ $termobj = get_queried_object();
161
+ $get_all_taxonomies = woolentor_get_taxonomies();
162
+
163
+ if ( is_shop() || ( is_tax('product_cat') && is_product_category() ) || ( is_tax('product_tag') && is_product_tag() ) || ( isset( $termobj->taxonomy ) && is_tax( $termobj->taxonomy ) && array_key_exists( $termobj->taxonomy, $get_all_taxonomies ) ) ) {
164
+ $product_shop_custom_page_id = woolentor_get_option( 'productarchivepage', 'woolentor_woo_template_tabs', '0' );
165
+
166
+ // Archive Layout Control
167
+ $wltermlayoutid = 0;
168
+ if(( is_tax('product_cat') && is_product_category() ) || ( is_tax('product_tag') && is_product_tag() )){
169
+
170
+ $product_archive_custom_page_id = woolentor_get_option( 'productallarchivepage', 'woolentor_woo_template_tabs', '0' );
171
+
172
+ // Get Meta Value
173
+ $wltermlayoutid = get_term_meta( $termobj->term_id, 'wooletor_selectcategory_layout', true ) ? get_term_meta( $termobj->term_id, 'wooletor_selectcategory_layout', true ) : '0';
174
+
175
+ if( !empty( $product_archive_custom_page_id ) && $wltermlayoutid == '0' ){
176
+ $wltermlayoutid = $product_archive_custom_page_id;
177
  }
178
+
179
+ }
180
+ if( $wltermlayoutid != '0' ){
181
+ $archive_template_id = $wltermlayoutid;
182
+ }else{
183
+ if ( !empty( $product_shop_custom_page_id ) ) {
184
+ $archive_template_id = $product_shop_custom_page_id;
185
  }
 
186
  }
187
  return $archive_template_id;
188
  }
 
189
 
190
+ return $archive_template_id;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  }
192
+ }
193
 
194
+ public function woolentor_redirect_product_archive_template( $template ){
195
+ $archive_template_id = $this->woolentor_product_archive_template();
196
+ $templatefile = array();
197
+ $templatefile[] = 'wl-woo-templates/archive-product.php';
198
+ if( $archive_template_id != '0' ){
199
+ $template = locate_template( $templatefile );
200
+ if ( ! $template || ( ! empty( $status_options['template_debug_mode'] ) && current_user_can( 'manage_options' ) ) ){
201
+ $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product.php';
202
+ }
203
+ $page_template_slug = get_page_template_slug( $archive_template_id );
204
+ if ( 'elementor_header_footer' === $page_template_slug ) {
205
+ $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product-fullwidth.php';
206
+ } elseif ( 'elementor_canvas' === $page_template_slug ) {
207
+ $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product-canvas.php';
208
+ }
209
  }
210
+ return $template;
211
+ }
212
 
213
+ // Element Content
214
+ public function woolentor_archive_product_page_content( $post ){
215
+ $archive_template_id = $this->woolentor_product_archive_template();
216
+ if( $archive_template_id != '0' ){
217
+ echo Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $archive_template_id );
218
+ }else{ the_content(); }
219
  }
220
 
221
+ }
222
+
223
+ Woolentor_Woo_Custom_Template_Layout::instance();
languages/woolentor.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: WooLentor - WooCommerce Elementor Addons + Builder\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2020-02-13 10:41+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
@@ -13,238 +13,316 @@ msgstr ""
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/\n"
16
- "X-Loco-Version: 2.3.1; wp-5.3.2"
17
-
18
- #: includes/admin/include/templates_list.php:62
19
- msgid " has been imported."
20
- msgstr ""
21
-
22
- #: includes/admin/include/templates_list.php:36
23
- msgid " Templates"
24
- msgstr ""
25
 
26
  #. 1: Plugin name 2: PHP 3: Required PHP version
27
- #: includes/base.php:153
28
  #, php-format
29
  msgid "\"%1$s\" requires \"%2$s\" version %3$s or greater."
30
  msgstr ""
31
 
32
- #: includes/base.php:106
 
 
 
 
 
 
33
  #, php-format
34
  msgid ""
35
  "%1$sWooLentor Addons for Elementor%2$s requires %1$s\"Elementor\"%2$s plugin "
36
  "to be active. Please activate Elementor to continue."
37
  msgstr ""
38
 
39
- #: includes/base.php:113
40
  #, php-format
41
  msgid ""
42
  "%1$sWooLentor Addons for Elementor%2$s requires %1$s\"Elementor\"%2$s plugin "
43
  "to be installed and activated. Please install Elementor to continue."
44
  msgstr ""
45
 
46
- #: includes/base.php:131
47
  #, php-format
48
  msgid ""
49
  "%1$sWooLentor Addons for Elementor%2$s requires %1$s\"WooCommerce\"%2$s "
50
  "plugin to be active. Please activate WooCommerce to continue."
51
  msgstr ""
52
 
53
- #: includes/base.php:138
54
  #, php-format
55
  msgid ""
56
  "%1$sWooLentor Addons for Elementor%2$s requires %1$s\"WooCommerce\"%2$s "
57
  "plugin to be installed and activated. Please install WooCommerce to continue."
58
  msgstr ""
59
 
60
- #: includes/admin/include/admin-setting.php:1185
61
- #: includes/admin/include/admin-setting.php:1192
62
- #: includes/admin/include/admin-setting.php:1199
63
- #: includes/admin/include/admin-setting.php:1206
 
 
 
 
 
 
 
 
 
64
  msgid "( Pro )"
65
  msgstr ""
66
 
67
- #: includes/addons/product_tabs.php:79
 
68
  msgid "1"
69
  msgstr ""
70
 
71
- #: includes/admin/include/admin-setting.php:860
72
- #: includes/admin/include/admin-setting.php:885
73
  msgid "1 minute"
74
  msgstr ""
75
 
76
- #: includes/admin/include/admin-setting.php:912
77
  msgid "1 week"
78
  msgstr ""
79
 
80
- #: includes/admin/include/admin-setting.php:861
81
- #: includes/admin/include/admin-setting.php:886
82
  msgid "1.5 minutes"
83
  msgstr ""
84
 
85
- #: includes/admin/include/admin-setting.php:855
86
- #: includes/admin/include/admin-setting.php:880
 
 
 
 
87
  msgid "10 seconds"
88
  msgstr ""
89
 
90
- #: includes/addons/wb_product_call_for_price.php:49
91
- #: includes/addons/wb_product_call_for_price.php:50
92
  msgid "123-456-7890"
93
  msgstr ""
94
 
95
- #: includes/admin/include/admin-setting.php:1098
96
  msgid "15 Product Custom Layout"
97
  msgstr ""
98
 
99
- #: includes/admin/include/admin-setting.php:1077
 
 
 
 
100
  msgid "18 Elements"
101
  msgstr ""
102
 
103
- #: includes/addons/product_tabs.php:80
 
104
  msgid "2"
105
  msgstr ""
106
 
107
- #: includes/admin/include/admin-setting.php:862
108
- #: includes/admin/include/admin-setting.php:887
109
  msgid "2 minutes"
110
  msgstr ""
111
 
112
- #: includes/admin/include/admin-setting.php:847
113
- #: includes/admin/include/admin-setting.php:873
114
  msgid "2 seconds"
115
  msgstr ""
116
 
117
- #: includes/admin/include/admin-setting.php:856
118
- #: includes/admin/include/admin-setting.php:881
119
  msgid "20 seconds"
120
  msgstr ""
121
 
122
- #: includes/addons/product_tabs.php:81
123
  msgid "3"
124
  msgstr ""
125
 
126
- #: includes/admin/include/admin-setting.php:1080
127
  msgid "3 Product Custom Layout"
128
  msgstr ""
129
 
130
- #: includes/admin/include/admin-setting.php:848
131
  msgid "3 seconds"
132
  msgstr ""
133
 
134
- #: includes/admin/include/admin-setting.php:857
135
- #: includes/admin/include/admin-setting.php:882
136
  msgid "30 seconds"
137
  msgstr ""
138
 
139
- #: includes/addons/product_tabs.php:82
140
  msgid "4"
141
  msgstr ""
142
 
143
- #: includes/admin/include/admin-setting.php:849
144
- #: includes/admin/include/admin-setting.php:874
145
  msgid "4 seconds"
146
  msgstr ""
147
 
148
- #: includes/admin/include/admin-setting.php:858
149
- #: includes/admin/include/admin-setting.php:883
150
  msgid "40 seconds"
151
  msgstr ""
152
 
153
- #: includes/admin/include/admin-setting.php:1095
154
  msgid "41 Elements"
155
  msgstr ""
156
 
157
- #: includes/addons/product_tabs.php:83
158
  msgid "5"
159
  msgstr ""
160
 
161
- #: includes/admin/include/admin-setting.php:850
162
- #: includes/admin/include/admin-setting.php:875
 
 
 
 
 
163
  msgid "5 seconds"
164
  msgstr ""
165
 
166
- #: includes/admin/include/admin-setting.php:859
167
- #: includes/admin/include/admin-setting.php:884
168
  msgid "50 seconds"
169
  msgstr ""
170
 
171
- #: includes/addons/special_day_offer.php:100
172
  msgid "50%"
173
  msgstr ""
174
 
175
- #: includes/addons/product_tabs.php:84
176
  msgid "6"
177
  msgstr ""
178
 
179
- #: includes/admin/include/admin-setting.php:851
180
- #: includes/admin/include/admin-setting.php:876
181
  msgid "6 seconds"
182
  msgstr ""
183
 
184
- #: includes/admin/include/admin-setting.php:852
185
- #: includes/admin/include/admin-setting.php:877
186
  msgid "7 seconds"
187
  msgstr ""
188
 
189
- #: includes/admin/include/templates_list.php:34
190
- msgid "7 Templates are Free and 27 Templates are Premium"
191
  msgstr ""
192
 
193
- #: includes/admin/include/admin-setting.php:853
194
- #: includes/admin/include/admin-setting.php:878
195
  msgid "8 seconds"
196
  msgstr ""
197
 
198
- #: includes/admin/include/admin-setting.php:854
199
- #: includes/admin/include/admin-setting.php:879
200
  msgid "9 seconds"
201
  msgstr ""
202
 
203
- #: includes/admin/include/admin-setting.php:1169
204
- msgid "99Fy - WooCommerce Theme"
 
 
 
 
 
 
 
 
 
 
205
  msgstr ""
206
 
207
- #: includes/addons/product_tabs.php:1528 includes/addons/product_tabs.php:1661
 
208
  msgid ":"
209
  msgstr ""
210
 
211
- #: includes/addons/product_tabs.php:1158
212
  msgid "Action Button"
213
  msgstr ""
214
 
215
- #: includes/base.php:107
 
 
 
 
 
 
 
 
 
 
 
 
 
216
  msgid "Activate Elementor"
217
  msgstr ""
218
 
219
- #: includes/base.php:132
220
  msgid "Activate WooCommerce"
221
  msgstr ""
222
 
223
- #: includes/addons/wb_archive_product.php:744
224
- #: includes/addons/wb_product_data_tab.php:130
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  msgid "Active"
226
  msgstr ""
227
 
228
- #: includes/addons/wb_product_add_to_cart.php:178
229
- msgid "Add To Cart"
 
 
 
 
 
 
230
  msgstr ""
231
 
232
- #: includes/admin/include/admin-setting.php:623
233
- #: includes/admin/include/admin-setting.php:637
234
  msgid "Add to Cart"
235
  msgstr ""
236
 
237
- #: includes/addons/wb_archive_product.php:534
238
- #: includes/admin/include/admin-setting.php:273
239
  msgid "Add To Cart Button"
240
  msgstr ""
241
 
242
- #: includes/admin/include/admin-setting.php:620
243
- #: includes/admin/include/admin-setting.php:634
 
 
 
 
 
 
 
 
 
 
 
 
244
  msgid "Add to Cart Button Text"
245
  msgstr ""
246
 
247
- #: includes/helper-function.php:366
 
248
  msgid "Add to Compare"
249
  msgstr ""
250
 
@@ -252,1819 +330,3864 @@ msgstr ""
252
  msgid "Add Youtube / Vimeo URL"
253
  msgstr ""
254
 
255
- #: includes/admin/include/admin-setting.php:654
256
- msgid "Additiona information"
 
 
 
 
 
257
  msgstr ""
258
 
259
- #: includes/admin/include/admin-setting.php:281
260
- #: includes/admin/include/admin-setting.php:651
261
- msgid "Additional Information"
262
  msgstr ""
263
 
264
- #: includes/admin/include/admin-setting.php:711
265
- #: includes/admin/include/admin-setting.php:714
266
  msgid "Address Optional"
267
  msgstr ""
268
 
269
- #: includes/addons/wb_product_suggest_price.php:74
270
- #: includes/addons/wb_product_suggest_price.php:75
271
  msgid "admin@domain.com"
272
  msgstr ""
273
 
274
- #: includes/admin/include/admin-setting.php:233
275
  msgid "Ads Banner"
276
  msgstr ""
277
 
278
- #: includes/admin/include/admin-setting.php:553
279
  msgid "Advance Product Image <span>( Pro )</span>"
280
  msgstr ""
281
 
282
- #: includes/admin/include/admin-setting.php:992
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  msgid "Ajax Search Widget"
284
  msgstr ""
285
 
286
- #: includes/addons/product_tabs.php:208 includes/addons/product_tabs.php:979
287
- #: includes/addons/product_tabs.php:1067
288
- #: includes/addons/special_day_offer.php:254
289
- #: includes/addons/wb_archive_product.php:219
290
- #: includes/addons/wb_product_data_tab.php:99
291
- #: includes/addons/wb_product_description.php:37
292
- #: includes/addons/wb_product_related.php:151
293
- #: includes/addons/wb_product_short_description.php:39
294
- #: includes/addons/wb_product_title.php:91
 
 
 
 
 
295
  msgid "Alignment"
296
  msgstr ""
297
 
298
- #: includes/addons/wb_archive_product.php:85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
299
  msgid "Allow Order"
300
  msgstr ""
301
 
302
- #: includes/admin/include/admin-setting.php:919
303
  msgid "Animation In"
304
  msgstr ""
305
 
306
- #: includes/admin/include/admin-setting.php:931
307
  msgid "Animation Out"
308
  msgstr ""
309
 
310
- #: includes/addons/wb_archive_product.php:29
 
 
 
 
 
 
 
 
311
  msgid "Archive Product"
312
  msgstr ""
313
 
314
- #: includes/addons/wb_archive_product.php:134
315
- #: includes/addons/wb_product_related.php:85
316
- #: includes/addons/wb_product_upsell.php:69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
317
  msgid "ASC"
318
  msgstr ""
319
 
320
- #: includes/addons/product_tabs.php:163
 
 
 
 
321
  msgid "Ascending"
322
  msgstr ""
323
 
324
- #: includes/addons/product_tabs.php:500
 
 
325
  msgid "Autoplay animation speed"
326
  msgstr ""
327
 
328
- #: includes/addons/product_tabs.php:487
 
 
329
  msgid "Autoplay speed"
330
  msgstr ""
331
 
332
- #: includes/admin/include/templates_list.php:49
333
- msgid "Back to Library"
 
 
 
 
334
  msgstr ""
335
 
336
- #: includes/addons/product_tabs.php:1191 includes/addons/product_tabs.php:1257
337
- msgid "Backgournd Color"
338
  msgstr ""
339
 
340
- #: includes/addons/product_tabs.php:786
341
- #: includes/addons/special_day_offer.php:692
342
- #: includes/addons/special_day_offer.php:771
343
- #: includes/addons/wb_product_suggest_price.php:224
344
- #: includes/addons/wb_product_suggest_price.php:324
345
- #: includes/addons/wb_product_suggest_price.php:423
346
- #: includes/addons/wb_product_suggest_price.php:500
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  msgid "Background"
348
  msgstr ""
349
 
350
- #: includes/addons/product_tabs.php:659 includes/addons/product_tabs.php:715
351
- #: includes/addons/product_tabs.php:831
352
- #: includes/addons/wb_archive_product.php:562
353
- #: includes/addons/wb_archive_product.php:647
354
- #: includes/addons/wb_archive_product.php:730
355
- #: includes/addons/wb_archive_product.php:763
356
- #: includes/addons/wb_archive_product.php:820
357
- #: includes/addons/wb_product_add_to_cart.php:112
358
- #: includes/addons/wb_product_add_to_cart.php:144
359
- #: includes/addons/wb_product_call_for_price.php:141
360
- #: includes/addons/wb_product_call_for_price.php:173
361
- #: includes/addons/wb_product_data_tab.php:56
362
- #: includes/addons/wb_product_data_tab.php:148
363
- #: includes/addons/wb_product_suggest_price.php:619
364
- #: includes/addons/wb_product_suggest_price.php:651
365
- #: includes/addons/wb_product_suggest_price.php:762
366
- #: includes/addons/wb_product_suggest_price.php:794
367
- #: includes/admin/include/admin-setting.php:943
 
 
 
 
 
 
 
 
368
  msgid "Background Color"
369
  msgstr ""
370
 
371
- #: includes/addons/special_day_offer.php:150
 
 
 
 
 
 
 
 
 
 
372
  msgid "Badge Image"
373
  msgstr ""
374
 
375
- #: includes/addons/add_banner.php:29 includes/addons/special_day_offer.php:28
376
  msgid "Banner"
377
  msgstr ""
378
 
379
- #: includes/addons/special_day_offer.php:140
380
  msgid "Banner Badge"
381
  msgstr ""
382
 
383
- #: includes/addons/special_day_offer.php:91
384
  msgid "Banner Description"
385
  msgstr ""
386
 
387
- #: includes/addons/add_banner.php:63
388
  msgid "Banner image"
389
  msgstr ""
390
 
391
- #: includes/addons/special_day_offer.php:116
392
  msgid "Banner Link"
393
  msgstr ""
394
 
395
- #: includes/addons/add_banner.php:91 includes/addons/special_day_offer.php:82
396
  msgid "Banner Sub Title"
397
  msgstr ""
398
 
399
- #: includes/addons/add_banner.php:83 includes/addons/special_day_offer.php:73
400
  msgid "Banner Title"
401
  msgstr ""
402
 
403
- #: includes/addons/product_tabs.php:64
 
 
 
 
 
 
 
 
 
 
 
404
  msgid "Best Selling Products"
405
  msgstr ""
406
 
407
- #: includes/addons/product_tabs.php:293 includes/addons/product_tabs.php:382
408
- #: includes/addons/product_tabs.php:676 includes/addons/product_tabs.php:732
409
- #: includes/addons/product_tabs.php:803 includes/addons/product_tabs.php:849
410
- #: includes/addons/product_tabs.php:896
411
- #: includes/addons/special_day_offer.php:672
412
- #: includes/addons/special_day_offer.php:751
413
- #: includes/addons/wb_archive_product.php:166
414
- #: includes/addons/wb_archive_product.php:261
415
- #: includes/addons/wb_archive_product.php:574
416
- #: includes/addons/wb_archive_product.php:659
417
- #: includes/addons/wb_product_add_to_cart.php:93
418
- #: includes/addons/wb_product_call_for_price.php:122
419
- #: includes/addons/wb_product_suggest_price.php:259
420
- #: includes/addons/wb_product_suggest_price.php:359
421
- #: includes/addons/wb_product_suggest_price.php:458
422
- #: includes/addons/wb_product_suggest_price.php:510
423
- #: includes/addons/wb_product_suggest_price.php:600
424
- #: includes/addons/wb_product_suggest_price.php:743
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  msgid "Border"
426
  msgstr ""
427
 
428
- #: includes/addons/wb_archive_product.php:695
429
- #: includes/addons/wb_product_add_to_cart.php:155
430
- #: includes/addons/wb_product_call_for_price.php:184
431
- #: includes/addons/wb_product_data_tab.php:67
432
- #: includes/addons/wb_product_data_tab.php:160
433
- #: includes/addons/wb_product_suggest_price.php:662
434
- #: includes/addons/wb_product_suggest_price.php:805
 
 
 
 
 
435
  msgid "Border Color"
436
  msgstr ""
437
 
438
- #: includes/addons/product_tabs.php:301 includes/addons/product_tabs.php:391
439
- #: includes/addons/product_tabs.php:684 includes/addons/product_tabs.php:740
440
- #: includes/addons/product_tabs.php:811 includes/addons/product_tabs.php:857
441
- #: includes/addons/product_tabs.php:904
442
- #: includes/addons/special_day_offer.php:680
443
- #: includes/addons/special_day_offer.php:759
444
- #: includes/addons/wb_archive_product.php:174
445
- #: includes/addons/wb_archive_product.php:269
446
- #: includes/addons/wb_archive_product.php:582
447
- #: includes/addons/wb_archive_product.php:860
448
- #: includes/addons/wb_product_add_to_cart.php:101
449
- #: includes/addons/wb_product_call_for_price.php:130
450
- #: includes/addons/wb_product_data_tab.php:88
451
- #: includes/addons/wb_product_data_tab.php:182
452
- #: includes/addons/wb_product_image.php:47
453
- #: includes/addons/wb_product_image.php:92
454
- #: includes/addons/wb_product_suggest_price.php:268
455
- #: includes/addons/wb_product_suggest_price.php:368
456
- #: includes/addons/wb_product_suggest_price.php:467
457
- #: includes/addons/wb_product_suggest_price.php:519
458
- #: includes/addons/wb_product_suggest_price.php:608
459
- #: includes/addons/wb_product_suggest_price.php:751
460
- #: includes/addons/wl_product_video_gallery.php:120
461
- #: includes/addons/wl_product_video_gallery.php:166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
462
  msgid "Border Radius"
463
  msgstr ""
464
 
465
- #: includes/addons/add_banner.php:55 includes/addons/special_day_offer.php:41
466
- #: includes/addons/wl_product_video_gallery.php:60
467
  msgid "Bottom"
468
  msgstr ""
469
 
470
- #: includes/admin/include/admin-setting.php:823
471
  msgid "Bottom Left"
472
  msgstr ""
473
 
474
- #: includes/addons/wb_archive_product.php:211
475
- msgid "Box Shadow"
 
476
  msgstr ""
477
 
478
- #: includes/addons/add_banner.php:226 includes/addons/special_day_offer.php:630
479
- #: includes/addons/wb_product_add_to_cart.php:30
480
- #: includes/addons/wb_product_call_for_price.php:59
481
- msgid "Button"
482
  msgstr ""
483
 
484
- #: includes/addons/add_banner.php:107
485
- msgid "Button Link"
 
 
 
 
 
486
  msgstr ""
487
 
488
- #: includes/addons/wb_product_call_for_price.php:47
489
- msgid "Button Phone Number"
490
  msgstr ""
491
 
492
- #: includes/addons/add_banner.php:99 includes/addons/special_day_offer.php:131
493
- #: includes/addons/special_day_offer.php:133
494
- #: includes/addons/wb_product_call_for_price.php:37
495
- #: includes/addons/wb_product_suggest_price.php:38
496
- msgid "Button Text"
497
  msgstr ""
498
 
499
- #: includes/admin/include/templates_list.php:84
500
- msgid "Buy Now"
501
  msgstr ""
502
 
503
- #: includes/admin/include/admin-setting.php:98
504
- msgid "Buy Pro"
 
505
  msgstr ""
506
 
507
- #: includes/admin/include/templates_list.php:40
508
- msgid "Buy WooLentor Pro Version"
509
  msgstr ""
510
 
511
- #: includes/addons/wb_product_call_for_price.php:30
512
- #: includes/addons/wb_product_call_for_price.php:39
513
- #: includes/addons/wb_product_call_for_price.php:40
514
- #: includes/admin/include/admin-setting.php:377
515
- msgid "Call For Price"
516
  msgstr ""
517
 
518
- #: includes/admin/include/admin-setting.php:1084
519
- #: includes/admin/include/admin-setting.php:1102
520
- msgid "Cart Page Builder"
 
 
 
521
  msgstr ""
522
 
523
- #: includes/admin/include/admin-setting.php:153
524
- msgid "Cart Page Template"
525
  msgstr ""
526
 
527
- #: includes/admin/include/admin-setting.php:592
528
- msgid "Cart Redirect Button <span>( Pro )</span>"
529
  msgstr ""
530
 
531
- #: includes/addons/product_tabs.php:216 includes/addons/product_tabs.php:987
532
- #: includes/addons/product_tabs.php:1075
533
- #: includes/addons/special_day_offer.php:40
534
- #: includes/addons/special_day_offer.php:262
535
- #: includes/addons/wb_archive_product.php:227
536
- #: includes/addons/wb_product_data_tab.php:107
537
- #: includes/addons/wb_product_description.php:45
538
- #: includes/addons/wb_product_related.php:159
539
- #: includes/addons/wb_product_short_description.php:47
540
- #: includes/addons/wb_product_title.php:99
541
- msgid "Center"
542
  msgstr ""
543
 
544
- #: includes/admin/include/admin-setting.php:425
545
- msgid "Checkout Additional.. <span>( Pro )</span>"
546
  msgstr ""
547
 
548
- #: includes/admin/include/admin-setting.php:433
549
- msgid "Checkout Billing Form <span>( Pro )</span>"
 
 
 
 
550
  msgstr ""
551
 
552
- #: includes/admin/include/admin-setting.php:457
553
- msgid "Checkout Order Review <span>( Pro )</span>"
 
554
  msgstr ""
555
 
556
- #: includes/admin/include/admin-setting.php:669
557
- msgid "Checkout Page"
 
 
 
 
558
  msgstr ""
559
 
560
- #: includes/admin/include/admin-setting.php:1085
561
- #: includes/admin/include/admin-setting.php:1103
562
- msgid "Checkout Page Builder"
563
  msgstr ""
564
 
565
- #: includes/admin/include/admin-setting.php:165
566
- msgid "Checkout Page Template"
567
  msgstr ""
568
 
569
- #: includes/admin/include/admin-setting.php:449
570
- msgid "Checkout Payment <span>( Pro )</span>"
 
571
  msgstr ""
572
 
573
- #: includes/admin/include/admin-setting.php:441
574
- msgid "Checkout Shipping Form <span>( Pro )</span>"
 
 
575
  msgstr ""
576
 
577
- #: includes/addons/wb_product_suggest_price.php:61
578
- #: includes/addons/wb_product_suggest_price.php:62
579
- msgid "Close"
580
  msgstr ""
581
 
582
- #: includes/addons/wb_product_suggest_price.php:680
583
- msgid "Close Button"
 
584
  msgstr ""
585
 
586
- #: includes/addons/wb_product_suggest_price.php:59
587
- msgid "Close Button Text"
 
588
  msgstr ""
589
 
590
- #: includes/addons/add_banner.php:141 includes/addons/add_banner.php:188
591
- #: includes/addons/add_banner.php:235 includes/addons/product_tabs.php:260
592
- #: includes/addons/product_tabs.php:347 includes/addons/product_tabs.php:643
593
- #: includes/addons/product_tabs.php:770 includes/addons/product_tabs.php:1176
594
- #: includes/addons/product_tabs.php:1242
595
- #: includes/addons/special_day_offer.php:321
596
- #: includes/addons/special_day_offer.php:385
597
- #: includes/addons/special_day_offer.php:449
598
- #: includes/addons/special_day_offer.php:513
599
- #: includes/addons/special_day_offer.php:577
600
- #: includes/addons/special_day_offer.php:649
601
- #: includes/addons/special_day_offer.php:738
602
- #: includes/addons/wb_archive_product.php:312
603
- #: includes/addons/wb_archive_product.php:371
604
- #: includes/addons/wb_archive_product.php:410
605
- #: includes/addons/wb_archive_product.php:447
606
- #: includes/addons/wb_archive_product.php:550
607
- #: includes/addons/wb_archive_product.php:636
608
- #: includes/addons/wb_archive_product.php:719
609
- #: includes/addons/wb_archive_product.php:751
610
- #: includes/addons/wb_product_additional_information.php:61
611
- #: includes/addons/wb_product_additional_information.php:109
612
- #: includes/addons/wb_product_related.php:118
613
- #: includes/addons/wb_product_suggest_price.php:401
614
- #: includes/addons/wb_product_suggest_price.php:488
615
- #: includes/addons/wb_product_upsell.php:102
616
- msgid "Color"
617
  msgstr ""
618
 
619
- #: includes/addons/product_tabs.php:75
620
- #: includes/addons/wb_archive_product.php:36
621
- #: includes/addons/wb_product_related.php:51
622
- #: includes/addons/wb_product_upsell.php:36
623
- msgid "Columns"
624
  msgstr ""
625
 
626
- #: includes/addons/product_tabs.php:146
627
- msgid "Comment count"
628
  msgstr ""
629
 
630
- #: includes/admin/include/admin-setting.php:693
631
- #: includes/admin/include/admin-setting.php:696
632
- msgid "Company name"
 
633
  msgstr ""
634
 
635
- #: includes/helper-function.php:366
636
- msgid "Compare"
637
  msgstr ""
638
 
639
- #: includes/admin/include/admin-setting.php:1065
640
- msgid "Contact Us"
641
  msgstr ""
642
 
643
- #: includes/addons/wb_product_additional_information.php:102
644
- #: includes/addons/wb_product_data_tab.php:200
645
- msgid "Content"
646
  msgstr ""
647
 
648
- #: includes/addons/add_banner.php:49
649
- msgid "Content Alignment"
650
  msgstr ""
651
 
652
- #: includes/admin/include/admin-setting.php:959
653
- msgid "Content Color"
 
654
  msgstr ""
655
 
656
- #: includes/addons/special_day_offer.php:35
657
- msgid "Content Position"
658
  msgstr ""
659
 
660
- #: includes/admin/include/admin-setting.php:765
661
- #: includes/admin/include/admin-setting.php:768
662
- msgid "Country"
663
  msgstr ""
664
 
665
- #: includes/admin/include/templates_list.php:16
666
- msgid "Create a new page from this template"
 
667
  msgstr ""
668
 
669
- #: includes/admin/include/admin-setting.php:967
670
- msgid "Cross Icon Color"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
671
  msgstr ""
672
 
673
- #: includes/addons/product_tabs.php:127
674
- msgid "Custom order"
675
  msgstr ""
676
 
677
- #: includes/custom-metabox.php:24
678
- msgid "Custom Product Badge Text"
679
  msgstr ""
680
 
681
- #: includes/admin/include/admin-setting.php:1199
682
- msgid "Daniel - WooCommerce Theme"
683
  msgstr ""
684
 
685
- #: includes/addons/product_tabs.php:143
686
- #: includes/addons/wb_archive_product.php:113
687
- #: includes/addons/wb_product_related.php:67
688
- #: includes/addons/wb_product_upsell.php:51
689
- msgid "Date"
690
  msgstr ""
691
 
692
- #: includes/helper-function.php:224
693
- msgid "Default sorting"
694
  msgstr ""
695
 
696
- #: includes/addons/wb_archive_product.php:135
697
- #: includes/addons/wb_product_related.php:86
698
- #: includes/addons/wb_product_upsell.php:70
699
- msgid "DESC"
700
  msgstr ""
701
 
702
- #: includes/addons/product_tabs.php:162
703
- msgid "Descending"
704
  msgstr ""
705
 
706
- #: includes/addons/special_day_offer.php:89
707
- #: includes/addons/special_day_offer.php:438
708
- #: includes/admin/include/admin-setting.php:642
709
- #: includes/admin/include/admin-setting.php:645
710
- msgid "Description"
711
  msgstr ""
712
 
713
- #: includes/base.php:177
714
- msgid "Dismiss this notice."
715
  msgstr ""
716
 
717
- #: includes/helper-function.php:108
718
- msgid "div"
719
  msgstr ""
720
 
721
- #: includes/helper-function.php:62
722
- msgid "Do not Saved Templates."
723
  msgstr ""
724
 
725
- #: includes/admin/include/admin-setting.php:908
726
- msgid ""
727
- "Do not show purchases older than.( More Options are Pro features ) <span>( "
728
- "Pro )</span>"
729
  msgstr ""
730
 
731
- #: includes/admin/include/admin-setting.php:1171
732
- #: includes/admin/include/admin-setting.php:1179
733
- msgid "Download"
734
  msgstr ""
735
 
736
- #: includes/admin/include/template-library.php:194
737
- msgid "Edit Template"
738
  msgstr ""
739
 
740
- #: includes/addons/wb_product_reviews.php:36
741
- msgid "Element Information"
742
  msgstr ""
743
 
744
- #: includes/admin/include/admin-setting.php:73
745
- msgid "Elements"
 
 
746
  msgstr ""
747
 
748
- #: includes/admin/include/admin-setting.php:756
749
- #: includes/admin/include/admin-setting.php:759
750
- msgid "Email address"
751
  msgstr ""
752
 
753
- #: includes/addons/wb_product_suggest_price.php:117
754
- msgid "Email Field Placeholder"
755
  msgstr ""
756
 
757
- #: includes/admin/include/admin-setting.php:584
758
- msgid "Empty Cart Message <span>( Pro )</span>"
759
  msgstr ""
760
 
761
- #: includes/addons/wb_archive_product.php:496
762
- msgid "Empty Rating Start Color"
763
  msgstr ""
764
 
765
- #: includes/admin/include/admin-setting.php:117
766
- #: includes/admin/include/admin-setting.php:606
767
- #: includes/admin/include/admin-setting.php:797
768
- msgid "Enable"
769
  msgstr ""
770
 
771
- #: includes/admin/include/admin-setting.php:605
772
- msgid "Enable / Disable Rename Label"
773
  msgstr ""
774
 
775
- #: includes/admin/include/admin-setting.php:796
776
- msgid "Enable / Disable Sales Notification"
777
  msgstr ""
778
 
779
- #: includes/admin/include/admin-setting.php:116
780
- msgid "Enable / Disable Template Builder"
781
  msgstr ""
782
 
783
- #: includes/custom-metabox.php:26
784
- msgid "Enter your prefered SaleFlash text. Ex: New / Free etc"
 
785
  msgstr ""
786
 
787
- #: includes/addons/wb_product_suggest_price.php:164
788
- msgid "Error Message"
789
  msgstr ""
790
 
791
- #: includes/admin/include/admin-setting.php:924
792
- msgid "fadeInLeft"
793
  msgstr ""
794
 
795
- #: includes/admin/include/admin-setting.php:936
796
- msgid "fadeOutRight"
797
  msgstr ""
798
 
799
- #: includes/admin/include/admin-setting.php:811
800
- msgid "Fakes"
801
  msgstr ""
802
 
803
- #: includes/addons/product_tabs.php:63
804
- msgid "Featured Products"
805
  msgstr ""
806
 
807
- #: includes/addons/product_tabs.php:58
808
- msgid "Filter By"
809
  msgstr ""
810
 
811
- #: includes/admin/include/admin-setting.php:675
812
- #: includes/admin/include/admin-setting.php:678
813
- msgid "First name"
814
  msgstr ""
815
 
816
- #: includes/admin/include/admin-setting.php:1185
817
- msgid "Flone – Minimal WooCommerce Theme"
 
818
  msgstr ""
819
 
820
- #: includes/addons/product_tabs.php:1206
821
- msgid "Font Size"
 
822
  msgstr ""
823
 
824
- #: includes/admin/include/admin-setting.php:63
825
- msgid "General"
 
826
  msgstr ""
827
 
828
- #: includes/admin/include/admin-setting.php:1123
829
- msgid "Go Premium"
830
  msgstr ""
831
 
832
- #: includes/base.php:200
833
- msgid "Go Pro"
834
  msgstr ""
835
 
836
- #: includes/helper-function.php:101
837
- msgid "H1"
838
  msgstr ""
839
 
840
- #: includes/helper-function.php:102
841
- msgid "H2"
842
  msgstr ""
843
 
844
- #: includes/helper-function.php:103
845
- msgid "H3"
846
  msgstr ""
847
 
848
- #: includes/helper-function.php:104
849
- msgid "H4"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
850
  msgstr ""
851
 
852
- #: includes/helper-function.php:105
853
- msgid "H5"
 
 
 
 
 
 
 
 
 
854
  msgstr ""
855
 
856
- #: includes/helper-function.php:106
857
- msgid "H6"
 
 
 
858
  msgstr ""
859
 
860
- #. Author of the plugin
861
- msgid "HasThemes"
 
862
  msgstr ""
863
 
864
- #: includes/addons/wb_product_additional_information.php:31
865
- #: includes/addons/wb_product_additional_information.php:37
866
- #: includes/addons/wb_product_additional_information.php:54
867
- #: includes/addons/wb_product_related.php:94
868
- #: includes/addons/wb_product_related.php:110
869
- #: includes/addons/wb_product_upsell.php:78
870
- #: includes/addons/wb_product_upsell.php:95
871
- msgid "Heading"
872
  msgstr ""
873
 
874
- #: includes/addons/wb_product_data_tab.php:238
875
- #: includes/admin/include/admin-setting.php:951
876
- msgid "Heading Color"
877
  msgstr ""
878
 
879
- #: includes/addons/wb_product_data_tab.php:249
880
- msgid "Heading Margin"
 
 
 
 
881
  msgstr ""
882
 
883
- #: includes/addons/wb_product_data_tab.php:230
884
- msgid "Heading Typography"
885
  msgstr ""
886
 
887
- #: includes/addons/wb_archive_product.php:792
888
- #: includes/addons/wb_product_additional_information.php:40
889
- #: includes/addons/wb_product_related.php:96
890
- #: includes/addons/wb_product_upsell.php:81
891
- msgid "Hide"
892
  msgstr ""
893
 
894
- #: includes/admin/include/admin-setting.php:1192
895
- msgid "Homes - Multipurpose WooCommerce Theme"
896
  msgstr ""
897
 
898
- #: includes/addons/special_day_offer.php:183
899
- msgid "Horizontal Postion"
 
 
 
900
  msgstr ""
901
 
902
- #: includes/addons/product_tabs.php:339 includes/addons/product_tabs.php:754
903
- #: includes/addons/product_tabs.php:1101 includes/addons/product_tabs.php:1236
904
- #: includes/addons/special_day_offer.php:731
905
- #: includes/addons/wb_archive_product.php:630
906
- #: includes/addons/wb_product_add_to_cart.php:126
907
- #: includes/addons/wb_product_call_for_price.php:155
908
- #: includes/addons/wb_product_suggest_price.php:481
909
- #: includes/addons/wb_product_suggest_price.php:633
910
- #: includes/addons/wb_product_suggest_price.php:776
911
- msgid "Hover"
912
  msgstr ""
913
 
914
- #: includes/addons/add_banner.php:251
915
- msgid "Hover Color"
 
916
  msgstr ""
917
 
918
- #. Author URI of the plugin
919
- msgid "https://hasthemes.com/plugins/woolentor-pro/"
920
  msgstr ""
921
 
922
- #. URI of the plugin
923
- msgid "https://woolentor.com/"
924
  msgstr ""
925
 
926
- #: includes/addons/add_banner.php:109 includes/addons/special_day_offer.php:118
927
- msgid "https://your-link.com"
 
 
928
  msgstr ""
929
 
930
- #: includes/admin/include/admin-setting.php:1206
931
- msgid "Hurst - WooCommerce Theme"
932
  msgstr ""
933
 
934
- #: includes/addons/product_tabs.php:142
935
- msgid "ID"
936
  msgstr ""
937
 
938
- #: includes/addons/special_day_offer.php:51
939
- #: includes/addons/wb_archive_product.php:252
940
- #: includes/addons/wb_product_image.php:30
941
- msgid "Image"
942
  msgstr ""
943
 
944
- #: includes/admin/include/admin-setting.php:835
945
- msgid "Image Left"
 
946
  msgstr ""
947
 
948
- #: includes/admin/include/admin-setting.php:830
949
- msgid "Image Position"
950
  msgstr ""
951
 
952
- #: includes/admin/include/templates_list.php:88
953
- msgid "Import"
954
  msgstr ""
955
 
956
- #: includes/admin/include/templates_list.php:13
957
- msgid "Import template to your Library"
958
  msgstr ""
959
 
960
- #: includes/admin/include/templates_list.php:63
961
- msgid "Import to Library"
 
962
  msgstr ""
963
 
964
- #: includes/admin/include/templates_list.php:64
965
- msgid "Import to Page"
966
  msgstr ""
967
 
968
- #: includes/addons/wb_product_suggest_price.php:179
969
- msgid "Input"
970
  msgstr ""
971
 
972
- #: includes/addons/wb_product_suggest_price.php:96
973
- msgid "Input Field Placeholder"
 
 
974
  msgstr ""
975
 
976
- #: includes/base.php:114
977
- msgid "Install Elementor"
978
  msgstr ""
979
 
980
- #: includes/base.php:139
981
- msgid "Install WooCommerce"
982
  msgstr ""
983
 
984
- #: includes/addons/wb_archive_product.php:157
985
- msgid "Item"
986
  msgstr ""
987
 
988
- #: includes/addons/product_tabs.php:224 includes/addons/product_tabs.php:995
989
- #: includes/addons/product_tabs.php:1083
990
- #: includes/addons/special_day_offer.php:270
991
- #: includes/addons/wb_archive_product.php:235
992
- #: includes/addons/wb_product_data_tab.php:115
993
- #: includes/addons/wb_product_description.php:53
994
- #: includes/addons/wb_product_short_description.php:55
995
- msgid "Justified"
996
  msgstr ""
997
 
998
- #: includes/admin/include/admin-setting.php:684
999
- #: includes/admin/include/admin-setting.php:687
1000
- msgid "Last name"
 
1001
  msgstr ""
1002
 
1003
- #: includes/addons/add_banner.php:53 includes/addons/product_tabs.php:212
1004
- #: includes/addons/product_tabs.php:983 includes/addons/product_tabs.php:1071
1005
- #: includes/addons/special_day_offer.php:42
1006
- #: includes/addons/special_day_offer.php:258
1007
- #: includes/addons/wb_archive_product.php:223
1008
- #: includes/addons/wb_archive_product.php:880
1009
- #: includes/addons/wb_product_data_tab.php:103
1010
- #: includes/addons/wb_product_description.php:41
1011
- #: includes/addons/wb_product_related.php:155
1012
- #: includes/addons/wb_product_short_description.php:43
1013
- #: includes/addons/wb_product_title.php:95
1014
- #: includes/addons/wl_product_video_gallery.php:48
1015
- msgid "Left"
1016
  msgstr ""
1017
 
1018
- #: includes/admin/include/admin-setting.php:1225
1019
- msgid "Life Time"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1020
  msgstr ""
1021
 
1022
- #: includes/admin/include/admin-setting.php:1251
1023
- msgid "Life Time Single Website"
1024
  msgstr ""
1025
 
1026
- #: includes/admin/include/admin-setting.php:1255
1027
- msgid "Life time Unlimited Website"
 
 
 
 
1028
  msgstr ""
1029
 
1030
- #: includes/admin/include/admin-setting.php:1259
1031
- msgid "Life Time Unlimited Websites"
 
 
 
 
1032
  msgstr ""
1033
 
1034
- #: includes/admin/include/admin-setting.php:894
1035
- msgid "Limit"
 
 
 
 
1036
  msgstr ""
1037
 
1038
- #: includes/addons/wb_product_meta.php:48
1039
- #: includes/addons/wb_product_rating.php:48
1040
- msgid "Link Color"
1041
  msgstr ""
1042
 
1043
- #: includes/addons/wb_product_meta.php:59
1044
- msgid "Link Hover Color"
 
 
1045
  msgstr ""
1046
 
1047
- #: includes/addons/wb_product_rating.php:60
1048
- msgid "Link Typography"
1049
  msgstr ""
1050
 
1051
- #: includes/admin/include/admin-setting.php:979
1052
- msgid "Load Products in Elementor Addons"
 
1053
  msgstr ""
1054
 
1055
- #: includes/admin/include/admin-setting.php:842
1056
- msgid "Loading Time"
1057
  msgstr ""
1058
 
1059
- #: includes/admin/include/admin-setting.php:497
1060
- msgid "Login Form <span>( Pro )</span>"
 
 
1061
  msgstr ""
1062
 
1063
- #: includes/addons/wl_product_video_gallery.php:76
1064
- msgid "Main Video Area"
1065
  msgstr ""
1066
 
1067
- #: includes/addons/add_banner.php:157 includes/addons/add_banner.php:214
1068
- #: includes/addons/special_day_offer.php:283
1069
- #: includes/addons/special_day_offer.php:347
1070
- #: includes/addons/special_day_offer.php:411
1071
- #: includes/addons/special_day_offer.php:475
1072
- #: includes/addons/special_day_offer.php:539
1073
- #: includes/addons/special_day_offer.php:603
1074
- #: includes/addons/special_day_offer.php:715
1075
- #: includes/addons/wb_archive_product.php:198
1076
- #: includes/addons/wb_archive_product.php:281
1077
- #: includes/addons/wb_archive_product.php:349
1078
- #: includes/addons/wb_archive_product.php:519
1079
- #: includes/addons/wb_archive_product.php:603
1080
- #: includes/addons/wb_product_additional_information.php:87
1081
- #: includes/addons/wb_product_add_to_cart.php:80
1082
- #: includes/addons/wb_product_call_for_price.php:109
1083
- #: includes/addons/wb_product_image.php:60
1084
- #: includes/addons/wb_product_meta.php:79
1085
- #: includes/addons/wb_product_price.php:57
1086
- #: includes/addons/wb_product_rating.php:68
1087
- #: includes/addons/wb_product_related.php:138
1088
- #: includes/addons/wb_product_stock.php:57
1089
- #: includes/addons/wb_product_suggest_price.php:233
1090
- #: includes/addons/wb_product_suggest_price.php:333
1091
- #: includes/addons/wb_product_suggest_price.php:432
1092
- #: includes/addons/wb_product_suggest_price.php:587
1093
- #: includes/addons/wb_product_suggest_price.php:730
1094
- #: includes/addons/wb_product_title.php:78
1095
- #: includes/addons/wb_product_upsell.php:128
1096
- #: includes/addons/wl_product_video_gallery.php:134
1097
- msgid "Margin"
1098
  msgstr ""
1099
 
1100
- #: includes/addons/wb_archive_product.php:119
1101
- #: includes/addons/wb_product_related.php:73
1102
- #: includes/addons/wb_product_upsell.php:57
1103
- msgid "Menu Order"
1104
  msgstr ""
1105
 
1106
- #: includes/addons/wb_product_suggest_price.php:142
1107
- msgid "Message"
1108
  msgstr ""
1109
 
1110
- #: includes/addons/wb_product_suggest_price.php:128
1111
- msgid "Message Field Placeholder"
 
 
1112
  msgstr ""
1113
 
1114
- #: includes/addons/wb_product_meta.php:30
1115
- msgid "Meta"
1116
  msgstr ""
1117
 
1118
- #: includes/addons/product_tabs.php:67
1119
- msgid "Mixed order Products"
1120
  msgstr ""
1121
 
1122
- #: includes/addons/product_tabs.php:567
1123
- msgid "Mobile Phone"
1124
  msgstr ""
1125
 
1126
- #: includes/addons/product_tabs.php:600
1127
- msgid "Mobile Resolution"
1128
  msgstr ""
1129
 
1130
- #: includes/admin/include/admin-setting.php:481
1131
- msgid "My Account <span>( Pro )</span>"
 
1132
  msgstr ""
1133
 
1134
- #: includes/admin/include/admin-setting.php:489
1135
- msgid "My Account Address <span>( Pro )</span>"
 
 
 
 
 
1136
  msgstr ""
1137
 
1138
- #: includes/admin/include/admin-setting.php:465
1139
- msgid "My Account Dashboard <span>( Pro )</span>"
1140
  msgstr ""
1141
 
1142
- #: includes/admin/include/admin-setting.php:473
1143
- msgid "My Account Download <span>( Pro )</span>"
1144
  msgstr ""
1145
 
1146
- #: includes/admin/include/admin-setting.php:1088
1147
- #: includes/admin/include/admin-setting.php:1106
1148
- msgid "My Account Login page Builder"
1149
  msgstr ""
1150
 
1151
- #: includes/admin/include/admin-setting.php:201
1152
- msgid "My Account Login page Template"
1153
  msgstr ""
1154
 
1155
- #: includes/admin/include/admin-setting.php:513
1156
- msgid "My Account Logout <span>( Pro )</span>"
 
 
1157
  msgstr ""
1158
 
1159
- #: includes/admin/include/admin-setting.php:521
1160
- msgid "My Account Order <span>( Pro )</span>"
3
  msgstr ""
4
  "Project-Id-Version: WooLentor - WooCommerce Elementor Addons + Builder\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2021-08-07 10:54+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/\n"
16
+ "X-Loco-Version: 2.5.3; wp-5.8\n"
17
+ "X-Domain: woolentor"
 
 
 
 
 
 
 
18
 
19
  #. 1: Plugin name 2: PHP 3: Required PHP version
20
+ #: includes/base.php:184
21
  #, php-format
22
  msgid "\"%1$s\" requires \"%2$s\" version %3$s or greater."
23
  msgstr ""
24
 
25
+ #: includes/addons/wl_onepage_slider.php:472
26
+ #: includes/addons/wl_onepage_slider.php:477
27
+ #: includes/addons/wl_onepage_slider.php:482
28
+ msgid "#"
29
+ msgstr ""
30
+
31
+ #: includes/base.php:137
32
  #, php-format
33
  msgid ""
34
  "%1$sWooLentor Addons for Elementor%2$s requires %1$s\"Elementor\"%2$s plugin "
35
  "to be active. Please activate Elementor to continue."
36
  msgstr ""
37
 
38
+ #: includes/base.php:144
39
  #, php-format
40
  msgid ""
41
  "%1$sWooLentor Addons for Elementor%2$s requires %1$s\"Elementor\"%2$s plugin "
42
  "to be installed and activated. Please install Elementor to continue."
43
  msgstr ""
44
 
45
+ #: includes/base.php:162
46
  #, php-format
47
  msgid ""
48
  "%1$sWooLentor Addons for Elementor%2$s requires %1$s\"WooCommerce\"%2$s "
49
  "plugin to be active. Please activate WooCommerce to continue."
50
  msgstr ""
51
 
52
+ #: includes/base.php:169
53
  #, php-format
54
  msgid ""
55
  "%1$sWooLentor Addons for Elementor%2$s requires %1$s\"WooCommerce\"%2$s "
56
  "plugin to be installed and activated. Please install WooCommerce to continue."
57
  msgstr ""
58
 
59
+ #: classes/class.default_data.php:145
60
+ #, php-format
61
+ msgid "%s customer review"
62
+ msgid_plural "%s customer reviews"
63
+ msgstr[0] ""
64
+ msgstr[1] ""
65
+
66
+ #: includes/admin/include/admin-setting.php:1841
67
+ #: includes/admin/include/admin-setting.php:1849
68
+ #: includes/admin/include/admin-setting.php:1857
69
+ #: includes/admin/include/admin-setting.php:1865
70
+ #: includes/admin/include/admin-setting.php:1873
71
+ #: includes/admin/include/admin-setting.php:1881
72
  msgid "( Pro )"
73
  msgstr ""
74
 
75
+ #: includes/addons/product_curvy.php:78 includes/addons/product_curvy.php:96
76
+ #: includes/addons/product_tabs.php:96
77
  msgid "1"
78
  msgstr ""
79
 
80
+ #: includes/admin/include/admin-setting.php:1108
81
+ #: includes/admin/include/admin-setting.php:1145
82
  msgid "1 minute"
83
  msgstr ""
84
 
85
+ #: includes/admin/include/admin-setting.php:1172
86
  msgid "1 week"
87
  msgstr ""
88
 
89
+ #: includes/admin/include/admin-setting.php:1109
90
+ #: includes/admin/include/admin-setting.php:1146
91
  msgid "1.5 minutes"
92
  msgstr ""
93
 
94
+ #: includes/admin/include/admin-setting.php:1647
95
+ msgid "10 Custom Shop Page Templates"
96
+ msgstr ""
97
+
98
+ #: includes/admin/include/admin-setting.php:1103
99
+ #: includes/admin/include/admin-setting.php:1140
100
  msgid "10 seconds"
101
  msgstr ""
102
 
103
+ #: includes/addons/wb_product_call_for_price.php:60
104
+ #: includes/addons/wb_product_call_for_price.php:61
105
  msgid "123-456-7890"
106
  msgstr ""
107
 
108
+ #: includes/admin/include/admin-setting.php:1752
109
  msgid "15 Product Custom Layout"
110
  msgstr ""
111
 
112
+ #: includes/admin/include/admin-setting.php:1646
113
+ msgid "15 Product Custom Templates"
114
+ msgstr ""
115
+
116
+ #: includes/admin/include/admin-setting.php:1731
117
  msgid "18 Elements"
118
  msgstr ""
119
 
120
+ #: includes/addons/product_curvy.php:79 includes/addons/product_curvy.php:97
121
+ #: includes/addons/product_tabs.php:97
122
  msgid "2"
123
  msgstr ""
124
 
125
+ #: includes/admin/include/admin-setting.php:1110
126
+ #: includes/admin/include/admin-setting.php:1147
127
  msgid "2 minutes"
128
  msgstr ""
129
 
130
+ #: includes/admin/include/admin-setting.php:1095
131
+ #: includes/admin/include/admin-setting.php:1133
132
  msgid "2 seconds"
133
  msgstr ""
134
 
135
+ #: includes/admin/include/admin-setting.php:1104
136
+ #: includes/admin/include/admin-setting.php:1141
137
  msgid "20 seconds"
138
  msgstr ""
139
 
140
+ #: includes/addons/product_curvy.php:80 includes/addons/product_tabs.php:98
141
  msgid "3"
142
  msgstr ""
143
 
144
+ #: includes/admin/include/admin-setting.php:1734
145
  msgid "3 Product Custom Layout"
146
  msgstr ""
147
 
148
+ #: includes/admin/include/admin-setting.php:1096
149
  msgid "3 seconds"
150
  msgstr ""
151
 
152
+ #: includes/admin/include/admin-setting.php:1105
153
+ #: includes/admin/include/admin-setting.php:1142
154
  msgid "30 seconds"
155
  msgstr ""
156
 
157
+ #: includes/addons/product_curvy.php:81 includes/addons/product_tabs.php:99
158
  msgid "4"
159
  msgstr ""
160
 
161
+ #: includes/admin/include/admin-setting.php:1097
162
+ #: includes/admin/include/admin-setting.php:1134
163
  msgid "4 seconds"
164
  msgstr ""
165
 
166
+ #: includes/admin/include/admin-setting.php:1106
167
+ #: includes/admin/include/admin-setting.php:1143
168
  msgid "40 seconds"
169
  msgstr ""
170
 
171
+ #: includes/admin/include/admin-setting.php:1749
172
  msgid "41 Elements"
173
  msgstr ""
174
 
175
+ #: includes/addons/product_tabs.php:100
176
  msgid "5"
177
  msgstr ""
178
 
179
+ #: includes/admin/include/admin-setting.php:1649
180
+ msgid "5 Premium WooCommerce Themes included. (Save $200)"
181
+ msgstr ""
182
+
183
+ #: includes/admin/include/admin-setting.php:1098
184
+ #: includes/admin/include/admin-setting.php:1121
185
+ #: includes/admin/include/admin-setting.php:1135
186
  msgid "5 seconds"
187
  msgstr ""
188
 
189
+ #: includes/admin/include/admin-setting.php:1107
190
+ #: includes/admin/include/admin-setting.php:1144
191
  msgid "50 seconds"
192
  msgstr ""
193
 
194
+ #: includes/addons/special_day_offer.php:115
195
  msgid "50%"
196
  msgstr ""
197
 
198
+ #: includes/addons/product_tabs.php:101
199
  msgid "6"
200
  msgstr ""
201
 
202
+ #: includes/admin/include/admin-setting.php:1099
203
+ #: includes/admin/include/admin-setting.php:1136
204
  msgid "6 seconds"
205
  msgstr ""
206
 
207
+ #: includes/admin/include/admin-setting.php:1100
208
+ #: includes/admin/include/admin-setting.php:1137
209
  msgid "7 seconds"
210
  msgstr ""
211
 
212
+ #: includes/admin/include/admin-setting.php:1645
213
+ msgid "76 Elementor Elements"
214
  msgstr ""
215
 
216
+ #: includes/admin/include/admin-setting.php:1101
217
+ #: includes/admin/include/admin-setting.php:1138
218
  msgid "8 seconds"
219
  msgstr ""
220
 
221
+ #: includes/admin/include/admin-setting.php:1102
222
+ #: includes/admin/include/admin-setting.php:1139
223
  msgid "9 seconds"
224
  msgstr ""
225
 
226
+ #: includes/admin/include/admin-setting.php:1823
227
+ msgid "99Fy - Free"
228
+ msgstr ""
229
+
230
+ #: includes/admin/include/admin-setting.php:1824
231
+ msgid ""
232
+ "99fy is a free WooCommerce theme. 99 demos for 24 niche categories are "
233
+ "included in this theme."
234
+ msgstr ""
235
+
236
+ #: includes/admin/include/admin-setting.php:1841
237
+ msgid "99Fy Pro - included in WooLentor Pro"
238
  msgstr ""
239
 
240
+ #: includes/addons/product_tabs.php:1475 includes/addons/product_tabs.php:1601
241
+ #: woolentor-blocks/src/blocks/product-tab/index.php:373
242
  msgid ":"
243
  msgstr ""
244
 
245
+ #: includes/addons/product_tabs.php:1113
246
  msgid "Action Button"
247
  msgstr ""
248
 
249
+ #: includes/addons/product_accordion.php:596
250
+ #: includes/addons/product_curvy.php:722
251
+ #: includes/addons/product_image_accordion.php:518
252
+ msgid "Action Button Style"
253
+ msgstr ""
254
+
255
+ #: includes/admin/include/class.extension-manager.php:180
256
+ #: includes/admin/include/class.extension-manager.php:261
257
+ #: includes/admin/include/template-library.php:253
258
+ #: includes/admin/include/template-library.php:305
259
+ msgid "Activate"
260
+ msgstr ""
261
+
262
+ #: includes/base.php:138
263
  msgid "Activate Elementor"
264
  msgstr ""
265
 
266
+ #: includes/base.php:163
267
  msgid "Activate WooCommerce"
268
  msgstr ""
269
 
270
+ #: includes/admin/include/class.extension-manager.php:191
271
+ #: includes/admin/include/class.extension-manager.php:272
272
+ #: includes/admin/include/template-library.php:264
273
+ #: includes/admin/include/template-library.php:316
274
+ msgid "Activated"
275
+ msgstr ""
276
+
277
+ #: classes/class.assest_management.php:330
278
+ msgid "Activating.."
279
+ msgstr ""
280
+
281
+ #: classes/class.assest_management.php:331
282
+ #: includes/addons/wb_archive_product.php:755
283
+ #: includes/addons/wb_product_data_tab.php:140 includes/addons/wl_faq.php:460
284
+ #: includes/addons/wl_faq.php:756
285
  msgid "Active"
286
  msgstr ""
287
 
288
+ #: includes/addons/wl_product_filter.php:515
289
+ msgid "Active Slider Background"
290
+ msgstr ""
291
+
292
+ #: includes/addons/product_accordion.php:90
293
+ #: includes/addons/product_curvy.php:125
294
+ #: includes/addons/product_image_accordion.php:69
295
+ msgid "Add ID Manually"
296
  msgstr ""
297
 
298
+ #: includes/admin/include/admin-setting.php:867
299
+ #: includes/admin/include/admin-setting.php:883
300
  msgid "Add to Cart"
301
  msgstr ""
302
 
303
+ #: includes/addons/wb_archive_product.php:539
 
304
  msgid "Add To Cart Button"
305
  msgstr ""
306
 
307
+ #: includes/admin/include/admin-setting.php:420
308
+ msgid "Add to Cart Button"
309
+ msgstr ""
310
+
311
+ #: includes/addons/product_accordion.php:216
312
+ #: includes/addons/product_curvy.php:240
313
+ #: includes/addons/product_image_accordion.php:196
314
+ msgid "Add to Cart Button Icon"
315
+ msgstr ""
316
+
317
+ #: includes/addons/product_accordion.php:205
318
+ #: includes/addons/product_image_accordion.php:185
319
+ #: includes/admin/include/admin-setting.php:864
320
+ #: includes/admin/include/admin-setting.php:880
321
  msgid "Add to Cart Button Text"
322
  msgstr ""
323
 
324
+ #: includes/helper-function.php:735 includes/helper-function.php:736
325
+ #: includes/helper-function.php:752
326
  msgid "Add to Compare"
327
  msgstr ""
328
 
330
  msgid "Add Youtube / Vimeo URL"
331
  msgstr ""
332
 
333
+ #: includes/admin/include/admin-setting.php:428
334
+ #: includes/admin/include/admin-setting.php:898
335
+ msgid "Additional Information"
336
+ msgstr ""
337
+
338
+ #: includes/admin/include/admin-setting.php:901
339
+ msgid "Additional information"
340
  msgstr ""
341
 
342
+ #: includes/addons/wl_faq.php:179 includes/addons/wl_product_filter.php:83
343
+ #: includes/addons/wl_product_horizontal_filter.php:186
344
+ msgid "Additional Options"
345
  msgstr ""
346
 
347
+ #: includes/admin/include/admin-setting.php:959
348
+ #: includes/admin/include/admin-setting.php:962
349
  msgid "Address Optional"
350
  msgstr ""
351
 
352
+ #: includes/addons/wb_product_suggest_price.php:87
353
+ #: includes/addons/wb_product_suggest_price.php:88
354
  msgid "admin@domain.com"
355
  msgstr ""
356
 
357
+ #: includes/admin/include/admin-setting.php:292
358
  msgid "Ads Banner"
359
  msgstr ""
360
 
361
+ #: includes/admin/include/admin-setting.php:780
362
  msgid "Advance Product Image <span>( Pro )</span>"
363
  msgstr ""
364
 
365
+ #: includes/addons/wl_category_grid.php:571
366
+ msgid "After Border Color"
367
+ msgstr ""
368
+
369
+ #: includes/addons/wl_faq.php:242
370
+ msgid "After Title"
371
+ msgstr ""
372
+
373
+ #: includes/admin/include/admin-setting.php:1262
374
+ msgid "AJAX Add to Cart on Single Product page"
375
+ msgstr ""
376
+
377
+ #: includes/admin/include/admin-setting.php:1253
378
+ msgid "AJAX Search Widget"
379
+ msgstr ""
380
+
381
+ #: includes/admin/include/admin-setting.php:1252
382
  msgid "Ajax Search Widget"
383
  msgstr ""
384
 
385
+ #: includes/addons/product_tabs.php:228 includes/addons/product_tabs.php:950
386
+ #: includes/addons/product_tabs.php:1029
387
+ #: includes/addons/special_day_offer.php:269
388
+ #: includes/addons/wb_archive_product.php:233
389
+ #: includes/addons/wb_customer_review.php:282
390
+ #: includes/addons/wb_product_data_tab.php:109
391
+ #: includes/addons/wb_product_description.php:47
392
+ #: includes/addons/wb_product_related.php:161
393
+ #: includes/addons/wb_product_short_description.php:49
394
+ #: includes/addons/wb_product_title.php:101 includes/addons/wl_brand.php:290
395
+ #: includes/addons/wl_category.php:276 includes/addons/wl_faq.php:346
396
+ #: includes/addons/wl_faq.php:569 includes/addons/wl_onepage_slider.php:165
397
+ #: includes/addons/wl_product_horizontal_filter.php:734
398
+ #: includes/addons/wl_store_features.php:135
399
  msgid "Alignment"
400
  msgstr ""
401
 
402
+ #: includes/admin/include/templates_list.php:51
403
+ msgid "ALL"
404
+ msgstr ""
405
+
406
+ #: includes/addons/wb_wc_multicurrency.php:54
407
+ msgid "All"
408
+ msgstr ""
409
+
410
+ #: includes/admin/include/templates_list.php:40
411
+ msgid "All Builders"
412
+ msgstr ""
413
+
414
+ #: includes/addons/wl_category_grid.php:71
415
+ msgid "All Categories"
416
+ msgstr ""
417
+
418
+ #: classes/class.assest_management.php:320
419
+ msgid "All Items have been Loaded"
420
+ msgstr ""
421
+
422
+ #: includes/addons/wb_archive_product.php:99
423
  msgid "Allow Order"
424
  msgstr ""
425
 
426
+ #: includes/admin/include/admin-setting.php:1179
427
  msgid "Animation In"
428
  msgstr ""
429
 
430
+ #: includes/admin/include/admin-setting.php:1191
431
  msgid "Animation Out"
432
  msgstr ""
433
 
434
+ #: includes/addons/wl_testimonial.php:80 includes/addons/wl_testimonial.php:141
435
+ msgid "Anna Miller"
436
+ msgstr ""
437
+
438
+ #: includes/admin/include/admin-setting.php:1460
439
+ msgid "Archive List View Action Button"
440
+ msgstr ""
441
+
442
+ #: includes/addons/wb_archive_product.php:43
443
  msgid "Archive Product"
444
  msgstr ""
445
 
446
+ #: includes/addons/wb_customer_review.php:274
447
+ #: includes/addons/wl_category_grid.php:437
448
+ #: includes/addons/wl_onepage_slider.php:156
449
+ #: includes/addons/wl_product_horizontal_filter.php:291
450
+ #: includes/addons/wl_store_features.php:127
451
+ msgid "Area"
452
+ msgstr ""
453
+
454
+ #: includes/addons/wl_onepage_slider.php:198
455
+ msgid "Area Background Type"
456
+ msgstr ""
457
+
458
+ #: includes/addons/wl_store_features.php:202
459
+ msgid "Area Margin"
460
+ msgstr ""
461
+
462
+ #: includes/addons/wl_store_features.php:189
463
+ msgid "Area Padding"
464
+ msgstr ""
465
+
466
+ #: includes/addons/wb_archive_product.php:148
467
+ #: includes/addons/wb_product_related.php:95
468
+ #: includes/addons/wb_product_upsell.php:79
469
+ #: includes/addons/wl_product_filter.php:882
470
+ #: includes/addons/wl_product_horizontal_filter.php:951
471
  msgid "ASC"
472
  msgstr ""
473
 
474
+ #: includes/addons/product_accordion.php:184
475
+ #: includes/addons/product_curvy.php:219
476
+ #: includes/addons/product_image_accordion.php:163
477
+ #: includes/addons/product_tabs.php:183 includes/addons/wl_category.php:136
478
+ #: includes/addons/wl_category_grid.php:111
479
  msgid "Ascending"
480
  msgstr ""
481
 
482
+ #: includes/addons/product_tabs.php:503
483
+ #: includes/addons/wl_category_grid.php:329
484
+ #: includes/addons/wl_testimonial.php:363
485
  msgid "Autoplay animation speed"
486
  msgstr ""
487
 
488
+ #: includes/addons/product_tabs.php:490
489
+ #: includes/addons/wl_category_grid.php:317
490
+ #: includes/addons/wl_testimonial.php:350
491
  msgid "Autoplay speed"
492
  msgstr ""
493
 
494
+ #: includes/addons/wl_category_grid.php:1013
495
+ msgid "Awaiting category image"
496
+ msgstr ""
497
+
498
+ #: classes/class.default_data.php:176
499
+ msgid "Awaiting product image"
500
  msgstr ""
501
 
502
+ #: includes/admin/include/templates_list.php:71
503
+ msgid "Back to Library"
504
  msgstr ""
505
 
506
+ #: includes/addons/product_accordion.php:353
507
+ #: includes/addons/product_accordion.php:366
508
+ #: includes/addons/product_accordion.php:630
509
+ #: includes/addons/product_accordion.php:677
510
+ #: includes/addons/product_curvy.php:380 includes/addons/product_curvy.php:393
511
+ #: includes/addons/product_curvy.php:731 includes/addons/product_curvy.php:763
512
+ #: includes/addons/product_curvy.php:807
513
+ #: includes/addons/product_image_accordion.php:289
514
+ #: includes/addons/product_image_accordion.php:560
515
+ #: includes/addons/product_image_accordion.php:619
516
+ #: includes/addons/product_tabs.php:773
517
+ #: includes/addons/special_day_offer.php:681
518
+ #: includes/addons/special_day_offer.php:760
519
+ #: includes/addons/wb_customer_review.php:323
520
+ #: includes/addons/wb_image_marker.php:47
521
+ #: includes/addons/wb_image_marker.php:203
522
+ #: includes/addons/wb_image_marker.php:256
523
+ #: includes/addons/wb_just_table.php:119
524
+ #: includes/addons/wb_product_suggest_price.php:236
525
+ #: includes/addons/wb_product_suggest_price.php:335
526
+ #: includes/addons/wb_product_suggest_price.php:433
527
+ #: includes/addons/wb_product_suggest_price.php:510
528
+ #: includes/addons/wl_category_grid.php:467
529
+ #: includes/addons/wl_category_grid.php:849 includes/addons/wl_faq.php:304
530
+ #: includes/addons/wl_faq.php:382 includes/addons/wl_faq.php:467
531
+ #: includes/addons/wl_faq.php:645 includes/addons/wl_faq.php:780
532
+ #: includes/addons/wl_onepage_slider.php:192
533
+ #: includes/addons/wl_onepage_slider.php:343
534
+ #: includes/addons/wl_onepage_slider.php:549
535
+ #: includes/addons/wl_onepage_slider.php:565
536
+ #: includes/addons/wl_product_filter.php:238
537
+ #: includes/addons/wl_product_filter.php:308
538
+ #: includes/addons/wl_product_filter.php:358
539
+ #: includes/addons/wl_product_filter.php:499
540
+ #: includes/addons/wl_product_filter.php:510
541
+ #: includes/addons/wl_product_filter.php:559
542
+ #: includes/addons/wl_product_filter.php:652
543
+ #: includes/addons/wl_product_filter.php:716
544
+ #: includes/addons/wl_product_horizontal_filter.php:345
545
+ #: includes/addons/wl_product_horizontal_filter.php:532
546
+ #: includes/addons/wl_product_horizontal_filter.php:719
547
+ #: includes/addons/wl_product_horizontal_filter.php:806
548
+ #: includes/addons/wl_product_horizontal_filter.php:837
549
+ #: includes/addons/wl_store_features.php:215
550
+ #: includes/addons/wl_store_features.php:317
551
+ #: includes/addons/wl_store_features.php:381
552
+ #: includes/addons/wl_testimonial.php:985
553
  msgid "Background"
554
  msgstr ""
555
 
556
+ #: includes/addons/product_accordion.php:61
557
+ #: includes/addons/product_tabs.php:658 includes/addons/product_tabs.php:710
558
+ #: includes/addons/product_tabs.php:814 includes/addons/product_tabs.php:1143
559
+ #: includes/addons/product_tabs.php:1203
560
+ #: includes/addons/wb_archive_product.php:568
561
+ #: includes/addons/wb_archive_product.php:657
562
+ #: includes/addons/wb_archive_product.php:741
563
+ #: includes/addons/wb_archive_product.php:774
564
+ #: includes/addons/wb_archive_product.php:833
565
+ #: includes/addons/wb_product_add_to_cart.php:122
566
+ #: includes/addons/wb_product_add_to_cart.php:154
567
+ #: includes/addons/wb_product_call_for_price.php:153
568
+ #: includes/addons/wb_product_call_for_price.php:185
569
+ #: includes/addons/wb_product_data_tab.php:66
570
+ #: includes/addons/wb_product_data_tab.php:158
571
+ #: includes/addons/wb_product_suggest_price.php:629
572
+ #: includes/addons/wb_product_suggest_price.php:661
573
+ #: includes/addons/wb_product_suggest_price.php:772
574
+ #: includes/addons/wb_product_suggest_price.php:804
575
+ #: includes/addons/wl_category_grid.php:715
576
+ #: includes/addons/wl_category_grid.php:789
577
+ #: includes/addons/wl_category_grid.php:889
578
+ #: includes/addons/wl_testimonial.php:851
579
+ #: includes/addons/wl_testimonial.php:925
580
+ #: includes/addons/wl_testimonial.php:1025
581
+ #: includes/admin/include/admin-setting.php:1203
582
  msgid "Background Color"
583
  msgstr ""
584
 
585
+ #: includes/addons/product_accordion.php:57
586
+ #: includes/addons/wl_onepage_slider.php:349
587
+ #: includes/addons/wl_onepage_slider.php:555
588
+ msgid "Background Type"
589
+ msgstr ""
590
+
591
+ #: includes/admin/include/admin-setting.php:1423
592
+ msgid "Badge color"
593
+ msgstr ""
594
+
595
+ #: includes/addons/special_day_offer.php:165
596
  msgid "Badge Image"
597
  msgstr ""
598
 
599
+ #: includes/addons/add_banner.php:43 includes/addons/special_day_offer.php:43
600
  msgid "Banner"
601
  msgstr ""
602
 
603
+ #: includes/addons/special_day_offer.php:155
604
  msgid "Banner Badge"
605
  msgstr ""
606
 
607
+ #: includes/addons/special_day_offer.php:106
608
  msgid "Banner Description"
609
  msgstr ""
610
 
611
+ #: includes/addons/add_banner.php:77
612
  msgid "Banner image"
613
  msgstr ""
614
 
615
+ #: includes/addons/special_day_offer.php:131
616
  msgid "Banner Link"
617
  msgstr ""
618
 
619
+ #: includes/addons/add_banner.php:105 includes/addons/special_day_offer.php:97
620
  msgid "Banner Sub Title"
621
  msgstr ""
622
 
623
+ #: includes/addons/add_banner.php:97 includes/addons/special_day_offer.php:88
624
  msgid "Banner Title"
625
  msgstr ""
626
 
627
+ #: includes/addons/wl_category_grid.php:629
628
+ msgid "Before Border Color"
629
+ msgstr ""
630
+
631
+ #: includes/addons/wl_faq.php:241
632
+ msgid "Before Title"
633
+ msgstr ""
634
+
635
+ #: includes/addons/product_accordion.php:85
636
+ #: includes/addons/product_curvy.php:120
637
+ #: includes/addons/product_image_accordion.php:64
638
+ #: includes/addons/product_tabs.php:81
639
  msgid "Best Selling Products"
640
  msgstr ""
641
 
642
+ #: includes/addons/wl_onepage_slider.php:469
643
+ msgid "Boho Dreams"
644
+ msgstr ""
645
+
646
+ #: includes/addons/product_tabs.php:304 includes/addons/product_tabs.php:385
647
+ #: includes/addons/product_tabs.php:671 includes/addons/product_tabs.php:723
648
+ #: includes/addons/product_tabs.php:786 includes/addons/product_tabs.php:828
649
+ #: includes/addons/product_tabs.php:875
650
+ #: includes/addons/special_day_offer.php:661
651
+ #: includes/addons/special_day_offer.php:740
652
+ #: includes/addons/wb_archive_product.php:180
653
+ #: includes/addons/wb_archive_product.php:275
654
+ #: includes/addons/wb_archive_product.php:581
655
+ #: includes/addons/wb_archive_product.php:670
656
+ #: includes/addons/wb_customer_review.php:333
657
+ #: includes/addons/wb_customer_review.php:366
658
+ #: includes/addons/wb_image_marker.php:213
659
+ #: includes/addons/wb_image_marker.php:266
660
+ #: includes/addons/wb_image_marker.php:327
661
+ #: includes/addons/wb_product_add_to_cart.php:103
662
+ #: includes/addons/wb_product_call_for_price.php:134
663
+ #: includes/addons/wb_product_suggest_price.php:271
664
+ #: includes/addons/wb_product_suggest_price.php:370
665
+ #: includes/addons/wb_product_suggest_price.php:468
666
+ #: includes/addons/wb_product_suggest_price.php:520
667
+ #: includes/addons/wb_product_suggest_price.php:610
668
+ #: includes/addons/wb_product_suggest_price.php:753
669
+ #: includes/addons/wb_wishsuite_table.php:95
670
+ #: includes/addons/wb_wishsuite_table.php:123 includes/addons/wl_brand.php:246
671
+ #: includes/addons/wl_brand.php:327 includes/addons/wl_category.php:268
672
+ #: includes/addons/wl_category_grid.php:514
673
+ #: includes/addons/wl_category_grid.php:727
674
+ #: includes/addons/wl_category_grid.php:801
675
+ #: includes/addons/wl_category_grid.php:861
676
+ #: includes/addons/wl_category_grid.php:902 includes/addons/wl_faq.php:284
677
+ #: includes/addons/wl_faq.php:405 includes/addons/wl_faq.php:489
678
+ #: includes/addons/wl_faq.php:674 includes/addons/wl_faq.php:809
679
+ #: includes/addons/wl_onepage_slider.php:528
680
+ #: includes/addons/wl_product_filter.php:171
681
+ #: includes/addons/wl_product_filter.php:257
682
+ #: includes/addons/wl_product_filter.php:329
683
+ #: includes/addons/wl_product_filter.php:368
684
+ #: includes/addons/wl_product_filter.php:451
685
+ #: includes/addons/wl_product_filter.php:570
686
+ #: includes/addons/wl_product_filter.php:663
687
+ #: includes/addons/wl_product_filter.php:727
688
+ #: includes/addons/wl_product_horizontal_filter.php:300
689
+ #: includes/addons/wl_product_horizontal_filter.php:398
690
+ #: includes/addons/wl_product_horizontal_filter.php:465
691
+ #: includes/addons/wl_product_horizontal_filter.php:551
692
+ #: includes/addons/wl_product_horizontal_filter.php:674
693
+ #: includes/addons/wl_store_features.php:167
694
+ #: includes/addons/wl_store_features.php:327
695
+ #: includes/addons/wl_store_features.php:391
696
+ #: includes/addons/wl_store_features.php:415
697
+ #: includes/addons/wl_testimonial.php:480
698
+ #: includes/addons/wl_testimonial.php:536
699
+ #: includes/addons/wl_testimonial.php:863
700
+ #: includes/addons/wl_testimonial.php:937
701
+ #: includes/addons/wl_testimonial.php:997
702
+ #: includes/addons/wl_testimonial.php:1038
703
  msgid "Border"
704
  msgstr ""
705
 
706
+ #: includes/addons/product_accordion.php:390
707
+ #: includes/addons/product_curvy.php:348 includes/addons/product_curvy.php:364
708
+ #: includes/addons/product_image_accordion.php:547
709
+ #: includes/addons/product_image_accordion.php:604
710
+ #: includes/addons/wb_archive_product.php:706
711
+ #: includes/addons/wb_ever_compare_table.php:183
712
+ #: includes/addons/wb_product_add_to_cart.php:165
713
+ #: includes/addons/wb_product_call_for_price.php:196
714
+ #: includes/addons/wb_product_data_tab.php:77
715
+ #: includes/addons/wb_product_data_tab.php:169
716
+ #: includes/addons/wb_product_suggest_price.php:672
717
+ #: includes/addons/wb_product_suggest_price.php:815
718
  msgid "Border Color"
719
  msgstr ""
720
 
721
+ #: includes/addons/product_accordion.php:639
722
+ #: includes/addons/product_curvy.php:772
723
+ #: includes/addons/product_image_accordion.php:569
724
+ #: includes/addons/product_tabs.php:312 includes/addons/product_tabs.php:394
725
+ #: includes/addons/product_tabs.php:679 includes/addons/product_tabs.php:731
726
+ #: includes/addons/product_tabs.php:794 includes/addons/product_tabs.php:836
727
+ #: includes/addons/product_tabs.php:883
728
+ #: includes/addons/special_day_offer.php:669
729
+ #: includes/addons/special_day_offer.php:748
730
+ #: includes/addons/wb_archive_product.php:188
731
+ #: includes/addons/wb_archive_product.php:283
732
+ #: includes/addons/wb_archive_product.php:589
733
+ #: includes/addons/wb_archive_product.php:875
734
+ #: includes/addons/wb_customer_review.php:341
735
+ #: includes/addons/wb_customer_review.php:374
736
+ #: includes/addons/wb_image_marker.php:221
737
+ #: includes/addons/wb_image_marker.php:274
738
+ #: includes/addons/wb_image_marker.php:335
739
+ #: includes/addons/wb_product_add_to_cart.php:111
740
+ #: includes/addons/wb_product_call_for_price.php:142
741
+ #: includes/addons/wb_product_data_tab.php:98
742
+ #: includes/addons/wb_product_data_tab.php:190
743
+ #: includes/addons/wb_product_image.php:57
744
+ #: includes/addons/wb_product_image.php:102
745
+ #: includes/addons/wb_product_suggest_price.php:280
746
+ #: includes/addons/wb_product_suggest_price.php:379
747
+ #: includes/addons/wb_product_suggest_price.php:477
748
+ #: includes/addons/wb_product_suggest_price.php:529
749
+ #: includes/addons/wb_product_suggest_price.php:618
750
+ #: includes/addons/wb_product_suggest_price.php:761
751
+ #: includes/addons/wl_brand.php:254 includes/addons/wl_brand.php:335
752
+ #: includes/addons/wl_category_grid.php:522
753
+ #: includes/addons/wl_category_grid.php:735
754
+ #: includes/addons/wl_category_grid.php:809
755
+ #: includes/addons/wl_category_grid.php:869
756
+ #: includes/addons/wl_category_grid.php:910 includes/addons/wl_faq.php:292
757
+ #: includes/addons/wl_faq.php:413 includes/addons/wl_faq.php:497
758
+ #: includes/addons/wl_faq.php:685 includes/addons/wl_faq.php:820
759
+ #: includes/addons/wl_onepage_slider.php:536
760
+ #: includes/addons/wl_product_filter.php:578
761
+ #: includes/addons/wl_product_filter.php:671
762
+ #: includes/addons/wl_product_horizontal_filter.php:308
763
+ #: includes/addons/wl_product_horizontal_filter.php:559
764
+ #: includes/addons/wl_product_horizontal_filter.php:682
765
+ #: includes/addons/wl_product_video_gallery.php:130
766
+ #: includes/addons/wl_product_video_gallery.php:176
767
+ #: includes/addons/wl_store_features.php:335
768
+ #: includes/addons/wl_testimonial.php:488
769
+ #: includes/addons/wl_testimonial.php:544
770
+ #: includes/addons/wl_testimonial.php:871
771
+ #: includes/addons/wl_testimonial.php:945
772
+ #: includes/addons/wl_testimonial.php:1005
773
+ #: includes/addons/wl_testimonial.php:1046
774
  msgid "Border Radius"
775
  msgstr ""
776
 
777
+ #: includes/addons/add_banner.php:69 includes/addons/special_day_offer.php:56
778
+ #: includes/addons/wl_product_video_gallery.php:70
779
  msgid "Bottom"
780
  msgstr ""
781
 
782
+ #: includes/admin/include/admin-setting.php:1071
783
  msgid "Bottom Left"
784
  msgstr ""
785
 
786
+ #: includes/addons/wb_customer_review.php:241
787
+ #: includes/addons/wl_testimonial.php:253
788
+ msgid "Bottom Space"
789
  msgstr ""
790
 
791
+ #: includes/addons/wl_category_grid.php:487
792
+ msgid "Box Color"
 
 
793
  msgstr ""
794
 
795
+ #: includes/addons/wb_archive_product.php:225
796
+ #: includes/addons/wl_category_grid.php:458 includes/addons/wl_faq.php:314
797
+ #: includes/addons/wl_faq.php:426 includes/addons/wl_faq.php:523
798
+ #: includes/addons/wl_faq.php:701 includes/addons/wl_faq.php:836
799
+ #: includes/addons/wl_product_horizontal_filter.php:355
800
+ #: includes/addons/wl_store_features.php:225
801
+ msgid "Box Shadow"
802
  msgstr ""
803
 
804
+ #: includes/addons/wl_brand.php:237
805
+ msgid "Brand"
806
  msgstr ""
807
 
808
+ #: includes/addons/wl_brand.php:318
809
+ msgid "Brand Image"
 
 
 
810
  msgstr ""
811
 
812
+ #: includes/addons/wl_brand.php:91
813
+ msgid "Brand Link"
814
  msgstr ""
815
 
816
+ #: includes/addons/wl_brand.php:47 includes/admin/include/admin-setting.php:372
817
+ #: woolentor-blocks/src/blocks/brand-logo/index.php:67
818
+ msgid "Brand Logo"
819
  msgstr ""
820
 
821
+ #: includes/addons/wl_brand.php:134
822
+ msgid "Brand Option"
823
  msgstr ""
824
 
825
+ #: includes/addons/wl_brand.php:70 includes/addons/wl_brand.php:110
826
+ msgid "Brand Title"
 
 
 
827
  msgstr ""
828
 
829
+ #: includes/addons/add_banner.php:230 includes/addons/special_day_offer.php:620
830
+ #: includes/addons/wb_product_add_to_cart.php:40
831
+ #: includes/addons/wb_product_call_for_price.php:71
832
+ #: includes/addons/wb_whols.php:44 includes/addons/wl_onepage_slider.php:290
833
+ #: includes/addons/wl_product_filter.php:621
834
+ msgid "Button"
835
  msgstr ""
836
 
837
+ #: includes/admin/include/admin-setting.php:1444
838
+ msgid "Button color"
839
  msgstr ""
840
 
841
+ #: includes/admin/include/admin-setting.php:1451
842
+ msgid "Button hover color"
843
  msgstr ""
844
 
845
+ #: includes/addons/add_banner.php:121 includes/addons/wl_onepage_slider.php:99
846
+ msgid "Button Link"
 
 
 
 
 
 
 
 
 
847
  msgstr ""
848
 
849
+ #: includes/addons/wb_product_call_for_price.php:58
850
+ msgid "Button Phone Number"
851
  msgstr ""
852
 
853
+ #: includes/addons/add_banner.php:113 includes/addons/special_day_offer.php:146
854
+ #: includes/addons/special_day_offer.php:148
855
+ #: includes/addons/wb_product_call_for_price.php:47
856
+ #: includes/addons/wb_product_suggest_price.php:51
857
+ #: includes/addons/wl_onepage_slider.php:89
858
+ msgid "Button Text"
859
  msgstr ""
860
 
861
+ #: includes/addons/product_accordion.php:207
862
+ #: includes/addons/product_image_accordion.php:187
863
+ msgid "Buy"
864
  msgstr ""
865
 
866
+ #: classes/class.assest_management.php:327
867
+ #: includes/admin/include/admin-setting.php:1762
868
+ #: includes/admin/include/class.extension-manager.php:222
869
+ #: includes/admin/include/template-library.php:272
870
+ #: includes/admin/include/template-library.php:324
871
+ msgid "Buy Now"
872
  msgstr ""
873
 
874
+ #: includes/admin/include/admin-setting.php:107
875
+ msgid "Buy Pro"
 
876
  msgstr ""
877
 
878
+ #: includes/class.sale_notification.php:138
879
+ msgid "By"
880
  msgstr ""
881
 
882
+ #: includes/admin/include/class.extension-manager.php:211
883
+ #: includes/admin/include/class.extension-manager.php:292
884
+ msgid "By "
885
  msgstr ""
886
 
887
+ #: includes/addons/wb_product_call_for_price.php:40
888
+ #: includes/addons/wb_product_call_for_price.php:49
889
+ #: includes/addons/wb_product_call_for_price.php:50
890
+ msgid "Call For Price"
891
  msgstr ""
892
 
893
+ #: includes/admin/include/admin-setting.php:524
894
+ msgid "Call for Price"
 
895
  msgstr ""
896
 
897
+ #: includes/addons/wb_customer_review.php:78
898
+ #: includes/addons/wb_customer_review.php:139
899
+ msgid "Carolina Monntoya"
900
  msgstr ""
901
 
902
+ #: includes/addons/wb_ever_compare_table.php:168
903
+ #: includes/addons/wb_ever_compare_table.php:174
904
+ msgid "Cart Button Background"
905
  msgstr ""
906
 
907
+ #: includes/addons/wb_ever_compare_table.php:156
908
+ msgid "Cart Button Color"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
909
  msgstr ""
910
 
911
+ #: includes/admin/include/admin-setting.php:1738
912
+ #: includes/admin/include/admin-setting.php:1756
913
+ msgid "Cart Page Builder"
 
 
914
  msgstr ""
915
 
916
+ #: includes/admin/include/admin-setting.php:176
917
+ msgid "Cart Page Template"
918
  msgstr ""
919
 
920
+ #: includes/admin/include/admin-setting.php:1648
921
+ msgid ""
922
+ "Cart Page, Checkout, My Account, Registration and Thank you page custom "
923
+ "layout template"
924
  msgstr ""
925
 
926
+ #: includes/admin/include/admin-setting.php:1362
927
+ msgid "Category"
928
  msgstr ""
929
 
930
+ #: includes/addons/product_image_accordion.php:317
931
+ msgid "Category Color"
932
  msgstr ""
933
 
934
+ #: includes/admin/include/admin-setting.php:1367
935
+ msgid "Category color"
 
936
  msgstr ""
937
 
938
+ #: includes/addons/wl_category_grid.php:65
939
+ msgid "Category Display Type"
940
  msgstr ""
941
 
942
+ #: includes/addons/wl_category_grid.php:40
943
+ #: includes/admin/include/admin-setting.php:332
944
+ msgid "Category Grid"
945
  msgstr ""
946
 
947
+ #: includes/addons/product_image_accordion.php:328
948
+ msgid "Category Hover Color"
949
  msgstr ""
950
 
951
+ #: includes/admin/include/admin-setting.php:1374
952
+ msgid "Category hover color"
 
953
  msgstr ""
954
 
955
+ #: includes/addons/wl_category.php:43
956
+ #: includes/admin/include/admin-setting.php:324
957
+ msgid "Category List"
958
  msgstr ""
959
 
960
+ #: classes/class.default_data.php:212
961
+ msgid "Category:"
962
+ msgid_plural "Categories:"
963
+ msgstr[0] ""
964
+ msgstr[1] ""
965
+
966
+ #: includes/addons/product_tabs.php:236 includes/addons/product_tabs.php:958
967
+ #: includes/addons/product_tabs.php:1037
968
+ #: includes/addons/special_day_offer.php:55
969
+ #: includes/addons/special_day_offer.php:277
970
+ #: includes/addons/wb_archive_product.php:241
971
+ #: includes/addons/wb_customer_review.php:290
972
+ #: includes/addons/wb_product_data_tab.php:117
973
+ #: includes/addons/wb_product_description.php:55
974
+ #: includes/addons/wb_product_related.php:169
975
+ #: includes/addons/wb_product_short_description.php:57
976
+ #: includes/addons/wb_product_title.php:109 includes/addons/wl_brand.php:298
977
+ #: includes/addons/wl_category.php:284 includes/addons/wl_faq.php:354
978
+ #: includes/addons/wl_faq.php:577 includes/addons/wl_onepage_slider.php:173
979
+ #: includes/addons/wl_product_horizontal_filter.php:742
980
+ #: includes/addons/wl_store_features.php:143
981
+ msgid "Center"
982
  msgstr ""
983
 
984
+ #: includes/admin/include/admin-setting.php:881
985
+ msgid "Change the Add to Cart button text for the Product details page."
986
  msgstr ""
987
 
988
+ #: includes/admin/include/admin-setting.php:865
989
+ msgid "Change the Add to Cart button text for the Shop page."
990
  msgstr ""
991
 
992
+ #: includes/admin/include/admin-setting.php:942
993
+ msgid "Change the label for the Company field. <span>( Pro )</span>"
994
  msgstr ""
995
 
996
+ #: includes/admin/include/admin-setting.php:1014
997
+ msgid "Change the label for the Country field. <span>( Pro )</span>"
 
 
 
998
  msgstr ""
999
 
1000
+ #: includes/admin/include/admin-setting.php:1005
1001
+ msgid "Change the label for the Email address field. <span>( Pro )</span>"
1002
  msgstr ""
1003
 
1004
+ #: includes/admin/include/admin-setting.php:924
1005
+ msgid "Change the label for the First name field <span>( Pro )</span>"
 
 
1006
  msgstr ""
1007
 
1008
+ #: includes/admin/include/admin-setting.php:933
1009
+ msgid "Change the label for the Last name field <span>( Pro )</span>"
1010
  msgstr ""
1011
 
1012
+ #: includes/admin/include/admin-setting.php:960
1013
+ msgid "Change the label for the Optional address field. <span>( Pro )</span>"
 
 
 
1014
  msgstr ""
1015
 
1016
+ #: includes/admin/include/admin-setting.php:1023
1017
+ msgid "Change the label for the Order notes field. <span>( Pro )</span>"
1018
  msgstr ""
1019
 
1020
+ #: includes/admin/include/admin-setting.php:996
1021
+ msgid "Change the label for the Phone field. <span>( Pro )</span>"
1022
  msgstr ""
1023
 
1024
+ #: includes/admin/include/admin-setting.php:1032
1025
+ msgid "Change the label for the Place order field. <span>( Pro )</span>"
1026
  msgstr ""
1027
 
1028
+ #: includes/admin/include/admin-setting.php:978
1029
+ msgid "Change the label for the Postcode / ZIP field. <span>( Pro )</span>"
 
 
1030
  msgstr ""
1031
 
1032
+ #: includes/admin/include/admin-setting.php:987
1033
+ msgid "Change the label for the State field. <span>( Pro )</span>"
 
1034
  msgstr ""
1035
 
1036
+ #: includes/admin/include/admin-setting.php:951
1037
+ msgid "Change the label for the Street address field. <span>( Pro )</span>"
1038
  msgstr ""
1039
 
1040
+ #: includes/admin/include/admin-setting.php:969
1041
+ msgid "Change the label for the Town/City field. <span>( Pro )</span>"
1042
  msgstr ""
1043
 
1044
+ #: includes/admin/include/admin-setting.php:899
1045
+ msgid ""
1046
+ "Change the tab title for the product additional information <span>( Pro )"
1047
+ "</span>"
1048
  msgstr ""
1049
 
1050
+ #: includes/admin/include/admin-setting.php:890
1051
+ msgid "Change the tab title for the product description. <span>( Pro )</span>"
 
1052
  msgstr ""
1053
 
1054
+ #: includes/admin/include/admin-setting.php:908
1055
+ msgid "Change the tab title for the product review <span>( Pro )</span>"
1056
  msgstr ""
1057
 
1058
+ #: includes/admin/include/admin-setting.php:628
1059
+ msgid "Checkout Additional.. <span>( Pro )</span>"
1060
  msgstr ""
1061
 
1062
+ #: includes/admin/include/admin-setting.php:636
1063
+ msgid "Checkout Billing Form <span>( Pro )</span>"
1064
  msgstr ""
1065
 
1066
+ #: includes/admin/include/admin-setting.php:660
1067
+ msgid "Checkout Co.. Form <span>( Pro )</span>"
 
 
1068
  msgstr ""
1069
 
1070
+ #: includes/admin/include/admin-setting.php:668
1071
+ msgid "Checkout lo.. Form <span>( Pro )</span>"
1072
  msgstr ""
1073
 
1074
+ #: includes/admin/include/admin-setting.php:676
1075
+ msgid "Checkout Order Review <span>( Pro )</span>"
1076
  msgstr ""
1077
 
1078
+ #: includes/admin/include/admin-setting.php:916
1079
+ msgid "Checkout Page"
1080
  msgstr ""
1081
 
1082
+ #: includes/admin/include/admin-setting.php:1739
1083
+ #: includes/admin/include/admin-setting.php:1757
1084
+ msgid "Checkout Page Builder"
1085
  msgstr ""
1086
 
1087
+ #: includes/admin/include/admin-setting.php:188
1088
+ msgid "Checkout Page Template"
1089
  msgstr ""
1090
 
1091
+ #: includes/admin/include/admin-setting.php:652
1092
+ msgid "Checkout Payment <span>( Pro )</span>"
1093
  msgstr ""
1094
 
1095
+ #: includes/admin/include/admin-setting.php:644
1096
+ msgid "Checkout Shipping Form <span>( Pro )</span>"
1097
  msgstr ""
1098
 
1099
+ #: includes/admin/include/admin-setting.php:1180
1100
+ msgid "Choose entrance animation. <span>( Pro )</span>"
1101
  msgstr ""
1102
 
1103
+ #: includes/admin/include/admin-setting.php:1192
1104
+ msgid "Choose exit animation. <span>( Pro )</span>"
1105
  msgstr ""
1106
 
1107
+ #: includes/addons/wl_brand.php:80
1108
+ msgid "Choose Image"
1109
  msgstr ""
1110
 
1111
+ #: includes/addons/wb_customer_review.php:94
1112
+ #: includes/addons/wl_testimonial.php:96
1113
+ msgid "Client Rating"
1114
  msgstr ""
1115
 
1116
+ #: includes/addons/wb_customer_review.php:122
1117
+ #: includes/addons/wl_testimonial.php:124
1118
+ msgid "Client Say"
1119
  msgstr ""
1120
 
1121
+ #: includes/addons/wb_customer_review.php:501
1122
+ #: includes/addons/wl_testimonial.php:685
1123
+ msgid "Client say"
1124
  msgstr ""
1125
 
1126
+ #: includes/addons/wb_product_suggest_price.php:74
1127
+ #: includes/addons/wb_product_suggest_price.php:75
1128
+ msgid "Close"
1129
  msgstr ""
1130
 
1131
+ #: includes/addons/wb_product_suggest_price.php:690
1132
+ msgid "Close Button"
1133
  msgstr ""
1134
 
1135
+ #: includes/addons/wb_product_suggest_price.php:72
1136
+ msgid "Close Button Text"
1137
  msgstr ""
1138
 
1139
+ #: includes/addons/wl_faq.php:132 includes/addons/wl_faq.php:224
1140
+ msgid "Close Icon"
1141
  msgstr ""
1142
 
1143
+ #: includes/addons/product_accordion.php:432
1144
+ msgid "Collapse Background"
1145
  msgstr ""
1146
 
1147
+ #: includes/addons/product_accordion.php:421
1148
+ msgid "Collapse Icon Color"
1149
  msgstr ""
1150
 
1151
+ #: includes/addons/add_banner.php:155 includes/addons/add_banner.php:197
1152
+ #: includes/addons/add_banner.php:239 includes/addons/product_accordion.php:614
1153
+ #: includes/addons/product_accordion.php:661
1154
+ #: includes/addons/product_curvy.php:750 includes/addons/product_curvy.php:794
1155
+ #: includes/addons/product_image_accordion.php:536
1156
+ #: includes/addons/product_image_accordion.php:591
1157
+ #: includes/addons/product_tabs.php:279 includes/addons/product_tabs.php:358
1158
+ #: includes/addons/product_tabs.php:646 includes/addons/product_tabs.php:761
1159
+ #: includes/addons/product_tabs.php:1131 includes/addons/product_tabs.php:1191
1160
+ #: includes/addons/special_day_offer.php:336
1161
+ #: includes/addons/special_day_offer.php:395
1162
+ #: includes/addons/special_day_offer.php:454
1163
+ #: includes/addons/special_day_offer.php:513
1164
+ #: includes/addons/special_day_offer.php:572
1165
+ #: includes/addons/special_day_offer.php:639
1166
+ #: includes/addons/special_day_offer.php:727
1167
+ #: includes/addons/wb_archive_product.php:326
1168
+ #: includes/addons/wb_archive_product.php:383
1169
+ #: includes/addons/wb_archive_product.php:418
1170
+ #: includes/addons/wb_archive_product.php:453
1171
+ #: includes/addons/wb_archive_product.php:555
1172
+ #: includes/addons/wb_archive_product.php:645
1173
+ #: includes/addons/wb_archive_product.php:730
1174
+ #: includes/addons/wb_archive_product.php:762
1175
+ #: includes/addons/wb_customer_review.php:396
1176
+ #: includes/addons/wb_customer_review.php:453
1177
+ #: includes/addons/wb_customer_review.php:509
1178
+ #: includes/addons/wb_customer_review.php:564
1179
+ #: includes/addons/wb_image_marker.php:190
1180
+ #: includes/addons/wb_image_marker.php:307
1181
+ #: includes/addons/wb_image_marker.php:368
1182
+ #: includes/addons/wb_product_additional_information.php:72
1183
+ #: includes/addons/wb_product_additional_information.php:120
1184
+ #: includes/addons/wb_product_related.php:128
1185
+ #: includes/addons/wb_product_suggest_price.php:412
1186
+ #: includes/addons/wb_product_suggest_price.php:498
1187
+ #: includes/addons/wb_product_upsell.php:112 includes/addons/wb_whols.php:52
1188
+ #: includes/addons/wl_category.php:315 includes/addons/wl_category_grid.php:547
1189
+ #: includes/addons/wl_category_grid.php:618
1190
+ #: includes/addons/wl_category_grid.php:704
1191
+ #: includes/addons/wl_category_grid.php:838 includes/addons/wl_faq.php:435
1192
+ #: includes/addons/wl_faq.php:476 includes/addons/wl_faq.php:548
1193
+ #: includes/addons/wl_faq.php:628 includes/addons/wl_faq.php:657
1194
+ #: includes/addons/wl_faq.php:763 includes/addons/wl_faq.php:792
1195
+ #: includes/addons/wl_onepage_slider.php:216
1196
+ #: includes/addons/wl_onepage_slider.php:258
1197
+ #: includes/addons/wl_onepage_slider.php:311
1198
+ #: includes/addons/wl_onepage_slider.php:386
1199
+ #: includes/addons/wl_product_filter.php:150
1200
+ #: includes/addons/wl_product_filter.php:226
1201
+ #: includes/addons/wl_product_filter.php:296
1202
+ #: includes/addons/wl_product_filter.php:346
1203
+ #: includes/addons/wl_product_filter.php:402
1204
+ #: includes/addons/wl_product_filter.php:468
1205
+ #: includes/addons/wl_product_filter.php:640
1206
+ #: includes/addons/wl_product_filter.php:704
1207
+ #: includes/addons/wl_product_horizontal_filter.php:377
1208
+ #: includes/addons/wl_product_horizontal_filter.php:444
1209
+ #: includes/addons/wl_product_horizontal_filter.php:520
1210
+ #: includes/addons/wl_product_horizontal_filter.php:602
1211
+ #: includes/addons/wl_product_horizontal_filter.php:633
1212
+ #: includes/addons/wl_product_horizontal_filter.php:695
1213
+ #: includes/addons/wl_product_horizontal_filter.php:783
1214
+ #: includes/addons/wl_product_horizontal_filter.php:825
1215
+ #: includes/addons/wl_store_features.php:462
1216
+ #: includes/addons/wl_store_features.php:508
1217
+ #: includes/addons/wl_testimonial.php:580
1218
+ #: includes/addons/wl_testimonial.php:637
1219
+ #: includes/addons/wl_testimonial.php:693
1220
+ #: includes/addons/wl_testimonial.php:749
1221
+ #: includes/addons/wl_testimonial.php:840
1222
+ #: includes/addons/wl_testimonial.php:974
1223
+ msgid "Color"
1224
  msgstr ""
1225
 
1226
+ #: includes/addons/product_curvy.php:71 includes/addons/product_curvy.php:89
1227
+ #: includes/addons/product_tabs.php:92
1228
+ #: includes/addons/wb_archive_product.php:50
1229
+ #: includes/addons/wb_customer_review.php:176
1230
+ #: includes/addons/wb_product_related.php:61
1231
+ #: includes/addons/wb_product_upsell.php:46
1232
+ #: includes/addons/wl_category_grid.php:175
1233
+ #: includes/addons/wl_category_grid.php:185
1234
+ #: includes/addons/wl_testimonial.php:178
1235
+ #: includes/addons/wl_testimonial.php:188
1236
+ msgid "Columns"
1237
  msgstr ""
1238
 
1239
+ #: includes/helper-function.php:697 includes/addons/product_accordion.php:167
1240
+ #: includes/addons/product_curvy.php:202
1241
+ #: includes/addons/product_image_accordion.php:146
1242
+ #: includes/addons/product_tabs.php:166
1243
+ msgid "Comment count"
1244
  msgstr ""
1245
 
1246
+ #: includes/admin/include/admin-setting.php:941
1247
+ #: includes/admin/include/admin-setting.php:944
1248
+ msgid "Company name"
1249
  msgstr ""
1250
 
1251
+ #: includes/helper-function.php:752
1252
+ msgid "Compare"
 
 
 
 
 
 
1253
  msgstr ""
1254
 
1255
+ #: includes/admin/include/admin-setting.php:1719
1256
+ msgid "Contact Us"
 
1257
  msgstr ""
1258
 
1259
+ #: includes/addons/wb_ever_compare_table.php:127
1260
+ #: includes/addons/wb_image_marker.php:247
1261
+ #: includes/addons/wb_product_additional_information.php:113
1262
+ #: includes/addons/wb_product_data_tab.php:208 includes/addons/wl_faq.php:41
1263
+ #: includes/addons/wl_faq.php:78 includes/addons/wl_onepage_slider.php:62
1264
+ msgid "Content"
1265
  msgstr ""
1266
 
1267
+ #: includes/addons/add_banner.php:63
1268
+ msgid "Content Alignment"
1269
  msgstr ""
1270
 
1271
+ #: includes/addons/product_accordion.php:445
1272
+ #: includes/addons/wl_store_features.php:406
1273
+ msgid "Content Area"
 
 
1274
  msgstr ""
1275
 
1276
+ #: includes/admin/include/admin-setting.php:1311
1277
+ msgid "Content area background"
1278
  msgstr ""
1279
 
1280
+ #: includes/addons/product_accordion.php:461
1281
+ #: includes/addons/product_curvy.php:596 includes/addons/product_curvy.php:610
1282
+ #: includes/addons/wb_ever_compare_table.php:134
1283
+ #: includes/admin/include/admin-setting.php:1219
1284
+ msgid "Content Color"
1285
  msgstr ""
1286
 
1287
+ #: includes/addons/product_accordion.php:262
1288
+ #: includes/addons/product_curvy.php:254
1289
+ #: includes/addons/product_image_accordion.php:209
1290
+ msgid "Content Display"
 
 
 
 
 
 
1291
  msgstr ""
1292
 
1293
+ #: includes/addons/product_accordion.php:282
1294
+ #: includes/addons/product_curvy.php:297
1295
+ msgid "Content Limit"
1296
  msgstr ""
1297
 
1298
+ #: includes/addons/wb_ever_compare_table.php:145
1299
+ msgid "Content Link Color"
1300
  msgstr ""
1301
 
1302
+ #: includes/addons/special_day_offer.php:50
1303
+ msgid "Content Position"
1304
  msgstr ""
1305
 
1306
+ #: includes/addons/product_accordion.php:198
1307
+ #: includes/addons/product_curvy.php:233
1308
+ #: includes/addons/product_image_accordion.php:177
1309
+ msgid "Content Settings"
1310
  msgstr ""
1311
 
1312
+ #: includes/addons/wl_category_grid.php:610
1313
+ msgid "Count"
1314
  msgstr ""
1315
 
1316
+ #: includes/admin/include/admin-setting.php:1495
1317
+ msgid "Counter Timer"
1318
  msgstr ""
1319
 
1320
+ #: includes/admin/include/admin-setting.php:1500
1321
+ msgid "Counter timer color"
 
 
1322
  msgstr ""
1323
 
1324
+ #: includes/admin/include/admin-setting.php:1013
1325
+ #: includes/admin/include/admin-setting.php:1016
1326
+ msgid "Country"
1327
  msgstr ""
1328
 
1329
+ #: includes/admin/include/templates_list.php:16
1330
+ msgid "Create a new page from this template"
1331
  msgstr ""
1332
 
1333
+ #: includes/admin/include/admin-setting.php:1227
1334
+ msgid "Cross Icon Color"
1335
  msgstr ""
1336
 
1337
+ #: includes/admin/include/admin-setting.php:620
1338
+ msgid "Cross Sell ..( Custom ) <span>( Pro )</span>"
1339
  msgstr ""
1340
 
1341
+ #: includes/addons/wb_customer_review.php:65 includes/addons/wl_faq.php:54
1342
+ #: includes/addons/wl_testimonial.php:67
1343
+ msgid "Custom"
1344
  msgstr ""
1345
 
1346
+ #: includes/addons/wl_faq.php:199
1347
+ msgid "Custom Icon"
1348
  msgstr ""
1349
 
1350
+ #: includes/addons/product_tabs.php:147
1351
+ msgid "Custom Order"
1352
  msgstr ""
1353
 
1354
+ #: includes/addons/product_accordion.php:148
1355
+ #: includes/addons/product_curvy.php:183
1356
+ #: includes/addons/product_image_accordion.php:127
1357
+ msgid "Custom order"
1358
  msgstr ""
1359
 
1360
+ #: includes/custom-metabox.php:24
1361
+ msgid "Custom Product Badge Text"
1362
  msgstr ""
1363
 
1364
+ #: includes/addons/wl_testimonial.php:154
1365
+ msgid "Customer"
1366
  msgstr ""
1367
 
1368
+ #: includes/admin/include/admin-setting.php:308
1369
+ msgid "Customer Review"
1370
  msgstr ""
1371
 
1372
+ #: includes/admin/include/admin-setting.php:1873
1373
+ msgid "Daniel - included in WooLentor Pro"
 
 
 
 
 
 
1374
  msgstr ""
1375
 
1376
+ #: includes/admin/include/admin-setting.php:1874
1377
+ msgid ""
1378
+ "Daniel is a premium woocommerce theme included in WooLentor pro. It will "
1379
+ "save money for the WooLentor pro users."
1380
  msgstr ""
1381
 
1382
+ #: includes/helper-function.php:694 includes/addons/product_accordion.php:164
1383
+ #: includes/addons/product_curvy.php:199
1384
+ #: includes/addons/product_image_accordion.php:143
1385
+ #: includes/addons/product_tabs.php:163
1386
+ #: includes/addons/wb_archive_product.php:127
1387
+ #: includes/addons/wb_product_related.php:77
1388
+ #: includes/addons/wb_product_upsell.php:61
1389
+ msgid "Date"
 
 
 
 
 
1390
  msgstr ""
1391
 
1392
+ #: includes/addons/wl_brand.php:58
1393
+ msgid "Default"
1394
+ msgstr ""
1395
+
1396
+ #: includes/admin/include/admin-setting.php:1312
1397
+ #: includes/admin/include/admin-setting.php:1326
1398
+ #: includes/admin/include/admin-setting.php:1333
1399
+ #: includes/admin/include/admin-setting.php:1347
1400
+ #: includes/admin/include/admin-setting.php:1354
1401
+ #: includes/admin/include/admin-setting.php:1368
1402
+ #: includes/admin/include/admin-setting.php:1375
1403
+ #: includes/admin/include/admin-setting.php:1389
1404
+ #: includes/admin/include/admin-setting.php:1403
1405
+ #: includes/admin/include/admin-setting.php:1410
1406
+ #: includes/admin/include/admin-setting.php:1424
1407
+ #: includes/admin/include/admin-setting.php:1438
1408
+ #: includes/admin/include/admin-setting.php:1445
1409
+ #: includes/admin/include/admin-setting.php:1452
1410
+ #: includes/admin/include/admin-setting.php:1466
1411
+ #: includes/admin/include/admin-setting.php:1473
1412
+ #: includes/admin/include/admin-setting.php:1480
1413
+ #: includes/admin/include/admin-setting.php:1487
1414
+ #: includes/admin/include/admin-setting.php:1501
1415
+ msgid "Default Color for universal layout."
1416
+ msgstr ""
1417
+
1418
+ #: includes/helper-function.php:508
1419
+ msgid "Default sorting"
1420
  msgstr ""
1421
 
1422
+ #: includes/addons/wl_brand.php:72
1423
+ msgid "Default title"
1424
  msgstr ""
1425
 
1426
+ #: includes/addons/wb_archive_product.php:149
1427
+ #: includes/addons/wb_product_related.php:96
1428
+ #: includes/addons/wb_product_upsell.php:80
1429
+ #: includes/addons/wl_product_filter.php:883
1430
+ #: includes/addons/wl_product_horizontal_filter.php:952
1431
+ msgid "DESC"
1432
  msgstr ""
1433
 
1434
+ #: includes/addons/product_accordion.php:183
1435
+ #: includes/addons/product_curvy.php:218
1436
+ #: includes/addons/product_image_accordion.php:162
1437
+ #: includes/addons/product_tabs.php:182 includes/addons/wl_category.php:137
1438
+ #: includes/addons/wl_category_grid.php:112
1439
+ msgid "Descending"
1440
  msgstr ""
1441
 
1442
+ #: includes/addons/special_day_offer.php:104
1443
+ #: includes/addons/special_day_offer.php:443
1444
+ #: includes/addons/wb_image_marker.php:361
1445
+ #: includes/admin/include/admin-setting.php:889
1446
+ #: includes/admin/include/admin-setting.php:892
1447
+ msgid "Description"
1448
  msgstr ""
1449
 
1450
+ #: includes/admin/include/admin-setting.php:1388
1451
+ msgid "Description color"
 
1452
  msgstr ""
1453
 
1454
+ #: includes/addons/wb_customer_review.php:85
1455
+ #: includes/addons/wb_customer_review.php:445
1456
+ #: includes/addons/wl_testimonial.php:87 includes/addons/wl_testimonial.php:629
1457
+ msgid "Designation"
1458
  msgstr ""
1459
 
1460
+ #: includes/addons/wl_testimonial.php:89 includes/addons/wl_testimonial.php:142
1461
+ msgid "Designer"
1462
  msgstr ""
1463
 
1464
+ #: includes/addons/wb_customer_review.php:154
1465
+ #: includes/addons/wl_testimonial.php:148
1466
+ msgid "Developer"
1467
  msgstr ""
1468
 
1469
+ #: includes/helper-function.php:348
1470
+ msgid "div"
1471
  msgstr ""
1472
 
1473
+ #: includes/admin/include/admin-setting.php:1168
1474
+ msgid ""
1475
+ "Do not show purchases older than.( More Options are available in the Pro "
1476
+ "version ) <span>( Pro )</span>"
1477
  msgstr ""
1478
 
1479
+ #: includes/addons/wl_faq.php:107
1480
+ msgid "Do you want to individual icon ?"
1481
  msgstr ""
1482
 
1483
+ #: includes/admin/include/admin-setting.php:1826
1484
+ #: includes/admin/include/admin-setting.php:1835
1485
+ msgid "Download"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1486
  msgstr ""
1487
 
1488
+ #: includes/admin/include/template-library.php:192
1489
+ msgid "Edit Page"
 
 
1490
  msgstr ""
1491
 
1492
+ #: includes/admin/include/template-library.php:192
1493
+ msgid "Edit Template"
1494
  msgstr ""
1495
 
1496
+ #: includes/addons/wb_customer_review.php:187
1497
+ #: includes/addons/wl_category_grid.php:196
1498
+ #: includes/addons/wl_testimonial.php:199
1499
+ msgid "Eight"
1500
  msgstr ""
1501
 
1502
+ #: includes/addons/wb_product_reviews.php:46
1503
+ msgid "Element Information"
1504
  msgstr ""
1505
 
1506
+ #: includes/admin/include/templates_list.php:41
1507
+ msgid "Elementor"
1508
  msgstr ""
1509
 
1510
+ #: includes/addons/wl_faq.php:55
1511
+ msgid "Elementor Template"
1512
  msgstr ""
1513
 
1514
+ #: includes/admin/include/admin-setting.php:77
1515
+ msgid "Elements"
1516
  msgstr ""
1517
 
1518
+ #: includes/admin/include/admin-setting.php:1004
1519
+ #: includes/admin/include/admin-setting.php:1007
1520
+ msgid "Email address"
1521
  msgstr ""
1522
 
1523
+ #: includes/admin/include/class.extension-manager.php:126
1524
+ msgid ""
1525
+ "Email Candy is an outstanding WordPress plugin that allows you to customize "
1526
+ "the default WooCommerce email templates and give a professional look to your "
1527
+ "WooCommerce emails. If you are tired of using the boring design of "
1528
+ "WooCommerce emails and want to create customized emails, then this plugin "
1529
+ "will come in handy."
1530
  msgstr ""
1531
 
1532
+ #: includes/admin/include/class.extension-manager.php:123
1533
+ msgid "Email Candy Pro - Email customizer for WooCommerce"
1534
  msgstr ""
1535
 
1536
+ #: includes/addons/wb_product_suggest_price.php:130
1537
+ msgid "Email Field Placeholder"
1538
  msgstr ""
1539
 
1540
+ #: includes/admin/include/admin-setting.php:596
1541
+ msgid "Empty Cart Mes..<span>( Pro )</span>"
 
1542
  msgstr ""
1543
 
1544
+ #: includes/admin/include/admin-setting.php:604
1545
+ msgid "Empty Cart Re.. Button <span>( Pro )</span>"
1546
  msgstr ""
1547
 
1548
+ #: includes/addons/product_accordion.php:557
1549
+ #: includes/addons/product_curvy.php:648 includes/addons/product_curvy.php:662
1550
+ #: includes/addons/product_image_accordion.php:479
1551
+ msgid "Empty Rating Color"
1552
  msgstr ""
1553
 
1554
+ #: includes/admin/include/admin-setting.php:1402
1555
+ msg