X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Допилить плагин WP, Долго выполняется, нужно задать лимит.
TrustMan
TrustMan
Topic Starter сообщение 9.10.2015, 15:05; Ответить: TrustMan
Сообщение #1


Участник
***

Группа: User
Сообщений: 159
Регистрация: 12.5.2015
Поблагодарили: 51 раз
Репутация:   8  


Необходимо доработать плагин https://wordpress.org/plugins/inactive-user-deleter/

Проблема: очень много данных нужно обработать - вешает сервер.
Задача: В настройки плагина внести пункт "Взять N аккаунтов" который бы задавал количество обрабатываемых за раз аккаунтов.
Как я предполагаю это должно работать: плагину задаются настройки поиска пользователей по параметрам. Базе данных отправляется запрос найти одного подходящего под описание, повторяем N раз поиск, переходим к обработке списка.

В результате должно корректно удалиться N пользователей, а так же их метаинфо.

Бюджет 500р.

Ранее было обращение с решением вопроса "перенаселённости мертвецами" к толковому прогеру. В результате он написал функцию:

Код
/**
* функция удаления пользователей
* $day - количество дней с момента регистрации;
* $limit - лимит за 1 выполнение функции
**/
function delete_inactive_users( $day='120', $limit = 550 ) {
    global $wpdb;
    $cur_date = current_time('mysql', 0);
    // формируем запрос
    $sql = "
    SELECT ID FROM $wpdb->users
        WHERE
            TIMESTAMPDIFF(DAY, '$cur_date', user_registered) < -{$day}
            AND
            (SELECT COUNT(*) FROM $wpdb->comments WHERE user_id = ID)  < 1
        LIMIT $limit
    ";
    // получаем пользователей
    $res = $wpdb->get_results( $sql, ARRAY_A );
    if ( $res )      
        foreach ( $res AS $val )
            $users .= !$users ? $val['ID']: ', ' . $val['ID'];                
    else return false;
    
    // удаление пользователей
    $sql = "DELETE FROM $wpdb->users WHERE ID IN ($users)";
    $res = $wpdb->get_results( $sql, ARRAY_A );
    // удаление метаданных
    $sql = "DELETE FROM $wpdb->usermeta WHERE user_id IN ({$users})";
    $res = $wpdb->get_results( $sql, ARRAY_A );    
    //print_r($res);
}


add_action( 'delete_inactive_users_task_hook', 'delete_inactive_users' );

if ( ! wp_next_scheduled( 'delete_inactive_users_task_hook' ) ) {
  wp_schedule_event( time(), 'hourly', 'delete_inactive_users_task_hook' );
}


Прописал его в функшн темы - ничего не происходит. Предоставить доступ к сайту не могу.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 10.10.2015, 10:44; Ответить: mmkulikov
Сообщение #2


Старожил
******

Группа: Active User
Сообщений: 2115
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 610 раз
Репутация:   70  


Цитата(TrustMan @ 9.10.2015, 13:05) *
Предоставить доступ к сайту не могу.

А как Вы тогда представляете себе процесс выполнения работы?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужен импорт данных в Вордпресс (плагин WP All Import)
Надо настроить импорт данных в Вордпресс через плагин Wp All Import
1 mirmix 459 16.5.2018, 18:50
автор: adnr78
Открытая тема (нет новых ответов) Плагин для сбора подписной базы (email) в WordPress
0 DVORYAN 461 10.5.2018, 17:01
автор: DVORYAN
Открытая тема (нет новых ответов) Плагин WordPress для повышение заработка на сайте AdsPlace'r Pro
5 mojwp 1044 24.4.2018, 18:16
автор: mojwp
Открытая тема (нет новых ответов) Посоветуйте плагин для ВордПресс, для защиты комментариев
5 RIperNP 972 20.4.2018, 12:56
автор: mmkulikov
Открытая тема (нет новых ответов) Плагин для папок в медиагалерее вордпрес
Ищу
1 paranormal 551 10.4.2018, 16:57
автор: AlienCode


 



RSS Текстовая версия Сейчас: 21.5.2018, 5:31
Дизайн