web-dev-qa-db-fra.com

Supprimer automatiquement les utilisateurs de Wordpress en fonction du temps

Sur mon site WordPress, j'ai besoin d'un enregistrement avec confirmation par courrier électronique pour filtrer les utilisateurs de spam. Comment supprimer les utilisateurs qui n'ont pas activé leur compte automatiquement par courrier électronique?

Est-il possible de supprimer automatiquement les utilisateurs âgés de X jours? Par exemple: si l'utilisateur a 7 jours et n'est pas actif, le compte doit être automatiquement supprimé. J'aimerais vérifier cela tous les jours. Quelqu'un pourrait-il s'il vous plaît expliquer comment faire cela?

J'utilise le nom de champ tecla_users dans ma base de données.

1
krish

Vous pouvez inclure ce code en créant un nouveau plugin personnalisé qui vous aidera à l'arrêter lorsque vous le désactivez.

wp_schedule_event(time(), 'daily', 'my_dailyClearOut');

function my_clearOldUsers() {
    global $wpdb;

    $query = $wpdb->prepare("SELECT ID FROM $wpdb->users WHERE datediff(now(), user_registered) > 7");

    if ($oldUsers = $wpdb->get_results($query, ARRAY_N)) {
        foreach ($oldUsers as $user_id) {
            wp_delete_user($user_id[0]);
        }
    }
}

add_action('my_dailyClearOut', 'my_clearOldUsers');
2
WisdmLabs