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,108 @@
<?php
/**
* Bulk edit for placement
*
* @package AdvancedAds
* @author Advanced Ads <info@wpadvancedads.com>
* @since 2.0
*/
namespace AdvancedAds\Admin\Placement;
use AdvancedAds\Constants;
use AdvancedAds\Abstracts\Placement;
use AdvancedAds\Framework\Utilities\Params;
use AdvancedAds\Framework\Interfaces\Integration_Interface;
defined( 'ABSPATH' ) || exit;
/**
* Placement Bulk Edit.
*/
class Bulk_Edit implements Integration_Interface {
/**
* Hook into WordPress.
*
* @return void
*/
public function hooks(): void {
add_action( 'bulk_edit_custom_box', [ $this, 'add_bulk_edit_fields' ], 10, 2 );
add_action( 'save_post', [ $this, 'save_bulk_edit' ], 100 );
}
/**
* Add the bulk edit inputs
*
* @param string $column_name the current column.
* @param string $post_type the current post type.
*
* @return void
*/
public function add_bulk_edit_fields( $column_name, $post_type ) {
// Early bail!!
if ( Constants::POST_TYPE_PLACEMENT !== $post_type || 'type' !== $column_name ) {
return;
}
include ADVADS_ABSPATH . 'views/admin/placements/bulk-edit.php';
/**
* Allow add-ons to add more fields.
*/
do_action( 'advanced-ads-placement-bulk-edit-fields' );
}
/**
* Save changes made during bulk edit
*
* @return void
*/
public function save_bulk_edit() {
// not placement or not enough permissions.
if ( Constants::POST_TYPE_PLACEMENT !== sanitize_key( Params::get( 'post_type' ) ) || ! current_user_can( 'advanced_ads_edit_ads' )
) {
return;
}
check_admin_referer( 'bulk-posts' );
$ad_label = Params::get( 'ad_label' );
$has_change = ! empty( $ad_label );
/**
* Filter to determine if there are changes to be saved during bulk edit.
*
* @param bool $has_change Indicates if there are changes to be saved.
*/
$has_change = apply_filters( 'advanced-ads-placement-bulk-edit-has-change', $has_change );
// No changes, bail out.
if ( ! $has_change ) {
return;
}
$placements = array_map(
function ( $placement ) {
return wp_advads_get_placement( absint( $placement ) );
},
wp_unslash( Params::get( 'post', [], FILTER_DEFAULT, FILTER_REQUIRE_ARRAY ) )
);
foreach ( $placements as $placement ) {
if ( ! empty( $ad_label ) ) {
$placement->set_prop( 'ad_label', $ad_label );
}
/**
* Allow add-on to bulk save placements.
*
* @param Placement $placement current placement being saved.
*/
$placement = apply_filters( 'advanced-ads-placement-bulk-edit-save', $placement );
$placement->save();
}
}
}