Добавляем шорткод в Contact form 7
Данная статья предназначена для расширения знаний разработчиков сайтов. Мы поговорим о том как в плагин Contact Form 7 мы можем добавить свой собственный шорткод.
Для тех, кто не знает плагина Contact Form 7
CF7 это отличный конструктор форм на WordPress, очень гибкий и отлично может интегрировать любую верстку.
Вы наверное знаете что поля для этого плагина формируются на основе шорткодов, но иногда стандартного набора не хватает и нам необходимо создать свой собственный. Шорткоды плагина CF7 очень похожи на стандартные WordPress, но если вы попробуете создать стандартный, то на данный момент у вас ничего не получится, так как плагин пускает только свои шорткоды.
Пример создания шорткода:
Из своей недавней практики я решил взять для вас пример. Мы попробуем создать специальный код для вывода текущего года и несколько лет до этого. Любой другой шорткод вы можете сделать по примеру ниже.
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.




