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

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

200 lines 4.2 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\Helpers\Fns;
20 // Do not allow directly accessing this file.
21 if ( ! defined( 'ABSPATH' ) ) {
22 exit( 'This script cannot be accessed directly.' );
23 }
24
25 require_once __DIR__ . './../vendor/autoload.php';
26
27 if ( ! class_exists( ShopBuilder::class ) ) {
28 /**
29 * Main initialization class.
30 */
31 final class ShopBuilder {
32
33 /**
34 * Nonce id
35 *
36 * @var string
37 */
38 public $nonceId = '__rtsb_wpnonce';
39
40 /**
41 * Nonce Text
42 *
43 * @var string
44 */
45 public $nonceText = 'rtsb_nonce';
46 /**
47 * Post Type.
48 *
49 * @var string
50 */
51 public $post_type;
52 /**
53 * Post Type.
54 *
55 * @var string
56 */
57 public $current_theme;
58 /**
59 * Singleton
60 */
61 use SingletonTrait;
62
63 /**
64 * Class Constructor
65 */
66 private function __construct() {
67 $this->define_constants();
68 $this->post_type = 'product';
69 $this->current_theme = wp_get_theme()->get( 'Template' ) ? wp_get_theme()->get( 'Template' ) : wp_get_theme()->get( 'TextDomain' ) ;
70 add_action( 'init', [ $this, 'language' ] );
71 add_action( 'plugins_loaded', [ $this, 'init' ], 100 );
72
73 // Register Plugin Active Hook.
74 register_activation_hook( RTSB_FILE, [ Installation::class, 'activate' ] );
75
76 // Register Plugin Deactivate Hook.
77 register_deactivation_hook( RTSB_FILE, [ Installation::class, 'deactivation' ] );
78 }
79
80 /**
81 * Constants
82 *
83 * @return void
84 */
85 private function define_constants() {
86 if ( ! defined( 'RTSB_ABSPATH' ) ) {
87 define( 'RTSB_ABSPATH', dirname( RTSB_FILE ) . '/' );
88 }
89
90 if ( ! defined( 'RTSB_URL' ) ) {
91 define( 'RTSB_URL', plugins_url( '', RTSB_FILE ) );
92 }
93 }
94
95
96 /**
97 * Assets url generate with given assets file
98 *
99 * @param string $file File.
100 *
101 * @return string
102 */
103 public function get_assets_uri( $file ) {
104 $file = ltrim( $file, '/' );
105
106 return trailingslashit( RTSB_URL . '/assets' ) . $file;
107 }
108
109 /**
110 * Get the template path.
111 *
112 * @return string
113 */
114 public function get_template_path() {
115 return apply_filters( 'rtsb_template_path', 'shopbuilder/' );
116 }
117
118 /**
119 * Get the plugin path.
120 *
121 * @return string
122 */
123 public function plugin_path() {
124 return untrailingslashit( plugin_dir_path( RTSB_FILE ) );
125 }
126
127 /**
128 * Load Text Domain
129 */
130 public function language() {
131 load_plugin_textdomain( 'shopbuilder', false, dirname( plugin_basename( RTSB_FILE ) ) . '/languages/' );
132 }
133
134 /**
135 * Init
136 *
137 * @return void
138 */
139 public function init() {
140 if ( ! Dependencies::instance()->check() ) {
141 return;
142 }
143
144 do_action( 'rtsb/before_loaded' );
145 // Plugins Setting Page.
146 add_filter(
147 'plugin_action_links_' . plugin_basename(RTSB_FILE ),
148 [
149 Fns::class,
150 'plugins_setting_links',
151 ]
152 );
153
154 // Include File.
155 AssetsController::instance();
156 SupportController::instance();
157 ModuleManager::instance();
158 AddToCart::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( 'rtsbp' );
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