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

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