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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


Необходимо доработать плагин 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


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

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


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Ищу плагин для работы с партнеркой Я.Маркета
0 HavingingWorld 775 20.1.2024, 22:09
автор: HavingingWorld
Открытая тема (нет новых ответов) Плагин для Wordpress. Вывод контента в зависимости от страны пользователя.
8 neuch 2266 19.9.2022, 7:51
автор: neuch
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыУстановлю и активирую лицензионный плагин WP Rocket
13 Snapshot 2213 18.11.2020, 13:54
автор: Alex-777
Открытая тема (нет новых ответов) Поправить работу курса валют (wp плагин) - 10 WMZ
php,js,jquery
2 devvver 1724 14.1.2020, 20:40
автор: devvver
Открытая тема (нет новых ответов) Ищу плагин для импорта записей с VK
с VKонтакта для Wordpress
1 nekokatalog 2380 29.12.2019, 19:32
автор: Osipec


 



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