PluginProbe
WP Directory Kit / 1.5.7
WP Directory Kit v1.5.7
1.5.9 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 trunk 1.1.0 1.1.6 1.1.8 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.8 All 37 releases
wpdirectorykit / public / class-wpdirectorykit-public.php

class-wpdirectorykit-public.php in WP Directory Kit 1.5.7, at public/class-wpdirectorykit-public.php

310 lines 19.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * The public-facing functionality of the plugin.
5 *
6 * @link listing-themes.com
7 * @since 1.0.0
8 *
9 * @package Wpdirectorykit
10 * @subpackage Wpdirectorykit/public
11 */
12
13 /**
14 * The public-facing functionality of the plugin.
15 *
16 * Defines the plugin name, version, and two examples hooks for how to
17 * enqueue the public-facing stylesheet and JavaScript.
18 *
19 * @package Wpdirectorykit
20 * @subpackage Wpdirectorykit/public
21 * @author listing-themes.com <[email protected]>
22 */
23
24 if ( ! defined( 'ABSPATH' ) ) {
25 exit; // Exit if accessed directly.
26 }
27 class Wpdirectorykit_Public {
28
29 /**
30 * The ID of this plugin.
31 *
32 * @since 1.0.0
33 * @access private
34 * @var string $plugin_name The ID of this plugin.
35 */
36 private $plugin_name;
37
38 /**
39 * The version of this plugin.
40 *
41 * @since 1.0.0
42 * @access private
43 * @var string $version The current version of this plugin.
44 */
45 private $version;
46
47 /**
48 * Initialize the class and set its properties.
49 *
50 * @since 1.0.0
51 * @param string $plugin_name The name of the plugin.
52 * @param string $version The version of this plugin.
53 */
54 public function __construct( $plugin_name, $version ) {
55
56 $this->plugin_name = $plugin_name;
57 $this->version = $version;
58
59 }
60
61 /**
62 * Register the stylesheets for the public-facing side of the site.
63 *
64 * @since 1.0.0
65 */
66 public function enqueue_styles() {
67
68 /**
69 * This function is provided for demonstration purposes only.
70 *
71 * An instance of this class should be passed to the run() function
72 * defined in Wpdirectorykit_Loader as all of the hooks are defined
73 * in that particular class.
74 *
75 * The Wpdirectorykit_Loader will then create the relationship
76 * between the defined hooks and the functions defined in this
77 * class.
78 */
79
80 /* load tree dropdown */
81 wp_register_style( 'wdk-listing-carousel', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-carousel.css', array(), $this->version, 'all' );
82 wp_register_style( 'wdk-listing-sliders-carousel', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-sliders-carousel.css', array(), $this->version, 'all' );
83 wp_register_style( 'wdk-listing-sliders-more-grid-images', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-sliders-more-grid-images.css', array(), $this->version, 'all' );
84 wp_register_style( 'wdk-listing-sliders-grid-images', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-sliders-grid-images.css', array(), $this->version, 'all' );
85 wp_register_style( 'wdk-listing-sliders', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-sliders.css', array(), $this->version, 'all' );
86
87 wp_register_style( 'wdk-suggestion', plugin_dir_url( __FILE__ ) . 'js/wdk_suggestion/wdk_suggestion.css', array(), '1.0.0' );
88 wp_register_style( 'wdk-treefield', plugin_dir_url( __FILE__ ) . 'js/wdk_treefield/treefield.css', array(), '1.0.0' );
89 wp_register_style( 'wdk-treefield-checkboxes', plugin_dir_url( __FILE__ ) . 'js/wdk_treefield_checkboxes/wdk_treefield_checkboxes.css', array(), '1.0.0' );
90
91 wp_register_style( 'wdk-element-button', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-element-button.css', array(), $this->version, 'all' );
92 wp_register_style( 'wdk-listing-agent-listings', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-agent-listings.css', array(), $this->version, 'all' );
93 wp_register_style( 'wdk-listing-agent', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-agent.css', array(), $this->version, 'all' );
94 wp_register_style( 'wdk-listings-list', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listings-list.css', array(), $this->version, 'all' );
95 wp_register_style( 'wdk-listing-fields-section', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-fields-section.css', array(), $this->version, 'all' );
96 wp_register_style( 'wdk-listing-slider', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-slider.css', array(), $this->version, 'all' );
97 wp_register_style( 'wdk-locations-carousel', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-locations-carousel.css', array(), $this->version, 'all' );
98 wp_register_style( 'wdk-categories-carousel', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-categories-carousel.css', array(), $this->version, 'all' );
99 wp_register_style( 'wdk-field-files', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-field-files.css', array(), $this->version, 'all' );
100 wp_register_style( 'wdk-field-files-list', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-field-files-list.css', array(), $this->version, 'all' );
101 wp_register_style( 'wdk-field-images', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-field-images.css', array(), $this->version, 'all' );
102 wp_register_style( 'wdk-locations-grid', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-locations-grid.css', array(), $this->version, 'all' );
103 wp_register_style( 'wdk-categories-grid-cover', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-categories-grid-cover.css', array(), $this->version, 'all' );
104 wp_register_style( 'wdk-locations-grid-cover', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-locations-grid-cover.css', array(), $this->version, 'all' );
105 wp_register_style( 'wdk-categories-grid', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-categories-grid.css', array(), $this->version, 'all' );
106 wp_register_style( 'wdk-categories-list', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-categories-list.css', array(), $this->version, 'all' );
107 wp_register_style( 'wdk-locations-tree', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-locations-tree.css', array(), $this->version, 'all' );
108 wp_register_style( 'wdk-categories-tree', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-categories-tree.css', array(), $this->version, 'all' );
109 wp_register_style( 'wdk-categories-tree-top', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-categories-tree-top.css', array(), $this->version, 'all' );
110 wp_register_style( 'wdk-locations-list', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-locations-list.css', array(), $this->version, 'all' );
111 wp_register_style( 'wdk-listings-map', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-map.css', array(), $this->version, 'all' );
112 wp_register_style( 'wdk-listings-carousel', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listings-carousel.css', array(), $this->version, 'all' );
113 wp_register_style( 'wdk-listing-related-listings-table', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-listing-related-listings-table.css', array(), $this->version, 'all' );
114 wp_register_style( 'wdk-search-popup', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-search-popup.css', array(), $this->version, 'all' );
115 wp_register_style( 'wdk-tabs', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-tabs.css', array(), $this->version, 'all' );
116 wp_register_style( 'wdk-language-switcher', WPDIRECTORYKIT_URL. 'elementor-elements/assets/css/widgets/wdk-language-switcher.css', array(), $this->version, 'all' );
117 wp_register_style( 'wdk-notify', plugin_dir_url( __FILE__ ) . 'css/wdk-notify.css', array(), $this->version, 'all' );
118 wp_register_style( 'wdk-modal', plugin_dir_url( __FILE__ ) . 'css/wdk-modal.css', array(), $this->version, 'all' );
119 wp_register_style( 'wdk-hover', plugin_dir_url( __FILE__ ) . 'css/wdk-hover.css', array(), $this->version, 'all' );
120 wp_register_style( 'leaflet', plugin_dir_url( __FILE__ ) . 'js/openstreetmap/leaflet.css', array(), '1.7.1', 'all' );
121 wp_register_style( 'leaflet-cluster-def', plugin_dir_url( __FILE__ ) . 'js/openstreetmap/MarkerCluster.Default.css', array(), '1.7.1', 'all' );
122 wp_register_style( 'leaflet-cluster', plugin_dir_url( __FILE__ ) . 'js/openstreetmap/MarkerCluster.css', array(), '1.7.1', 'all' );
123 wp_register_style( 'leaflet-fullscreen', plugin_dir_url( __FILE__ ) . 'js/openstreetmap/leaflet.fullscreen.css', array(), '1.7.1', 'all' );
124 wp_register_style( 'ion.range-slider', plugin_dir_url( __FILE__ ) . 'js/ion.range-slider/css/ion.range-slider.min.css', array(), '2.3.1', 'all' );
125 wp_register_style( 'wdk-slider-range', plugin_dir_url( __FILE__ ) . 'css/wdk-slider-range.css', array(), '1.0', 'all' );
126 wp_register_style( 'select2-select2', plugin_dir_url( __FILE__ ) . 'js/select2/css/select2.min.css', array(), '4.0.13', 'all' );
127 wp_register_style( 'wdk-treefield-dropdown', plugin_dir_url( __FILE__ ) . 'js/wdk_treefield_dropdown/wdk_treefield_dropdown.css', array(), '1.0', 'all' );
128 wp_register_style( 'leaflet-draw', plugin_dir_url( __FILE__ ) . 'js/leaflet-draw/leaflet.draw.css', array(), '1.0', 'all' );
129
130 wp_register_style('blueimp-gallery', plugin_dir_url( __FILE__ ).'js/blueimp-gallery/css/blueimp-gallery.min.css', array(), '1.8', 'all');
131
132 wp_register_style('slick', plugin_dir_url( __FILE__ ).'js/slick/slick.css', array(), '1.8', 'all');
133 wp_register_style('slick-theme', plugin_dir_url( __FILE__ ).'js/slick/slick-theme.css', array(), '1.8', 'all');
134
135 wp_register_style('jquery-confirm', plugin_dir_url( __FILE__ ).'js/jquery-confirm/css/jquery-confirm.css', array(), '3.3.4', 'all');
136 wp_register_style('wdk-scroll-mobile-swipe', plugin_dir_url( __FILE__ ).'css/wdk-scroll-mobile-swipe.css', array(), '1.0.2', 'all');
137 wp_enqueue_style('wdk-scroll-mobile-swipe');
138
139 wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wpdirectorykit-public.css', array(), $this->version, 'all' );
140 wp_enqueue_style( $this->plugin_name.'-responsive', plugin_dir_url( __FILE__ ) . 'css/wpdirectorykit-public-responsive.css', array(), $this->version, 'all' );
141 wp_enqueue_style( $this->plugin_name.'-conflicts', plugin_dir_url( __FILE__ ) . 'css/wpdirectorykit-public-conflicts.css', array(), $this->version, 'all' );
142
143 if(is_rtl())
144 wp_enqueue_style( $this->plugin_name.'-rtl', plugin_dir_url( __FILE__ ) . 'css/wpdirectorykit-public-rtl.css', array(), $this->version, 'all' );
145
146 global $Winter_MVC_WDK;
147 $Winter_MVC_WDK->model('category_m');
148 $categories = $Winter_MVC_WDK->category_m->get_by(array('(category_color IS NOT NULL AND category_color !="")'=>NULL));
149
150 /* categories colors special */
151 $custom_css = '';
152 foreach ($categories as $category) {
153 /* marker map */
154 $custom_css .= "
155 .wdk-element .wdk-map .wdk_marker-container.category_id_".esc_attr(wmvc_show_data('idcategory', $category),'',TRUE, TRUE)." .wdk_face.front i {
156 color: ".esc_attr(wmvc_show_data('category_color', $category),'',TRUE, TRUE).";
157 }
158 .wdk-element .wdk-map .wdk_marker-container.category_id_".esc_attr(wmvc_show_data('idcategory', $category),'',TRUE, TRUE).":hover .wdk_face.front i {
159 color:#fff;
160 }
161 .wdk-element .wdk-map .wdk_marker-container.category_id_".esc_attr(wmvc_show_data('idcategory', $category),'',TRUE, TRUE)." .wdk_marker-container:hover .wdk_marker-card::after,
162 .wdk-element .wdk-map .wdk_marker-container.category_id_".esc_attr(wmvc_show_data('idcategory', $category),'',TRUE, TRUE)." .wdk_marker-card::before {
163 background: ".esc_attr(wmvc_show_data('category_color', $category),'',TRUE, TRUE).";
164 }
165 ";
166 /* marker map (label) */
167 $custom_css .= "
168 .wdk-element .wdk-map .wdk_marker-container.category_id_".esc_attr(wmvc_show_data('idcategory', $category),'',TRUE, TRUE).".wdk_marker_label:not(.wdk_marker_clear) {
169 border-color: ".esc_attr(wmvc_show_data('category_color', $category),'',TRUE, TRUE).";
170 background: ".esc_attr(wmvc_show_data('category_color', $category),'',TRUE, TRUE).";
171 }
172 ";
173 }
174 wp_add_inline_style( $this->plugin_name, $custom_css);
175
176 }
177
178 /**
179 * Register the JavaScript for the public-facing side of the site.
180 *
181 * @since 1.0.0
182 */
183 public function enqueue_scripts() {
184
185 /**
186 * This function is provided for demonstration purposes only.
187 *
188 * An instance of this class should be passed to the run() function
189 * defined in Wpdirectorykit_Loader as all of the hooks are defined
190 * in that particular class.
191 *
192 * The Wpdirectorykit_Loader will then create the relationship
193 * between the defined hooks and the functions defined in this
194 * class.
195 */
196
197 wp_register_script( 'wdk-dependfields-submitform', plugin_dir_url( __FILE__ ) . 'js/wdk-dependfields-submitform.js', array( 'jquery' ), false, false );
198 wp_register_script( 'wdk-dependfields-search', plugin_dir_url( __FILE__ ) . 'js/wdk-dependfields-search.js', array( 'jquery' ), false, false );
199
200 /* load tree dropdown */
201 wp_register_script( 'wdk-suggestion', plugin_dir_url( __FILE__ ) . 'js/wdk_suggestion/wdk_suggestion.js', array( 'jquery' ), false, false );
202 wp_register_script( 'wdk-treefield', plugin_dir_url( __FILE__ ) . 'js/wdk_treefield/treefield.js', array( 'jquery' ), false, false );
203 wp_register_script( 'wdk-treefield-checkboxes', plugin_dir_url( __FILE__ ) . 'js/wdk_treefield_checkboxes/wdk_treefield_checkboxes.js', array( 'jquery' ), false, false );
204
205 wp_register_script( 'wdk-notify', plugin_dir_url( __FILE__ ) . 'js/wdk-notify.js', array( 'jquery' ), $this->version, false );
206 wp_register_script( 'wdk-modal', plugin_dir_url( __FILE__ ) . 'js/wdk-modal.js', array( 'jquery' ), $this->version, false );
207 wp_register_script( 'leaflet', plugin_dir_url( __FILE__ ) . 'js/openstreetmap/leaflet.js', array( 'jquery' ), '1.7.1', false );
208 wp_register_script( 'leaflet-cluster', plugin_dir_url( __FILE__ ) . 'js/openstreetmap/leaflet.markercluster.js', array( 'jquery' ), '1.7.1', false );
209 wp_register_script( 'leaflet-fullscreen', plugin_dir_url( __FILE__ ) . 'js/openstreetmap/leaflet.fullscreen.js', array( 'jquery' ), '1.7.1', false );
210 wp_register_script('blueimp-gallery', plugin_dir_url( __FILE__ ).'js/blueimp-gallery/js/blueimp-gallery.min.js', array( 'jquery' ), '3.4', false );
211 wp_register_script('wdk-blueimp-gallery', plugin_dir_url( __FILE__ ).'js/wdk-blueimp-gallery.js', array( 'jquery' ), '1.0', false );
212 wp_register_script('wdk-blueimp-slider', plugin_dir_url( __FILE__ ).'js/wdk-blueimp-slider.js', array( 'jquery' ), '1.0', false );
213 wp_register_script('slick', plugin_dir_url( __FILE__ ).'js/slick/slick.min.js', array( 'jquery' ), '1.8', false );
214 wp_register_script('ion.range-slider', plugin_dir_url( __FILE__ ).'js/ion.range-slider/js/ion.range-slider.min.js', array( 'jquery' ), '2.3.1', false );
215 wp_register_script('wdk-slider-range', plugin_dir_url( __FILE__ ).'js/wdk-slider-range.js', array( 'jquery' ), '1.0', false );
216 wp_register_script('select2-select2', plugin_dir_url( __FILE__ ).'js/select2/js/select2.min.js', array( 'jquery' ), '4.0.13', false );
217 wp_register_script('wdk-select2', plugin_dir_url( __FILE__ ).'js/wdk-select2.js', array( 'jquery' ), '4.0.13', false );
218 wp_register_script('leaflet-googlemutant', plugin_dir_url( __FILE__ ).'js/leaflet-gridlayer-googlemutant/leaflet-googlemutant.js', array( 'jquery' ), '4.0.13', false );
219 wp_register_script('wdk-ajax-loading-listings', plugin_dir_url( __FILE__ ).'js/wdk-ajax-loading-listings.js', array( 'jquery' ), '1.0', false );
220 wp_register_script('leaflet-draw', plugin_dir_url( __FILE__ ).'js/leaflet-draw/leaflet.draw.js', array( 'jquery' ), '1.0', false );
221 wp_register_script('wdk-map-rectangle', plugin_dir_url( __FILE__ ).'js/wdk-map-rectangle.js', array( 'jquery', 'leaflet-draw', 'wp-i18n' ), '1.0', false );
222 wp_register_script('wdk-tabs', WPDIRECTORYKIT_URL. 'elementor-elements/assets/js/wdk-tabs.js', array( 'jquery', 'leaflet-draw' ), '1.0', false );
223
224
225 if( wdk_get_option('wdk_experimental_features') && wdk_get_option('wdk_experimental_listing_popup')) {
226 wp_register_script('wdk-popup-listings', plugin_dir_url( __FILE__ ).'js/wdk-popup-listings.js', array( 'jquery', 'jquery-confirm' ), '1.6', false );
227 wp_enqueue_script('wdk-popup-listings');
228 wp_enqueue_style('jquery-confirm');
229 }
230
231 wp_register_script('wdk-treefield-dropdown', plugin_dir_url( __FILE__ ).'js/wdk_treefield_dropdown/wdk_treefield_dropdown.js', array( 'jquery' ), '1.0', false );
232
233 wp_register_script('jquery-confirm', plugin_dir_url( __FILE__ ).'js/jquery-confirm/js/jquery-confirm.js', array( 'jquery' ), '3.3.4', false );
234
235 $params = array(
236 'ajax_url' => admin_url( 'admin-ajax.php' ),
237 'text' =>array(
238 'price' => esc_html__('Price', 'wpdirectorykit'),
239 'total_price' => esc_html__('Total', 'wpdirectorykit'),
240 'loading' => esc_html__('Price loading...', 'wpdirectorykit'),
241 ),
242 );
243 wp_register_script('wdk-booking-calculator-price', plugin_dir_url( __FILE__ ).'js/wdk-booking-calculator-price.js', array( 'jquery' ), '1.0', false );
244 wp_localize_script('wdk-booking-calculator-price', 'wdk_booking_script_parameters', $params);
245
246 wp_deregister_script('wdk-scroll-mobile-swipe');
247 wp_register_script('wdk-scroll-mobile-swipe', plugin_dir_url( __FILE__ ).'js/wdk-scroll-mobile-swipe.js', array( 'jquery' ), '1.1', false );
248 wp_enqueue_script('wdk-scroll-mobile-swipe');
249
250 $params = array(
251 'ajax_url' => admin_url( 'admin-ajax.php' ),
252 'format_date' => wdk_convert_date_format_js(get_option('date_format')),
253 'format_datetime' => wdk_convert_date_format_js(get_option('date_format').' '.get_option('time_format')),
254 'format_date_js' => wdk_convert_date_format_jquery(get_option('date_format')),
255 'format_datetime_js' => wdk_convert_date_format_jquery(get_option('date_format').' '.get_option('time_format')),
256 'settings_wdk_field_search_suggestion_disable' => (wdk_get_option('wdk_field_search_suggestion_disable')) ? 1 : 0,
257 'text' => array(
258 "read_more"=> esc_html__("Read More", 'wpdirectorykit'),
259 "read_less"=> esc_html__("Read Less", 'wpdirectorykit'),
260 ),
261 'wpApiSettings' => [
262 'root'=> esc_url_raw(rest_url()),
263 'nonce'=> wp_create_nonce('wp_rest'),
264 'wdk_secure_nonce'=> wp_create_nonce('wdk_secure_ajax'),
265 ],
266 'fields_data' => wdk_cached_field_get()
267 );
268 wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/wpdirectorykit-public.js', array( 'jquery' ,'wp-i18n'), $this->version, false );
269 wp_localize_script( $this->plugin_name, 'script_parameters', $params);
270 wp_localize_script( $this->plugin_name, 'wdk_script_parameters', $params);
271
272 wp_register_style('jquery-ui', WPDIRECTORYKIT_URL. 'public/css/jquery-ui.css', array(), '1.12.1' );
273
274 $custom_css = '.wdk-image:not(.media):not(.jsplaceholder){background-image: url('.esc_url(wdk_placeholder_image_src()).');background-size: cover;background-position: center; }';
275
276 $params = array(
277 'ajax_url' => admin_url( 'admin-ajax.php' ),
278 'text' =>array(
279 'errorLoading' => esc_html__('The results could not be loaded.', 'wpdirectorykit'),
280 'loadingMore' => esc_html__('Loading more results…', 'wpdirectorykit'),
281 'noResults' => esc_html__('No results found', 'wpdirectorykit'),
282 'searching' => esc_html__('Searching…', 'wpdirectorykit'),
283 'removeAllItems' => esc_html__('Remove all items', 'wpdirectorykit'),
284 ),
285 );
286 wp_localize_script('wdk-select2', 'wdk_select2_script_parameters', $params);
287
288 wp_add_inline_style( $this->plugin_name, $custom_css);
289 }
290
291
292 public function ajax_public()
293 {
294 $page = '';
295 $function = '';
296
297 if(isset($_POST['page']))$page = sanitize_text_field($_POST['page']);
298 if(isset($_POST['function']))$function = sanitize_text_field($_POST['function']);
299
300 /* protect access only to ajax controller */
301 if($page != 'wdk_frontendajax' && $page != 'wdk_backendajax') {
302 exit(esc_html__('Access denied','wdk-bookings'));
303 }
304
305 $WMVC = &wdk_get_instance();
306 $WMVC->load_controller($page, $function, array());
307 }
308
309 }
310