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

247 lines 11.4 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(menu_page_url('ultp-option-settings', false)) .'">'. 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 (function_exists('ultimate_post_pro')) {
108 if (ultimate_post()->get_setting('ultp_builder') == 'true') {
109 add_submenu_page(
110 'ultp-settings',
111 esc_html__( 'Builder', 'ultimate-post' ),
112 esc_html__( 'Builder', 'ultimate-post' ),
113 'manage_options',
114 'edit.php?post_type=ultp_builder'
115 );
116 }
117 }
118
119 $menu_lists = array(
120 array(
121 'name' => esc_html__( 'Addons', 'ultimate-post' ),
122 'slug' => 'addons'
123 ),
124 array(
125 'name' => esc_html__( 'Blocks', 'ultimate-post' ),
126 'slug' => 'blocks'
127 ),
128 array(
129 'name' => esc_html__( 'Settings', 'ultimate-post' ),
130 'slug' => 'settings'
131 ),
132 array(
133 'name' => esc_html__( 'Tutorials', 'ultimate-post' ),
134 'slug' => 'tutorials'
135 ),
136 );
137 foreach ($menu_lists as $key => $val) {
138 add_submenu_page(
139 'ultp-settings',
140 $val['name'],
141 $val['name'],
142 'manage_options',
143 'ultp-settings#' . $val['slug'],
144 array(__CLASS__, 'render_main')
145 );
146 }
147
148 if (!ultimate_post()->is_lc_active()) {
149 add_submenu_page(
150 'ultp-settings',
151 '',
152 '<span class="dashicons dashicons-star-filled" style="font-size: 17px"></span> ' . esc_html__( 'Go Pro', 'ultimate-post' ),
153 'manage_options',
154 'go_postx_pro',
155 array(self::class, 'handle_external_redirects')
156 );
157 }
158 }
159
160
161 public function handle_external_redirects() {
162 if ( empty( $_GET['page'] ) ) {
163 return;
164 }
165
166 if ( 'go_postx_pro' === $_GET['page'] ) {
167 wp_redirect( esc_url(ultimate_post()->get_premium_link('', 'postx_dashboard_menu')) );
168 die();
169 }
170 }
171
172 public static function tab_page_content() {
173 $current = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
174 if ($current) {
175 $pro_active = ultimate_post()->is_lc_active();
176 echo '<div class="ultp-settings-tab-wrap">';
177 if (!$pro_active) {
178 echo '<div class="ultp-setting-hellobar">';
179 echo '<span class="dashicons dashicons-bell ultp-ring"></span>'.wp_kses(__('Hot summer sale: <strong>up to 30% Off</strong> Unlock all premium features by', 'ultimate-post'),'post').'<a href="'. esc_url(ultimate_post()->get_premium_link('', 'postx_dashboard_hallo')).'">'.esc_html__('Upgrading to Pro ➤', 'ultimate-post').'</a>';
180 echo '</div>';
181 }
182 echo '<div class="ultp-setting-header">';
183 echo '<div class="ultp-setting-logo">';
184 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').'">';
185 echo '<span>v'. esc_html(ULTP_VER).'</span>';
186 echo '</div>';
187 echo '<ul class="ultp-settings-tab">';
188 echo '<li class="current"><a href="#home">'.esc_html__('Getting Started', 'ultimate-post').'</a></li>';
189 echo '<li><a href="#addons">'.esc_html__('Addons', 'ultimate-post').'</a></li>';
190 echo '<li><a href="#blocks">'.esc_html__('Blocks', 'ultimate-post').'</a></li>';
191 if( function_exists('ultimate_post_pro') ) {
192 if ($pro_active && ultimate_post()->get_setting('ultp_builder') != 'false') {
193 echo '<li><a href="'.esc_url(admin_url( 'edit.php?post_type=ultp_builder' )).'">'.esc_html__('Builder', 'ultimate-post').'</a></li>';
194 }
195 }
196 echo '<li><a href="#settings">'.esc_html__('Settings', 'ultimate-post').'</a></li>';
197 if (ultimate_post()->get_setting('ultp_templates') != 'false') {
198 echo '<li><a href="'.esc_url(admin_url( 'edit.php?post_type=ultp_templates' )).'">'.esc_html__('Save Template', 'ultimate-post').'</a></li>';
199 }
200 echo '<li><a href="#tutorials">'.esc_html__('Tutorials', 'ultimate-post').'</a></li>';
201 echo '<li><a class="ultp-upgrade-tab" href="'.esc_url(ultimate_post()->get_premium_link('', 'postx_dashboard_top_menu')).'">'.esc_html__('Upgrade Pro ➤', 'ultimate-post').'</a></li>';
202 echo '</ul>';
203 echo '</div>';
204 echo '<ul class="ultp-settings-content">';
205 echo '<li class="current" data-tab="#home">';
206 require_once ULTP_PATH . 'classes/options/Getting_Started.php';
207 echo '</li>';
208 echo '<li data-tab="#addons">';
209 require_once ULTP_PATH . 'classes/options/Addons.php';
210 new \ULTP\Option_Addons();
211 echo '</li>';
212 echo '<li data-tab="#blocks">';
213 require_once ULTP_PATH . 'classes/options/Blocks.php';
214 new \ULTP\Option_Blocks();
215 echo '</li>';
216 echo '<li data-tab="#settings">';
217 require_once ULTP_PATH . 'classes/options/Settings.php';
218 $obj = new \ULTP\Option_Settings();
219 $obj->create_admin_page();
220 echo '</li>';
221 echo '<li data-tab="#tutorials">';
222 require_once ULTP_PATH . 'classes/options/Tutorials.php';
223 echo '</li>';
224 echo '<ul>';
225 echo '</div>';
226 }
227 }
228 /**
229 * Remove All Notification From Menu Page
230 *
231 * @since v.1.0.0
232 * @return NULL
233 */
234 public static function remove_all_notices() {
235 if ( isset($_GET['page']) ) {
236 $page = sanitize_key($_GET['page']);
237 if ( $page === 'ultp-settings' ||
238 $page === 'ultp-license' ) {
239 remove_all_actions( 'admin_notices' );
240 remove_all_actions( 'all_admin_notices' );
241 }
242 }
243 }
244 }
245
246
247