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

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