web-dev-qa-db-ja.com

時間に応じてWordpressユーザーを自動削除

私のWordPressサイトでは、スパムユーザーを除外するために電子メールによる確認の登録が必要です。アカウントをアクティブにしていないユーザーを電子メールで自動的に削除するにはどうすればよいですか。

X日前のユーザーを自動的に削除することは可能ですか?たとえば、ユーザーの年齢が7日でアクティブではない場合、アカウントは自動的に削除されます。私は毎日これをチェックしたいのですが。誰かがこれを行う方法を説明してもらえますか?

データベースでフィールド名tecla_usersを使用しています。

1
krish

プラグインを無効にしたときにこれを停止するのに役立つ新しいカスタムプラグインを作成することで、このコードを含めることができます。

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