Поддержка Проблемы и решения Передача переменных в Contact Form 7

  • Привет! Есть ли возможность передать в поле [text zakaz] у плагина Contact Form 7 переменную? к примеру чтобы к полю [text zakaz] задавалось значение:
    value="<?php echo $url ?>"

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Да, можно добавить подобный фрагмент в 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);

    огромное спасибо!!!! 🙂 поставит для всех форм? а как указать именно для нужной?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В этих функциях ищутся конкретные поля — если поле есть только в одной форме, то там оно и будет обработано.

    Но можно и вставить в начало функций подобный фрагмент (заменив 123 на ID страницы с нужной формой):

    if ( !is_page(123) )
    	return $content;

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Передача переменных в Contact Form 7» закрыта для новых ответов.