PluginProbe
Post Grid Gutenberg Blocks – PostX / 2.9.6
Post Grid Gutenberg Blocks – PostX v2.9.6
5.0.39 5.0.38 5.0.37 5.0.36 5.0.35 5.0.34 5.0.33 5.0.32 5.0.31 5.0.30 5.0.29 5.0.28 5.0.27 5.0.26 5.0.25 5.0.23 5.0.24 5.0.22 5.0.21 5.0.20 5.0.19 5.0.18 5.0.17 2.1.1 2.1.2 All 237 releases
ultimate-post / classes / Options.php

Options.php in Post Grid Gutenberg Blocks – PostX 2.9.6, at classes/Options.php

298 lines 13.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Options Action.
4 *
5 * @package ULTP\Notice
6 * @since v.1.0.0
7 */
8 namespace ULTP;
9
10 defined('ABSPATH') || exit;
11
12 /**
13 * Options class.
14 */
15 class Options{
16
17 /**
18 * Setup class.
19 *
20 * @since v.1.0.0
21 */
22 public function __construct() {
23 add_action( 'admin_init', array( $this, 'handle_external_redirects' ) );
24 add_action( 'admin_menu', array( $this, 'menu_page_callback' ) );
25 add_action( 'in_admin_header', array($this, 'remove_all_notices') );
26 add_filter( 'plugin_row_meta', array( $this, 'plugin_settings_meta' ), 10, 2 );
27 add_filter( 'plugin_action_links_'.ULTP_BASE, array( $this, 'plugin_action_links_callback' ) );
28 }
29
30
31 /**
32 * Plugin Page Menu Add
33 *
34 * @since v.1.0.0
35 * @return ARRAY
36 */
37 public function plugin_settings_meta( $links, $file ) {
38 if (strpos( $file, 'ultimate-post.php' ) !== false ) {
39 $new_links = array(
40 'ultp_docs' => '<a href="https://docs.wpxpo.com/" target="_blank">'.esc_html__('Docs', 'ultimate-post').'</a>',
41 'ultp_tutorial' => '<a href="https://www.youtube.com/watch?v=JZxIflYKOuM&list=PLPidnGLSR4qcAwVwIjMo1OVaqXqjUp_s4" target="_blank">'.esc_html__('Tutorials', 'ultimate-post').'</a>',
42 'ultp_support' => '<a href="'.esc_url(ultimate_post()->get_premium_link( 'https://www.wpxpo.com/contact/', 'plugin_dir_support')).'" target="_blank">'.esc_html__('Support', 'ultimate-post').'</a>'
43 );
44 $links = array_merge( $links, $new_links );
45 }
46 return $links;
47 }
48
49
50 /**
51 * Settings Pro Update Link
52 *
53 * @since v.1.0.0
54 * @return ARRAY
55 */
56 public function plugin_action_links_callback( $links ) {
57 $upgrade_link = array();
58 $setting_link = array();
59 if (!defined('ULTP_PRO_VER')) {
60 $upgrade_link = array(
61 'ultp_pro' => '<a href="'.esc_url(ultimate_post()->get_premium_link('', 'plugin_dir_pro')).'" target="_blank"><span style="color: #e83838; font-weight: bold;">'.esc_html__('Get PostX Pro', 'ultimate-post').'</span></a>'
62 );
63 $notice = ultimate_post()->get_notice_data('plugin');
64 if (count($notice) > 0) {
65 $current_time = date('U');
66 if ($current_time > strtotime($notice['start']) && $current_time < strtotime($notice['end'])) {
67 $upgrade_link['ultp_pro'] = '<a href="'.esc_url(ultimate_post()->get_premium_link('', 'plugin_dir_pro')).'" target="_blank"><span style="color: #e83838; font-weight: bold;">'.$notice['content'].'</span></a>';
68 }
69 }
70 }
71 $setting_link['ultp_settings'] = '<a href="'. esc_url(admin_url('admin.php?page=ultp-settings#settings')) .'">'. esc_html__('Settings', 'ultimate-post') .'</a>';
72 return array_merge( $setting_link, $links, $upgrade_link);
73 }
74
75
76 /**
77 * Admin Menu Option Page
78 *
79 * @since v.1.0.0
80 * @return NULL
81 */
82 public static function menu_page_callback() {
83
84 $ultp_menu_icon = 'data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MCA0OC4zIj4NCiAgPGRlZnM+DQogICAgPHN0eWxlPg0KICAgICAgLmNscy0xIHsNCiAgICAgICAgZmlsbDogI2E3YWFhZDsNCiAgICAgIH0NCiAgICA8L3N0eWxlPg0KICA8L2RlZnM+DQogIDx0aXRsZT5Qb3N0eCBJY29uIGNtcHJzc2QgU1ZHPC90aXRsZT4NCiAgPGc+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguODEsOXY4LjlIOC4xOUE2LjE5LDYuMTksMCwwLDAsMiwyMy43N2EzLjE2LDMuMTYsMCwwLDEtMi0yLjk0VjRBMy4xNiwzLjE2LDAsMCwxLDMuMTUuODVIMjBhMy4xOCwzLjE4LDAsMCwxLDMsMi4zMUE2LjIxLDYuMjEsMCwwLDAsMTguODEsOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDUsOVYyM0gzMS4xYTYuMjMsNi4yMywwLDAsMC00LjkzLTQuOTNBNS41NCw1LjU0LDAsMCwwLDI1LDE3Ljk0SDIxLjg1VjlBMy4xNSwzLjE1LDAsMCwxLDIzLjEzLDYuNWEzLjEyLDMuMTIsMCwwLDEsMS40My0uNThsLjA5LDBINDEuODNBMy4xNCwzLjE0LDAsMCwxLDQ1LDlaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC0wLjg1KSIvPg0KICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUwLDI5LjE3VjQ2YTMuMTYsMy4xNiwwLDAsMS0zLjE1LDMuMTVIMzBhMy4xOCwzLjE4LDAsMCwxLTMtMi4zMUE2LjIyLDYuMjIsMCwwLDAsMzEuMjEsNDFWMjZINDYuODVhMy4zLDMuMywwLDAsMSwxLjE0LjIxQTMuMTYsMy4xNiwwLDAsMSw1MCwyOS4xN1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjguMTYsMjQuMTNWNDFhMy4xMywzLjEzLDAsMCwxLTEuMjksMi41NCwzLDMsMCwwLDEtMS40Ny41OGwwLDBIOC4xOUEzLjE1LDMuMTUsMCwwLDEsNSw0MVYyNGEzLjE3LDMuMTcsMCwwLDEsMy4xNS0zSDI1YTMuMTIsMy4xMiwwLDAsMSwxLjE0LjIyLDMuMjQsMy4yNCwwLDAsMSwxLjksMi4xQTMuNjMsMy42MywwLDAsMSwyOC4xNiwyNC4xM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogIDwvZz4NCjwvc3ZnPg0K';
85 add_menu_page(
86 esc_html__( 'PostX', 'ultimate-post' ),
87 esc_html__( 'PostX', 'ultimate-post' ),
88 'manage_options',
89 'ultp-settings',
90 array(self::class, 'tab_page_content'),
91 $ultp_menu_icon,
92 58.5
93 );
94
95 add_submenu_page(
96 'ultp-settings',
97 esc_html__( 'Getting Started', 'ultimate-post' ),
98 esc_html__( 'Getting Started', 'ultimate-post' ),
99 'manage_options',
100 'ultp-settings'
101 );
102
103 if (ultimate_post()->get_setting('ultp_custom_font') == 'true') {
104 add_submenu_page(
105 'ultp-settings',
106 esc_html__( 'Custom Font', 'ultimate-post' ),
107 esc_html__( 'Custom Font', 'ultimate-post' ),
108 'manage_options',
109 'edit.php?post_type=ultp_custom_font',
110 ''
111 );
112 }
113 if (ultimate_post()->get_setting('ultp_templates') == 'true') {
114 add_submenu_page(
115 'ultp-settings',
116 esc_html__( 'Saved Templates', 'ultimate-post' ),
117 esc_html__( 'Saved Templates', 'ultimate-post' ),
118 'manage_options',
119 'edit.php?post_type=ultp_templates',
120 ''
121 );
122 }
123
124 if (ultimate_post()->get_setting('ultp_builder') == 'true') {
125 add_submenu_page(
126 'ultp-settings',
127 esc_html__( 'Site Builder', 'ultimate-post' ),
128 esc_html__( 'Site Builder', 'ultimate-post' ),
129 'manage_options',
130 'admin.php?page=ultp-settings#builder',
131 ''
132 );
133 }
134
135 $menu_lists = array(
136 array(
137 'name' => esc_html__( 'Template Kits', 'ultimate-post' ),
138 'slug' => 'templatekit'
139 ),
140 array(
141 'name' => esc_html__( 'Addons', 'ultimate-post' ),
142 'slug' => 'addons'
143 ),
144 array(
145 'name' => esc_html__( 'Blocks', 'ultimate-post' ),
146 'slug' => 'blocks'
147 ),
148 array(
149 'name' => esc_html__( 'Settings', 'ultimate-post' ),
150 'slug' => 'settings'
151 ),
152 array(
153 'name' => esc_html__( 'Tutorials', 'ultimate-post' ),
154 'slug' => 'tutorials'
155 ),
156 );
157 foreach ($menu_lists as $key => $val) {
158 add_submenu_page(
159 'ultp-settings',
160 $val['name'],
161 $val['name'],
162 'manage_options',
163 'ultp-settings#' . $val['slug'],
164 array(__CLASS__, 'render_main')
165 );
166 }
167
168 if (!ultimate_post()->is_lc_active()) {
169 add_submenu_page(
170 'ultp-settings',
171 '',
172 '<span class="dashicons dashicons-star-filled" style="font-size: 17px"></span> ' . esc_html__( 'Go Pro', 'ultimate-post' ),
173 'manage_options',
174 'go_postx_pro',
175 array(self::class, 'handle_external_redirects')
176 );
177 }
178
179 if (ultimate_post()->get_setting('init_setup') != 'yes') {
180 add_submenu_page(
181 'ultp-settings',
182 esc_html__('Initital Setup', 'ultimate-post'),
183 esc_html__('Initital Setup', 'ultimate-post'),
184 'manage_options',
185 'ultp-initial-setup-wizard',
186 array(__CLASS__, 'initial_setup')
187 );
188 }
189 }
190
191 /**
192 * Initial Plugin Setting
193 *
194 * * @since v.2.4.4
195 * @return STRING
196 */
197 public static function initial_setup() { ?>
198 <div class="ultp-initial-setting-wrap" id="ultp-initial-setting"></div>
199 <?php }
200
201
202 public function handle_external_redirects() {
203 if ( empty( $_GET['page'] ) ) {
204 return;
205 }
206
207 if ( 'go_postx_pro' === $_GET['page'] ) {
208 wp_redirect( ultimate_post()->get_premium_link('', 'dashboard_go_pro'));
209 die();
210 }
211 }
212
213 public static function tab_page_content() {
214 $current = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
215 if ($current) {
216 $pro_active = ultimate_post()->is_lc_active();
217 $date_condition = date('U') < strtotime('02-6-2023');
218 echo '<div class="ultp-settings-tab-wrap">';
219 if ($date_condition && !$pro_active) {
220 echo '<div class="ultp-setting-hellobar"><span class="dashicons dashicons-bell ultp-ring"></span><strong> WordPress Birthday Offer: </strong>Get Up To <b> 45% OFF</b> on PostX Pro! - <a href="'.esc_url(ultimate_post()->get_premium_link( '', 'menu_topbar')).'" target="_blank">'.esc_html__('GET IT NOW!', 'ultimate-post').'</a></div>';
221 } else {
222 if (!$pro_active) {
223 echo '<div class="ultp-setting-hellobar"><span class="dashicons dashicons-bell ultp-ring"></span><strong> New : </strong> PostX Dynamic Site Builder is Live - <a href="'.esc_url(ultimate_post()->get_premium_link( 'https://www.wpxpo.com/postx-dynamic-site-builder/', 'menu_topbar')).'" target="_blank">'.esc_html__('See what’s new', 'ultimate-post').'</a></div>';
224 }
225 }
226
227 echo '<div class="ultp-setting-header">';
228 echo '<div class="ultp-setting-logo">';
229 echo '<img class="ultp-setting-header-img" loading="lazy" src="'.esc_url(ULTP_URL.'assets/img/logo-option.svg').'" alt="'.esc_html__('PostX', 'ultimate-post').'">';
230 echo '<span>v'. esc_html(ULTP_VER).'</span>';
231 echo '</div>';
232 echo '<ul class="ultp-settings-tab">';
233 echo '<li class="current"><a href="#home">'.esc_html__('Getting Started', 'ultimate-post').'</a></li>';
234 if (ultimate_post()->get_setting('ultp_templates') != 'false') {
235 echo '<li><a href="'.esc_url(admin_url( 'edit.php?post_type=ultp_templates' )).'">'.esc_html__('Saved Template', 'ultimate-post').'</a></li>';
236 }
237 if (ultimate_post()->get_setting('ultp_builder') != 'false') {
238 echo '<li><a href="#builder">'.esc_html__('Site Builder', 'ultimate-post').'</a></li>';
239 }
240 echo '<li><a href="#templatekit">'.esc_html__('Template kits', 'ultimate-post').'</a></li>';
241 echo '<li><a href="#addons">'.esc_html__('Addons', 'ultimate-post').'</a></li>';
242 echo '<li><a href="#blocks">'.esc_html__('Blocks', 'ultimate-post').'</a></li>';
243 echo '<li><a href="#settings">'.esc_html__('Settings', 'ultimate-post').'</a></li>';
244 echo '<li><a href="#tutorials">'.esc_html__('Tutorials', 'ultimate-post').'</a></li>';
245 echo '</ul>';
246 echo '</div>';
247 echo '<ul class="ultp-settings-content">';
248 echo '<li class="current" data-tab="#home">';
249 require_once ULTP_PATH . 'classes/options/Getting_Started.php';
250 echo '</li>';
251 echo '<li data-tab="#addons">';
252 require_once ULTP_PATH . 'classes/options/Addons.php';
253 new \ULTP\Option_Addons();
254 echo '</li>';
255 echo '<li data-tab="#blocks">';
256 require_once ULTP_PATH . 'classes/options/Blocks.php';
257 new \ULTP\Option_Blocks();
258 echo '</li>';
259 if (ultimate_post()->get_setting('ultp_builder') != 'false') {
260 echo '<li data-tab="#builder">';
261 echo '<div id="ultp-builder-condition"></div>';
262 echo '</li>';
263 }
264 echo '<li data-tab="#templatekit">';
265 echo '<div id="ultp-dashboard-templatekit"></div>';
266 echo '</li>';
267
268 echo '<li data-tab="#settings">';
269 require_once ULTP_PATH . 'classes/options/Settings.php';
270 $obj = new \ULTP\Option_Settings();
271 $obj->create_admin_page();
272 echo '</li>';
273 echo '<li data-tab="#tutorials">';
274 require_once ULTP_PATH . 'classes/options/Tutorials.php';
275 echo '</li>';
276 echo '<ul>';
277 echo '</div>';
278 }
279 }
280
281 /**
282 * Remove All Notification From Menu Page
283 *
284 * @since v.1.0.0
285 * @return NULL
286 */
287 public static function remove_all_notices() {
288 if ( isset($_GET['page']) ) {
289 $page = sanitize_key($_GET['page']);
290 if ( $page === 'ultp-settings' ||
291 $page === 'ultp-license' ||
292 $page === 'ultp-initial-setup-wizard' ) {
293 remove_all_actions( 'admin_notices' );
294 remove_all_actions( 'all_admin_notices' );
295 }
296 }
297 }
298 }