403Webshell
Server IP : 3.93.235.159  /  Your IP : 216.73.216.140
Web Server : Apache
System : Linux ip-172-26-0-169 5.10.0-46-cloud-amd64 #1 SMP Debian 5.10.262-1 (2026-07-31) x86_64
User : bitnami ( 1000)
PHP Version : 8.2.9
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /bitnami/wordpress/wp-content/plugins/send-app/core/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /bitnami/wordpress/wp-content/plugins/send-app/core/modules-manager.php
<?php
namespace Send_App\Core;

use Send_App\Core\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * class Modules_Manager
 *
 * holds all system nodules and initializes any required external libraries.
 */
final class Modules_Manager {

	private static ?Modules_Manager $instance = null;

	/**
	 * @var Module_Base[]
	 */
	private array $modules = [];

	public function register_modules(): void {
		foreach ( $this->get_module_list() as $module_name ) {
			// turn dash-separated into camel case namespace
			$class_name = str_replace( '-', ' ', $module_name );
			$class_name = str_replace( ' ', '', ucwords( $class_name ) );
			$class_name = '\\Send_App\\Modules\\' . $class_name . '\Module';

			/**
			 * @var Module_Base $class_name
			 */
			if ( $class_name::is_active() ) {
				$this->modules[ $module_name ] = $class_name::get_instance();
			}
		}
	}


	/**
	 * Modules namespaces list
	 *
	 * @return string[]
	 */
	private function get_module_list(): array {
		return [
			'Elementor',
			'Wp_Forms',
			'Ninja_Forms',
			'Woocommerce',
			'Admin',
			'CF7',
			'Gravityforms',
			'Sitedata',
		];
	}

	public function get_modules( string $module_name = '' ) {
		if ( $module_name ) {
			return $this->modules[ $module_name ] ?? null;
		}

		return $this->modules;
	}

	public function include_external_libraries() {
		require_once SEND_PATH . 'vendor/woocommerce/action-scheduler/action-scheduler.php';
	}

	public function init() {
		foreach ( $this->modules as $module ) {
			$module->init();
		}
	}

	public static function get_instance(): Modules_Manager {
		if ( is_null( self::$instance ) ) {
			self::$instance = new self();
		}

		return self::$instance;
	}

	/**
	 * Singleton
	 */
	private function __construct() {
		$this->include_external_libraries();
		$this->register_modules();
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit