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