WPForms — один из самых популярных плагинов для создания форм в WordPress. При активном использовании накапливается множество записей (заполненных форм), которые могут занимать место в базе данных и замедлять работу сайта. В этой статье расскажем, как настроить автоматическое удаление старых записей WPForms, чтобы поддерживать базу данных в чистоте и оптимизировать производительность.
Почему важно удалять старые записи WPForms
Записи форм WPForms хранятся в базе данных WordPress и могут со временем накапливаться в огромном количестве. Это приводит к:
- Увеличению размера базы данных;
- Замедлению запросов при работе с записями форм;
- Сложностям резервного копирования и восстановлению;
- Общему снижению производительности сайта.
Ручное удаление занимает время и может быть забыто. Автоматизация процесса — лучший способ поддерживать порядок.
Варианты автоматического удаления: плагин и кастомный код
Для автоматического удаления старых записей WPForms можно использовать готовые решения и кастомные скрипты. Рассмотрим оба варианта.
Использование плагина WPForms Cleaner
Плагин WPForms Cleaner позволяет автоматически удалять старые записи по расписанию. Основные функции:
- Настройка периода хранения записей;
- Удаление записей старше указанного времени;
- Запуск очистки по крону WordPress.
Этот плагин прост в использовании и подходит для большинства проектов.
Кастомный скрипт для удаления старых записей
Если вы хотите гибко контролировать процесс, можно добавить в functions.php вашей темы или в отдельный плагин следующий код:
function wpformru_delete_old_wpforms_entries() {
global $wpdb;
$days = 30; // Удалять записи старше 30 дней
$cutoff_date = date('Y-m-d H:i:s', strtotime("-{$days} days"));
// Получаем ID форм, записи которых нужно очистить (если необходимо, можно фильтровать)
$form_ids = $wpdb->get_col("SELECT id FROM {$wpdb->prefix}wpforms_forms");
foreach ($form_ids as $form_id) {
$table = $wpdb->prefix . 'wpforms_entries';
$deleted = $wpdb->query($wpdb->prepare(
"DELETE FROM $table WHERE form_id = %d AND date_created < %s",
$form_id,
$cutoff_date
));
}
}
// Регистрируем событие cron
if (!wp_next_scheduled('wpformru_daily_delete_old_entries')) {
wp_schedule_event(time(), 'daily', 'wpformru_daily_delete_old_entries');
}
add_action('wpformru_daily_delete_old_entries', 'wpformru_delete_old_wpforms_entries');Этот код создаёт ежедневное крон-событие, которое удаляет записи старше 30 дней из таблицы wpforms_entries. Вы можете изменить количество дней в переменной $days.
Как проверить и отладить удаление записей
Рекомендуется сначала протестировать скрипт на тестовом сайте или с ограниченным количеством данных. Для отладки добавьте логирование:
function wpformru_delete_old_wpforms_entries() {
global $wpdb;
$days = 30;
$cutoff_date = date('Y-m-d H:i:s', strtotime("-{$days} days"));
$form_ids = $wpdb->get_col("SELECT id FROM {$wpdb->prefix}wpforms_forms");
foreach ($form_ids as $form_id) {
$table = $wpdb->prefix . 'wpforms_entries';
$deleted = $wpdb->query($wpdb->prepare(
"DELETE FROM $table WHERE form_id = %d AND date_created < %s",
$form_id,
$cutoff_date
));
error_log("[WPFormRU] Deleted $deleted entries for form ID $form_id");
}
}Логи можно смотреть в файле wp-content/debug.log при включённом WP_DEBUG_LOG.
Дополнительные советы по оптимизации работы с WPForms
Архивация данных перед удалением
Если важна история заполнения форм, стоит перед удалением сохранять данные в CSV или внешнюю систему. Для этого можно использовать Webhook-уведомления WPForms или плагин интеграции с Google Sheets.
Регулярное резервное копирование базы данных
Перед очисткой убедитесь, что у вас есть актуальные резервные копии, чтобы избежать потери важных данных.
Оптимизация базы данных
После удаления большого количества записей рекомендуется выполнить оптимизацию таблиц базы данных через phpMyAdmin или плагин Clearfy Pro, который помогает оптимизировать WordPress и его базы.
Итоги
Автоматическое удаление старых записей WPForms — эффективный способ поддерживать сайт в хорошем состоянии, снижать нагрузку на базу данных и ускорять работу. Можно использовать как готовые плагины, так и кастомный код, который легко адаптируется под конкретные задачи.
Для скачивания плагинов и инструментов рекомендуем проверенный магазин: WPSHOP.RU