=' ) ) {
add_action(
'all_admin_notices',
static function () {
printf(
'
',
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' )
);
}