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