Files
roi-theme/wp-content/plugins/advanced-ads-pro/includes/class-plugin.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- 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>
2025-11-03 21:04:30 -06:00

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 );
}
}