add_category( 'eppro-elements', [ 'title' => __( 'Essential Pro Pack', 'admore-widgets-suite' ), 'icon' => 'fa fa-plug', ] ); } catch ( \Throwable $e ) { eppro_log( 'EPP register_category error: ' . $e->getMessage() ); } } public static function register_widgets( $widgets_manager ): void { static $registered = false; if ( $registered ) return; $registered = true; try { require_once EPPRO_PATH . 'core/base/base-widget.php'; } catch ( \Throwable $e ) { eppro_log( 'EPP base-widget load error: ' . $e->getMessage() ); return; } if ( ! class_exists( 'EPPRO_Base_Widget' ) ) { return; } $disabled = self::get_disabled_widgets(); foreach ( (array) glob( EPPRO_PATH . 'widgets/*/widget.php' ) as $file ) { if ( ! $file ) continue; $folder = basename( dirname( $file ) ); if ( in_array( $folder, $disabled, true ) ) { continue; } $class = EPPRO_Widget_Registry::class_for( $folder ); if ( ! $class ) { continue; } try { $walker = dirname( $file ) . '/class-walker.php'; if ( file_exists( $walker ) ) { require_once $walker; } require_once $file; if ( class_exists( $class ) ) { $widgets_manager->register( new $class() ); } } catch ( \Throwable $e ) { eppro_log( 'EPP widget registration error [' . $class . ']: ' . $e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine() ); } } } // ------------------------------------------------------------------------- /** * Returns an array of widget folder names that are disabled in settings. */ private static function get_disabled_widgets(): array { if ( ! class_exists( 'EPPRO_Admin_Settings' ) ) { return []; } $settings = EPPRO_Admin_Settings::get_settings(); return $settings['disabled_widgets'] ?? []; } }