Files
roi-theme/wp-content/plugins/advanced-ads/includes/importers/abstract-importer.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

103 lines
1.9 KiB
PHP
Executable File

<?php
/**
* Importers Base.
*
* @package AdvancedAds
* @author Advanced Ads <info@wpadvancedads.com>
* @since 1.50.0
*/
namespace AdvancedAds\Importers;
use AdvancedAds\Constants;
defined( 'ABSPATH' ) || exit;
/**
* Importers Base.
*/
abstract class Importer {
/**
* Is importer detected.
*
* @var bool
*/
private $is_detected = null;
/**
* Show import button or not.
*
* @return bool
*/
public function show_button(): bool {
return true;
}
/**
* Is importer detected
*
* @return bool
*/
public function is_detected(): bool {
if ( null === $this->is_detected ) {
$this->is_detected = $this->detect();
}
return $this->is_detected;
}
/**
* Add session key.
*
* @param Ad $ad Ad instance.
* @param Placement $placement Placement instance.
* @param string $key Session unique key.
*
* @return void
*/
protected function add_session_key( $ad, $placement, $key ): void {
update_post_meta( $ad->get_id(), '_importer_session_key', $key );
update_post_meta( $placement->get_id(), '_importer_session_key', $key );
}
/**
* Rollback import
*
* @param string $key Session key.
*
* @return void
*/
public function rollback( $key ): void {
global $wpdb;
$wpdb->query(
$wpdb->prepare(
"DELETE p, pm
FROM {$wpdb->posts} p
INNER JOIN {$wpdb->postmeta} pm
ON pm.post_id = p.ID
WHERE pm.meta_key = '_importer_session_key'
AND pm.meta_value = %s
AND p.post_type in ( %s, %s )",
$key,
Constants::POST_TYPE_AD,
Constants::POST_TYPE_PLACEMENT
)
);
$wpdb->query(
"DELETE pm FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL"
);
}
/**
* Get the unique identifier (ID) of the importer.
*
* @return string The unique ID of the importer.
*/
protected function generate_history_key(): string {
return 'advads_' . wp_rand() . '_' . $this->get_id();
}
}