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 -160 2.1.72.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,204 +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 - *
71 - * @var string
72 - */
73 - public $BASE_API = 'https://shopbuilderwp.com/wp-json/rtsb/v1/layouts/';
73 + use SingletonTrait;
74 74
75 - 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 );
76 84
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 );
85 + // Register Plugin Active Hook.
86 + register_activation_hook( RTSB_FILE, [ Installation::class, 'activate' ] );
86 87
87 - // Register Plugin Active Hook.
88 - register_activation_hook( RTSB_FILE, [ Installation::class, 'activate' ] );
88 + // Register Plugin Deactivate Hook.
89 + register_deactivation_hook( RTSB_FILE, [ Installation::class, 'deactivation' ] );
89 90
90 - // Register Plugin Deactivate Hook.
91 - register_deactivation_hook( RTSB_FILE, [ Installation::class, 'deactivation' ] );
91 + SupportController::instance();
92 92
93 - SupportController::instance();
94 -
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 - }
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 );
102 99 }
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 100 }
101 + );
102 + }
115 103
116 - if ( ! defined( 'RTSB_URL' ) ) {
117 - define( 'RTSB_URL', plugins_url( '', RTSB_FILE ) );
118 - }
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 ) . '/' );
119 112 }
120 113
114 + if ( ! defined( 'RTSB_URL' ) ) {
115 + define( 'RTSB_URL', plugins_url( '', RTSB_FILE ) );
116 + }
117 + }
121 118
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 119
132 - return trailingslashit( RTSB_URL . '/assets' ) . $file;
133 - }
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, '/' );
134 129
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 - }
130 + return trailingslashit( RTSB_URL . '/assets' ) . $file;
131 + }
143 132
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 - }
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 + }
152 141
153 - /**
154 - * Load Text Domain
155 - */
156 - public function language() {
157 - load_plugin_textdomain( 'shopbuilder', false, dirname( plugin_basename( RTSB_FILE ) ) . '/languages/' );
158 - }
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 + }
159 150
160 - /**
161 - * Init
162 - *
163 - * @return void
164 - */
165 - public function init() {
166 - if ( ! Dependencies::instance()->check() ) {
167 - return;
168 - }
151 + /**
152 + * Load Text Domain
153 + */
154 + public function language() {
155 + load_plugin_textdomain( 'shopbuilder', false, dirname( plugin_basename( RTSB_FILE ) ) . '/languages/' );
156 + }
169 157
170 - do_action( 'rtsb/before/loaded' );
158 + /**
159 + * Init
160 + *
161 + * @return void
162 + */
163 + public function init() {
164 + if ( ! Dependencies::instance()->check() ) {
165 + return;
166 + }
171 167
172 - // Include File.
173 - AssetsController::instance();
174 - ModuleManager::instance();
168 + do_action( 'rtsb/before/loaded' );
175 169
176 - // Ajax.
177 - AddToCart::instance();
178 - AjaxLogin::instance();
170 + // Include File.
171 + AssetsController::instance();
172 + ModuleManager::instance();
179 173
180 - BuilderController::instance();
181 - FilterHooks::init_hooks();
182 - ActionHooks::init_hooks();
174 + // Ajax.
175 + AddToCart::instance();
176 + AjaxLogin::instance();
183 177
184 - Installation::init();
185 - Migration::init();
178 + BuilderController::instance();
179 + FilterHooks::init_hooks();
180 + ActionHooks::init_hooks();
186 181
187 - if ( is_admin() ) {
188 - AdminInit::instance();
189 - }
182 + Installation::init();
183 + Migration::init();
190 184
191 - Shortcodes::instance();
192 -
193 - do_action( 'rtsb/after/loaded' );
185 + if ( is_admin() ) {
186 + AdminInit::instance();
194 187 }
195 188
196 - /**
197 - * Checks if Pro version installed
198 - *
199 - * @return boolean
200 - */
201 - public function has_pro() {
202 - return function_exists( 'rtsbpro' );
203 - }
189 + Shortcodes::instance();
204 190
205 - /**
206 - * PRO Version URL.
207 - *
208 - * @return string
209 - */
210 - public function pro_version_link() {
211 - return 'https://shopbuilderwp.com/';
212 - }
191 + do_action( 'rtsb/after/loaded' );
213 192 }
214 193
215 194 /**
216 - * @return ShopBuilder
195 + * Checks if Pro version installed
196 + *
197 + * @return boolean
217 198 */
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;
199 + public function has_pro() {
200 + return function_exists( 'rtsbpro' );
225 201 }
226 202
227 - rtsb();
203 + /**
204 + * PRO Version URL.
205 + *
206 + * @return string
207 + */
208 + public function pro_version_link() {
209 + return 'https://shopbuilderwp.com/';
210 + }
228 211 }