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