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