PluginProbe
Post Grid Gutenberg Blocks – PostX / 4.1.30
Post Grid Gutenberg Blocks – PostX v4.1.30
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 4.1.30, at classes/Options.php

187 lines 8.3 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 defined('ABSPATH') || exit;
10
11 /**
12 * Options class.
13 */
14 class Options {
15
16 /**
17 * Setup class.
18 *
19 * @since v.1.0.0
20 */
21 public function __construct() {
22 add_action( 'admin_init', array( $this, 'handle_external_redirects' ) );
23 add_action( 'admin_menu', array( $this, 'menu_page_callback' ) );
24 add_action( 'in_admin_header', array( $this, 'remove_all_notices' ) );
25 add_filter( 'plugin_action_links_'.ULTP_BASE, array( $this, 'plugin_action_links_callback' ) );
26
27 // add_filter( 'plugin_row_meta', array( $this, 'plugin_settings_meta' ), 10, 2 );
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://wpxpo.com/docs/" 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 $setting_link = array();
58 $setting_link['ultp_starter_sites'] = '<a href="'. esc_url(admin_url('admin.php?page=ultp-settings#startersites')) .'">'. esc_html__('Starter Sites', 'ultimate-post') .'</a>';
59 $setting_link['ultp_docs'] = '<a href="https://wpxpo.com/docs/postx/?utm_source=db-postx-plugin&utm_medium=docs&utm_campaign=postx-dashboard" target="_blank">'.esc_html__('Docs', 'ultimate-post').'</a>';
60 if ( !defined('ULTP_PRO_VER') ) {
61 $setting_link['ultp_pro'] = '<a href="'.esc_url(ultimate_post()->get_premium_link('', 'plugin_dir_pro')).'" target="_blank">'.esc_html__('Get PostX Pro', 'ultimate-post').'</a>';
62
63 }
64 $support_link['ultp_support'] = '<a href="https://www.wpxpo.com/contact/?utm_source=db-postx-plugin&utm_medium=quick-support&utm_campaign=postx-dashboard">'. esc_html__('Quick Support', 'ultimate-post') .'</a>';
65 return array_merge( $setting_link, $links, $support_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 $ultp_menu_icon = 'data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MCA0OC4zIj4NCiAgPGRlZnM+DQogICAgPHN0eWxlPg0KICAgICAgLmNscy0xIHsNCiAgICAgICAgZmlsbDogI2E3YWFhZDsNCiAgICAgIH0NCiAgICA8L3N0eWxlPg0KICA8L2RlZnM+DQogIDx0aXRsZT5Qb3N0eCBJY29uIGNtcHJzc2QgU1ZHPC90aXRsZT4NCiAgPGc+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguODEsOXY4LjlIOC4xOUE2LjE5LDYuMTksMCwwLDAsMiwyMy43N2EzLjE2LDMuMTYsMCwwLDEtMi0yLjk0VjRBMy4xNiwzLjE2LDAsMCwxLDMuMTUuODVIMjBhMy4xOCwzLjE4LDAsMCwxLDMsMi4zMUE2LjIxLDYuMjEsMCwwLDAsMTguODEsOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDUsOVYyM0gzMS4xYTYuMjMsNi4yMywwLDAsMC00LjkzLTQuOTNBNS41NCw1LjU0LDAsMCwwLDI1LDE3Ljk0SDIxLjg1VjlBMy4xNSwzLjE1LDAsMCwxLDIzLjEzLDYuNWEzLjEyLDMuMTIsMCwwLDEsMS40My0uNThsLjA5LDBINDEuODNBMy4xNCwzLjE0LDAsMCwxLDQ1LDlaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC0wLjg1KSIvPg0KICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUwLDI5LjE3VjQ2YTMuMTYsMy4xNiwwLDAsMS0zLjE1LDMuMTVIMzBhMy4xOCwzLjE4LDAsMCwxLTMtMi4zMUE2LjIyLDYuMjIsMCwwLDAsMzEuMjEsNDFWMjZINDYuODVhMy4zLDMuMywwLDAsMSwxLjE0LjIxQTMuMTYsMy4xNiwwLDAsMSw1MCwyOS4xN1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjguMTYsMjQuMTNWNDFhMy4xMywzLjEzLDAsMCwxLTEuMjksMi41NCwzLDMsMCwwLDEtMS40Ny41OGwwLDBIOC4xOUEzLjE1LDMuMTUsMCwwLDEsNSw0MVYyNGEzLjE3LDMuMTcsMCwwLDEsMy4xNS0zSDI1YTMuMTIsMy4xMiwwLDAsMSwxLjE0LjIyLDMuMjQsMy4yNCwwLDAsMSwxLjksMi4xQTMuNjMsMy42MywwLDAsMSwyOC4xNiwyNC4xM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTAuODUpIi8+DQogIDwvZz4NCjwvc3ZnPg0K';
77 $menupage_cap = apply_filters('ultp_menu_page_capability','manage_options');
78 add_menu_page(
79 __( 'PostX', 'ultimate-post' ),
80 __( 'PostX', 'ultimate-post' ),
81 $menupage_cap,
82 'ultp-settings',
83 array(self::class, 'ultp_dashboard'),
84 $ultp_menu_icon,
85 58.5
86 );
87
88 add_submenu_page(
89 'ultp-settings',
90 __( 'PostX Dashboard', 'ultimate-post' ),
91 __( 'Getting Started', 'ultimate-post' ),
92 $menupage_cap,
93 'ultp-settings'
94 );
95
96 $menu_lists = array(
97 'builder' => esc_html__( 'Site Builder', 'ultimate-post' ),
98 'startersites' => esc_html__( 'Starter Sites', 'ultimate-post' ),
99 'blocks' => esc_html__( 'Blocks', 'ultimate-post' ),
100 'integrations' => esc_html__( 'Integrations', 'ultimate-post' ),
101 'license' => esc_html__( 'License', 'ultimate-post' ),
102 'support' => esc_html__( 'Quick Support', 'ultimate-post' )
103 );
104 foreach ( $menu_lists as $key => $val ) {
105 add_submenu_page(
106 'ultp-settings',
107 $val,
108 $val,
109 $menupage_cap,
110 'ultp-settings#' . $key,
111 array(__CLASS__, 'render_main')
112 );
113 }
114 add_submenu_page(
115 'ultp-settings',
116 esc_html__( 'Initial Setup', 'ultimate-post' ),
117 esc_html__( 'Initial Setup', 'ultimate-post' ),
118 $menupage_cap,
119 'ultp-setup-wizard',
120 array(__CLASS__, 'ultp_wizard_page')
121 );
122 if ( !ultimate_post()->is_lc_active() ) {
123 add_submenu_page(
124 'ultp-settings',
125 '',
126 esc_html__( 'Upgrade to Pro', 'ultimate-post' ),
127 $menupage_cap,
128 'go_postx_pro',
129 array(self::class, 'handle_external_redirects')
130 );
131 }
132 add_theme_page(
133 __( 'Starter Sites', 'ultimate-post' ),
134 __( 'Starter Sites', 'ultimate-post' ),
135 $menupage_cap,
136 'ultp-startersites',
137 array(self::class, 'handle_external_redirects')
138 );
139 }
140
141 public function handle_external_redirects() {
142 if ( empty( $_GET['page'] ) ) { // @codingStandardsIgnoreLine
143 return;
144 }
145 $_page = sanitize_key($_GET['page']);
146 if ( 'ultp-startersites' === $_page ) { // @codingStandardsIgnoreLine
147 exit(wp_safe_redirect(admin_url('admin.php?page=ultp-settings#startersites')));
148 } else if ( 'go_postx_pro' === $_page ) { // @codingStandardsIgnoreLine
149 wp_redirect( ultimate_post()->get_premium_link('', 'dashboard_go_pro'));
150 die();
151 }
152 }
153
154 /**
155 * wizard page
156 *
157 * * @since v.2.4.4
158 * @return STRING
159 */
160 public static function ultp_wizard_page() {
161 ?>
162 <div class="ultp-wizard-page-wrap" id="ultp-wizard-page"></div>
163 <?php
164 }
165
166 public static function ultp_dashboard() {
167 echo '<div id="ultp-dashboard"></div>';
168 }
169
170 /**
171 * Remove All Notification From Menu Page
172 *
173 * @since v.1.0.0
174 * @return NULL
175 */
176 public static function remove_all_notices() {
177 if ( isset($_GET['page']) ) { // @codingStandardsIgnoreLine
178 $page = sanitize_key($_GET['page']); // @codingStandardsIgnoreLine
179 if ( $page === 'ultp-settings' ||
180 $page === 'ultp-license' ||
181 $page === 'ultp-setup-wizard' ) {
182 remove_all_actions( 'admin_notices' );
183 remove_all_actions( 'all_admin_notices' );
184 }
185 }
186 }
187 }