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
← All changes | app/Controllers/Admin/AdminInit.php +111 -32 2.3.03.2.1 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,30 @@
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();.
71 + Notice\BlackFridayV2::instance();
61 72 Notice\Review::instance();
62 - Notice\EarlyBirdDiscount::instance();
63 73 }
64 74
75 + /**
76 + * Init.
77 + *
78 + * @return void
79 + */
65 80 public function init() {
66 81 add_action( 'admin_menu', [ $this, 'add_menu' ], 25 );
82 + add_action( 'in_admin_header', [ $this, 'in_admin_header_functionality' ], 1000 );
67 83 PluginRow::instance();
68 84 }
69 85
86 + /**
87 + * Add menu.
88 + *
89 + * @return void
90 + */
70 91 public function add_menu() {
71 92 self::$parent_menu_hook = add_menu_page(
72 93 esc_html__( 'ShopBuilder', 'shopbuilder' ),
73 94 esc_html__( 'ShopBuilder', 'shopbuilder' ),
@@ -95,10 +116,10 @@
95 116 [ $this, 'get_help_page' ],
96 117 );
97 118 add_submenu_page(
98 119 self::MENU_PAGE_SLUG,
99 - esc_html__( 'Themes', 'shopbuilder' ),
100 - esc_html__( 'Themes', 'shopbuilder' ),
120 + esc_html__( 'Themes & Apps', 'shopbuilder' ),
121 + esc_html__( 'Themes & Apps', 'shopbuilder' ),
101 122 self::MENU_CAPABILITY,
102 123 'rtsb-themes',
103 124 [ $this, 'get_themes_page' ],
104 125 );
@@ -103,17 +124,26 @@
103 124 [ $this, 'get_themes_page' ],
104 125 );
105 126 do_action( 'rtsb/add/more/submenu', self::MENU_PAGE_SLUG, self::MENU_CAPABILITY );
106 127
107 - // Remove Parent Submenu
128 + // Remove Parent Submenu.
108 129 remove_submenu_page( self::MENU_PAGE_SLUG, self::MENU_PAGE_SLUG );
109 130 }
110 131
111 - function redirect_to_content() {
112 - wp_redirect( admin_url( 'admin.php?page=rtsb-settings' ) );
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
113 139 }
114 140
115 -
141 + /**
142 + * Settings Page.
143 + *
144 + * @return void
145 + */
116 146 public function settings_page() {
117 147 ?>
118 148 <div class="wrap rtsb-admin-wrap">
119 149 <div id="rtsb-admin-app"></div>
@@ -120,34 +150,83 @@
120 150 </div>
121 151 <?php
122 152 }
123 153
154 + /**
155 + * Help Page.
156 + *
157 + * @return void
158 + */
124 159 public function get_help_page() {
125 160 Fns::renderView( 'help' );
126 161 }
127 162
163 + /**
164 + * Themes Page.
165 + *
166 + * @return void
167 + */
128 168 public function get_themes_page() {
129 169 Fns::renderView( 'themes' );
130 170 }
131 171
132 172 /**
133 - * Remove admin notices
173 + * Admin Header
134 174 */
135 - public function remove_all_notices() {
136 - add_action(
137 - 'in_admin_header',
138 - function () {
139 - $screen = get_current_screen();
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 + }
140 189
141 - if ( in_array(
142 - $screen->base,
143 - [ 'shopbuilder_page_rtsb-settings', 'shopbuilder_page_rtsb-license', 'shopbuilder_page_rtsb-themes' ],
144 - true
145 - ) ) {
146 - remove_all_actions( 'admin_notices' );
147 - remove_all_actions( 'all_admin_notices' );
148 - }
149 - },
150 - 1000
151 - );
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 + }
152 231 }
153 232 }