mirror of
https://gh.wpcy.net/https://github.com/elementor/one-click-accessibility.git
synced 2026-04-21 11:32:30 +08:00
* add: webhook endpoint * add: widget module * add: default widget settings on successful registration * update: name of global object to ea11yWidget * update: remove json encoding to make objects available on the frontend * update: widget url, filter and enqueuing method * update: removed obsolete code * update: enqueue script only when connected * update: add check for valid plan data and key * update: conditional check * update: conditional check
61 lines
1.1 KiB
PHP
61 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace EA11y;
|
|
|
|
use EA11y\Classes\Module_Base;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
|
|
final class Manager {
|
|
/**
|
|
* @var Module_Base[]
|
|
*/
|
|
private array $modules = [];
|
|
|
|
public static function get_module_list(): array {
|
|
return [
|
|
'Legacy',
|
|
'Connect',
|
|
'Settings',
|
|
'Widget',
|
|
'Core',
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public function __construct() {
|
|
$modules = self::get_module_list();
|
|
|
|
foreach ( $modules as $module_name ) {
|
|
$class_name = str_replace( '-', ' ', $module_name );
|
|
$class_name = str_replace( ' ', '', ucwords( $class_name ) );
|
|
$class_name = __NAMESPACE__ . '\\Modules\\' . $class_name . '\Module';
|
|
|
|
/** @var Module_Base $class_name */
|
|
if ( $class_name::is_active() ) {
|
|
$this->modules[ $module_name ] = $class_name::instance();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param string $module_name
|
|
*
|
|
* @return Module_Base|Module_Base[]
|
|
*/
|
|
public function get_modules( string $module_name ) {
|
|
if ( $module_name ) {
|
|
if ( isset( $this->modules[ $module_name ] ) ) {
|
|
return $this->modules[ $module_name ];
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
return $this->modules;
|
|
}
|
|
}
|