Добавление своих динамических данных в form contact 7

Небольшой пример на добавление данных из произвольного поля в форму и письмо плагина.

В шаблоне формы добавлем наш тип поля например mhid с именем prod_price

[mhid prod_price]

Добавляем обработку наших полей в файле function или в интересующем нам шаблоне в самом начале до функции get_header()

wpcf7_add_shortcode('mhid', 'set_myfields', true);

function set_myfields($tag) {
    if (!is_array($tag)) return '';
    $name = $tag['name'];

    $html = '';
    
    //Если это наше поле прайс
    if($name == 'prod_price'){
        
        global $post;
        //Получаем значение произвольного поля price для текущего поста
        $price1 = get_post_meta($post->ID, 'price', true);

        //Добавляем скрытое поле с нашим значением
        $html = '<input type="hidden" name="' . $name . '" value="'.$price1.'" />';

        //Прибавляем значение цены в самой форме, если это надо 
        $html = '<p>'.$price1.'</p>'.$html;

    }
    
    return $html;
}

Таким способом можно обработать GET данные и любые другие.

Теперь можем добавить наше значение в шаблон письма

Цена: [prod_price] 
Если наша форма вызывается через модальное окно в списке постов (например кнопка "заказать" на товарах в списке), то чтобы добавить свои данные для каждой записи на помощь приходит javascript. При вызове модального окна с формой, скриптом забираем зараннее подготовленные данные с dom дерева и добавляем в форму как и отображение, так и скрытые поля. Наши данные в шаблоне письма будут также прекрасно считываться.