- 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>
53 lines
1.8 KiB
PHP
Executable File
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);
|
|
}
|