PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.6.0
ShopBuilder – WooCommerce Builder For Elementor v2.6.0
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 2.6.0, at app/Controllers/Admin/AdminInit.php

166 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace RadiusTheme\SB\Controllers\Admin;
4
5 defined( 'ABSPATH' ) || exit();
6
7 use RadiusTheme\SB\Controllers\Admin\Ajax as Ajax;
8 use RadiusTheme\SB\Helpers\Fns;
9 use RadiusTheme\SB\Traits\SingletonTrait;
10
11 class AdminInit {
12 /**
13 * Parent Menu Page Slug
14 */
15 const MENU_PAGE_SLUG = 'rtsb';
16
17 /**
18 * Menu capability
19 */
20 const MENU_CAPABILITY = 'manage_options';
21
22 /**
23 * Parent Menu Hook
24 *
25 * @var string
26 */
27 static $parent_menu_hook = '';
28
29 // private $menu_link_part;
30
31 use SingletonTrait;
32
33 public function __construct() {
34 $this->init();
35 $this->ajax_actions();
36 $this->upgrade();
37 }
38
39 /**
40 * Admin Ajax hooks.
41 *
42 * @return void
43 */
44 public function ajax_actions() {
45 Ajax\DefaultTemplate::instance();
46 if ( defined( 'ELEMENTOR_VERSION' ) ) { // Elementor Check.
47 Ajax\CreateTemplate::instance();
48 }
49 Ajax\ModalTemplate::instance();
50 Ajax\AdminSettings::instance();
51 }
52
53 /**
54 * Upgrade Notice.
55 *
56 * @return void
57 */
58 public function upgrade() {
59 Notice\Upgrade::instance();
60 Notice\BFDiscount::instance();
61 Notice\Review::instance();
62 }
63
64 public function init() {
65 add_action( 'admin_menu', [ $this, 'add_menu' ], 25 );
66 add_action( 'in_admin_header', [ $this, 'in_admin_header_functionality' ], 1000 );
67 PluginRow::instance();
68 }
69
70 public function add_menu() {
71 self::$parent_menu_hook = add_menu_page(
72 esc_html__( 'ShopBuilder', 'shopbuilder' ),
73 esc_html__( 'ShopBuilder', 'shopbuilder' ),
74 self::MENU_CAPABILITY,
75 self::MENU_PAGE_SLUG,
76 null,
77 RTSB_URL . '/assets/images/icon/shopbuilder-logo-white.svg',
78 '55.6'
79 );
80
81 add_submenu_page(
82 self::MENU_PAGE_SLUG,
83 esc_html__( 'Settings', 'shopbuilder' ),
84 esc_html__( 'Settings', 'shopbuilder' ),
85 self::MENU_CAPABILITY,
86 'rtsb-settings',
87 [ $this, 'settings_page' ],
88 );
89 add_submenu_page(
90 self::MENU_PAGE_SLUG,
91 esc_html__( 'Get Help', 'shopbuilder' ),
92 esc_html__( 'Get Help', 'shopbuilder' ),
93 self::MENU_CAPABILITY,
94 'rtsb-get-help',
95 [ $this, 'get_help_page' ],
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
107 // Remove Parent Submenu
108 remove_submenu_page( self::MENU_PAGE_SLUG, self::MENU_PAGE_SLUG );
109 }
110
111 function redirect_to_content() {
112 wp_redirect( admin_url( 'admin.php?page=rtsb-settings' ) );
113 }
114
115
116 public function settings_page() {
117 ?>
118 <div class="wrap rtsb-admin-wrap">
119 <div id="rtsb-admin-app"></div>
120 </div>
121 <?php
122 }
123
124 public function get_help_page() {
125 Fns::renderView( 'help' );
126 }
127
128 public function get_themes_page() {
129 Fns::renderView( 'themes' );
130 }
131
132 /**
133 * Admin Header
134 */
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 }
164 }
165 }
166