Как добавить ID записи (или другие данные записи) в письмо Contact Form 7?
Я загрузил Contact Form 7 для добавления контактных форм, вставляя простой сниппет после каждой записи, и добавил его в functions.php следующим образом:
//если тип записи, добавляю форму
function is_post_type($type)
{
global $wp_query;
if($type == get_post_type($wp_query->post->ID)) return true;
return false;
}
function add_post_content($content){
if(!is_feed() && !is_home()&& is_single() && is_post_type('post'))
{
$content .= '[contact-form-7 id="2202" title="Контактная форма 1"]';
}
return $content;
}
add_filter('the_content', 'add_post_content');
Теперь я хотел бы добавить новое поле в плагин, чтобы отправлять ссылку на запись, где пользователь отправляет форму, или даже добавить эту ссылку или ID в конец содержимого письма, или что-то подобное, но я застрял в WordPress и не знаю, какой файл нужно редактировать и как импортировать переменные $post.
Это довольно просто из коробки:
Просто используйте специальный почтовый тег [_url]
.
Если вы находитесь на записи или странице, вы можете добавить дополнительные данные, например заголовок, с помощью [_post_title]
.
Ознакомьтесь с документацией для получения дополнительных возможностей.

Вы можете попробовать добавить GET-параметр к URL в ссылке на вашу контактную форму.
Если это всплывающее окно (lightbox), вы также можете определить скрытое поле и заполнить его при загрузке wpcf7, используя global $post.
Используйте этот код для решения с параметром URL и замените id_post на global $post->ID для решения с lightbox:
// Добавляем ID записи
function add_post_id_origin ( $tag, $unused ) {
// Сначала проверяем, является ли это нашим скрытым полем
if ( $tag['name'] != 'myhiddentag' )
return $tag;
// Это для версии с параметром URL
if(isset($_GET['id_post']) && is_numeric($_GET['id_post']))
{
$post = get_post($_GET['id_post']);
$tag['values'] = array($post->ID);
$tag['options'] = array('readonly');
}
// Этот способ для обычного использования global $post
global $post;
$tag['values'] = array($post->ID);
$tag['options'] = array('readonly');
return $tag;
}
// Не забудьте подключить функцию
add_filter( 'wpcf7_form_tag', 'add_post_id_origin', 10, 2);
