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,190 @@
<?php
/**
* The class provides plugin installation routines.
*
* @package AdvancedAds\Pro
* @author Advanced Ads <info@wpadvancedads.com>
* @since 2.26.0
*/
namespace AdvancedAds\Pro\Installation;
use Advanced_Ads_Pro;
defined( 'ABSPATH' ) || exit;
/**
* Install.
*/
class Install {
/**
* Runs this initializer.
*
* @return void
*/
public function initialize(): void {
if ( null !== AAP_FILE ) {
register_activation_hook( AAP_FILE, [ $this, 'activation' ] );
register_deactivation_hook( AAP_FILE, [ $this, 'deactivation' ] );
add_action( 'wp_initialize_site', [ $this, 'initialize_site' ] );
}
}
/**
* Activation routine.
*
* @param bool $network_wide Whether the plugin is being activated network-wide.
*
* @return void
*/
public function activation( $network_wide = false ): void {
register_uninstall_hook( AAP_FILE, [ static::class, 'uninstall' ] );
if ( ! is_multisite() || ! $network_wide ) {
$this->activate();
return;
}
$this->network_activate_deactivate( 'activate' );
}
/**
* Deactivation routine.
*
* @param bool $network_wide Whether the plugin is being activated network-wide.
*
* @return void
*/
public function deactivation( $network_wide = false ): void {
if ( ! is_multisite() || ! $network_wide ) {
$this->deactivate();
return;
}
$this->network_activate_deactivate( 'deactivate' );
}
/**
* Fired when a new site is activated with a WPMU environment.
*
* @param WP_Site $site The new site's object.
*
* @return void
*/
public function initialize_site( $site ): void {
switch_to_blog( $site->blog_id );
$this->activate();
restore_current_blog();
}
/**
* Run network-wide activation/deactivation of the plugin.
*
* @param string $action Action to perform.
*
* @return void
*/
private function network_activate_deactivate( $action ): void {
global $wpdb;
$site_ids = self::get_sites();
if ( empty( $site_ids ) ) {
return;
}
foreach ( $site_ids as $site_id ) {
switch_to_blog( $site_id );
$this->$action();
restore_current_blog();
}
}
/**
* Get network sites
*
* @return array|int
*/
public static function get_sites() {
global $wpdb;
return get_sites(
[
'archived' => 0,
'spam' => 0,
'deleted' => 0,
'network_id' => $wpdb->siteid,
'fields' => 'ids',
]
);
}
/**
* Plugin activation callback.
*
* @return void
*/
protected function activate(): void {
add_role(
'advanced_ads_admin',
__( 'Ad Admin', 'advanced-ads-pro' ),
[
'read' => true,
'advanced_ads_manage_options' => true,
'advanced_ads_see_interface' => true,
'advanced_ads_edit_ads' => true,
'advanced_ads_manage_placements' => true,
'advanced_ads_place_ads' => true,
'upload_files' => true,
'unfiltered_html' => true,
]
);
add_role(
'advanced_ads_manager',
__( 'Ad Manager', 'advanced-ads-pro' ),
[
'read' => true,
'advanced_ads_see_interface' => true,
'advanced_ads_edit_ads' => true,
'advanced_ads_manage_placements' => true,
'advanced_ads_place_ads' => true,
'upload_files' => true,
'unfiltered_html' => true,
]
);
add_role(
'advanced_ads_user',
__( 'Ad User', 'advanced-ads-pro' ),
[
'read' => true,
'advanced_ads_place_ads' => true,
]
);
Advanced_Ads_Pro::get_instance()
->enable_placement_test_emails();
}
/**
* Plugin deactivation callback.
*
* @return void
*/
protected function deactivate(): void {
remove_role( 'advanced_ads_admin' );
remove_role( 'advanced_ads_manager' );
remove_role( 'advanced_ads_user' );
Advanced_Ads_Pro::get_instance()
->disable_placement_test_emails();
}
/**
* Plugin uninstall callback.
*
* @return void
*/
public static function uninstall(): void {}
}