PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.1.2
ShopBuilder – WooCommerce Builder For Elementor v2.1.2
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 / Modules / ModuleManager.php

ModuleManager.php in ShopBuilder – WooCommerce Builder For Elementor 2.1.2, at app/Modules/ModuleManager.php

63 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace RadiusTheme\SB\Modules;
4 defined( 'ABSPATH' ) || exit();
5
6 use RadiusTheme\SB\Models\ModuleList;
7
8 use RadiusTheme\SB\Traits\SingletonTrait;
9
10 class ModuleManager {
11
12 use SingletonTrait;
13
14 private $module_list;
15
16 private $module_instances = array();
17 private function __construct() {
18 add_action( 'init', [ $this, 'load_modules' ], 15 );
19 }
20
21 public function load_modules() {
22 if ( ! is_null( $this->module_list ) ) {
23 return;
24 }
25 $this->module_list = ModuleList::instance()->get_list( true, 'active' );
26 foreach ( $this->module_list as $module ) {
27 if ( isset( $module['active'] ) && $module['active'] !== 'on' ) {
28 continue;
29 }
30
31 if ( ! empty( $module['package'] ) && $module['package'] === 'pro-disabled' ) {
32 continue;
33 }
34
35 if ( ! isset( $module['base_class'] ) ) {
36 continue;
37 }
38
39 if ( isset( $this->module_instances[ $module['base_class'] ] ) ) {
40 continue;
41 }
42
43 if ( ! class_exists( $module['base_class'] ) ) {
44 continue;
45 }
46
47 // Check if the instance is already in the cache
48 $cached_instance = wp_cache_get( $module['base_class'], 'module_instances' );
49 if ( false === $cached_instance ) {
50 // Create an instance and store it in the cache
51 $this->module_instances[ $module['base_class'] ] = $module['base_class']::instance();
52 wp_cache_set( $module['base_class'], $this->module_instances[ $module['base_class'] ], 'module_instances' );
53 } else {
54 // Use the cached instance
55 $this->module_instances[ $module['base_class'] ] = $cached_instance;
56 }
57
58 }
59
60 }
61
62
63 }