PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.6.3
ShopBuilder – WooCommerce Builder For Elementor v2.6.3
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 -169 2.1.42.6.3 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,214 +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 - * @var string
71 - */
72 - public $BASE_API = 'https://shopbuilderwp.com/wp-json/rtsb/v1/layouts/';
75 + use SingletonTrait;
73 76
74 - 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 );
75 86
76 - /**
77 - * Class Constructor
78 - */
79 - private function __construct() {
80 - $this->define_constants();
81 - $this->post_type = 'product';
82 - $this->current_theme = wp_get_theme()->get( 'Template' ) ? wp_get_theme()->get( 'Template' ) : wp_get_theme()->get( 'TextDomain' );
83 - add_action( 'init', [ $this, 'language' ] );
84 - add_action( 'plugins_loaded', [ $this, 'init' ], 15 );
87 + // Register Plugin Active Hook.
88 + register_activation_hook( RTSB_FILE, [ Installation::class, 'activate' ] );
85 89
86 - // Register Plugin Active Hook.
87 - register_activation_hook( RTSB_FILE, [ Installation::class, 'activate' ] );
90 + // Register Plugin Deactivate Hook.
91 + register_deactivation_hook( RTSB_FILE, [ Installation::class, 'deactivation' ] );
88 92
89 - // Register Plugin Deactivate Hook.
90 - register_deactivation_hook( RTSB_FILE, [ Installation::class, 'deactivation' ] );
91 -
93 + if ( Dependencies::instance()->check() ) {
92 94 SupportController::instance();
95 + }
93 96
94 - // HPOS Declare compatibility
95 - add_action(
96 - 'before_woocommerce_init',
97 - function() {
98 - if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
99 - \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', RTSB_FILE, true );
100 - }
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 );
101 103 }
102 - );
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 - }
119 -
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 ) . '/' );
120 116 }
121 117
122 -
123 - /**
124 - * Assets url generate with given assets file
125 - *
126 - * @param string $file File.
127 - *
128 - * @return string
129 - */
130 - public function get_assets_uri( $file ) {
131 - $file = ltrim( $file, '/' );
132 -
133 - return trailingslashit( RTSB_URL . '/assets' ) . $file;
118 + if ( ! defined( 'RTSB_URL' ) ) {
119 + define( 'RTSB_URL', plugins_url( '', RTSB_FILE ) );
134 120 }
121 + }
135 122
136 - /**
137 - * Get the template path.
138 - *
139 - * @return string
140 - */
141 - public function get_template_path() {
142 - return apply_filters( 'rtsb/template/path', 'shopbuilder/' );
143 - }
144 123
145 - /**
146 - * Get the plugin path.
147 - *
148 - * @return string
149 - */
150 - public function plugin_path() {
151 - return untrailingslashit( plugin_dir_path( RTSB_FILE ) );
152 - }
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, '/' );
153 133
154 - /**
155 - * Load Text Domain
156 - */
157 - public function language() {
158 - load_plugin_textdomain( 'shopbuilder', false, dirname( plugin_basename( RTSB_FILE ) ) . '/languages/' );
159 - }
134 + return trailingslashit( RTSB_URL . '/assets' ) . $file;
135 + }
160 136
161 - /**
162 - * Init
163 - *
164 - * @return void
165 - */
166 - public function init() {
167 - if ( ! Dependencies::instance()->check() ) {
168 - return;
169 - }
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 + }
170 145
171 - 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 + }
172 154
173 - // Include File.
174 - AssetsController::instance();
175 - 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 + }
176 161
177 - // Ajax.
178 - AddToCart::instance();
179 - AjaxLogin::instance();
162 + /**
163 + * Init
164 + *
165 + * @return void
166 + */
167 + public function init() {
168 + if ( ! Dependencies::instance()->check() ) {
169 + return;
170 + }
180 171
181 - BuilderController::instance();
182 - FilterHooks::init_hooks();
183 - ActionHooks::init_hooks();
172 + do_action( 'rtsb/before/loaded' );
173 + CacheController::instance();
174 + // Include File.
175 + AssetsController::instance();
176 + ModuleManager::instance();
184 177
185 - Installation::init();
186 - Migration::init();
178 + // Ajax.
179 + AddToCart::instance();
180 + AjaxLogin::instance();
181 + UpdateCheckoutSection::instance();
187 182
188 - if ( is_admin() ) {
189 - AdminInit::instance();
190 - }
183 + BuilderController::instance();
184 + FilterHooks::init_hooks();
185 + ActionHooks::init_hooks();
191 186
192 - Shortcodes::instance();
187 + Installation::init();
188 + Migration::init();
193 189
194 - do_action( 'rtsb/after/loaded' );
190 + if ( is_admin() ) {
191 + AdminInit::instance();
195 192 }
196 193
197 - /**
198 - * Checks if Pro version installed
199 - *
200 - * @return boolean
201 - */
202 - public function has_pro() {
203 - return function_exists( 'rtsbpro' );
204 - }
194 + Shortcodes::instance();
205 195
206 - /**
207 - * PRO Version URL.
208 - *
209 - * @return string
210 - */
211 - public function pro_version_link() {
212 - return 'https://shopbuilderwp.com/';
213 - }
196 + do_action( 'rtsb/after/loaded' );
214 197 }
215 198
216 199 /**
217 - * @return ShopBuilder
200 + * Checks if Pro version installed
201 + *
202 + * @return boolean
218 203 */
219 - function rtsb() {
220 - static $cached_instance;
204 + public function has_pro() {
205 + return function_exists( 'rtsbpro' );
206 + }
221 207
222 - if (null !== $cached_instance) {
223 - return $cached_instance;
224 - }
225 -
226 - $cached_instance = wp_cache_get('shopbuilder_instance', 'shopbuilder_cache');
227 -
228 - if (false === $cached_instance) {
229 - $cached_instance = ShopBuilder::instance();
230 - wp_cache_set('shopbuilder_instance', $cached_instance, 'shopbuilder_cache');
231 - }
232 -
233 - return $cached_instance;
208 + /**
209 + * PRO Version URL.
210 + *
211 + * @return string
212 + */
213 + public function pro_version_link() {
214 + return 'https://shopbuilderwp.com/';
234 215 }
235 -
236 -
237 - rtsb();
238 216 }