Как добавить ID записи (или другие данные записи) в письмо Contact Form 7?

28 апр. 2015 г., 12:58:17
Просмотры: 21.3K
Голосов: 1

Я загрузил 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.

0
Все ответы на вопрос 2
0

Это довольно просто из коробки:

Просто используйте специальный почтовый тег [_url].

Если вы находитесь на записи или странице, вы можете добавить дополнительные данные, например заголовок, с помощью [_post_title].

Ознакомьтесь с документацией для получения дополнительных возможностей.

28 апр. 2015 г. 13:26:03
0

Вы можете попробовать добавить 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);
28 апр. 2015 г. 13:18:05