PluginProbe
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell / 3.10.8
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell v3.10.8
3.13.3 3.13.2 3.13.1 3.13.0 3.12.13 3.12.12 3.12.11 3.12.10 3.12.9 3.12.8 3.12.7 3.12.6 3.12.5 3.12.4 3.12.3 3.12.1 3.12.2 3.12.0 3.11.1 3.11.0 3.10.9 3.10.8 3.10.7 3.10.6 2.8.16 All 261 releases
wpfunnels / includes / core / classes / class-wpfnl-module-manager.php

class-wpfnl-module-manager.php in WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell 3.10.8, at includes/core/classes/class-wpfnl-module-manager.php

101 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Module mnager
4 *
5 * @package
6 */
7 namespace WPFunnels\Modules;
8
9 use WPFunnels\Base_Manager;
10
11 class Wpfnl_Modules_Manager extends Base_Manager {
12
13 private $admin_modules = [];
14
15 private $frontend_modules = [];
16
17 public function __construct() {
18 $modules_namespace_prefix = $this->get_namespace_prefix();
19 $modules = $this->get_modules_names();
20 $admin_modules = $modules['admin'];
21 $frontend_modules = $modules['frontend'];
22
23 foreach ( $admin_modules as $key => $module_name ) {
24 if( $key === 'steps') {
25 $class_name = str_replace('-', ' ', $key);
26 $class_name = str_replace(' ', '', ucwords($class_name));
27 $class_name = $modules_namespace_prefix . '\\Admin\\Modules\\' . $class_name . '\Module';
28 $this->admin_modules[$key] = $class_name::instance();
29 $this->admin_modules[$key]->init_ajax();
30 foreach ($module_name as $step) {
31 $class_name = str_replace('-', ' ', $step);
32 $class_name = str_replace(' ', '', ucwords($class_name));
33 $class_name = $modules_namespace_prefix . '\\Admin\\Modules\\Steps\\' . $class_name . '\Module';
34 $this->admin_modules[$step] = $class_name::instance();
35 $this->admin_modules[$step]->init_ajax();
36 }
37 }else {
38 $class_name = str_replace('-', ' ', $module_name);
39 $class_name = str_replace(' ', '', ucwords($class_name));
40 $class_name = $modules_namespace_prefix . '\\Modules\\Admin\\' . $class_name . '\Module';
41 $this->admin_modules[$module_name] = $class_name::instance();
42 $this->admin_modules[$module_name]->init_ajax();
43 }
44 }
45
46 foreach ( $frontend_modules as $module_name ) {
47 $class_name = str_replace( '-', ' ', $module_name );
48 $class_name = str_replace( ' ', '', ucwords( $class_name ) );
49 $class_name = $modules_namespace_prefix . '\\Modules\\Frontend\\' . $class_name . '\Module';
50 $this->frontend_modules[ $module_name ] = $class_name::instance();
51 }
52 }
53
54 public function get_modules_names() {
55 return [
56 'admin' => array(
57 'funnels',
58 'funnel',
59 'settings',
60 'automations',
61 'steps' => array(
62 'landing',
63 'thankyou',
64 'checkout',
65 ),
66 'create-funnel',
67 'product',
68 'discount',
69 'category',
70 ),
71 'frontend' => array(
72 'checkout',
73 'thankyou'
74 ),
75 ];
76 }
77
78 public function get_admin_modules( $module_name ) {
79 if ( $module_name ) {
80 if ( isset( $this->admin_modules[ $module_name ] ) ) {
81 return $this->admin_modules[ $module_name ];
82 }
83
84 return null;
85 }
86
87 return $this->admin_modules;
88 }
89
90 public function get_frontend_modules( $module_name ) {
91 if ( $module_name ) {
92 if ( isset( $this->frontend_modules[ $module_name ] ) ) {
93 return $this->frontend_modules[ $module_name ];
94 }
95 return null;
96 }
97 return $this->frontend_modules;
98 }
99
100 }
101