PluginProbe
WP Directory Kit / 1.5.5
WP Directory Kit v1.5.5
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 / admin / class-wpdirectorykit-admin.php

class-wpdirectorykit-admin.php in WP Directory Kit 1.5.5, at admin/class-wpdirectorykit-admin.php

479 lines 17.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * The admin-specific functionality of the plugin.
5 *
6 * @link listing-themes.com
7 * @since 1.0.0
8 *
9 * @package Wpdirectorykit
10 * @subpackage Wpdirectorykit/admin
11 */
12
13 /**
14 * The admin-specific functionality of the plugin.
15 *
16 * Defines the plugin name, version, and two examples hooks for how to
17 * enqueue the admin-specific stylesheet and JavaScript.
18 *
19 * @package Wpdirectorykit
20 * @subpackage Wpdirectorykit/admin
21 * @author listing-themes.com <[email protected]>
22 */
23
24 if (! defined('ABSPATH')) {
25 exit; // Exit if accessed directly.
26 }
27 class Wpdirectorykit_Admin
28 {
29
30 /**
31 * The ID of this plugin.
32 *
33 * @since 1.0.0
34 * @access private
35 * @var string $plugin_name The ID of this plugin.
36 */
37 private $plugin_name;
38
39 /**
40 * The version of this plugin.
41 *
42 * @since 1.0.0
43 * @access private
44 * @var string $version The current version of this plugin.
45 */
46 private $version;
47
48 /**
49 * Initialize the class and set its properties.
50 *
51 * @since 1.0.0
52 * @param string $plugin_name The name of this plugin.
53 * @param string $version The version of this plugin.
54 */
55 public function __construct($plugin_name, $version)
56 {
57
58 $this->plugin_name = $plugin_name;
59 $this->version = $version;
60 }
61
62 /**
63 * Register the stylesheets for the admin area.
64 *
65 * @since 1.0.0
66 */
67 public function enqueue_styles()
68 {
69
70 /**
71 * This function is provided for demonstration purposes only.
72 *
73 * An instance of this class should be passed to the run() function
74 * defined in Wpdirectorykit_Loader as all of the hooks are defined
75 * in that particular class.
76 *
77 * The Wpdirectorykit_Loader will then create the relationship
78 * between the defined hooks and the functions defined in this
79 * class.
80 */
81
82 wp_register_style('wdk-treefield', WPDIRECTORYKIT_URL . 'public/js/wdk_treefield/treefield.css', array(), '1.0.0');
83 wp_register_style('wdk-modal', WPDIRECTORYKIT_URL . 'public/css/wdk-modal.css', array(), $this->version, 'all');
84 wp_register_style('wdk-notify', WPDIRECTORYKIT_URL . 'public/css/wdk-notify.css', array(), $this->version, 'all');
85 wp_register_style('leaflet', WPDIRECTORYKIT_URL . 'public/js/openstreetmap/leaflet.css', array(), '1.7.1', 'all');
86 wp_register_style('leaflet-cluster-def', WPDIRECTORYKIT_URL . 'public/js/openstreetmap/MarkerCluster.Default.css', array(), '1.7.1', 'all');
87 wp_register_style('leaflet-cluster', WPDIRECTORYKIT_URL . 'public/js/openstreetmap/MarkerCluster.css', array(), '1.7.1', 'all');
88
89 wp_register_style('select2-select2', WPDIRECTORYKIT_URL . 'public/js/select2/css/select2.min.css', array(), '4.0.13', 'all');
90 wp_register_style('jquery-confirm', WPDIRECTORYKIT_URL . 'public/js/jquery-confirm/css/jquery-confirm.css', array(), '3.3.4', 'all');
91
92 wp_register_style('wdk-treefield-dropdown', WPDIRECTORYKIT_URL . 'public/js/wdk_treefield_dropdown/wdk_treefield_dropdown.css', array(), '1.0', 'all');
93
94 wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpdirectorykit-admin.css', array(), $this->version, 'all');
95 wp_enqueue_style($this->plugin_name . '-responsive', plugin_dir_url(__FILE__) . 'css/wpdirectorykit-admin-responsive.css', array(), $this->version, 'all');
96 wp_register_style('jquery-ui', WPDIRECTORYKIT_URL . 'public/css/jquery-ui.css', array(), null);
97
98 // Register and enqueue Tribute.js style
99 wp_register_style(
100 'tribute-css',
101 'https://cdn.jsdelivr.net/npm/[email protected]/dist/tribute.css',
102 [],
103 '5.1.3'
104 );
105
106 }
107
108 /**
109 * Register the JavaScript for the admin area.
110 *
111 * @since 1.0.0
112 */
113 public function enqueue_scripts()
114 {
115
116 /**
117 * This function is provided for demonstration purposes only.
118 *
119 * An instance of this class should be passed to the run() function
120 * defined in Wpdirectorykit_Loader as all of the hooks are defined
121 * in that particular class.
122 *
123 * The Wpdirectorykit_Loader will then create the relationship
124 * between the defined hooks and the functions defined in this
125 * class.
126 */
127
128
129 // Register and enqueue Tribute.js script
130 wp_register_script(
131 'tribute-js',
132 'https://cdn.jsdelivr.net/npm/[email protected]/dist/tribute.min.js',
133 [],
134 '5.1.3',
135 true
136 );
137
138 wp_register_script('wdk-treefield', WPDIRECTORYKIT_URL . 'public/js/wdk_treefield/treefield.js', array('jquery'), false, false);
139 wp_register_script('wpmediaelement_file', WPDIRECTORYKIT_URL . 'admin/js/jquery.wpmediaelement_file.js', array('jquery'), false, false);
140
141 wp_register_script('wdk-modal', WPDIRECTORYKIT_URL . 'public/js/wdk-modal.js', array('jquery'), $this->version, false);
142 wp_register_script('wdk-notify', WPDIRECTORYKIT_URL . 'public/js/wdk-notify.js', array('jquery'), $this->version, false);
143 wp_register_script('leaflet', WPDIRECTORYKIT_URL . 'public/js/openstreetmap/leaflet.js', array('jquery'), '1.7.1', false);
144
145 wp_register_script('leaflet-cluster', WPDIRECTORYKIT_URL . 'public/js/openstreetmap/leaflet.markercluster.js', array('jquery'), '1.7.1', false);
146
147
148 wp_register_script('select2-select2', WPDIRECTORYKIT_URL . 'public/js/select2/js/select2.min.js', array('jquery'), '4.0.13', false);
149 wp_register_script('wdk-select2', WPDIRECTORYKIT_URL . 'public/js/wdk-select2.js', array('jquery'), '4.0.13', false);
150
151 $params = array(
152 'ajax_url' => admin_url('admin-ajax.php'),
153 'text' => array(
154 'errorLoading' => esc_html__('The results could not be loaded.', 'wpdirectorykit'),
155 'loadingMore' => esc_html__('Loading more results…', 'wpdirectorykit'),
156 'noResults' => esc_html__('No results found', 'wpdirectorykit'),
157 'searching' => esc_html__('Searching…', 'wpdirectorykit'),
158 'removeAllItems' => esc_html__('Remove all items', 'wpdirectorykit'),
159 "read_more"=> esc_html__("Read More", 'wpdirectorykit'),
160 "read_less"=> esc_html__("Read Less", 'wpdirectorykit'),
161 ),
162 'wpApiSettings' => [
163 'root'=> esc_url_raw(rest_url()),
164 'nonce'=> wp_create_nonce('wp_rest'),
165 'wdk_secure_nonce'=> wp_create_nonce('wdk_secure_ajax'),
166 ]
167 );
168 wp_localize_script('wdk-select2', 'wdk_select2_script_parameters', $params);
169
170 wp_register_script('jquery-confirm', WPDIRECTORYKIT_URL . 'public/js/jquery-confirm/js/jquery-confirm.js', array('jquery'), '3.3.4', false);
171 wp_register_script('wdk-dependfields-submitform', WPDIRECTORYKIT_URL . 'public/js/wdk-dependfields-submitform.js', array('jquery'), false, false);
172
173 wp_register_script('wdk-treefield-dropdown', WPDIRECTORYKIT_URL . 'public/js/wdk_treefield_dropdown/wdk_treefield_dropdown.js', array('jquery'), '1.0', false);
174 wp_localize_script('wdk-treefield-dropdown', 'script_parameters', $params);
175 wp_localize_script('wdk-treefield-dropdown', 'wdk_script_parameters', $params);
176
177 wp_register_script('wdk-dependfields-edit', plugin_dir_url(__FILE__) . 'js/wdk-dependfields-edit.js', array('jquery'), $this->version, false);
178 $params = array(
179 'ajax_url' => admin_url('admin-ajax.php'),
180 );
181
182 wp_localize_script('wdk-dependfields-edit', 'script_dependfields_parameters', $params);
183
184 $params = array(
185 'ajax_url' => admin_url('admin-ajax.php'),
186 'format_date' => wdk_convert_date_format_js(get_option('date_format')),
187 'format_datetime' => wdk_convert_date_format_js(get_option('date_format') . ' ' . get_option('time_format')),
188 'format_date_js' => wdk_convert_date_format_jquery(get_option('date_format')),
189 'format_datetime_js' => wdk_convert_date_format_jquery(get_option('date_format') . ' ' . get_option('time_format')),
190 'text' => array(
191 "read_more"=> esc_html__("Read More", 'wpdirectorykit'),
192 "read_less"=> esc_html__("Read Less", 'wpdirectorykit'),
193 ),
194 'wpApiSettings' => [
195 'root'=> esc_url_raw(rest_url()),
196 'nonce'=> wp_create_nonce('wp_rest'),
197 'wdk_secure_nonce'=> wp_create_nonce('wdk_secure_ajax'),
198 ]
199 );
200 wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/wpdirectorykit-admin.js', array('jquery'), $this->version, false);
201 wp_localize_script($this->plugin_name, 'script_parameters', $params);
202 wp_localize_script($this->plugin_name, 'wdk_script_parameters', $params);
203
204 }
205
206 /**
207 * Admin AJAX
208 */
209
210 public function ajax_admin()
211 {
212 global $Winter_MVC_WDK;
213
214 $page = '';
215 $function = '';
216
217 if (isset($_POST['page'])) $page = sanitize_text_field($_POST['page']);
218 if (isset($_POST['function'])) $function = sanitize_text_field($_POST['function']);
219
220 /* protect access only to ajax controller */
221 if($page != 'wdk_frontendajax' && $page != 'wdk_backendajax' && $page != 'wdk_fields') {
222 exit(esc_html__('Access denied','wdk-bookings'));
223 }
224
225
226 $Winter_MVC_WDK->load_controller($page, $function, array());
227 }
228
229 /**
230 * Admin Page Display
231 */
232 public function admin_page_display()
233 {
234 global $Winter_MVC_WDK, $submenu, $menu;
235
236 $page = '';
237 $function = '';
238
239 if (isset($_GET['page'])) $page = sanitize_text_field(wp_unslash($_GET['page']));
240 if (isset($_GET['function'])) $function = sanitize_text_field(wp_unslash($_GET['function']));
241
242 if (substr($function, 0, 1) == '_') {
243 exit(esc_html__('blocked for public', 'wpdirectorykit'));
244 }
245
246 $Winter_MVC_WDK->load_controller($page, $function, array());
247 }
248
249 private function multilingual_register_strings()
250 {
251 if (!function_exists('PLL')) return;
252
253 global $Winter_MVC_WDK;
254 $Winter_MVC_WDK->model('field_m');
255 $Winter_MVC_WDK->model('category_m');
256 $Winter_MVC_WDK->model('location_m');
257
258 $fields = $Winter_MVC_WDK->field_m->get();
259
260 foreach ($fields as $field) {
261 if (!empty($field->field_label))
262 pll_register_string('wpdirectorykit', $field->field_label, 'wdk-fields');
263
264 if (!empty($field->values_list))
265 pll_register_string('wpdirectorykit', $field->values_list, 'wdk-fields');
266
267 if (!empty($field->hint))
268 pll_register_string('wpdirectorykit', $field->hint, 'wdk-fields');
269 }
270
271 $categories = $Winter_MVC_WDK->category_m->get_tree_table();
272
273 foreach ($categories as $category) {
274 pll_register_string('wpdirectorykit', $category->category_title, 'wdk-categories');
275 }
276
277 $locations = $Winter_MVC_WDK->location_m->get_tree_table();
278
279 foreach ($locations as $location) {
280 pll_register_string('wpdirectorykit', $location->location_title, 'wdk-locations');
281 }
282 }
283
284 /**
285 * To add Plugin Menu and Settings page
286 */
287 public function plugin_menu()
288 {
289
290 ob_start();
291
292 $this->multilingual_register_strings();
293
294 //require_once WPDIRECTORYKIT_PATH . 'vendor/boo-settings-helper/class-boo-settings-helper.php';
295
296 add_menu_page(
297 __('Directory Kit', 'wpdirectorykit'),
298 __('Directory Kit', 'wpdirectorykit'),
299 'wdk_listings_manage',
300 'wdk',
301 array($this, 'admin_page_display'),
302 //plugin_dir_url( __FILE__ ) . 'resources/logo.png',
303 'dashicons-category',
304 28
305 );
306
307 add_submenu_page(
308 'wdk',
309 __('Listings', 'wpdirectorykit'),
310 __('Listings', 'wpdirectorykit'),
311 'wdk_listings_manage',
312 'wdk',
313 array($this, 'admin_page_display')
314 );
315
316 add_submenu_page(
317 'wdk',
318 __('Add Listing', 'wpdirectorykit'),
319 __('Add Listing', 'wpdirectorykit'),
320 'wdk_listings_manage',
321 'wdk_listing',
322 array($this, 'admin_page_display')
323 );
324
325 add_submenu_page(
326 'wdk',
327 __('Fields', 'wpdirectorykit'),
328 __('Fields', 'wpdirectorykit'),
329 'wdk_listings_manage',
330 'wdk_fields',
331 array($this, 'admin_page_display')
332 );
333
334 if (get_option('wdk_is_category_enabled', FALSE))
335 add_submenu_page(
336 'wdk',
337 __('Categories', 'wpdirectorykit'),
338 __('Categories', 'wpdirectorykit'),
339 'wdk_listings_manage',
340 'wdk_category',
341 array($this, 'admin_page_display')
342 );
343
344 if (get_option('wdk_is_location_enabled', FALSE))
345 add_submenu_page(
346 'wdk',
347 __('Locations', 'wpdirectorykit'),
348 __('Locations', 'wpdirectorykit'),
349 'wdk_listings_manage',
350 'wdk_location',
351 array($this, 'admin_page_display')
352 );
353
354 add_submenu_page(
355 'wdk',
356 __('Search Form', 'wpdirectorykit'),
357 __('Search Form', 'wpdirectorykit'),
358 'wdk_listings_manage',
359 'wdk_searchform',
360 array($this, 'admin_page_display')
361 );
362
363 add_submenu_page(
364 'wdk',
365 __('Result Card', 'wpdirectorykit'),
366 __('Result Card', 'wpdirectorykit'),
367 'wdk_listings_manage',
368 'wdk_resultitem',
369 array($this, 'admin_page_display')
370 );
371
372 add_submenu_page(
373 'wdk',
374 __('Change Currency', 'wpdirectorykit'),
375 __('Change Currency', 'wpdirectorykit'),
376 'wdk_listings_manage',
377 'wdk_change_currency',
378 array($this, 'admin_page_display')
379 );
380
381 add_submenu_page(
382 'wdk',
383 __('Messages', 'wpdirectorykit'),
384 __('Messages', 'wpdirectorykit'),
385 'wdk_listings_manage',
386 'wdk_messages',
387 array($this, 'admin_page_display')
388 );
389
390 add_submenu_page(
391 'wdk',
392 __('Settings', 'wpdirectorykit'),
393 __('Settings', 'wpdirectorykit'),
394 'wdk_listings_manage',
395 'wdk_settings',
396 array($this, 'admin_page_display')
397 );
398
399 add_submenu_page(
400 'wdk',
401 __('Documentation', 'wpdirectorykit'),
402 __('Documentation', 'wpdirectorykit'),
403 'wdk_listings_manage',
404 'https://wpdirectorykit.com/documentation'
405 );
406
407 //if(!file_exists(WPDIRECTORYKIT_PATH . 'premium_functions.php') || defined('WDK_FS_DISABLE'))
408 //{
409
410 if (!file_exists(WP_PLUGIN_DIR . '/wdk-currency-conversion') || !is_plugin_active('wdk-currency-conversion/wdk-currency-conversion.php'))
411 add_submenu_page(
412 'wdk',
413 __('Currencies Addon', 'wpdirectorykit'),
414 __('Currencies Addon', 'wpdirectorykit'),
415 'wdk_listings_manage',
416 'wdk_addons_currencies',
417 array($this, 'admin_page_display')
418 );
419
420 if (!file_exists(WP_PLUGIN_DIR . '/wdk-membership') || !is_plugin_active('wdk-membership/wdk-membership.php'))
421 add_submenu_page(
422 'wdk',
423 __('Membership Addon', 'wpdirectorykit'),
424 __('Membership Addon', 'wpdirectorykit'),
425 'wdk_listings_manage',
426 'wdk_addons_membership',
427 array($this, 'admin_page_display')
428 );
429
430 if (!file_exists(WP_PLUGIN_DIR . '/wdk-bookings') || !is_plugin_active('wdk-bookings/wdk-bookings.php'))
431 add_submenu_page(
432 'wdk',
433 __('Booking Addon', 'wpdirectorykit'),
434 __('Booking Addon', 'wpdirectorykit'),
435 'wdk_listings_manage',
436 'wdk_addons_bookings',
437 array($this, 'admin_page_display')
438 );
439
440 add_submenu_page(
441 'wdk',
442 __('More Addons', 'wpdirectorykit'),
443 __('More Addons', 'wpdirectorykit'),
444 'wdk_listings_manage',
445 'wdk_addons',
446 array($this, 'admin_page_display')
447 );
448
449 add_submenu_page(
450 'wdk',
451 __('Support Forum', 'wpdirectorykit'),
452 __('Support Forum', 'wpdirectorykit'),
453 'wdk_listings_manage',
454 'https://wordpress.org/support/plugin/wpdirectorykit/'
455 );
456
457 add_submenu_page(
458 'wdk',
459 __('Contact', 'wpdirectorykit'),
460 __('Contact', 'wpdirectorykit'),
461 'wdk_listings_manage',
462 'https://wpdirectorykit.com/contact.html'
463 );
464 //}
465
466 $current_theme = wp_get_theme();
467
468 if (defined('WP_DEBUG') && WP_DEBUG && $current_theme->get('AuthorURI') == 'https://wpdirectorykit.com')
469 add_submenu_page(
470 'tools.php',
471 esc_html__('WDK Demo Import', 'wpdirectorykit'),
472 esc_html__('WDK Demo Import', 'wpdirectorykit'),
473 'wdk_listings_manage',
474 'wdk_demo_import',
475 array($this, 'admin_page_display')
476 );
477 }
478 }
479