Есть ли хук создания новой записи через WPForms?
Подскажите, есть ли хук, который вызывается при создании новой записи с WPForms?
Как у Elementor, только для WPForms:
add_action( 'elementor_pro/forms/new_record', function( $record, $handler ){} |
add_action( 'elementor_pro/forms/new_record', function( $record, $handler ){}
Дополнительно:
Решение
// Хук add_action('wpforms_process_complete', 'my_custom_function'); function my_custom_function($data){ } |
// Хук add_action('wpforms_process_complete', 'my_custom_function'); function my_custom_function($data){ }
Ответы:
wp_insert_post, save_post, publish_post. Что-то из этого наверняка отработает нужное событие
- Немного не то, срабатывает, когда добавляют любой пост в бд — потребуется дополнительная проверка по типу поста
- save_post_post и похожие хуки, которые сразу отрабатывают стандартные типы
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Да, у WPForms есть хук, который срабатывает после успешной отправки и валидации формы. Ближайший аналог Elementor
new_record— этоwpforms_process_complete. Его обычно используют для отправки данных в CRM, Telegram, внешнее API, создания записей WordPress или логирования заявки.Минимальный пример:
add_action('wpforms_process_complete', function ($fields, $entry, $form_data, $entry_id) { $form_id = (int) $form_data['id']; if ($form_id !== 123) { return; } $name = ''; $email = ''; foreach ($fields as $field) { if ($field['name'] === 'Имя') { $name = sanitize_text_field($field['value']); } if ($field['name'] === 'Email') { $email = sanitize_email($field['value']); } } wp_insert_post([ 'post_type' => 'lead', 'post_status' => 'publish', 'post_title' => $name ?: 'Новая заявка', 'post_content' => 'Email: ' . $email, ]); }, 10, 4);
Если у Вас платная версия WPForms и включено хранение записей, можно использовать
$entry_id. Если Lite-версия, записи могут не сохраняться в базе, но сам хук всё равно позволяет обработать данные в момент отправки.Важно не обращаться к полям только по их названиям, если форма будет редактироваться клиентом. Надёжнее использовать ID поля из WPForms. Также не забывайте про антидубли: если внешний сервис недоступен, лучше логировать ошибку или ставить задачу в очередь, а не ломать отправку формы пользователю.
Для отладки временно запишите в лог весь массив
$fieldsи посмотрите реальные ID, имена и значения. После настройки логирование полных заявок лучше убрать, особенно если в форме есть телефоны, email или персональные данные. В рабочем коде оставляйте только ошибки интеграции и технический статус отправки.