- WordPress core y plugins - Tema Twenty Twenty-Four configurado - Plugin allow-unfiltered-html.php simplificado - .gitignore configurado para excluir wp-config.php y uploads 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
166 lines
3.6 KiB
PHP
Executable File
166 lines
3.6 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* The plugin bootstrap.
|
|
*
|
|
* @package AdvancedAds\Pro
|
|
* @author Advanced Ads <info@wpadvancedads.com>
|
|
* @since 2.26.0
|
|
*/
|
|
|
|
namespace AdvancedAds\Pro;
|
|
|
|
use Advanced_Ads_Pro;
|
|
use AdvancedAds\Pro\Admin;
|
|
use AdvancedAds\Framework\Loader;
|
|
use AdvancedAds\Pro\Placements\Placement_Types;
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
/**
|
|
* Plugin.
|
|
*/
|
|
class Plugin extends Loader {
|
|
|
|
/**
|
|
* Main instance
|
|
*
|
|
* Ensure only one instance is loaded or can be loaded.
|
|
*
|
|
* @return Plugin
|
|
*/
|
|
public static function get(): Plugin {
|
|
static $instance;
|
|
|
|
if ( null === $instance ) {
|
|
$instance = new Plugin();
|
|
$instance->setup();
|
|
}
|
|
|
|
return $instance;
|
|
}
|
|
|
|
/**
|
|
* Get plugin version
|
|
*
|
|
* @return string
|
|
*/
|
|
public function get_version(): string {
|
|
return AAP_VERSION;
|
|
}
|
|
|
|
/**
|
|
* Bootstrap plugin.
|
|
*
|
|
* @return void
|
|
*/
|
|
private function setup(): void {
|
|
$this->define_constants();
|
|
$this->includes();
|
|
$this->includes_admin();
|
|
|
|
/**
|
|
* Old loading strategy
|
|
*
|
|
* TODO: need to remove it in future.
|
|
*/
|
|
Advanced_Ads_Pro::get_instance();
|
|
|
|
add_action( 'init', [ $this, 'load_textdomain' ] );
|
|
$this->load();
|
|
}
|
|
|
|
/**
|
|
* Define Advanced Ads constant
|
|
*
|
|
* @return void
|
|
*/
|
|
private function define_constants(): void {
|
|
$this->define( 'AA_PRO_ABSPATH', dirname( AAP_FILE ) . '/' );
|
|
$this->define( 'AA_PRO_BASENAME', plugin_basename( AAP_FILE ) );
|
|
$this->define( 'AA_PRO_BASE_URL', plugin_dir_url( AAP_FILE ) );
|
|
$this->define( 'AA_PRO_SLUG', 'advanced-ads-pro' );
|
|
|
|
// Deprecated Constants.
|
|
/**
|
|
* AAP_PATH
|
|
*
|
|
* @deprecated 2.26.0 use AA_PRO_ABSPATH now.
|
|
*/
|
|
define( 'AAP_PATH', AA_PRO_ABSPATH );
|
|
|
|
/**
|
|
* AAP_BASE_PATH
|
|
*
|
|
* @deprecated 2.26.0 use AA_PRO_ABSPATH now.
|
|
*/
|
|
define( 'AAP_BASE_PATH', AA_PRO_ABSPATH );
|
|
|
|
/**
|
|
* AAP_BASE
|
|
*
|
|
* @deprecated 2.26.0 use AA_PRO_BASENAME now.
|
|
*/
|
|
define( 'AAP_BASE', AA_PRO_BASENAME );
|
|
|
|
/**
|
|
* AAP_BASE_URL
|
|
*
|
|
* @deprecated 2.26.0 use AA_PRO_BASE_URL now.
|
|
*/
|
|
define( 'AAP_BASE_URL', AA_PRO_BASE_URL );
|
|
|
|
/**
|
|
* AAP_SLUG
|
|
*
|
|
* @deprecated 2.26.0 use AA_PRO_SLUG now.
|
|
*/
|
|
define( 'AAP_SLUG', AA_PRO_SLUG );
|
|
}
|
|
|
|
/**
|
|
* Load the plugin text domain for translation.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function load_textdomain(): void {
|
|
$locale = apply_filters( 'plugin_locale', determine_locale(), 'advanced-ads-pro' );
|
|
|
|
unload_textdomain( 'advanced-ads-pro' );
|
|
if ( false === load_textdomain( 'advanced-ads-pro', WP_LANG_DIR . '/plugins/advanced-ads-pro-' . $locale . '.mo' ) ) {
|
|
load_textdomain( 'advanced-ads-pro', WP_LANG_DIR . '/advanced-ads-pro/advanced-ads-pro-' . $locale . '.mo' );
|
|
}
|
|
|
|
load_plugin_textdomain( 'advanced-ads-pro', false, dirname( AA_PRO_BASENAME ) . '/languages' );
|
|
}
|
|
|
|
/**
|
|
* Includes core files used in admin and on the frontend.
|
|
*
|
|
* @return void
|
|
*/
|
|
private function includes(): void {
|
|
$this->register_integration( Adsense::class );
|
|
$this->register_integration( Assets_Manager::class, 'registry' );
|
|
$this->register_integration( Placement_Types::class );
|
|
}
|
|
|
|
/**
|
|
* Includes the necessary files for the admin section of the plugin.
|
|
*
|
|
* @return void
|
|
*/
|
|
private function includes_admin(): void {
|
|
// Early bail!!
|
|
if ( ! is_admin() ) {
|
|
return;
|
|
}
|
|
|
|
$this->register_initializer( Upgrades::class, 'upgrades' );
|
|
$this->register_integration( Admin\Adsense::class );
|
|
$this->register_integration( Admin\Ad_List_Table::class );
|
|
$this->register_integration( Admin\Group_Duplication::class );
|
|
$this->register_integration( Admin\Duplicate_Placement::class );
|
|
$this->register_integration( Admin\Placements\Bulk_Edit::class );
|
|
}
|
|
}
|