PluginProbe
Post Grid Gutenberg Blocks – PostX / 2.9.10
Post Grid Gutenberg Blocks – PostX v2.9.10
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.10, at classes/Options.php

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