Да, можно добавить подобный фрагмент в functions.php
активной темы.
Простой вариант (для одной переменной):
function prefill_contact_form_7_order_value($content) {
global $url;
return str_replace('name="zakaz" value=""', 'name="zakaz" value="' . $url . '"', $content);
}
add_filter('the_content', 'prefill_contact_form_7_order_value', 11);
«Продвинутый» (для нескольких):
function prefill_contact_form_7_fields($content) {
global $value1, $value2, $value3;
$fields = array(
'field1',
'field2',
'field3'
);
$values = array(
$value1,
$value2,
$value3
);
if ( false !== strpos($content, 'contact-form') ) {
foreach ( $fields as $key => $field )
$content = preg_replace('/(name="' . $field . '".*) value=""/', '$1 value="' . $values[$key] . '"', $content);
}
return $content;
}
add_filter('the_content', 'prefill_contact_form_7_fields', 11);
огромное спасибо!!!! 🙂 поставит для всех форм? а как указать именно для нужной?
В этих функциях ищутся конкретные поля — если поле есть только в одной форме, то там оно и будет обработано.
Но можно и вставить в начало функций подобный фрагмент (заменив 123 на ID страницы с нужной формой):
if ( !is_page(123) )
return $content;