PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 1.1.0
ShopBuilder – WooCommerce Builder For Elementor v1.1.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
shopbuilder / app / ShopBuilder.php

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

208 lines 4.3 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 // Plugins Setting Page.
153 add_filter(
154 'plugin_action_links_' . plugin_basename( RTSB_FILE ),
155 [
156 Fns::class,
157 'plugins_setting_links',
158 ]
159 );
160
161 // Include File.
162 AssetsController::instance();
163
164 ModuleManager::instance();
165 AddToCart::instance();
166 AjaxLogin::instance();
167
168 BuilderController::instance();
169 FilterHooks::init_hooks();
170 ActionHooks::init_hooks();
171
172 Installation::init();
173 if ( is_admin() ) {
174 AdminInit::instance();
175 }
176
177 do_action( 'rtsb/after/loaded' );
178 }
179
180 /**
181 * Checks if Pro version installed
182 *
183 * @return boolean
184 */
185 public function has_pro() {
186 return function_exists( 'rtsbpro' );
187 }
188
189 /**
190 * PRO Version URL.
191 *
192 * @return string
193 */
194 public function pro_version_link() {
195 return 'https://www.radiustheme.com/downloads/shopbuilder/';
196 }
197 }
198
199 /**
200 * @return ShopBuilder
201 */
202 function rtsb() {
203 return ShopBuilder::instance();
204 }
205
206 rtsb();
207 }
208