Счетчик писем для Contact Form 7 — это возможность последовательного подсчета заполненных и отправленных форм. Таким образом, каждому респонденту можно присвоить индивидуальный номер.
Мне очень был нужен такой счетчик для одного их моих сайтов и я нашла решение на сайте SevenSpark How to create a mail counter for Contact Form 7
Для работы счетчика у вас должны быть установлены следующие расширения для Contact Form 7:
А далее все очень просто.
- В файл function.php вашей темы нужно добавить следующий код:
12345678910111213141516//Define the key to store in the databasedefine( 'CF7_COUNTER', 'cf7-counter' );//Create the shortcode which will set the value for the DTX fieldfunction cf7dtx_counter(){$val = get_option( CF7_COUNTER, 0) + 1; //Increment the current countreturn $val;}add_shortcode('CF7_counter', 'cf7dtx_counter');//Action performed when the mail is actually sent by CF7function cf7dtx_increment_mail_counter(){$val = get_option( CF7_COUNTER, 0) + 1; //Increment the current countupdate_option(CF7_COUNTER, $val); //Update the settings with the new count}add_action('wpcf7_mail_sent', 'cf7dtx_increment_mail_counter');
где цифра 0, обозначает начальную цифру с которой будет вестись подсчет. Если вам нужно начинать, например, с 1000, просто замените 0 на 1000. но сделайте это сразу при установке, так как если отсчет уже начнется значение запишется и поменять его будет нельзя, по крайней мере у меня не получилось. - В саму форму, добавьте следующее поле. Это поле будет скрыто, и отображаться в форме не будет. Оно нужно для присвоения номера.
1[dynamichidden cf7-counter "CF7_counter"] - Если вам, где-либо на сайте нужно вывести количество уже заполненных форм, тогда используйте шоткод:
1Count: [cf7_counter]
или php вариант для внедрения в шаблон сайта:
1< ?php echo get_option( CF7_COUNTER, 0); ?>
Также автор предлагает вариант для установки нескольких подсчетов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//Define the key to store in the database define( 'CF7_COUNTER', 'cf7-counter' ); //Create the shortcode which will set the value for the DTX field function cf7dtx_counter($atts){ extract( shortcode_atts( array( 'counter_id' => '', ), $atts ) ); $val = get_option( CF7_COUNTER . $counter_id, 0) + 1; //Increment the current count return $val; } add_shortcode('CF7_counter', 'cf7dtx_counter'); Шоткод для формы: [dynamichidden cf7-counter "CF7_counter counter_id='1' "] |
Но я этот вариант не тестировала, поэтому ничего сказать не могу.
Спасибо большое автору. Для меня это оказалось незаменимое решение.
Подпишитесь на RSS канал - если Вы хотите первыми узнавать о новых статьях на сайте!!!
Статьи по теме:
- Как правильно добавить скрипты jQuery в WordPress
- Рекламный блок на сайте с задержкой публикации для Wodpress.
- Видео Youtube в всплывающем окне. Шорткод для WordPress
- FAQ для WordPress без плагина с помощью простых шорткодов + видео.
- Запрет дубликатов при заполнении в поле формы CF7 — Contact Form 7
Count: [cf7-counter] — тут ошибка.
Правильней — Count: [CF7_counter]
Спасибо большое. Исправила