PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.1.3
ShopBuilder – WooCommerce Builder For Elementor v3.1.3
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
← All changes | app/Controllers/Admin/AdminInit.php +124 -32 2.1.43.1.3 View file →
@@ -1,15 +1,22 @@
1 1 <?php
2 +/**
3 + * Admin Init.
4 + *
5 + * @package RadiusTheme\SB
6 + */
2 7
3 8 namespace RadiusTheme\SB\Controllers\Admin;
4 9
5 10 defined( 'ABSPATH' ) || exit();
6 11
7 -use RadiusTheme\SB\Controllers\Admin\Ajax as Ajax;
8 12 use RadiusTheme\SB\Helpers\Fns;
9 13 use RadiusTheme\SB\Traits\SingletonTrait;
14 +use RadiusTheme\SB\Controllers\Admin\Ajax as Ajax;
10 15
11 -
16 +/**
17 + * Admin Init.
18 + */
12 19 class AdminInit {
13 20 /**
14 21 * Parent Menu Page Slug
15 22 */
@@ -24,17 +31,16 @@
24 31 * Parent Menu Hook
25 32 *
26 33 * @var string
27 34 */
28 - static $parent_menu_hook = '';
35 + public static $parent_menu_hook = '';
29 36
30 - //private $menu_link_part;
31 -
32 37 use SingletonTrait;
33 38
39 + /**
40 + * Class constructor.
41 + */
34 42 public function __construct() {
35 - // $this->menu_link_part = admin_url( 'admin.php?page=rtsb' );
36 - $this->remove_all_notices();
37 43 $this->init();
38 44 $this->ajax_actions();
39 45 $this->upgrade();
40 46 }
@@ -45,10 +51,12 @@
45 51 * @return void
46 52 */
47 53 public function ajax_actions() {
48 54 Ajax\DefaultTemplate::instance();
55 + if ( defined( 'ELEMENTOR_VERSION' ) ) { // Elementor Check.
56 + Ajax\CreateTemplate::instance();
57 + }
49 58 Ajax\ModalTemplate::instance();
50 - Ajax\CreateTemplate::instance();
51 59 Ajax\AdminSettings::instance();
52 60 }
53 61
54 62 /**
@@ -57,17 +65,29 @@
57 65 * @return void
58 66 */
59 67 public function upgrade() {
60 68 Notice\Upgrade::instance();
69 + // phpcs:ignore Squiz.PHP.CommentedOutCode.Found
70 + // Notice\BFDiscount::instance();.
61 71 Notice\Review::instance();
62 - Notice\EarlyBirdDiscount::instance();
63 72 }
64 73
74 + /**
75 + * Init.
76 + *
77 + * @return void
78 + */
65 79 public function init() {
66 80 add_action( 'admin_menu', [ $this, 'add_menu' ], 25 );
81 + add_action( 'in_admin_header', [ $this, 'in_admin_header_functionality' ], 1000 );
67 82 PluginRow::instance();
68 83 }
69 84
85 + /**
86 + * Add menu.
87 + *
88 + * @return void
89 + */
70 90 public function add_menu() {
71 91 self::$parent_menu_hook = add_menu_page(
72 92 esc_html__( 'ShopBuilder', 'shopbuilder' ),
73 93 esc_html__( 'ShopBuilder', 'shopbuilder' ),
@@ -93,47 +113,119 @@
93 113 self::MENU_CAPABILITY,
94 114 'rtsb-get-help',
95 115 [ $this, 'get_help_page' ],
96 116 );
97 - do_action( 'rtsb/add/more/submenu', self::MENU_PAGE_SLUG, self::MENU_CAPABILITY );
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 );
98 126
99 -
100 -
101 - // Remove Parent Submenu
127 + // Remove Parent Submenu.
102 128 remove_submenu_page( self::MENU_PAGE_SLUG, self::MENU_PAGE_SLUG );
103 129 }
104 130
105 - function redirect_to_content() {
106 - wp_redirect( admin_url( 'admin.php?page=rtsb-settings' ) );
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
107 138 }
108 139
109 -
140 + /**
141 + * Settings Page.
142 + *
143 + * @return void
144 + */
110 145 public function settings_page() {
111 146 ?>
112 - <div class="wrap rtsb-admin-wrap">
113 - <div id="rtsb-admin-app"></div>
114 - </div>
147 + <div class="wrap rtsb-admin-wrap">
148 + <div id="rtsb-admin-app"></div>
149 + </div>
115 150 <?php
116 151 }
117 152
153 + /**
154 + * Help Page.
155 + *
156 + * @return void
157 + */
118 158 public function get_help_page() {
119 159 Fns::renderView( 'help' );
120 160 }
121 161
122 162 /**
123 - * Remove admin notices
163 + * Themes Page.
164 + *
165 + * @return void
124 166 */
125 - public function remove_all_notices() {
126 - add_action(
127 - 'in_admin_header',
128 - function () {
129 - $screen = get_current_screen();
130 - if ( in_array( $screen->base, [ 'shopbuilder_page_rtsb-settings', 'shopbuilder_page_rtsb-license' ]) ) {
131 - remove_all_actions( 'admin_notices' );
132 - remove_all_actions( 'all_admin_notices' );
133 - }
134 - },
135 - 1000
136 - );
167 + public function get_themes_page() {
168 + Fns::renderView( 'themes' );
137 169 }
138 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 + }
139 231 }