PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.6.1
ShopBuilder – WooCommerce Builder For Elementor v2.6.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/ShopBuilder.php +147 -159 2.1.92.6.1 View file →
@@ -4,14 +4,17 @@
4 4 *
5 5 * @package RadiusTheme\SB
6 6 */
7 7
8 +namespace RadiusTheme\SB;
8 9
10 +use RadiusTheme\SB\Helpers\Migration;
9 11 use RadiusTheme\SB\Helpers\Installation;
10 12 use RadiusTheme\SB\Modules\ModuleManager;
11 13 use RadiusTheme\SB\Traits\SingletonTrait;
12 14 use RadiusTheme\SB\Controllers\Shortcodes;
13 15 use RadiusTheme\SB\Controllers\Dependencies;
16 +use RadiusTheme\SB\Controllers\CacheController;
14 17 use RadiusTheme\SB\Controllers\Admin\AdminInit;
15 18 use RadiusTheme\SB\Controllers\AssetsController;
16 19 use RadiusTheme\SB\Controllers\BuilderController;
17 20 use RadiusTheme\SB\Controllers\SupportController;
@@ -18,9 +21,9 @@
18 21 use RadiusTheme\SB\Controllers\Hooks\FilterHooks;
19 22 use RadiusTheme\SB\Controllers\Hooks\ActionHooks;
20 23 use RadiusTheme\SB\Controllers\Frontend\Ajax\AddToCart;
21 24 use RadiusTheme\SB\Controllers\Frontend\Ajax\AjaxLogin;
22 -use RadiusTheme\SB\Helpers\Migration;
25 +use RadiusTheme\SB\Controllers\Frontend\Ajax\UpdateCheckoutSection;
23 26
24 27 // Do not allow directly accessing this file.
25 28 if ( ! defined( 'ABSPATH' ) ) {
26 29 exit( 'This script cannot be accessed directly.' );
@@ -25,204 +28,189 @@
25 28 if ( ! defined( 'ABSPATH' ) ) {
26 29 exit( 'This script cannot be accessed directly.' );
27 30 }
28 31
29 -require_once RTSB_PATH . 'vendor/autoload.php';
32 +/**
33 + * Main initialization class.
34 + */
35 +final class ShopBuilder {
30 36
31 -if ( ! class_exists( ShopBuilder::class ) ) {
32 37 /**
33 - * Main initialization class.
38 + * Nonce id
39 + *
40 + * @var string
34 41 */
35 - final class ShopBuilder {
42 + public $nonceId = '__rtsb_wpnonce';
36 43
37 - /**
38 - * Nonce id
39 - *
40 - * @var string
41 - */
42 - public $nonceId = '__rtsb_wpnonce';
44 + /**
45 + * Nonce Text
46 + *
47 + * @var string
48 + */
49 + public $nonceText = 'rtsb_nonce';
43 50
44 - /**
45 - * Nonce Text
46 - *
47 - * @var string
48 - */
49 - public $nonceText = 'rtsb_nonce';
51 + /**
52 + * Post Type.
53 + *
54 + * @var string
55 + */
56 + public $post_type;
50 57
51 - /**
52 - * Post Type.
53 - *
54 - * @var string
55 - */
56 - public $post_type;
58 + /**
59 + * Post Type.
60 + *
61 + * @var string
62 + */
63 + public $current_theme;
64 + /**
65 + * Singleton
66 + */
57 67
58 - /**
59 - * Post Type.
60 - *
61 - * @var string
62 - */
63 - public $current_theme;
64 - /**
65 - * Singleton
66 - */
68 + /**
69 + * URL for fetch API
70 + *
71 + * @var string
72 + */
73 + public $BASE_API = 'https://shopbuilderwp.com/wp-json/rtsb/v1/layouts/';
67 74
68 - /**
69 - * URL for fetch API
70 - *
71 - * @var string
72 - */
73 - public $BASE_API = 'https://shopbuilderwp.com/wp-json/rtsb/v1/layouts/';
75 + use SingletonTrait;
74 76
75 - use SingletonTrait;
77 + /**
78 + * Class Constructor
79 + */
80 + private function __construct() {
81 + $this->define_constants();
82 + $this->post_type = 'product';
83 + $this->current_theme = wp_get_theme()->get( 'Template' ) ? wp_get_theme()->get( 'Template' ) : ( wp_get_theme()->get( 'TextDomain' ) ? wp_get_theme()->get( 'TextDomain' ) : strtolower( str_replace( ' ', '', wp_get_theme()->get( 'Name' ) ) ) );
84 + add_action( 'init', [ $this, 'language' ] );
85 + add_action( 'plugins_loaded', [ $this, 'init' ], 15 );
76 86
77 - /**
78 - * Class Constructor
79 - */
80 - private function __construct() {
81 - $this->define_constants();
82 - $this->post_type = 'product';
83 - $this->current_theme = wp_get_theme()->get( 'Template' ) ? wp_get_theme()->get( 'Template' ) : wp_get_theme()->get( 'TextDomain' );
84 - add_action( 'init', [ $this, 'language' ] );
85 - add_action( 'plugins_loaded', [ $this, 'init' ], 15 );
87 + // Register Plugin Active Hook.
88 + register_activation_hook( RTSB_FILE, [ Installation::class, 'activate' ] );
86 89
87 - // Register Plugin Active Hook.
88 - register_activation_hook( RTSB_FILE, [ Installation::class, 'activate' ] );
90 + // Register Plugin Deactivate Hook.
91 + register_deactivation_hook( RTSB_FILE, [ Installation::class, 'deactivation' ] );
89 92
90 - // Register Plugin Deactivate Hook.
91 - register_deactivation_hook( RTSB_FILE, [ Installation::class, 'deactivation' ] );
92 -
93 + if ( Dependencies::instance()->check() ) {
93 94 SupportController::instance();
95 + }
94 96
95 - // HPOS Declare compatibility.
96 - add_action(
97 - 'before_woocommerce_init',
98 - function () {
99 - if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
100 - \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', RTSB_FILE, true );
101 - }
97 + // HPOS Declare compatibility.
98 + add_action(
99 + 'before_woocommerce_init',
100 + function () {
101 + if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
102 + \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', RTSB_FILE, true );
102 103 }
103 - );
104 - }
105 -
106 - /**
107 - * Constants
108 - *
109 - * @return void
110 - */
111 - private function define_constants() {
112 - if ( ! defined( 'RTSB_ABSPATH' ) ) {
113 - define( 'RTSB_ABSPATH', dirname( RTSB_FILE ) . '/' );
114 104 }
105 + );
106 + }
115 107
116 - if ( ! defined( 'RTSB_URL' ) ) {
117 - define( 'RTSB_URL', plugins_url( '', RTSB_FILE ) );
118 - }
108 + /**
109 + * Constants
110 + *
111 + * @return void
112 + */
113 + private function define_constants() {
114 + if ( ! defined( 'RTSB_ABSPATH' ) ) {
115 + define( 'RTSB_ABSPATH', dirname( RTSB_FILE ) . '/' );
119 116 }
120 117
121 -
122 - /**
123 - * Assets url generate with given assets file
124 - *
125 - * @param string $file File.
126 - *
127 - * @return string
128 - */
129 - public function get_assets_uri( $file ) {
130 - $file = ltrim( $file, '/' );
131 -
132 - return trailingslashit( RTSB_URL . '/assets' ) . $file;
118 + if ( ! defined( 'RTSB_URL' ) ) {
119 + define( 'RTSB_URL', plugins_url( '', RTSB_FILE ) );
133 120 }
121 + }
134 122
135 - /**
136 - * Get the template path.
137 - *
138 - * @return string
139 - */
140 - public function get_template_path() {
141 - return apply_filters( 'rtsb/template/path', 'shopbuilder/' );
142 - }
143 123
144 - /**
145 - * Get the plugin path.
146 - *
147 - * @return string
148 - */
149 - public function plugin_path() {
150 - return untrailingslashit( plugin_dir_path( RTSB_FILE ) );
151 - }
124 + /**
125 + * Assets url generate with given assets file
126 + *
127 + * @param string $file File.
128 + *
129 + * @return string
130 + */
131 + public function get_assets_uri( $file ) {
132 + $file = ltrim( $file, '/' );
152 133
153 - /**
154 - * Load Text Domain
155 - */
156 - public function language() {
157 - load_plugin_textdomain( 'shopbuilder', false, dirname( plugin_basename( RTSB_FILE ) ) . '/languages/' );
158 - }
134 + return trailingslashit( RTSB_URL . '/assets' ) . $file;
135 + }
159 136
160 - /**
161 - * Init
162 - *
163 - * @return void
164 - */
165 - public function init() {
166 - if ( ! Dependencies::instance()->check() ) {
167 - return;
168 - }
137 + /**
138 + * Get the template path.
139 + *
140 + * @return string
141 + */
142 + public function get_template_path() {
143 + return apply_filters( 'rtsb/template/path', 'shopbuilder/' );
144 + }
169 145
170 - do_action( 'rtsb/before/loaded' );
146 + /**
147 + * Get the plugin path.
148 + *
149 + * @return string
150 + */
151 + public function plugin_path() {
152 + return untrailingslashit( plugin_dir_path( RTSB_FILE ) );
153 + }
171 154
172 - // Include File.
173 - AssetsController::instance();
174 - ModuleManager::instance();
155 + /**
156 + * Load Text Domain
157 + */
158 + public function language() {
159 + load_plugin_textdomain( 'shopbuilder', false, dirname( plugin_basename( RTSB_FILE ) ) . '/languages/' );
160 + }
175 161
176 - // Ajax.
177 - AddToCart::instance();
178 - AjaxLogin::instance();
162 + /**
163 + * Init
164 + *
165 + * @return void
166 + */
167 + public function init() {
168 + if ( ! Dependencies::instance()->check() ) {
169 + return;
170 + }
179 171
180 - BuilderController::instance();
181 - FilterHooks::init_hooks();
182 - ActionHooks::init_hooks();
172 + do_action( 'rtsb/before/loaded' );
173 + CacheController::instance();
174 + // Include File.
175 + AssetsController::instance();
176 + ModuleManager::instance();
183 177
184 - Installation::init();
185 - Migration::init();
178 + // Ajax.
179 + AddToCart::instance();
180 + AjaxLogin::instance();
181 + UpdateCheckoutSection::instance();
186 182
187 - if ( is_admin() ) {
188 - AdminInit::instance();
189 - }
183 + BuilderController::instance();
184 + FilterHooks::init_hooks();
185 + ActionHooks::init_hooks();
190 186
191 - Shortcodes::instance();
187 + Installation::init();
188 + Migration::init();
192 189
193 - do_action( 'rtsb/after/loaded' );
190 + if ( is_admin() ) {
191 + AdminInit::instance();
194 192 }
195 193
196 - /**
197 - * Checks if Pro version installed
198 - *
199 - * @return boolean
200 - */
201 - public function has_pro() {
202 - return function_exists( 'rtsbpro' );
203 - }
194 + Shortcodes::instance();
204 195
205 - /**
206 - * PRO Version URL.
207 - *
208 - * @return string
209 - */
210 - public function pro_version_link() {
211 - return 'https://shopbuilderwp.com/';
212 - }
196 + do_action( 'rtsb/after/loaded' );
213 197 }
214 198
215 199 /**
216 - * @return ShopBuilder
200 + * Checks if Pro version installed
201 + *
202 + * @return boolean
217 203 */
218 - function rtsb() {
219 - static $cached_instance;
220 - if ( null !== $cached_instance ) {
221 - return $cached_instance;
222 - }
223 - $cached_instance = ShopBuilder::instance();
224 - return $cached_instance;
204 + public function has_pro() {
205 + return function_exists( 'rtsbpro' );
225 206 }
226 207
227 - rtsb();
208 + /**
209 + * PRO Version URL.
210 + *
211 + * @return string
212 + */
213 + public function pro_version_link() {
214 + return 'https://shopbuilderwp.com/';
215 + }
228 216 }