Files
roi-theme/wp-content/plugins/rcp-delete-user/index.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

53 lines
1.8 KiB
PHP
Executable File

<?php
/**
* Plugin Name: Eliminador de Usuarios Expirados
* Description: Elimina usuarios con membresías expiradas y registra la acción en un archivo.
* Version: 1.0
* Author: Tu Nombre
*/
if (!defined('ABSPATH')) {
exit; // Salir si se accede directamente
}
add_action('init', 'custom_api_delete_expired_users');
function custom_api_delete_expired_users() {
if (isset($_GET['api']) && $_GET['api'] === 'deleteuser') {
global $wpdb;
// Consulta para obtener los IDs de usuario con membresías expiradas.
$expired_users = $wpdb->get_col(
"SELECT wp_rcp_memberships.user_id
FROM wp_rcp_memberships
INNER JOIN wp_users ON wp_rcp_memberships.user_id = wp_users.ID
WHERE wp_rcp_memberships.status = 'expired'"
);
$log_data = [
'date' => current_time('mysql'),
'expired_users' => $expired_users,
];
if (!empty($expired_users)) {
foreach ($expired_users as $user_id) {
// Eliminar usuario
require_once(ABSPATH.'wp-admin/includes/user.php');
$result = wp_delete_user($user_id);
$log_data['deleted_users'][$user_id] = $result ? "Eliminado" : "Error al eliminar";
}
log_event($log_data);
} else {
$log_data['message'] = "No hay usuarios expirados para eliminar.";
log_event($log_data);
}
exit; // Asegurarse de que no se ejecute nada más después de esta acción.
}
}
function log_event($data) {
$file_path = plugin_dir_path(__FILE__) . 'api_requests.txt';
file_put_contents($file_path, json_encode($data) . PHP_EOL, FILE_APPEND | LOCK_EX);
}