PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.2.3
ShopBuilder – WooCommerce Builder For Elementor v3.2.3
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 2.3.0 All 62 releases
← All changes | app/Modules/ModuleManager.php +21 -7 2.0.23.2.3 View file →
@@ -1,9 +1,11 @@
1 1 <?php
2 2
3 3 namespace RadiusTheme\SB\Modules;
4 +
4 5 defined( 'ABSPATH' ) || exit();
5 6
7 +use RadiusTheme\SB\Helpers\Fns;
6 8 use RadiusTheme\SB\Models\ModuleList;
7 9
8 10 use RadiusTheme\SB\Traits\SingletonTrait;
9 11
@@ -12,28 +14,40 @@
12 14 use SingletonTrait;
13 15
14 16 private $module_list;
15 17
18 + private $module_instances = [];
16 19 private function __construct() {
17 20 add_action( 'init', [ $this, 'load_modules' ], 15 );
18 21 }
19 22
20 23 public function load_modules() {
24 + if ( ! is_null( $this->module_list ) ) {
25 + return;
26 + }
27 + $this->module_list = ModuleList::instance()->get_list( true, 'active' );
28 + foreach ( $this->module_list as $module ) {
29 + if ( isset( $module['active'] ) && $module['active'] !== 'on' ) {
30 + continue;
31 + }
21 32
22 - foreach ( ModuleList::instance()->get_list( true, 'active' ) as $module ) {
33 + if ( ! empty( $module['package'] ) && $module['package'] === 'pro-disabled' ) {
34 + continue;
35 + }
23 36
24 - if ( isset( $module['active'] ) && $module['active'] !== 'on' ) {
37 + if ( ! isset( $module['base_class'] ) ) {
25 38 continue;
26 39 }
27 40
28 - if ( ! empty( $module['package'] ) && $module['package'] === 'pro-disabled' ) {
41 + if ( isset( $this->module_instances[ $module['base_class'] ] ) ) {
29 42 continue;
30 43 }
31 44
32 - if ( isset( $module['base_class'] ) && class_exists( $module['base_class'] ) ) {
33 - $module['base_class']::instance();
45 + if ( ! class_exists( $module['base_class'] ) ) {
46 + continue;
34 47 }
35 48
49 + $module['base_class']::instance();
50 +
36 51 }
37 -
38 52 }
39 -}
53 +}