PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.2.1
ShopBuilder – WooCommerce Builder For Elementor v3.2.1
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
shopbuilder / app / Controllers / Admin / AdminInit.php

AdminInit.php in ShopBuilder – WooCommerce Builder For Elementor 3.2.1, at app/Controllers/Admin/AdminInit.php

233 lines 5.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Admin Init.
4 *
5 * @package RadiusTheme\SB
6 */
7
8 namespace RadiusTheme\SB\Controllers\Admin;
9
10 defined( 'ABSPATH' ) || exit();
11
12 use RadiusTheme\SB\Helpers\Fns;
13 use RadiusTheme\SB\Traits\SingletonTrait;
14 use RadiusTheme\SB\Controllers\Admin\Ajax as Ajax;
15
16 /**
17 * Admin Init.
18 */
19 class AdminInit {
20 /**
21 * Parent Menu Page Slug
22 */
23 const MENU_PAGE_SLUG = 'rtsb';
24
25 /**
26 * Menu capability
27 */
28 const MENU_CAPABILITY = 'manage_options';
29
30 /**
31 * Parent Menu Hook
32 *
33 * @var string
34 */
35 public static $parent_menu_hook = '';
36
37 use SingletonTrait;
38
39 /**
40 * Class constructor.
41 */
42 public function __construct() {
43 $this->init();
44 $this->ajax_actions();
45 $this->upgrade();
46 }
47
48 /**
49 * Admin Ajax hooks.
50 *
51 * @return void
52 */
53 public function ajax_actions() {
54 Ajax\DefaultTemplate::instance();
55 if ( defined( 'ELEMENTOR_VERSION' ) ) { // Elementor Check.
56 Ajax\CreateTemplate::instance();
57 }
58 Ajax\ModalTemplate::instance();
59 Ajax\AdminSettings::instance();
60 }
61
62 /**
63 * Upgrade Notice.
64 *
65 * @return void
66 */
67 public function upgrade() {
68 Notice\Upgrade::instance();
69 // phpcs:ignore Squiz.PHP.CommentedOutCode.Found
70 // Notice\BFDiscount::instance();.
71 Notice\BlackFridayV2::instance();
72 Notice\Review::instance();
73 }
74
75 /**
76 * Init.
77 *
78 * @return void
79 */
80 public function init() {
81 add_action( 'admin_menu', [ $this, 'add_menu' ], 25 );
82 add_action( 'in_admin_header', [ $this, 'in_admin_header_functionality' ], 1000 );
83 PluginRow::instance();
84 }
85
86 /**
87 * Add menu.
88 *
89 * @return void
90 */
91 public function add_menu() {
92 self::$parent_menu_hook = add_menu_page(
93 esc_html__( 'ShopBuilder', 'shopbuilder' ),
94 esc_html__( 'ShopBuilder', 'shopbuilder' ),
95 self::MENU_CAPABILITY,
96 self::MENU_PAGE_SLUG,
97 null,
98 RTSB_URL . '/assets/images/icon/shopbuilder-logo-white.svg',
99 '55.6'
100 );
101
102 add_submenu_page(
103 self::MENU_PAGE_SLUG,
104 esc_html__( 'Settings', 'shopbuilder' ),
105 esc_html__( 'Settings', 'shopbuilder' ),
106 self::MENU_CAPABILITY,
107 'rtsb-settings',
108 [ $this, 'settings_page' ],
109 );
110 add_submenu_page(
111 self::MENU_PAGE_SLUG,
112 esc_html__( 'Get Help', 'shopbuilder' ),
113 esc_html__( 'Get Help', 'shopbuilder' ),
114 self::MENU_CAPABILITY,
115 'rtsb-get-help',
116 [ $this, 'get_help_page' ],
117 );
118 add_submenu_page(
119 self::MENU_PAGE_SLUG,
120 esc_html__( 'Themes & Apps', 'shopbuilder' ),
121 esc_html__( 'Themes & Apps', 'shopbuilder' ),
122 self::MENU_CAPABILITY,
123 'rtsb-themes',
124 [ $this, 'get_themes_page' ],
125 );
126 do_action( 'rtsb/add/more/submenu', self::MENU_PAGE_SLUG, self::MENU_CAPABILITY );
127
128 // Remove Parent Submenu.
129 remove_submenu_page( self::MENU_PAGE_SLUG, self::MENU_PAGE_SLUG );
130 }
131
132 /**
133 * Redirect to content.
134 *
135 * @return void
136 */
137 public function redirect_to_content() {
138 wp_redirect( admin_url( 'admin.php?page=rtsb-settings' ) ); // phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
139 }
140
141 /**
142 * Settings Page.
143 *
144 * @return void
145 */
146 public function settings_page() {
147 ?>
148 <div class="wrap rtsb-admin-wrap">
149 <div id="rtsb-admin-app"></div>
150 </div>
151 <?php
152 }
153
154 /**
155 * Help Page.
156 *
157 * @return void
158 */
159 public function get_help_page() {
160 Fns::renderView( 'help' );
161 }
162
163 /**
164 * Themes Page.
165 *
166 * @return void
167 */
168 public function get_themes_page() {
169 Fns::renderView( 'themes' );
170 }
171
172 /**
173 * Admin Header
174 */
175 public function in_admin_header_functionality() {
176 $screen = get_current_screen();
177 $isBuilderTemplate = 'edit-rtsb_builder' === $screen->id;
178 $pages = [
179 'shopbuilder_page_rtsb-get-help',
180 'shopbuilder_page_rtsb-settings',
181 'shopbuilder_page_rtsb-license',
182 'shopbuilder_page_rtsb-themes',
183 ];
184 $isSettingsPage = in_array( $screen->base, $pages, true );
185 if ( $isBuilderTemplate || $isSettingsPage ) {
186 remove_all_actions( 'admin_notices' );
187 remove_all_actions( 'all_admin_notices' );
188 }
189
190 $load_elementor_scripts = Fns::should_load_elementor_scripts();
191
192 if ( $isBuilderTemplate ) {
193 if ( ! defined( 'ELEMENTOR_VERSION' ) && $load_elementor_scripts ) {
194 ?>
195 <div class='rtsb-message-for-elementor-missing'>
196 <div class="rtsb-builder-notice-content">
197 <?php
198 echo sprintf(
199 /* translators: %s: Elementor */
200 esc_html__( 'To build your WooCommerce pages, please Install and Activate the %s Plugin.', 'shopbuilder' ),
201 '<a href="' . esc_url( admin_url( 'plugin-install.php?s=elementor&tab=search&type=term' ) ) . '" target="_blank">' . esc_html__( 'Elementor Website Builder', 'shopbuilder' ) . '</a>'
202 );
203 ?>
204 </div>
205 </div>
206 <?php
207 } elseif ( defined( 'ELEMENTOR_VERSION' ) && ! $load_elementor_scripts ) {
208 ?>
209 <div class='rtsb-message-for-elementor-missing'>
210 <div class="rtsb-builder-notice-content">
211 <?php esc_html_e( 'Elementor is installed, but script loading is disabled. Please enable "Load Elementor Scripts" in the Advanced Optimization Settings.', 'shopbuilder' ); ?>
212 </div>
213 </div>
214 <?php
215 } elseif ( ! defined( 'ELEMENTOR_VERSION' ) && ! $load_elementor_scripts ) {
216 ?>
217 <div class='rtsb-message-for-elementor-missing'>
218 <div class="rtsb-builder-notice-content">
219 <?php
220 echo sprintf(
221 /* translators: %s: Elementor */
222 esc_html__( 'To build your WooCommerce pages, please Install and Activate the %s Plugin.', 'shopbuilder' ),
223 '<a href="' . esc_url( admin_url( 'plugin-install.php?s=Elementor%2520Website%2520Builder&tab=search&type=term' ) ) . '" target="_blank">' . esc_html__( 'Elementor Website Builder', 'shopbuilder' ) . '</a>'
224 );
225 ?>
226 </div>
227 </div>
228 <?php
229 }
230 }
231 }
232 }
233