Contact Form 7 – популярный плагин WordPress, который позволяет создавать контактные формы на вашем веб-сайте и управлять ими. Одним из распространенных требований при работе с контактной формой 7 является получение идентификатора сообщения отправки формы. В этой статье мы рассмотрим семь различных способов получения идентификатора сообщения в контактной форме 7, предоставляя вам множество вариантов в соответствии с вашими потребностями.
Метод 1: использование скрытого поля
Контактная форма 7 позволяет добавлять в формы скрытые поля. Вы можете включить скрытое поле со значением идентификатора публикации, к которому затем можно будет получить доступ при отправке формы. Вот пример того, как можно добавить скрытое поле в форму:
<input type="hidden" name="post_id" value="[get_the_ID()]">
Метод 2: использование пользовательского перехватчика.
Другой способ получить идентификатор сообщения — использовать собственный перехватчик, предоставленный контактной формой 7. Вы можете использовать перехватчик wpcf7_before_send_mail
для выполнения функции перед подача формы. В рамках этой функции вы можете получить идентификатор сообщения с помощью функций WordPress. Вот пример:
add_action('wpcf7_before_send_mail', 'retrieve_post_id');
function retrieve_post_id($contact_form) {
$submission = WPCF7_Submission::get_instance();
$posted_data = $submission->get_posted_data();
$post_id = absint($posted_data['_wpcf7_container_post']);
// Use the $post_id as needed
}
Метод 3: извлечение данных $_POST
При отправке формы данные обычно доступны в глобальной переменной $_POST
. Вы можете получить идентификатор сообщения напрямую из этой переменной. Вот пример:
$post_id = isset($_POST['_wpcf7_container_post']) ? absint($_POST['_wpcf7_container_post']) : 0;
// Use the $post_id as needed
Метод 4: использование REST API
Если вы используете более новую версию контактной формы 7, которая поддерживает REST API, вы можете получить идентификатор сообщения с помощью вызова API. Вот пример использования JavaScript:
document.addEventListener('wpcf7mailsent', function (event) {
var postId = event.detail.apiResponse.container_post_id;
// Use the postId as needed
}, false);
Метод 5: расширение контактной формы 7
Контактная форма 7 предоставляет перехватчики и фильтры, которые позволяют расширить ее функциональность. Вы можете создать пользовательскую функцию, которая получает идентификатор сообщения и использует его в своей форме. Вот пример:
function retrieve_post_id() {
return get_the_ID();
}
В форме вы можете использовать следующий короткий код:
[retrieve_post_id]
Метод 6: использование плагина WordPress
Существует несколько плагинов WordPress, которые расширяют функциональность контактной формы 7. Одним из таких плагинов является «CF7 Smart Grid-Layout Design Extension». Этот плагин позволяет вам включать идентификатор сообщения в макет формы с помощью шорткода. Установите и активируйте плагин, а затем используйте в форме следующий короткий код:
[post_id]
Метод 7: индивидуальное кодирование с помощью JavaScript
Если вы предпочитаете решение на основе JavaScript, вы можете получить идентификатор сообщения с помощью объекта wpData
, предоставленного контактной формой 7. Вот пример:п>
document.addEventListener('wpcf7mailsent', function (event) {
var postId = wpData.post_id;
// Use the postId as needed
}, false);
Получение идентификатора сообщения в контактной форме 7 является общим требованием для различных случаев использования. В этой статье мы рассмотрели семь различных методов достижения этой цели: от использования скрытых полей и пользовательских хуков до использования функций и плагинов WordPress. Выберите метод, который лучше всего соответствует вашим потребностям, и внедрите его в свою контактную форму 7, чтобы легко получить идентификатор сообщения.