Как заставить Wordpress Contact Form 7 Shortcode варьироваться в зависимости от значения GET на странице? - PullRequest
0 голосов
/ 27 апреля 2020

Wordpress с формой шаблона 7.

У меня есть страницы 1,2,3 со ссылками на страницу обратной связи:

  1. site.com / page1 / с URL = a href = "site.com/feedback?type=1"
  2. site.com / page2 / с URL = a href =" site.com/feedback?type=2"
  3. site.com/page3/ с URL = a href = "site.com/feedback?type=3"

Я хочу показать, что специальный макет контактной формы 7 зависит от значения переменной (тип 1, тип 2, тип 3)

Этот плагин Контактная форма 7 Dynami c Расширение текста ( ссылка здесь ) может считывать значение переменной, но я не могу переключить специальный блок Контактной формы 7 согласно чтобы изменить значение. :-(

Я нашел этот плагин - Контактная форма 7 - Условные поля (но он создает поля для одной формы). Но мне нужно показать на странице 3 готовые для вставки шаблоны : - (

можно ли показать шорткод идентификатора контактной формы 7 в зависимости от site.com/feedback?type=(number)?

Заранее спасибо за советы.

1 Ответ

1 голос
/ 28 апреля 2020

Вы можете создать собственный шорткод для вызова контактной формы 7, которая использует параметр $_GET из URL. Вам нужно будет поместить эту функцию в ваши функции. php вашей дочерней темы или темы. Замените идентификаторы contact-form-7 теми, которые вы используете. Кроме того ... вы можете продолжать идти и положить столько, сколько хотите. Вы также можете использовать php switch вместо ififif и т. Д. c.

. Поэтому в шаблоне страницы не используйте шорткод [contact-form-7], вместо этого просто введите [my-cf7]

add_shortcode('my-cf7', 'so_61464677_cf7_shortcode');
function so_61464677_cf7_shortcode(){
    if ($_GET['type'] == 2){
        return do_shortcode('[contact-form-7 id="2"]');
    } elseif ($_GET['type'] == 3) {
        return do_shortcode('[contact-form-7 id="3"]');
    } else {
        return do_shortcode('[contact-form-7 id="1"]');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...