PluginProbe
Post Grid Gutenberg Blocks – PostX / 2.9.14
Post Grid Gutenberg Blocks – PostX v2.9.14
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.14, at classes/Options.php

299 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('7-7-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> US Independence Day Sale : </strong> 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 // From 2.9.9
224 echo '<div class="ultp-setting-hellobar"><span class="dashicons dashicons-bell ultp-ring"></span><strong> PostX Dynamic Site Builder : </strong> Save up to 80% of your development time - <a href="'.esc_url(ultimate_post()->get_premium_link( 'https://www.wpxpo.com/postx-dynamic-site-builder/', 'menu_topbar')).'" target="_blank">'.esc_html__('Learn More', 'ultimate-post').'</a></div>';
225 }
226 }
227
228 echo '<div class="ultp-setting-header">';
229 echo '<div class="ultp-setting-logo">';
230 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').'">';
231 echo '<span>v'. esc_html(ULTP_VER).'</span>';
232 echo '</div>';
233 echo '<ul class="ultp-settings-tab">';
234 echo '<li class="current"><a href="#home">'.esc_html__('Getting Started', 'ultimate-post').'</a></li>';
235 if (ultimate_post()->get_setting('ultp_templates') != 'false') {
236 echo '<li><a href="'.esc_url(admin_url( 'edit.php?post_type=ultp_templates' )).'">'.esc_html__('Saved Template', 'ultimate-post').'</a></li>';
237 }
238 if (ultimate_post()->get_setting('ultp_builder') != 'false') {
239 echo '<li><a href="#builder">'.esc_html__('Site Builder', 'ultimate-post').'</a></li>';
240 }
241 echo '<li><a href="#templatekit">'.esc_html__('Template kits', 'ultimate-post').'</a></li>';
242 echo '<li><a href="#addons">'.esc_html__('Addons', 'ultimate-post').'</a></li>';
243 echo '<li><a href="#blocks">'.esc_html__('Blocks', 'ultimate-post').'</a></li>';
244 echo '<li><a href="#settings">'.esc_html__('Settings', 'ultimate-post').'</a></li>';
245 echo '<li><a href="#tutorials">'.esc_html__('Tutorials', 'ultimate-post').'</a></li>';
246 echo '</ul>';
247 echo '</div>';
248 echo '<ul class="ultp-settings-content">';
249 echo '<li class="current" data-tab="#home">';
250 require_once ULTP_PATH . 'classes/options/Getting_Started.php';
251 echo '</li>';
252 echo '<li data-tab="#addons">';
253 require_once ULTP_PATH . 'classes/options/Addons.php';
254 new \ULTP\Option_Addons();
255 echo '</li>';
256 echo '<li data-tab="#blocks">';
257 require_once ULTP_PATH . 'classes/options/Blocks.php';
258 new \ULTP\Option_Blocks();
259 echo '</li>';
260 if (ultimate_post()->get_setting('ultp_builder') != 'false') {
261 echo '<li data-tab="#builder">';
262 echo '<div id="ultp-builder-condition"></div>';
263 echo '</li>';
264 }
265 echo '<li data-tab="#templatekit">';
266 echo '<div id="ultp-dashboard-templatekit"></div>';
267 echo '</li>';
268
269 echo '<li data-tab="#settings">';
270 require_once ULTP_PATH . 'classes/options/Settings.php';
271 $obj = new \ULTP\Option_Settings();
272 $obj->create_admin_page();
273 echo '</li>';
274 echo '<li data-tab="#tutorials">';
275 require_once ULTP_PATH . 'classes/options/Tutorials.php';
276 echo '</li>';
277 echo '<ul>';
278 echo '</div>';
279 }
280 }
281
282 /**
283 * Remove All Notification From Menu Page
284 *
285 * @since v.1.0.0
286 * @return NULL
287 */
288 public static function remove_all_notices() {
289 if ( isset($_GET['page']) ) {
290 $page = sanitize_key($_GET['page']);
291 if ( $page === 'ultp-settings' ||
292 $page === 'ultp-license' ||
293 $page === 'ultp-initial-setup-wizard' ) {
294 remove_all_actions( 'admin_notices' );
295 remove_all_actions( 'all_admin_notices' );
296 }
297 }
298 }
299 }