PluginProbe
Yatra – Travel Booking & Tour Operator Software / 2.0.10
Yatra – Travel Booking & Tour Operator Software v2.0.10
3.0.14 3.0.14.1 3.0.14.2 3.0.12 3.0.13 3.0.11 3.0.10 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.5.1 3.0.4 3.0.3 3.0.2.9 3.0.2.7 3.0.2.8 3.0.2.6 trunk 1.0.0 2.0.0 2.0.1 2.0.10 2.0.11 All 82 releases
yatra / includes / admin / class-yatra-admin.php

class-yatra-admin.php in Yatra – Travel Booking & Tour Operator Software 2.0.10, at includes/admin/class-yatra-admin.php

183 lines 4.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Yatra admin setup
4 *
5 * @package Yatra
6 * @since 1.0.0
7 */
8
9 defined('ABSPATH') || exit;
10
11 /**
12 * Main Yatra_Admin Class.
13 *
14 * @class Yatra
15 */
16 final class Yatra_Admin
17 {
18
19 /**
20 * The single instance of the class.
21 *
22 * @var Yatra_Admin
23 * @since 1.0.0
24 */
25 protected static $_instance = null;
26
27
28 /**
29 * Main Yatra_Admin Instance.
30 *
31 * Ensures only one instance of Yatra_Admin is loaded or can be loaded.
32 *
33 * @return Yatra_Admin - Main instance.
34 * @since 1.0.0
35 * @static
36 */
37 public static function instance()
38 {
39 if (is_null(self::$_instance)) {
40 self::$_instance = new self();
41 }
42 return self::$_instance;
43 }
44
45
46 /**
47 * Yatra Constructor.
48 */
49 public function __construct()
50 {
51 $this->includes();
52 $this->init_hooks();
53 }
54
55 /**
56 * Hook into actions and filters.
57 *
58 * @since 1.0.0
59 */
60 private function init_hooks()
61 {
62
63 add_action('admin_menu', array($this, 'admin_menu'));
64 add_action('init', array($this, 'setup_wizard'));
65 add_action('admin_init', array($this, 'admin_redirects'));
66
67 }
68
69 public function admin_redirects()
70 {
71
72 if (!get_transient('_yatra_activation_redirect')) {
73 return;
74 }
75
76 delete_transient('_yatra_activation_redirect');
77
78 if ((!empty($_GET['page']) && in_array($_GET['page'], array('yatra-setup'))) || is_network_admin() || isset($_GET['activate-multi']) || !current_user_can('manage_options')) {
79 return;
80 }
81
82 // If it's the first time
83 if (get_option('yatra_setup_wizard_ran') != '1') {
84 wp_safe_redirect(admin_url('index.php?page=yatra-setup'));
85 exit;
86
87 // Otherwise, the welcome page
88 } else {
89 wp_safe_redirect(admin_url('edit.php?post_type=tour'));
90 exit;
91 }
92 }
93
94 /**
95 * Include required files
96 *
97 * @return void
98 */
99 public function setup_wizard()
100 {
101 // Setup/welcome
102 if (!empty($_GET['page'])) {
103
104 if ('yatra-setup' == $_GET['page']) {
105 include_once YATRA_ABSPATH . 'includes/admin/setup/class-yatra-setup-wizard.php';
106 }
107 }
108 }
109
110 function admin_menu()
111 {
112 $settings_page = add_submenu_page(
113 'edit.php?post_type=tour',
114 'Settings',
115 'Settings',
116 'manage_options',
117 'yatra-settings',
118 array($this, 'settings')
119 );
120 add_action('load-' . $settings_page, array($this, 'settings_page_init'));
121 }
122
123 public function settings()
124 {
125 Yatra_Admin_Settings::output();
126
127
128 }
129
130 public function settings_page_init()
131 {
132 global $current_tab, $current_section;
133
134 // Include settings pages.
135 Yatra_Admin_Settings::get_settings_pages();
136
137 // Get current tab/section.
138 $current_tab = empty($_GET['tab']) ? 'general' : sanitize_title(wp_unslash($_GET['tab'])); // WPCS: input var okay, CSRF ok.
139 $current_section = empty($_REQUEST['section']) ? '' : sanitize_title(wp_unslash($_REQUEST['section'])); // WPCS: input var okay, CSRF ok.
140
141 // Save settings if data has been posted.
142 if ('' !== $current_section && apply_filters("yatra_save_settings_{$current_tab}_{$current_section}", !empty($_POST['save']))) { // WPCS: input var okay, CSRF ok.
143 Yatra_Admin_Settings::save();
144 } elseif ('' === $current_section && apply_filters("yatra_save_settings_{$current_tab}", !empty($_POST['save']))) { // WPCS: input var okay, CSRF ok.
145 Yatra_Admin_Settings::save();
146 }
147
148 // Add any posted messages.
149 if (!empty($_GET['yatra_error'])) { // WPCS: input var okay, CSRF ok.
150 Yatra_Admin_Settings::add_error(wp_kses_post(wp_unslash($_GET['yatra_error']))); // WPCS: input var okay, CSRF ok.
151 }
152
153 if (!empty($_GET['yatra_message'])) { // WPCS: input var okay, CSRF ok.
154 Yatra_Admin_Settings::add_message(wp_kses_post(wp_unslash($_GET['yatra_message']))); // WPCS: input var okay, CSRF ok.
155 }
156
157 do_action('yatra_settings_page_init');
158
159
160 }
161
162
163 /**
164 * Include required core files used in admin.
165 */
166 public function includes()
167 {
168 include_once YATRA_ABSPATH . 'includes/classes/class-yatra-core-exporter.php';
169 include_once YATRA_ABSPATH . 'includes/classes/class-yatra-core-importer.php';
170 include_once YATRA_ABSPATH . 'includes/admin/yatra-admin-functions.php';
171 include_once YATRA_ABSPATH . 'includes/admin/dashboard/class-mantrabrain-admin-dashboard.php';
172 include_once YATRA_ABSPATH . 'includes/admin/class-yatra-admin-form-handler.php';
173 include_once YATRA_ABSPATH . 'includes/admin/class-yatra-admin-export-import.php';
174 include_once YATRA_ABSPATH . 'includes/admin/class-yatra-admin-assets.php';
175 include_once YATRA_ABSPATH . 'includes/admin/class-yatra-admin-post-types.php';
176 include_once YATRA_ABSPATH . 'includes/admin/class-yatra-admin-permalinks.php';
177
178
179 }
180
181
182 }
183