PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.2.4
ShopBuilder – WooCommerce Builder For Elementor v3.2.4
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.4, at app/Controllers/Admin/AdminInit.php

234 lines 5.6 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 // phpcs:ignore Squiz.PHP.CommentedOutCode.Found
72 // Notice\BlackFridayV2::instance();.
73 Notice\Review::instance();
74 }
75
76 /**
77 * Init.
78 *
79 * @return void
80 */
81 public function init() {
82 add_action( 'admin_menu', [ $this, 'add_menu' ], 25 );
83 add_action( 'in_admin_header', [ $this, 'in_admin_header_functionality' ], 1000 );
84 PluginRow::instance();
85 }
86
87 /**
88 * Add menu.
89 *
90 * @return void
91 */
92 public function add_menu() {
93 self::$parent_menu_hook = add_menu_page(
94 esc_html__( 'ShopBuilder', 'shopbuilder' ),
95 esc_html__( 'ShopBuilder', 'shopbuilder' ),
96 self::MENU_CAPABILITY,
97 self::MENU_PAGE_SLUG,
98 null,
99 RTSB_URL . '/assets/images/icon/shopbuilder-logo-white.svg',
100 '55.6'
101 );
102
103 add_submenu_page(
104 self::MENU_PAGE_SLUG,
105 esc_html__( 'Settings', 'shopbuilder' ),
106 esc_html__( 'Settings', 'shopbuilder' ),
107 self::MENU_CAPABILITY,
108 'rtsb-settings',
109 [ $this, 'settings_page' ],
110 );
111 add_submenu_page(
112 self::MENU_PAGE_SLUG,
113 esc_html__( 'Get Help', 'shopbuilder' ),
114 esc_html__( 'Get Help', 'shopbuilder' ),
115 self::MENU_CAPABILITY,
116 'rtsb-get-help',
117 [ $this, 'get_help_page' ],
118 );
119 add_submenu_page(
120 self::MENU_PAGE_SLUG,
121 esc_html__( 'Themes & Apps', 'shopbuilder' ),
122 esc_html__( 'Themes & Apps', 'shopbuilder' ),
123 self::MENU_CAPABILITY,
124 'rtsb-themes',
125 [ $this, 'get_themes_page' ],
126 );
127 do_action( 'rtsb/add/more/submenu', self::MENU_PAGE_SLUG, self::MENU_CAPABILITY );
128
129 // Remove Parent Submenu.
130 remove_submenu_page( self::MENU_PAGE_SLUG, self::MENU_PAGE_SLUG );
131 }
132
133 /**
134 * Redirect to content.
135 *
136 * @return void
137 */
138 public function redirect_to_content() {
139 wp_redirect( admin_url( 'admin.php?page=rtsb-settings' ) ); // phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
140 }
141
142 /**
143 * Settings Page.
144 *
145 * @return void
146 */
147 public function settings_page() {
148 ?>
149 <div class="wrap rtsb-admin-wrap">
150 <div id="rtsb-admin-app"></div>
151 </div>
152 <?php
153 }
154
155 /**
156 * Help Page.
157 *
158 * @return void
159 */
160 public function get_help_page() {
161 Fns::renderView( 'help' );
162 }
163
164 /**
165 * Themes Page.
166 *
167 * @return void
168 */
169 public function get_themes_page() {
170 Fns::renderView( 'themes' );
171 }
172
173 /**
174 * Admin Header
175 */
176 public function in_admin_header_functionality() {
177 $screen = get_current_screen();
178 $isBuilderTemplate = 'edit-rtsb_builder' === $screen->id;
179 $pages = [
180 'shopbuilder_page_rtsb-get-help',
181 'shopbuilder_page_rtsb-settings',
182 'shopbuilder_page_rtsb-license',
183 'shopbuilder_page_rtsb-themes',
184 ];
185 $isSettingsPage = in_array( $screen->base, $pages, true );
186 if ( $isBuilderTemplate || $isSettingsPage ) {
187 remove_all_actions( 'admin_notices' );
188 remove_all_actions( 'all_admin_notices' );
189 }
190
191 $load_elementor_scripts = Fns::should_load_elementor_scripts();
192
193 if ( $isBuilderTemplate ) {
194 if ( ! defined( 'ELEMENTOR_VERSION' ) && $load_elementor_scripts ) {
195 ?>
196 <div class='rtsb-message-for-elementor-missing'>
197 <div class="rtsb-builder-notice-content">
198 <?php
199 echo sprintf(
200 /* translators: %s: Elementor */
201 esc_html__( 'To build your WooCommerce pages, please Install and Activate the %s Plugin.', 'shopbuilder' ),
202 '<a href="' . esc_url( admin_url( 'plugin-install.php?s=elementor&tab=search&type=term' ) ) . '" target="_blank">' . esc_html__( 'Elementor Website Builder', 'shopbuilder' ) . '</a>'
203 );
204 ?>
205 </div>
206 </div>
207 <?php
208 } elseif ( defined( 'ELEMENTOR_VERSION' ) && ! $load_elementor_scripts ) {
209 ?>
210 <div class='rtsb-message-for-elementor-missing'>
211 <div class="rtsb-builder-notice-content">
212 <?php esc_html_e( 'Elementor is installed, but script loading is disabled. Please enable "Load Elementor Scripts" in the Advanced Optimization Settings.', 'shopbuilder' ); ?>
213 </div>
214 </div>
215 <?php
216 } elseif ( ! defined( 'ELEMENTOR_VERSION' ) && ! $load_elementor_scripts ) {
217 ?>
218 <div class='rtsb-message-for-elementor-missing'>
219 <div class="rtsb-builder-notice-content">
220 <?php
221 echo sprintf(
222 /* translators: %s: Elementor */
223 esc_html__( 'To build your WooCommerce pages, please Install and Activate the %s Plugin.', 'shopbuilder' ),
224 '<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>'
225 );
226 ?>
227 </div>
228 </div>
229 <?php
230 }
231 }
232 }
233 }
234