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