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>
This commit is contained in:
root
2025-11-03 21:04:30 -06:00
commit a22573bf0b
24068 changed files with 4993111 additions and 0 deletions

View File

@@ -0,0 +1,340 @@
<?php
/**
* The plugin bootstrap.
*
* @package AdvancedAds
* @author Advanced Ads <info@wpadvancedads.com>
* @since 1.47.0
*/
namespace AdvancedAds;
use AdvancedAds\Ads\Ads;
use AdvancedAds\Groups\Groups;
use Advanced_Ads_Admin_Licenses;
use AdvancedAds\Installation\Install;
use AdvancedAds\Placements\Placements;
defined( 'ABSPATH' ) || exit;
/**
* Plugin.
*
* Containers:
*
* @property Shortcodes $shortcodes Shortcodes handler.
* @property Assets_Registry $registry Assets registry.
* @property Framework\JSON $json JSON handler.
* @property Admin\Admin_Menu $screens Admin screens.
* @property Frontend\Ad_Renderer $renderer Ads renderer.
* @property Frontend\Manager $frontend Frontend manager.
* @property Importers\Manager $importers Importers manager.
*/
class Plugin extends Framework\Loader {
use Traits\Extras;
/**
* The ads container
*
* @var Ads
*/
public $ads = null;
/**
* The groups container
*
* @var Groups
*/
public $groups = null;
/**
* The placements container
*
* @var Placements
*/
public $placements = null;
/**
* Modules manager
*
* @var Modules
*/
public $modules = null;
/**
* 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 ADVADS_VERSION;
}
/**
* Bootstrap plugin.
*
* @return void
*/
private function setup(): void {
$this->define_constants();
$this->includes_functions();
$this->includes();
$this->includes_rest();
$this->includes_admin();
$this->includes_frontend();
$this->includes_deprecated();
/**
* Old loading strategy
*
* TODO: need to remove it in future.
*/
// Public-Facing and Core Functionality.
\Advanced_Ads::get_instance();
\Advanced_Ads_ModuleLoader::loadModules( ADVADS_ABSPATH . 'modules/' ); // enable modules, requires base class.
if ( is_admin() ) {
Advanced_Ads_Admin_Licenses::get_instance();
}
add_action( 'plugins_loaded', [ $this, 'on_plugins_loaded' ], -1 );
add_action( 'widgets_init', [ $this, 'register_widgets' ] );
// Load it all.
$this->ads->initialize();
$this->groups->initialize();
$this->placements->initialize();
$this->modules->initialize();
$this->load();
}
/**
* Register the Advanced Ads classic Widget
*
* @return void
*/
public function register_widgets(): void {
register_widget( '\AdvancedAds\Widget' );
}
/**
* When WordPress has loaded all plugins, trigger the `advanced-ads-loaded` hook.
*
* @since 1.47.0
*
* @return void
*/
public function on_plugins_loaded(): void {
/**
* Action trigger after loading finished.
*
* @since 1.47.0
*/
do_action( 'advanced-ads-loaded' );
}
/**
* Define Advanced Ads constant
*
* @return void
*/
private function define_constants(): void {
$this->define( 'ADVADS_ABSPATH', dirname( ADVADS_FILE ) . '/' );
$this->define( 'ADVADS_PLUGIN_BASENAME', plugin_basename( ADVADS_FILE ) );
$this->define( 'ADVADS_BASE_URL', plugin_dir_url( ADVADS_FILE ) );
$this->define( 'ADVADS_SLUG', 'advanced-ads' );
// name for group & option in settings.
$this->define( 'ADVADS_SETTINGS_ADBLOCKER', 'advanced-ads-adblocker' );
// Deprecated Constants.
/**
* ADVADS_BASE
*
* @deprecated 1.47.0 use ADVADS_PLUGIN_BASENAME now.
*/
define( 'ADVADS_BASE', ADVADS_PLUGIN_BASENAME );
/**
* ADVADS_BASE_PATH
*
* @deprecated 1.47.0 use ADVADS_ABSPATH now.
*/
define( 'ADVADS_BASE_PATH', ADVADS_ABSPATH );
/**
* ADVADS_BASE_DIR
*
* @deprecated 1.47.0 Avoid global declaration of the constant used exclusively in `load_text_domain` function; use localized declaration instead.
*/
define( 'ADVADS_BASE_DIR', dirname( ADVADS_PLUGIN_BASENAME ) );
/**
* ADVADS_URL
*
* @deprecated 1.47.0 Deprecating the constant in favor of using the direct URL to circumvent costly `esc_url` function; please update code accordingly.
*/
define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
}
/**
* Includes core files used in admin and on the frontend.
*
* @return void
*/
private function includes(): void {
$this->ads = new Ads();
$this->groups = new Groups();
$this->placements = new Placements();
$this->modules = new Modules();
// Common.
$this->register_initializer( Install::class );
$this->register_integration( Entities::class );
$this->register_integration( Assets_Registry::class, 'registry' );
$this->register_integration( Framework\JSON::class, 'json', [ 'advancedAds' ] );
$this->register_integration( Compatibility\Compatibility::class );
$this->register_integration( Compatibility\AAWP::class );
$this->register_integration( Compatibility\Peepso::class );
$this->register_integration( Post_Data::class );
$this->register_integration( Crons\Ads::class );
$this->register_integration( Shortcodes::class, 'shortcodes' );
$this->register_integration( Frontend\Debug_Ads::class );
}
/**
* Includes files used on the frontend.
*
* @return void
*/
private function includes_frontend(): void {
// Early bail!!
if ( is_admin() ) {
return;
}
$this->register_integration( Frontend\Ad_Renderer::class, 'renderer' );
$this->register_integration( Frontend\Manager::class, 'frontend' );
$this->register_integration( Frontend\Scripts::class );
}
/**
* Includes files used in admin.
*
* @return void
*/
private function includes_admin(): void {
// Early bail!!
if ( ! is_admin() ) {
return;
}
$this->register_integration( Compatibility\Capability_Manager::class );
$this->register_initializer( Upgrades::class );
$this->register_integration( Admin\Action_Links::class );
$this->register_integration( Admin\Admin_Menu::class, 'screens' );
$this->register_integration( Admin\Admin_Notices::class );
$this->register_integration( Admin\Assets::class );
$this->register_integration( Admin\Header::class );
$this->register_integration( Admin\Marketing::class );
$this->register_integration( Admin\Metabox_Ad::class );
$this->register_integration( Admin\Metabox_Ad_Settings::class );
$this->register_integration( Admin\Post_Types::class );
$this->register_integration( Admin\Screen_Options::class );
$this->register_integration( Admin\Shortcode_Creator::class );
$this->register_integration( Admin\TinyMCE::class );
$this->register_integration( Admin\WordPress_Dashboard::class );
$this->register_integration( Admin\Quick_Bulk_Edit::class );
$this->register_integration( Admin\Page_Quick_Edit::class );
$this->register_integration( Admin\Placement_Quick_Edit::class );
$this->register_integration( Importers\Manager::class, 'importers' );
$this->register_integration( Admin\AJAX::class );
$this->register_integration( Admin\Version_Control::class );
$this->register_integration( Admin\Upgrades::class );
$this->register_integration( Admin\Authors::class );
$this->register_integration( Admin\Settings::class );
$this->register_integration( Admin\Misc::class );
$this->register_integration( Admin\Post_List::class );
$this->register_integration( Admin\Placement\Bulk_Edit::class );
$this->register_integration( Admin\Addon_Updater::class );
if ( ! wp_doing_ajax() ) {
$this->register_integration( Admin\List_Filters::class, 'list_filters' );
}
}
/**
* Includes rest api files used in admin and on the frontend.
*
* @return void
*/
private function includes_rest(): void {
$this->register_route( Rest\Groups::class );
$this->register_route( Rest\Page_Quick_Edit::class );
$this->register_route( Rest\Placements::class );
$this->register_route( Rest\OnBoarding::class );
$this->register_route( Rest\Utilities::class );
}
/**
* Includes the necessary functions files.
*
* @return void
*/
private function includes_functions(): void {
require_once ADVADS_ABSPATH . 'includes/functions.php';
require_once ADVADS_ABSPATH . 'includes/functions-core.php';
require_once ADVADS_ABSPATH . 'includes/functions-conditional.php';
require_once ADVADS_ABSPATH . 'includes/functions-ad.php';
require_once ADVADS_ABSPATH . 'includes/functions-group.php';
require_once ADVADS_ABSPATH . 'includes/functions-placement.php';
require_once ADVADS_ABSPATH . 'includes/cap_map.php';
require_once ADVADS_ABSPATH . 'includes/default-hooks.php';
}
/**
* Includes deprecated files.
*
* @return void
*/
private function includes_deprecated(): void {
require_once ADVADS_ABSPATH . 'deprecated/ad_group.php';
require_once ADVADS_ABSPATH . 'deprecated/ad_placements.php';
require_once ADVADS_ABSPATH . 'deprecated/Ad_Repository.php';
require_once ADVADS_ABSPATH . 'deprecated/ad_type_abstract.php';
require_once ADVADS_ABSPATH . 'deprecated/ad_type_content.php';
require_once ADVADS_ABSPATH . 'deprecated/ad_type_dummy.php';
require_once ADVADS_ABSPATH . 'deprecated/ad_type_group.php';
require_once ADVADS_ABSPATH . 'deprecated/ad_type_image.php';
require_once ADVADS_ABSPATH . 'deprecated/ad_type_plain.php';
require_once ADVADS_ABSPATH . 'deprecated/ad-ajax.php';
require_once ADVADS_ABSPATH . 'deprecated/ad-debug.php';
require_once ADVADS_ABSPATH . 'deprecated/ad-expiration.php';
require_once ADVADS_ABSPATH . 'deprecated/ad-model.php';
require_once ADVADS_ABSPATH . 'deprecated/ad-select.php';
require_once ADVADS_ABSPATH . 'deprecated/ad.php';
require_once ADVADS_ABSPATH . 'deprecated/deprecated-functions.php';
require_once ADVADS_ABSPATH . 'deprecated/gadsense-dummy.php';
require_once ADVADS_ABSPATH . 'deprecated/Group_Repository.php';
require_once ADVADS_ABSPATH . 'deprecated/class-admin.php';
require_once ADVADS_ABSPATH . 'deprecated/class-advanced-ads-plugin.php';
}
}