PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.6.5
ShopBuilder – WooCommerce Builder For Elementor v2.6.5
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 +56 -30 2.0.12.6.5 View file →
@@ -4,8 +4,9 @@
4 4
5 5 defined( 'ABSPATH' ) || exit();
6 6
7 7 use RadiusTheme\SB\Controllers\Admin\Ajax as Ajax;
8 +use RadiusTheme\SB\Helpers\Fns;
8 9 use RadiusTheme\SB\Traits\SingletonTrait;
9 10
10 11 class AdminInit {
11 12 /**
@@ -24,15 +25,13 @@
24 25 * @var string
25 26 */
26 27 static $parent_menu_hook = '';
27 28
28 - //private $menu_link_part;
29 + // private $menu_link_part;
29 30
30 31 use SingletonTrait;
31 32
32 33 public function __construct() {
33 - // $this->menu_link_part = admin_url( 'admin.php?page=rtsb' );
34 - $this->remove_all_notices();
35 34 $this->init();
36 35 $this->ajax_actions();
37 36 $this->upgrade();
38 37 }
@@ -43,10 +42,12 @@
43 42 * @return void
44 43 */
45 44 public function ajax_actions() {
46 45 Ajax\DefaultTemplate::instance();
46 + if ( defined( 'ELEMENTOR_VERSION' ) ) { // Elementor Check.
47 + Ajax\CreateTemplate::instance();
48 + }
47 49 Ajax\ModalTemplate::instance();
48 - Ajax\CreateTemplate::instance();
49 50 Ajax\AdminSettings::instance();
50 51 }
51 52
52 53 /**
@@ -55,12 +56,15 @@
55 56 * @return void
56 57 */
57 58 public function upgrade() {
58 59 Notice\Upgrade::instance();
60 + Notice\BFDiscount::instance();
61 + Notice\Review::instance();
59 62 }
60 63
61 64 public function init() {
62 65 add_action( 'admin_menu', [ $this, 'add_menu' ], 25 );
66 + add_action( 'in_admin_header', [ $this, 'in_admin_header_functionality' ], 1000 );
63 67 PluginRow::instance();
64 68 }
65 69
66 70 public function add_menu() {
@@ -81,11 +85,8 @@
81 85 self::MENU_CAPABILITY,
82 86 'rtsb-settings',
83 87 [ $this, 'settings_page' ],
84 88 );
85 -
86 - do_action( 'rtsb/add/more/submenu', self::MENU_PAGE_SLUG, self::MENU_CAPABILITY );
87 - /*
88 89 add_submenu_page(
89 90 self::MENU_PAGE_SLUG,
90 91 esc_html__( 'Get Help', 'shopbuilder' ),
91 92 esc_html__( 'Get Help', 'shopbuilder' ),
@@ -92,9 +93,18 @@
92 93 self::MENU_CAPABILITY,
93 94 'rtsb-get-help',
94 95 [ $this, 'get_help_page' ],
95 96 );
96 - */
97 + add_submenu_page(
98 + self::MENU_PAGE_SLUG,
99 + esc_html__( 'Themes & Apps', 'shopbuilder' ),
100 + esc_html__( 'Themes & Apps', 'shopbuilder' ),
101 + self::MENU_CAPABILITY,
102 + 'rtsb-themes',
103 + [ $this, 'get_themes_page' ],
104 + );
105 + do_action( 'rtsb/add/more/submenu', self::MENU_PAGE_SLUG, self::MENU_CAPABILITY );
106 +
97 107 // Remove Parent Submenu
98 108 remove_submenu_page( self::MENU_PAGE_SLUG, self::MENU_PAGE_SLUG );
99 109 }
100 110
@@ -104,36 +114,52 @@
104 114
105 115
106 116 public function settings_page() {
107 117 ?>
108 - <div class="wrap rtsb-admin-wrap">
109 - <div id="rtsb-admin-app"></div>
110 - </div>
118 + <div class="wrap rtsb-admin-wrap">
119 + <div id="rtsb-admin-app"></div>
120 + </div>
111 121 <?php
112 122 }
113 123
114 124 public function get_help_page() {
115 - ?>
116 - <div class="wrap rtsb-get-help-wrap">
117 - Get Help
118 - </div>
119 - <?php
125 + Fns::renderView( 'help' );
120 126 }
121 127
128 + public function get_themes_page() {
129 + Fns::renderView( 'themes' );
130 + }
131 +
122 132 /**
123 - * Remove admin notices
133 + * Admin Header
124 134 */
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 - );
135 + public function in_admin_header_functionality() {
136 + $screen = get_current_screen();
137 + $isBuilderTemplate = 'edit-rtsb_builder' === $screen->id;
138 + $pages = [
139 + 'shopbuilder_page_rtsb-get-help',
140 + 'shopbuilder_page_rtsb-settings',
141 + 'shopbuilder_page_rtsb-license',
142 + 'shopbuilder_page_rtsb-themes',
143 + ];
144 + $isSettingsPage = in_array( $screen->base, $pages, true );
145 + if ( $isBuilderTemplate || $isSettingsPage ) {
146 + remove_all_actions( 'admin_notices' );
147 + remove_all_actions( 'all_admin_notices' );
148 + }
149 + if ( ! defined( 'ELEMENTOR_VERSION' ) && $isBuilderTemplate ) {
150 + ?>
151 + <div class='rtsb-message-for-elementor-missing'>
152 + <div class="rtsb-builder-notice-content">
153 + <?php
154 + echo sprintf(
155 + /* translators: %s: Elementor */
156 + esc_html__( 'To build your WooCommerce pages, please Install and Activate the %s Plugin.', 'shopbuilder' ),
157 + '<a href="' . esc_url( admin_url( 'plugin-install.php?s=elementor&tab=search&type=term' ) ) . '" target="_blank">' . esc_html__( 'Elementor Website Builder', 'shopbuilder' ) . '</a>'
158 + );
159 + ?>
160 + </div>
161 + </div>
162 + <?php
163 + }
137 164 }
138 -
139 165 }