Cherry Services List - Version 1.4.3

Version Description

Download this release

Release Info

Developer TemplateMonster 2002
Plugin Icon 128x128 Cherry Services List
Version 1.4.3
Comparing to
See all releases

Code changes from version 1.4.2 to 1.4.3

cherry-framework/cherry-core.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * Class Cherry Core
4
- * Version: 1.5.4
5
  *
6
  * @package Cherry_Framework
7
  * @subpackage Class
1
  <?php
2
  /**
3
  * Class Cherry Core
4
+ * Version: 1.5.4.1
5
  *
6
  * @package Cherry_Framework
7
  * @subpackage Class
cherry-framework/modules/cherry-customizer/cherry-customizer.php CHANGED
@@ -988,7 +988,7 @@ if ( ! class_exists( 'Cherry_Customizer' ) ) {
988
  public function file_exists( $file ) {
989
 
990
  if ( ! function_exists( 'WP_Filesystem' ) ) {
991
- include_once( ABSPATH . '/wp-admin/includes/file.php' );
992
  }
993
 
994
  WP_Filesystem();
@@ -1013,7 +1013,7 @@ if ( ! class_exists( 'Cherry_Customizer' ) ) {
1013
  public function get_file( $file ) {
1014
 
1015
  if ( ! function_exists( 'WP_Filesystem' ) ) {
1016
- include_once( ABSPATH . '/wp-admin/includes/file.php' );
1017
  }
1018
 
1019
  WP_Filesystem();
988
  public function file_exists( $file ) {
989
 
990
  if ( ! function_exists( 'WP_Filesystem' ) ) {
991
+ return file_exists( $file );
992
  }
993
 
994
  WP_Filesystem();
1013
  public function get_file( $file ) {
1014
 
1015
  if ( ! function_exists( 'WP_Filesystem' ) ) {
1016
+ return Cherry_Toolkit::get_file( $file );
1017
  }
1018
 
1019
  WP_Filesystem();
cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-repeater/assets/min/ui-repeater.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"use strict";t.utilites.namespace("ui_elements.repeater"),t.ui_elements.repeater={repeaterContainerClass:".cherry-ui-repeater-container",repeaterListClass:".cherry-ui-repeater-list",repeaterItemClass:".cherry-ui-repeater-item",repeaterItemHandleClass:".cherry-ui-repeater-actions-box",repeaterTitleClass:".cherry-ui-repeater-title",addItemButtonClass:".cherry-ui-repeater-add",removeItemButtonClass:".cherry-ui-repeater-remove",toggleItemButtonClass:".cherry-ui-repeater-toggle",minItemClass:"cherry-ui-repeater-min",sortablePlaceholderClass:"sortable-placeholder",init:function(){e(document).on("ready",this.addEvents.bind(this))},addEvents:function(){e("body").on("click",this.addItemButtonClass,{self:this},this.addItem).on("click",this.removeItemButtonClass,{self:this},this.removeItem).on("click",this.toggleItemButtonClass,{self:this},this.toggleItem).on("change",this.repeaterListClass+" input, "+this.repeaterListClass+" textarea, "+this.repeaterListClass+" select",{self:this},this.changeWrapperLable).on("sortable-init",{self:this},this.sortableItem),e(document).on("cherry-ui-elements-init",{self:this},this.sortableItem),this.triggers()},triggers:function(t){return e("body").trigger("sortable-init"),t&&e(document).trigger("cherry-ui-elements-init",{target:t}),this},addItem:function(t){var s=t.data.self,a=e(this).prev(s.repeaterListClass),r=a.data("index"),i=a.data("name"),l=wp.template(i),n=a.data("widget-id"),o={index:r};n="__i__"!==n?n:a.attr("id"),n&&(o.widgetId=n),a.append(l(o)),r++,a.data("index",r),s.triggers(e(s.repeaterItemClass+":last",a)).stopDefaultEvent(t)},removeItem:function(t){var s=t.data.self,a=e(this).closest(s.repeaterListClass);s.applyChanges(a),e(this).closest(s.repeaterItemClass).remove(),s.triggers().stopDefaultEvent(t)},toggleItem:function(t){var s=t.data.self,a=e(this).closest(s.repeaterItemClass);a.toggleClass(s.minItemClass),s.stopDefaultEvent(t)},sortableItem:function(t){var s,a,r=t.data.self,i=e(r.repeaterListClass);i.each(function(t,i){s=e(i),a=e(i).data("sortable-init"),s.sortable(a?"refresh":{items:r.repeaterItemClass,handle:r.repeaterItemHandleClass,cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,placeholder:r.sortablePlaceholderClass,create:function(){s.data("sortable-init",!0)},update:function(t){var s=e(t.target);r.applyChanges(s)}})})},changeWrapperLable:function(t){var s,a,r=t.data.self,i=e(r.repeaterListClass),l=i.data("title-field"),n=e(this);l&&n.closest("."+l+"-wrap")[0]&&(s=n.val(),a=n.closest(r.repeaterItemClass),e(r.repeaterTitleClass,a).html(s)),r.stopDefaultEvent(t)},applyChanges:function(t){return void 0!==wp.customize&&e("input[name]:first, select[name]:first",t).change(),this},stopDefaultEvent:function(e){return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),this}},t.ui_elements.repeater.init()}(jQuery,window.CherryJsCore);
1
+ !function(e,t){"use strict";t.utilites.namespace("ui_elements.repeater"),t.ui_elements.repeater={repeaterContainerClass:".cherry-ui-repeater-container",repeaterListClass:".cherry-ui-repeater-list",repeaterItemClass:".cherry-ui-repeater-item",repeaterItemHandleClass:".cherry-ui-repeater-actions-box",repeaterTitleClass:".cherry-ui-repeater-title",addItemButtonClass:".cherry-ui-repeater-add",removeItemButtonClass:".cherry-ui-repeater-remove",toggleItemButtonClass:".cherry-ui-repeater-toggle",minItemClass:"cherry-ui-repeater-min",sortablePlaceholderClass:"sortable-placeholder",init:function(){e(document).on("ready",this.addEvents.bind(this))},addEvents:function(){e("body").on("click",this.addItemButtonClass,{self:this},this.addItem).on("click",this.removeItemButtonClass,{self:this},this.removeItem).on("click",this.toggleItemButtonClass,{self:this},this.toggleItem).on("change",this.repeaterListClass+" input, "+this.repeaterListClass+" textarea, "+this.repeaterListClass+" select",{self:this},this.changeWrapperLable).on("sortable-init",{self:this},this.sortableItem),e(document).on("cherry-ui-elements-init",{self:this},this.sortableItem),this.triggers()},triggers:function(t){return e("body").trigger("sortable-init"),t&&e(document).trigger("cherry-ui-elements-init",{target:t}),this},addItem:function(t){var r=t.data.self,a=e(this).prev(r.repeaterListClass),s=a.data("index"),i=a.data("name"),n=wp.template(i),l=a.data("widget-id"),o={index:s};(l="__i__"!==l?l:a.attr("id"))&&(o.widgetId=l),a.append(n(o)),s++,a.data("index",s),r.triggers(e(r.repeaterItemClass+":last",a)).stopDefaultEvent(t)},removeItem:function(t){var r=t.data.self,a=e(this).closest(r.repeaterListClass);r.applyChanges(a),e(this).closest(r.repeaterItemClass).remove(),r.triggers().stopDefaultEvent(t)},toggleItem:function(t){var r=t.data.self;e(this).closest(r.repeaterItemClass).toggleClass(r.minItemClass),r.stopDefaultEvent(t)},sortableItem:function(t){var r,a,s=t.data.self;e(s.repeaterListClass).each(function(t,i){r=e(i),(a=e(i).data("sortable-init"))?r.sortable("refresh"):r.sortable({items:s.repeaterItemClass,handle:s.repeaterItemHandleClass,cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,distance:2,tolerance:"pointer",helper:function(e,t){return t.clone().find(":input").attr("name",function(e,t){return"sort_"+parseInt(1e5*Math.random(),10).toString()+"_"+t}).end()},opacity:.65,placeholder:s.sortablePlaceholderClass,create:function(){r.data("sortable-init",!0)},update:function(t){var r=e(t.target);s.applyChanges(r)}})})},changeWrapperLable:function(t){var r,a,s=t.data.self,i=e(s.repeaterListClass).data("title-field"),n=e(this);i&&n.closest("."+i+"-wrap")[0]&&(r=n.val(),a=n.closest(s.repeaterItemClass),e(s.repeaterTitleClass,a).html(r)),s.stopDefaultEvent(t)},applyChanges:function(t){return void 0!==wp.customize&&e("input[name]:first, select[name]:first",t).change(),this},stopDefaultEvent:function(e){return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),this}},t.ui_elements.repeater.init()}(jQuery,window.CherryJsCore);
cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-repeater/assets/ui-repeater.js CHANGED
@@ -118,7 +118,16 @@
118
  scrollSensitivity: 40,
119
  forcePlaceholderSize: true,
120
  forceHelperSize: false,
121
- helper: 'clone',
 
 
 
 
 
 
 
 
 
122
  opacity: 0.65,
123
  placeholder: self.sortablePlaceholderClass,
124
  create: function() {
118
  scrollSensitivity: 40,
119
  forcePlaceholderSize: true,
120
  forceHelperSize: false,
121
+ distance: 2,
122
+ tolerance: 'pointer',
123
+ helper: function( event, element ) {
124
+ return element.clone()
125
+ .find( ':input' )
126
+ .attr( 'name', function( i, currentName ) {
127
+ return 'sort_' + parseInt( Math.random() * 100000, 10 ).toString() + '_' + currentName;
128
+ } )
129
+ .end();
130
+ },
131
  opacity: 0.65,
132
  placeholder: self.sortablePlaceholderClass,
133
  create: function() {
cherry-services-list.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Cherry Services List
4
  * Plugin URI:
5
  * Description: Cherry Services is a flexible WordPress plugin that lets you display your company’s services in a variety of ways.
6
- * Version: 1.4.2
7
  * Author: JetImpex
8
  * Author URI: https://jetimpex.com/wordpress/
9
  * Text Domain: cherry-services
@@ -92,7 +92,7 @@ if ( ! class_exists( 'Cherry_Services_List' ) ) {
92
  * @access private
93
  * @var string
94
  */
