Добавляем собственные шорткоды полей в Contact Form 7

Добавляем собственные шорткоды полей в Contact Form 7

Эта статья предназначена в первую очередь для разработчиков. Речь пойдёт о плагине контактных форм Contact Form 7. Это один из самых популярных, без преувеличения плагинов для вордпресса. Если вы посетите статистику скачиваний и установок (https://wordpress.org/plugins/contact-form-7/stats/) этого плагина то увидите, что иногда его скачивают до 100 000 раз в день.

Почему он так популярен? Ответ простой: его легко установить на любой сайт, а также можно придать любой вид полям. Также если хорошенько поискать то есть дополнительные плагины которые ещё больше расширяют его функциональность. Например можно создавать ещё другие типы полей, есть готовые шаблоны форм для тех кто не любит морочить себе голову и так далее…

Также у вас есть возможность скопипастить код ниже и попробовать самому на практике вставить эти поля в вашу форму. Я вставил в своей форме это следующим образом:

[post_url post-url][post_title post-title]

На самом деле эти шорткоды, не что иное как скрытые поля формы в которых записан урл текущей страницы и название.

Но чтобы эти шорткоды работали необходима вставка ещё в файл functions.php вашей темы:

// добавляем собственные шорткоды в Contact Form 7
add_action( 'wpcf7_init', 'custom_add_shortcode' );
function custom_add_shortcode() {
    wpcf7_add_shortcode( 'post_url', 'post_url_shortcode_handler' ); 
    wpcf7_add_shortcode( 'post_title', 'post_title_shortcode_handler' ); 
}
function post_url_shortcode_handler( $tag ) {
        $field='<input ENGINE="hidden" name="'.$tag['options'][0].'" value="'.get_the_permalink().'">';
        return $field;
}
function post_title_shortcode_handler( $tag ) {
        $field='<input type="hidden" name="'.$tag['options'][0].'" value="'.get_the_title().'">';
        return $field;
}

В шаблоне письма получателю (админу) письма тоже необходимо вставить шорткоды, для того чтобы получить данные с формы которую будет отправлять посетитель.
Название товара: [post-url]
Ссылка на страницу товара: [post-title]

В результате вы получите в письме, которое придёт вам на почту ссылку на страницу с которой форма была отправлена и её название.

Желая удачных экспериментов!

Поделиться:
Подписаться
Уведомление о
0 Ваш комментарий
Inline Feedbacks
Смотреть все комментарии