wpforms.ru wordpress WPForms.ru

Как использовать персонализированные увеличенные значения в полях формы

Что такое персонализированные увеличенные значения в WPForms и зачем они нужны

Персонализированные увеличенные значения (custom incremented values) — это динамически изменяемые значения в полях формы, которые автоматически увеличиваются при каждом новом заполнении. Например, уникальный номер заявки, счётчик заказов или порядковый номер обращения. Такие значения полезны для идентификации каждой отправки формы без дублирования и ручного ввода.

WPForms по умолчанию не поддерживает автоматическое увеличение значений в полях, поэтому для реализации этой задачи потребуется кастомный PHP-код с использованием хуков и сохранением текущего значения в базе данных WordPress.

Диагностика проблемы: как понять, что в форме нужны автоматические увеличенные значения

  • Нужно выводить уникальный порядковый номер для каждой отправки формы.
  • Записи не должны содержать дубликатов по ключевому полю.
  • Автоматизация без ручного ввода или редактирования.
  • Отсутствует встроенный механизм WPForms для генерации таких значений.

Если вы столкнулись с этими задачами, значит пора внедрять кастомную логику.

Пошаговое решение: как реализовать персонализированное увеличение значения в поле WPForms

1. Добавьте в форму скрытое поле для хранения увеличенного значения

В редакторе WPForms создайте новое поле типа Hidden. Назовите его, например, increment_number. Это поле будет автоматически заполняться уникальным числом при каждой отправке.

2. Добавьте в functions.php вашей темы следующий код для обработки значения

add_filter('wpforms_process_initial_value', 'wpforms_set_incremented_value', 10, 3);
function wpforms_set_incremented_value($field_value, $field_id, $form_data) {
    // ID формы и поля меняйте под свои
    $target_form_id = 123;
    $target_field_id = 4;

    if ($form_data['id'] == $target_form_id && $field_id == $target_field_id) {
        // Получаем текущее значение счётчика из опций WP
        $counter = (int) get_option('wpforms_increment_counter_' . $target_form_id, 0);
        $counter++;
        // Сохраняем обновлённое значение
        update_option('wpforms_increment_counter_' . $target_form_id, $counter);
        $field_value = $counter;
    }

    return $field_value;
}

В этом коде:

  • $target_form_id — ID вашей формы WPForms.
  • $target_field_id — ID скрытого поля в форме.
  • Значение счетчика хранится в настройках WordPress через update_option и get_option.

3. Получите ID формы и поля

Чтобы узнать ID формы, откройте список форм в админке WPForms. Для ID поля — в редакторе форм наведите на поле и посмотрите в URL браузера параметр field_id. Или включите режим разработчика и посмотрите атрибуты поля.

4. Очистка и резервирование

Если нужно сбросить счётчик — выполните в консоли PHP:

delete_option('wpforms_increment_counter_123');

Где 123 — ID вашей формы.

Проверка результата после внедрения

  1. Откройте форму на сайте и отправьте её несколько раз.
  2. Проверьте в админке WPForms, что в скрытом поле increment_number появляется увеличивающееся число начиная с 1.
  3. Убедитесь, что значения уникальны и возрастают без пропусков (если не было ошибок).

Частые ошибки и как их исправить

  • Неправильные ID формы или поля: Значения не присваиваются, потому что в коде указаны другие ID. Проверьте их через админку WPForms.
  • Кэширование: Если сайт или формы кэшируются, значение может не обновляться. Отключите кэширование для страниц с формами или настройте исключения.
  • Конфликт с другими плагинами: Некоторые плагины безопасности или оптимизации могут блокировать обновление опций. Проверьте лог ошибок и протестируйте на чистой установке.
  • Отсутствие поля типа Hidden: Если поле не скрыто, пользователь может видеть или редактировать значение.

Практические советы по безопасности и производительности

  • Храните счётчик в опциях с уникальным ключом по форме, чтобы избежать конфликтов.
  • Не используйте автозаполнение для полей с увеличенными значениями, чтобы исключить подделку.
  • Ограничьте права на изменение кода и доступа к базе данных.
  • Для больших проектов рассмотрите хранение счётчика в отдельной таблице или мета-данных, если опции не подходят.
  • Для ускорения обработки избегайте тяжелых операций в хуках, используйте кеширование, если нужно.

Сравнение способов реализации персонализированных увеличенных значений

СпособПлюсыМинусы
Использование update_option/get_optionПросто реализовать, хранится в базе WPПри большом числе форм/записей может замедлять работу
Хранение в отдельной таблице БДПроизводительно для больших нагрузокТребует создания и поддержки таблицы, сложнее код
Использование мета-данных формы/пользователяУдобно для персонализированных счетчиковНе всегда подходит для общего счётчика по форме
×
-15%
на премиум плагин
My Popup

Повысьте конверсию!

Получить скидку »