95
- private $version = '1.4.2';
96
 
97
  /**
98
  * Plugin CPT name
3
  * Plugin Name: Cherry Services List
4
  * Plugin URI:
5
  * Description: Cherry Services is a flexible WordPress plugin that lets you display your company’s services in a variety of ways.
6
+ * Version: 1.4.3
7
  * Author: JetImpex
8
  * Author URI: https://jetimpex.com/wordpress/
9
  * Text Domain: cherry-services
92
  * @access private
93
  * @var string
94
  */
95
+ private $version = '1.4.3';
96
 
97
  /**
98
  * Plugin CPT name
public/assets/js/cherry-services.js CHANGED
@@ -2,8 +2,7 @@
2
 
3
  "use strict";
4
 
5
- CherryJsCore.utilites.namespace( 'servicesListPublic' );
6
- CherryJsCore.servicesListPublic = {
7
 
8
  settings: {
9
  selectors: {
@@ -24,7 +23,13 @@
24
  templates: {
25
  loaderLarge: '<div class="services-loader loader-large">' + window.cherryServices.loader + '</div>',
26
  loaderSmall: '<div class="services-loader loader-small">' + window.cherryServices.loader + '</div>',
 
 
 
 
 
27
  }
 
28
  },
29
 
30
  init: function () {
@@ -42,14 +47,41 @@
42
 
43
  render: function ( self ) {
44
 
45
- var self = self;
46
-
47
  $( self.settings.selectors.main ).each( function() {
48
- self.initFilters( $( this ), self );
49
- self.initLoadMore( $( this ), self );
50
- self.initPager( $( this ), self );
51
  } );
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  },
54
 
55
  addLoader: function( $container, isMore ) {
@@ -73,14 +105,20 @@
73
  $container.find( this.settings.selectors.loader ).remove();
74
  },
75
 
76
- initFilters: function( $item, self ) {
 
 
 
 
 
 
77
 
78
- var $filter = $item.find( self.settings.selectors.filter ),
79
- $result = $item.find( self.settings.selectors.result ),
80
- $container = $item.find( self.settings.selectors.container ),
81
  data = new Object();
82
 
83
- $filter.on( 'click', self.settings.selectors.filterLink, function( event ) {
84
 
85
  var $this = $( this ),
86
  $parent = $this.parent();
@@ -94,10 +132,10 @@
94
  data.cat = $this.data( 'term' );
95
  data.atts = $container.data( 'atts' );
96
  data.cats = $container.data( 'cat' );
97
- data.action = self.settings.actions.filter;
98
 
99
  $parent.addClass( 'active' ).siblings().removeClass( 'active' );
100
- self.addLoader( $container, false );
101
 
102
  $.ajax({
103
  url: window.cherryServices.ajaxurl,
@@ -105,25 +143,25 @@
105
  dataType: 'json',
106
  data: data,
107
  error: function() {
108
- self.removeLoader( $container, false );
109
  }
110
  }).done( function( response ) {
111
- self.removeLoader( $container, false );
112
  $result.html( response.data.result );
113
  $container.data( 'atts', response.data.atts );
114
  $container.data( 'page', 1 );
115
  $container.data( 'pages', response.data.pages );
116
 
117
- if ( 1 < response.data.pages && $( self.settings.selectors.loadMore, $item ).length ) {
118
- $( self.settings.selectors.loadMore, $item ).removeClass( 'btn-hidden' );
119
  }
120
 
121
- if ( 1 == response.data.pages && $( self.settings.selectors.loadMore, $item ).length ) {
122
- $( self.settings.selectors.loadMore, $item ).addClass( 'btn-hidden' );
123
  }
124
 
125
- if ( $( self.settings.selectors.pager, $item ).length ) {
126
- $( self.settings.selectors.pager, $item ).remove();
127
  }
128
 
129
  $container.append( response.data.pager );
@@ -132,13 +170,19 @@
132
  });
133
  },
134
 
135
- initLoadMore: function( $item, self ) {
136
 
137
- $item.on( 'click', self.settings.selectors.loadMore, function( event ) {
 
 
 
 
 
 
138
 
139
  var $this = $( this ),
140
- $result = $item.find( self.settings.selectors.result ),
141
- $container = $item.find( self.settings.selectors.container ),
142
  pages = $container.data( 'pages' ),
143
  data = new Object();
144
 
@@ -146,9 +190,9 @@
146
 
147
  data.page = $container.data( 'page' );
148
  data.atts = $container.data( 'atts' );
149
- data.action = self.settings.actions.more;
150
 
151
- self.addLoader( $container, true );
152
 
153
  $.ajax({
154
  url: window.cherryServices.ajaxurl,
@@ -156,10 +200,10 @@
156
  dataType: 'json',
157
  data: data,
158
  error: function() {
159
- self.removeLoader( $container, true );
160
  }
161
  }).done( function( response ) {
162
- self.removeLoader( $container, true );
163
  $result.append( response.data.result );
164
  $container.data( 'page', response.data.page );
165
 
@@ -173,13 +217,19 @@
173
 
174
  },
175
 
176
- initPager: function( $item, self ) {
 
 
 
 
 
 
177
 
178
- $item.on( 'click', self.settings.selectors.pager + ' a.page-numbers', function( event ) {
179
 
180
  var $this = $( this ),
181
- $result = $item.find( self.settings.selectors.result ),
182
- $container = $item.find( self.settings.selectors.container ),
183
  pages = $container.data( 'pages' ),
184
  data = new Object();
185
 
@@ -187,9 +237,9 @@
187
 
188
  data.page = $this.data( 'page' );
189
  data.atts = $container.data( 'atts' );
190
- data.action = self.settings.actions.pager;
191
 
192
- self.addLoader( $container, false );
193
 
194
  $this.addClass( 'current' ).siblings().removeClass( 'current' );
195
 
@@ -199,11 +249,11 @@
199
  dataType: 'json',
200
  data: data,
201
  error: function() {
202
- self.removeLoader( $container, false );
203
  }
204
  }).done( function( response ) {
205
 
206
- self.removeLoader( $container, false );
207
  $result.html( response.data.result );
208
  $container.data( 'page', response.data.page );
209
 
@@ -215,6 +265,6 @@
215
 
216
  }
217
 
218
- CherryJsCore.servicesListPublic.init();
219
 
220
  }( jQuery ) );
2
 
3
  "use strict";
4
 
5
+ var servicesListPublic = {
 
6
 
7
  settings: {
8
  selectors: {
23
  templates: {
24
  loaderLarge: '<div class="services-loader loader-large">' + window.cherryServices.loader + '</div>',
25
  loaderSmall: '<div class="services-loader loader-small">' + window.cherryServices.loader + '</div>',
26
+ },
27
+ state: {
28
+ filters: false,
29
+ more: false,
30
+ pager: false
31
  }
32
+
33
  },
34
 
35
  init: function () {
47
 
48
  render: function ( self ) {
49
 
 
 
50
  $( self.settings.selectors.main ).each( function() {
51
+ self.initFilters( $( this ) );
52
+ self.initLoadMore( $( this ) );
53
+ self.initPager( $( this ) );
54
  } );
55
 
56
+ $( window ).on( 'elementor/frontend/init', self.initElementorWidget );
57
+
58
+ },
59
+
60
+ initElementorWidget: function() {
61
+
62
+ window.elementorFrontend.hooks.addAction(
63
+ 'frontend/element_ready/cherry_services.default',
64
+ function( $scope ) {
65
+
66
+ var $container = $scope.find( servicesListPublic.settings.selectors.main );
67
+
68
+ if ( $container.length ) {
69
+
70
+ if ( window.elementorFrontend.isEditMode() ) {
71
+ servicesListPublic.settings.state.filters = false;
72
+ servicesListPublic.settings.state.more = false;
73
+ servicesListPublic.settings.state.pager = false;
74
+ }
75
+
76
+ servicesListPublic.initFilters( $container );
77
+ servicesListPublic.initLoadMore( $container );
78
+ servicesListPublic.initPager( $container );
79
+
80
+ }
81
+
82
+ }
83
+ );
84
+
85
  },
86
 
87
  addLoader: function( $container, isMore ) {
105
  $container.find( this.settings.selectors.loader ).remove();
106
  },
107
 
108
+ initFilters: function( $item ) {
109
+
110
+ if ( false !== servicesListPublic.settings.state.filters ) {
111
+ return;
112
+ }
113
+
114
+ servicesListPublic.settings.state.filters = true;
115
 
116
+ var $filter = $item.find( servicesListPublic.settings.selectors.filter ),
117
+ $result = $item.find( servicesListPublic.settings.selectors.result ),
118
+ $container = $item.find( servicesListPublic.settings.selectors.container ),
119
  data = new Object();
120
 
121
+ $filter.on( 'click', servicesListPublic.settings.selectors.filterLink, function( event ) {
122
 
123
  var $this = $( this ),
124
  $parent = $this.parent();
132
  data.cat = $this.data( 'term' );
133
  data.atts = $container.data( 'atts' );
134
  data.cats = $container.data( 'cat' );
135
+ data.action = servicesListPublic.settings.actions.filter;
136
 
137
  $parent.addClass( 'active' ).siblings().removeClass( 'active' );
138
+ servicesListPublic.addLoader( $container, false );
139
 
140
  $.ajax({
141
  url: window.cherryServices.ajaxurl,
143
  dataType: 'json',
144
  data: data,
145
  error: function() {
146
+ servicesListPublic.removeLoader( $container, false );
147
  }
148
  }).done( function( response ) {
149
+ servicesListPublic.removeLoader( $container, false );
150
  $result.html( response.data.result );
151
  $container.data( 'atts', response.data.atts );
152
  $container.data( 'page', 1 );
153
  $container.data( 'pages', response.data.pages );
154
 
155
+ if ( 1 < response.data.pages && $( servicesListPublic.settings.selectors.loadMore, $item ).length ) {
156
+ $( servicesListPublic.settings.selectors.loadMore, $item ).removeClass( 'btn-hidden' );
157
  }
158
 
159
+ if ( 1 == response.data.pages && $( servicesListPublic.settings.selectors.loadMore, $item ).length ) {
160
+ $( servicesListPublic.settings.selectors.loadMore, $item ).addClass( 'btn-hidden' );
161
  }
162
 
163
+ if ( $( servicesListPublic.settings.selectors.pager, $item ).length ) {
164
+ $( servicesListPublic.settings.selectors.pager, $item ).remove();
165
  }
166
 
167
  $container.append( response.data.pager );
170
  });
171
  },
172
 
173
+ initLoadMore: function( $item ) {
174
 
175
+ if ( false !== servicesListPublic.settings.state.more ) {
176
+ return;
177
+ }
178
+
179
+ servicesListPublic.settings.state.more = true;
180
+
181
+ $item.on( 'click', servicesListPublic.settings.selectors.loadMore, function( event ) {
182
 
183
  var $this = $( this ),
184
+ $result = $item.find( servicesListPublic.settings.selectors.result ),
185
+ $container = $item.find( servicesListPublic.settings.selectors.container ),
186
  pages = $container.data( 'pages' ),
187
  data = new Object();
188
 
190
 
191
  data.page = $container.data( 'page' );
192
  data.atts = $container.data( 'atts' );
193
+ data.action = servicesListPublic.settings.actions.more;
194
 
195
+ servicesListPublic.addLoader( $container, true );
196
 
197
  $.ajax({
198
  url: window.cherryServices.ajaxurl,
200
  dataType: 'json',
201
  data: data,
202
  error: function() {
203
+ servicesListPublic.removeLoader( $container, true );
204
  }
205
  }).done( function( response ) {
206
+ servicesListPublic.removeLoader( $container, true );
207
  $result.append( response.data.result );
208
  $container.data( 'page', response.data.page );
209
 
217
 
218
  },
219
 
220
+ initPager: function( $item ) {
221
+
222
+ if ( false !== servicesListPublic.settings.state.pager ) {
223
+ return;
224
+ }
225
+
226
+ servicesListPublic.settings.state.pager = true;
227
 
228
+ $item.on( 'click', servicesListPublic.settings.selectors.pager + ' a.page-numbers', function( event ) {
229
 
230
  var $this = $( this ),
231
+ $result = $item.find( servicesListPublic.settings.selectors.result ),
232
+ $container = $item.find( servicesListPublic.settings.selectors.container ),
233
  pages = $container.data( 'pages' ),
234
  data = new Object();
235
 
237
 
238
  data.page = $this.data( 'page' );
239
  data.atts = $container.data( 'atts' );
240
+ data.action = servicesListPublic.settings.actions.pager;
241
 
242
+ servicesListPublic.addLoader( $container, false );
243
 
244
  $this.addClass( 'current' ).siblings().removeClass( 'current' );
245
 
249
  dataType: 'json',
250
  data: data,
251
  error: function() {
252
+ servicesListPublic.removeLoader( $container, false );
253
  }
254
  }).done( function( response ) {
255
 
256
+ servicesListPublic.removeLoader( $container, false );
257
  $result.html( response.data.result );
258
  $container.data( 'page', response.data.page );
259
 
265
 
266
  }
267
 
268
+ servicesListPublic.init();
269
 
270
  }( jQuery ) );
public/includes/ext/class-cherry-services-list-elementor-compat.php CHANGED
@@ -53,6 +53,16 @@ if ( ! class_exists( 'Cherry_Services_List_Elementor_Compat' ) ) {
53
 
54
  add_action( 'wp_ajax_elementor_render_widget', array( $this, 'set_elementor_ajax' ), 10, -1 );
55
 
 
 
 
 
 
 
 
 
 
 
56
  }
57
 
58
  /**
53
 
54
  add_action( 'wp_ajax_elementor_render_widget', array( $this, 'set_elementor_ajax' ), 10, -1 );
55
 
56
+ add_action( 'elementor/frontend/before_enqueue_scripts', array( $this, 'assets' ) );
57
+ }
58
+
59
+ /**
60
+ * Ensure that team script correctly enqueued
61
+ *
62
+ * @return void
63
+ */
64
+ public function assets() {
65
+ wp_enqueue_script( 'cherry-services' );
66
  }
67
 
68
  /**
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
 
3
  Contributors: TemplateMonster 2002
4
  Tags: custom post type, services, service, cherry-framework, elementor, elementor builder
5
- Requires at least: 4.5
6
  Tested up to: 4.8.1
7
- Stable tag: 1.4.2
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
2
 
3
  Contributors: TemplateMonster 2002
4
  Tags: custom post type, services, service, cherry-framework, elementor, elementor builder
5
+ Requires at least: 4.7
6
  Tested up to: 4.8.1
7
+ Stable tag: 1.4.3
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10