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
shopbuilder / app / ShopBuilder.php

ShopBuilder.php in ShopBuilder – WooCommerce Builder For Elementor 1.1.4, at app/ShopBuilder.php

200 lines 4.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 }
200