=' ) ) { add_action( 'all_admin_notices', static function () { printf( '

%s

', esc_html__( 'The Ad Fuz plugin requires PHP version 8.0 or higher.', 'ad-fuz' ) ); } ); return false; } do_action( 'adfuz/core/autoload:before' ); // 2. Built-in PSR-4 fallback autoloader for AdFuz and bundled MaxMind\Db classes. spl_autoload_register( static function ( $class ) { if ( 0 === strpos( $class, 'AdFuz\\' ) ) { $relative = substr( $class, strlen( 'AdFuz\\' ) ); $file = ADFUZ_PLUGIN_DIR . '/src/' . str_replace( '\\', '/', $relative ) . '.php'; if ( file_exists( $file ) ) { require_once $file; } } elseif ( 0 === strpos( $class, 'MaxMind\\Db\\' ) ) { $file = ADFUZ_PLUGIN_DIR . '/includes/vendor/' . str_replace( '\\', '/', $class ) . '.php'; if ( file_exists( $file ) ) { require_once $file; } } } ); // 3. Optional initial validation helper (case-resilient for Linux file systems) $validation_file = ADFUZ_PLUGIN_DIR . '/src/Notifications/AdFuzInitialValidation.php'; if ( ! file_exists( $validation_file ) ) { $validation_file = ADFUZ_PLUGIN_DIR . '/src/notifications/AdFuzInitialValidation.php'; } if ( file_exists( $validation_file ) ) { require_once $validation_file; } if ( class_exists( 'AdFuzInitialValidation' ) && ! AdFuzInitialValidation::get_instance()->validate() ) { return false; } do_action( 'adfuz/core/autoload:after' ); do_action( 'adfuz/vendor/autoload:before' ); if ( file_exists( ADFUZ_PLUGIN_DIR . '/vendor/autoload.php' ) ) { require_once ADFUZ_PLUGIN_DIR . '/vendor/autoload.php'; } do_action( 'adfuz/vendor/autoload:after' ); if ( ! function_exists( 'AdFuz' ) ) { /** * The below class will trigger the __construct to load the hooks. * * @return mixed */ function AdFuz() { $adfuz = (object) array( 'core' => array( 'hook' => array( 'action' => \AdFuz\Hooks\Action\Action::get_instance(), 'filter' => \AdFuz\Hooks\Filter\Filter::get_instance(), ), 'database' => array( 'install' => \AdFuz\Database\Install::get_instance(), ), 'debug' => array( 'type' => 'test', // test, live. ), ), 'frontend' => array( 'shortcode' => \AdFuz\Hooks\Action\Shortcode::get_instance(), ), 'request' => new \AdFuz\Requests\Request(), ); return apply_filters( 'adfuz/core', $adfuz ); } } add_action( 'init', static function () { load_plugin_textdomain( 'ad-fuz', false, dirname( plugin_basename( ADFUZ_PLUGIN ) ) . '/languages' ); } ); add_action( 'plugins_loaded', function () { global $AdFuz; do_action( 'adfuz/function/core:before' ); $AdFuz = AdFuz(); do_action( 'adfuz/function/core:after' ); }, 10 ); if ( defined( 'ADFUZ_PLUGIN' ) ) { register_activation_hook( ADFUZ_PLUGIN, array( \AdFuz\Controllers\Core\Lifecycle::class, 'activate' ) ); register_deactivation_hook( ADFUZ_PLUGIN, array( \AdFuz\Controllers\Core\Lifecycle::class, 'deactivate' ) ); }