Добавляем шорткод в Contact form 7
Данная статья предназначена для расширения знаний разработчиков сайтов. Мы поговорим о том как в плагин Contact Form 7 мы можем добавить свой собственный шорткод.
Для тех, кто не знает плагина Contact Form 7
CF7 это отличный конструктор форм на WordPress, очень гибкий и отлично может интегрировать любую верстку.
Вы наверное знаете что поля для этого плагина формируются на основе шорткодов, но иногда стандартного набора не хватает и нам необходимо создать свой собственный. Шорткоды плагина CF7 очень похожи на стандартные WordPress, но если вы попробуете создать стандартный, то на данный момент у вас ничего не получится, так как плагин пускает только свои шорткоды.
Пример создания шорткода:
Из своей недавней практики я решил взять для вас пример. Мы попробуем создать специальный код для вывода текущего года и несколько лет до этого. Любой другой шорткод вы можете сделать по примеру ниже.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
add_action( 'wpcf7_init', 'custom_add_shortcode_yesr' ); function custom_add_shortcode_yesr() { wpcf7_add_shortcode( 'selectyear', 'custom_clock_shortcode_handler' ); } function custom_clock_shortcode_handler( $tag ) { $res = "<select class='estimate__select' name='year' id='year' required>"; $currnt_year = date("Y"); ; for ($i=1930; $i < $currnt_year+1; $i++) { $res .= "<option value='$i' selected='selected'>$i</option>"; } $res .= "</select>"; return $res; } |
Для проверки вставьте код в файл function.php и попробуйте создать новую форму и в ней добавить шорткод [selectyear]. Если все сделано правильно, то у вас появится выпадающий список с выбором года. Думаю те, кто дошли до создания своего шорткода, не нуждаются в разъяснении всего листинга, добавлю только небольшую ремарку по поводу хука и функции wpcf7_add_shortcode().
wpcf7_add_shortcode — это функция для регистрации типов форм-тегов. Для использования этой функции вам необходимо использовать специальный хук вызова wpcf7_init.
Если вы хотите выбранные данные вставить в письмо, то в шорткод для этих данных нужно вставлять название атрибута name из вашего поля. В нашем случаи это будет [ year ].

/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.