PluginProbe
Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits / 3.1.9
Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits v3.1.9
3.2.2 3.2.3 3.2.1 3.2.0 3.1.9 3.1.8 3.1.7 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.9 trunk 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.3 1.1.4 1.1.5 All 174 releases
master-addons / inc / modules / display / mega-menu / inc / api.php

api.php in Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits 3.1.9, at inc/modules/display/mega-menu/inc/api.php

79 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace MasterAddons\Modules\Display\MegaMenu;
4
5 use MasterAddons\Modules\Display\MegaMenu\Megamenu_Options;
6
7 defined('ABSPATH') || exit;
8
9 class Megamenu_Api
10 {
11
12 use Rest_API;
13
14 private static $_instance = null;
15
16 public function __construct()
17 {
18 $this->config('/megamenu', '', array('get_jltma_save_menuitem_settings', 'get_get_menuitem_settings'));
19 $this->init();
20 }
21
22 public function get_jltma_save_menuitem_settings()
23 {
24 if (!current_user_can('manage_options')) {
25 return;
26 }
27
28 $nonce = isset( $_SERVER['HTTP_X_WP_NONCE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_WP_NONCE'] ) ) : '';
29 if ( ! wp_verify_nonce($nonce, 'wp_rest') ) {
30 wp_send_json_error('Nonce verification failed.', 403);
31 }
32
33 $menu_item_id = $this->request['settings']['menu_id'];
34 $menu_item_settings = json_encode($this->request['settings']);
35
36 update_post_meta($menu_item_id, Megamenu_Options::$jltma_menuitem_settings_key, $menu_item_settings);
37
38 return [
39 'saved' => 1,
40 'message' => esc_html__('Saved', 'master-addons' ),
41 ];
42 }
43
44 public function get_get_menuitem_settings()
45 {
46 // Verify user permissions
47 if (!current_user_can('edit_posts')) {
48 return new \WP_Error(
49 'rest_forbidden',
50 esc_html__('Sorry, you are not allowed to do that.', 'master-addons'),
51 array('status' => 401)
52 );
53 }
54
55 $menu_item_id = $this->request['menu_id'];
56 $data = get_post_meta($menu_item_id, Megamenu_Options::$jltma_menuitem_settings_key, true);
57
58 return (array) json_decode($data);
59 }
60
61
62 public static function get_instance()
63 {
64 if (is_null(self::$_instance)) {
65 self::$_instance = new self();
66 }
67 return self::$_instance;
68 }
69 }
70
71 if (!function_exists('jltma_megamenu_api')) {
72 function jltma_megamenu_api()
73 {
74 return Megamenu_Api::get_instance();
75 }
76 }
77
78 jltma_megamenu_api();
79