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