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

259 lines 12.1 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/', 'postx_plugins_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('', 'postx_plugins_pro')).'" target="_blank"><span style="color: #e83838; font-weight: bold;">'.esc_html__('Go Pro', 'ultimate-post').'</span></a>'
62 );
63 }
64 $setting_link['ultp_settings'] = '<a href="'. esc_url(admin_url('admin.php?page=ultp-settings#settings')) .'">'. esc_html__('Settings', 'wp-megamenu') .'</a>';
65 return array_merge( $setting_link, $links, $upgrade_link);
66 }
67
68
69 /**
70 * Admin Menu Option Page
71 *
72 * @since v.1.0.0
73 * @return NULL
74 */
75 public static function menu_page_callback() {
76
77 $ultp_menu_icon = 'data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MCA0OC4zIj4NCiAgPGRlZnM+DQogICAgPHN0eWxlPg0KICAgICAgLmNscy0xIHsNCiAgICAgICAgZmlsbDogI2E3YWFhZDsNCiAgICAgIH0NCiAgICA8L3N0eWxlPg0KICA8L2RlZnM+DQogIDx0aXRsZT5Qb3N0eCBJY29uIGNtcHJzc2QgU1ZHPC90aXRsZT4NCiAgPGc+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguODEsOXY4LjlIOC4xOUE2LjE5LDYuMTksMCwwLDAsMiwyMy43N2EzLjE2LDMuMTYsMCwwLDEtMi0yLjk0VjRBMy4xNiwzLjE2LDAsMCwxLDMuMTUuODVIMjBhMy4xOCwzLjE4LDAsMCwxLDMsMi4zMUE2LjIxLDYuMjEsMCwwLDAsMTguODEsOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDUsOVYyM0gzMS4xYTYuMjMsNi4yMywwLDAsMC00LjkzLTQuOTNBNS41NCw1LjU0LDAsMCwwLDI1LDE3Ljk0SDIxLjg1VjlBMy4xNSwzLjE1LDAsMCwxLDIzLjEzLDYuNWEzLjEyLDMuMTIsMCwwLDEsMS40My0uNThsLjA5LDBINDEuODNBMy4xNCwzLjE0LDAsMCwxLDQ1LDlaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC0wLjg1KSIvPg0KICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUwLDI5LjE3VjQ2YTMuMTYsMy4xNiwwLDAsMS0zLjE1LDMuMTVIMzBhMy4xOCwzLjE4LDAsMCwxLTMtMi4zMUE2LjIyLDYuMjIsMCwwLDAsMzEuMjEsNDFWMjZINDYuODVhMy4zLDMuMywwLDAsMSwxLjE0LjIxQTMuMTYsMy4xNiwwLDAsMSw1MCwyOS4xN1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjguMTYsMjQuMTNWNDFhMy4xMywzLjEzLDAsMCwxLTEuMjksMi41NCwzLDMsMCwwLDEtMS40Ny41OGwwLDBIOC4xOUEzLjE1LDMuMTUsMCwwLDEsNSw0MVYyNGEzLjE3LDMuMTcsMCwwLDEsMy4xNS0zSDI1YTMuMTIsMy4xMiwwLDAsMSwxLjE0LjIyLDMuMjQsMy4yNCwwLDAsMSwxLjksMi4xQTMuNjMsMy42MywwLDAsMSwyOC4xNiwyNC4xM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogIDwvZz4NCjwvc3ZnPg0K';
78 add_menu_page(
79 esc_html__( 'PostX', 'ultimate-post' ),
80 esc_html__( 'PostX', 'ultimate-post' ),
81 'manage_options',
82 'ultp-settings',
83 array(self::class, 'tab_page_content'),
84 $ultp_menu_icon,
85 58.5
86 );
87
88 add_submenu_page(
89 'ultp-settings',
90 esc_html__( 'Getting Started', 'ultimate-post' ),
91 esc_html__( 'Getting Started', 'ultimate-post' ),
92 'manage_options',
93 'ultp-settings'
94 );
95
96 if (ultimate_post()->get_setting('ultp_templates') == 'true') {
97 add_submenu_page(
98 'ultp-settings',
99 esc_html__( 'Saved Templates', 'ultimate-post' ),
100 esc_html__( 'Saved Templates', 'ultimate-post' ),
101 'manage_options',
102 'edit.php?post_type=ultp_templates',
103 ''
104 );
105 }
106
107 if (ultimate_post()->get_setting('ultp_builder') == 'true') {
108 add_submenu_page(
109 'ultp-settings',
110 esc_html__( 'Site Builder', 'ultimate-post' ),
111 esc_html__( 'Site Builder', 'ultimate-post' ),
112 'manage_options',
113 'admin.php?page=ultp-settings#builder',
114 ''
115 );
116 }
117
118 $menu_lists = array(
119 array(
120 'name' => esc_html__( 'Template Kits', 'ultimate-post' ),
121 'slug' => 'templatekit'
122 ),
123 array(
124 'name' => esc_html__( 'Addons', 'ultimate-post' ),
125 'slug' => 'addons'
126 ),
127 array(
128 'name' => esc_html__( 'Blocks', 'ultimate-post' ),
129 'slug' => 'blocks'
130 ),
131 array(
132 'name' => esc_html__( 'Settings', 'ultimate-post' ),
133 'slug' => 'settings'
134 ),
135 array(
136 'name' => esc_html__( 'Tutorials', 'ultimate-post' ),
137 'slug' => 'tutorials'
138 ),
139 );
140 foreach ($menu_lists as $key => $val) {
141 add_submenu_page(
142 'ultp-settings',
143 $val['name'],
144 $val['name'],
145 'manage_options',
146 'ultp-settings#' . $val['slug'],
147 array(__CLASS__, 'render_main')
148 );
149 }
150
151 if (!ultimate_post()->is_lc_active()) {
152 add_submenu_page(
153 'ultp-settings',
154 '',
155 '<span class="dashicons dashicons-star-filled" style="font-size: 17px"></span> ' . esc_html__( 'Go Pro', 'ultimate-post' ),
156 'manage_options',
157 'go_postx_pro',
158 array(self::class, 'handle_external_redirects')
159 );
160 }
161 }
162
163
164 public function handle_external_redirects() {
165 if ( empty( $_GET['page'] ) ) {
166 return;
167 }
168
169 if ( 'go_postx_pro' === $_GET['page'] ) {
170 wp_redirect( esc_url(ultimate_post()->get_premium_link('', 'postx_dashboard_menu')) );
171 die();
172 }
173 }
174
175 public static function tab_page_content() {
176 $current = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
177 if ($current) {
178 $pro_active = ultimate_post()->is_lc_active();
179 echo '<div class="ultp-settings-tab-wrap">';
180
181 if (date('U') < strtotime('03-12-2022')) { // Black Friday
182 echo '<div class="ultp-setting-hellobar"><span class="dashicons dashicons-bell ultp-ring"></span><strong> Black Friday Sale: </strong> Up to <b>50% Off.</b> Unlock all premium features - <a href="'.esc_url(ultimate_post()->get_premium_link( 'https://www.wpxpo.com/postx/pricing/', 'dashboard-topbar')).'" target="_blank">'.esc_html__('Get Offer', 'ultimate-post').'</a></div>';
183 } else {
184 if (!$pro_active) {
185 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/', 'dashboard-topbar')).'" target="_blank">'.esc_html__('See what’s new', 'ultimate-post').'</a></div>';
186 }
187 }
188
189 echo '<div class="ultp-setting-header">';
190 echo '<div class="ultp-setting-logo">';
191 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').'">';
192 echo '<span>v'. esc_html(ULTP_VER).'</span>';
193 echo '</div>';
194 echo '<ul class="ultp-settings-tab">';
195 echo '<li class="current"><a href="#home">'.esc_html__('Getting Started', 'ultimate-post').'</a></li>';
196 if (ultimate_post()->get_setting('ultp_templates') != 'false') {
197 echo '<li><a href="'.esc_url(admin_url( 'edit.php?post_type=ultp_templates' )).'">'.esc_html__('Saved Template', 'ultimate-post').'</a></li>';
198 }
199 if (ultimate_post()->get_setting('ultp_builder') != 'false') {
200 echo '<li><a href="#builder">'.esc_html__('Site Builder', 'ultimate-post').'</a></li>';
201 }
202 echo '<li><a href="#templatekit">'.esc_html__('Template kits', 'ultimate-post').'</a></li>';
203 echo '<li><a href="#addons">'.esc_html__('Addons', 'ultimate-post').'</a></li>';
204 echo '<li><a href="#blocks">'.esc_html__('Blocks', 'ultimate-post').'</a></li>';
205 echo '<li><a href="#settings">'.esc_html__('Settings', 'ultimate-post').'</a></li>';
206 echo '<li><a href="#tutorials">'.esc_html__('Tutorials', 'ultimate-post').'</a></li>';
207 echo '</ul>';
208 echo '</div>';
209 echo '<ul class="ultp-settings-content">';
210 echo '<li class="current" data-tab="#home">';
211 require_once ULTP_PATH . 'classes/options/Getting_Started.php';
212 echo '</li>';
213 echo '<li data-tab="#addons">';
214 require_once ULTP_PATH . 'classes/options/Addons.php';
215 new \ULTP\Option_Addons();
216 echo '</li>';
217 echo '<li data-tab="#blocks">';
218 require_once ULTP_PATH . 'classes/options/Blocks.php';
219 new \ULTP\Option_Blocks();
220 echo '</li>';
221 if (ultimate_post()->get_setting('ultp_builder') != 'false') {
222 echo '<li data-tab="#builder">';
223 echo '<div id="ultp-builder-condition"></div>';
224 echo '</li>';
225 }
226 echo '<li data-tab="#templatekit">';
227 echo '<div id="ultp-dashboard-templatekit"></div>';
228 echo '</li>';
229
230 echo '<li data-tab="#settings">';
231 require_once ULTP_PATH . 'classes/options/Settings.php';
232 $obj = new \ULTP\Option_Settings();
233 $obj->create_admin_page();
234 echo '</li>';
235 echo '<li data-tab="#tutorials">';
236 require_once ULTP_PATH . 'classes/options/Tutorials.php';
237 echo '</li>';
238 echo '<ul>';
239 echo '</div>';
240 }
241 }
242
243 /**
244 * Remove All Notification From Menu Page
245 *
246 * @since v.1.0.0
247 * @return NULL
248 */
249 public static function remove_all_notices() {
250 if ( isset($_GET['page']) ) {
251 $page = sanitize_key($_GET['page']);
252 if ( $page === 'ultp-settings' ||
253 $page === 'ultp-license' ) {
254 remove_all_actions( 'admin_notices' );
255 remove_all_actions( 'all_admin_notices' );
256 }
257 }
258 }
259 }