Я хотел спросить, есть ли возможность полностью исключить, например, всех авторов пользователей и их сообщение после x дней с даты регистрации. Например, если автор после его регистрации напишет сообщение, после x дней, как автор, так и почта будут удалены навсегда автоматически.Удалите всех авторов и их сообщение автоматически после x дней в wordpress
ответ
Я нашел решение. Как поясняется в этом сообщении Auto delete Wordpress users according to time since registering?, , вставив следующий код, вы удаляете зарегистрированных пользователей более 30 дней.
if(!wp_next_scheduled('my_dailyClearOut')){
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) > 30");
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');
К сожалению, не работает с "SELECT ID FROM", но работает с "DELETE FROM"
Working:
if(!wp_next_scheduled('my_dailyClearOut')) {
wp_schedule_event(time(), 'daily', 'my_dailyClearOut'); }
function my_clearOldUsers() {
global $wpdb;
$query = $wpdb->prepare("DELETE FROM $wpdb->users WHERE datediff(now(), user_registered) > 30");
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');
Теперь проблема заключается в том, что она также устраняет администратору.
Есть ли способ устранить только зарегистрированных пользователей с более чем 30 дней с определенной ролью (например, авторов)?
Или удалить всех пользователей, кроме Администратора и Редактора?
спасибо!
Кроме того, я заметил, что удаляет только пользователя, но не удаляет сообщение и ассоциированный пользователь metà. Любая идея? – Claudio
Как насчет работы cron? Возможно, есть более элегантные варианты. –
Благодарим вас за немедленный ответ, и мне очень жаль, если я плохо себя зарекомендовал. WP-Cron отлично выполняет функции, но я хочу исключить «каждого автора через 365 дней с даты его регистрации». Пример: Автор регистрирует 2014/01/01; Автор автоматически удаляется 2015/01/01. Автор регистрируется 01/06/2014; Автор автоматически удаляется 01/06/2015. Автор записывает 03/01/2014; Автор автоматически удаляется 03/01/2015. и т. Д. Возможно ли это? спасибо! – Claudio
Исследования [здесь] (http://wordpress.stackexchange.com/questions/tagged/wp-cron) и [здесь] (http://wordpress.stackexchange.com/search?q=delete+user+is%3Aquestion) – brasofilo