WPForms — один из самых популярных плагинов для создания форм в WordPress. Он отлично подходит для быстрой организации обратной связи, регистрации, заказов и других сценариев. Однако в некоторых проектах возникает необходимость не просто собрать данные из формы, а хранить и использовать их в связке с пользовательскими метаданными WordPress для автоматизации и расширения функционала.
Что такое пользовательские метаданные и зачем они нужны в WPForms
Пользовательские метаданные (user meta) — это произвольные данные, которые можно прикреплять к учетной записи пользователя в WordPress. В отличие от стандартных полей (имя, email и т.п.), метаданные позволяют хранить любую дополнительную информацию: предпочтения, статус, индивидуальные настройки и многое другое.
В связке с WPForms пользовательские метаданные дают мощный инструмент для персонализации взаимодействия с пользователем и автоматизации рабочих процессов сайта. Например, при регистрации через форму можно сразу сохранять дополнительные параметры, а при последующих заходах — автоматически подгружать и использовать эти данные.
Это особенно полезно для сайтов с подписками, клубным доступом, системами обучения, где важно хранить индивидуальные настройки пользователя и данные из форм.
Пример: автоматическое сохранение данных из WPForms в пользовательские метаданные
Рассмотрим простой пример, как после отправки формы WPForms сохранить дополнительные поля в метаданные пользователя. Предположим, у нас есть форма регистрации с полем "Номер телефона".
Для этого используем хук wpforms_process_complete, который срабатывает после успешной отправки формы. В коде ниже мы сохраняем поле "phone_number" в метаданные текущего пользователя:
add_action('wpforms_process_complete', 'wpform_save_user_phone_meta', 10, 4);
function wpform_save_user_phone_meta($fields, $entry, $form_data, $entry_id) {
// ID формы, которую нужно обработать
$target_form_id = 123; // замените на ID вашей формы
if ($form_data['id'] != $target_form_id) {
return; // если не нужная форма, ничего не делаем
}
// Проверяем, что пользователь авторизован
if (!is_user_logged_in()) {
return;
}
$user_id = get_current_user_id();
// Ищем поле с ключом 'phone_number'
foreach ($fields as $field) {
if ($field['name'] === 'phone_number') {
$phone = sanitize_text_field($field['value']);
update_user_meta($user_id, 'phone_number', $phone);
break;
}
}
}
В этом примере мы привязали сохранение метаданных к конкретной форме и к авторизованному пользователю. Это позволяет сохранять актуальные данные телефона без дополнительных действий.
Автоматическая подстановка пользовательских метаданных в поля формы WPForms
Еще один популярный сценарий — подставлять значения из метаданных в поля формы, чтобы пользователь видел свои текущие данные и мог их обновить. Для этого используем фильтр wpforms_fields_value_<field_name>.
Пример для поля с именем "phone_number":
add_filter('wpforms_fields_value_phone_number', 'wpform_prefill_phone_number');
function wpform_prefill_phone_number($field_value) {
if (!is_user_logged_in()) {
return $field_value;
}
$user_id = get_current_user_id();
$phone = get_user_meta($user_id, 'phone_number', true);
return $phone ? $phone : $field_value;
}
Этот код автоматически подставит в поле "Номер телефона" значение из метаданных пользователя, если оно там есть. Это удобно для форм обновления профиля, заказов и т.п.
Применение: автоматизация email-уведомлений с учетом пользовательских метаданных
Используя данные из метаданных, можно гибко формировать содержимое email-уведомлений, отправляемых через WPForms. Например, добавлять персонализированные обращения, учитывать статус пользователя и предлагать релевантные услуги.
Для этого применим хук wpforms_process_before_email и модифицируем сообщения перед отправкой:
add_filter('wpforms_process_before_email', 'wpform_customize_email_with_user_meta', 10, 3);
function wpform_customize_email_with_user_meta($email, $fields, $form_data) {
if (!is_user_logged_in()) {
return $email;
}
$user_id = get_current_user_id();
$first_name = get_user_meta($user_id, 'first_name', true);
if ($first_name) {
$email['message'] = "Здравствуйте, " . esc_html($first_name) . "!\n\n" . $email['message'];
}
return $email;
}
Это добавит персональное приветствие к письму, улучшая взаимодействие и повышая доверие.
Дополнительные плагины для расширения работы с WPForms и метаданными
Для удобства работы с пользовательскими метаданными можно использовать плагины, которые расширяют функционал WPForms или помогают управлять метаинформацией:
- Clearfy Pro — оптимизация и расширение возможностей WordPress, в том числе управление метаданными и настройками форм.
- WPRemark — система отзывов с возможностью интеграции с формами и пользовательскими данными.
- Expert Review — позволяет создавать экспертные обзоры с учетом пользовательских данных, что полезно при сборе и анализе информации через формы.
Использование этих плагинов вместе с WPForms и пользовательскими метаданными позволит создать мощные и гибкие решения для автоматизации бизнес-процессов.
Заключение: почему стоит использовать пользовательские метаданные с WPForms
Интеграция WPForms и пользовательских метаданных — это шаг к профессиональному и персонализированному сайту. Такой подход позволяет не просто собирать данные, а использовать их для улучшения UX, автоматизации рассылок, учета предпочтений и создания сложных бизнес-логик.
Приведенные примеры показывают, что даже базовые знания PHP и WordPress API открывают большие возможности для кастомизации и повышения эффективности форм на вашем сайте.