Счетчик для 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' "] |
Но я этот вариант не тестировала, поэтому ничего сказать не могу.
Спасибо большое автору. Для меня это оказалось незаменимое решение.
Здравствуйте! Сейчас плагин Contact Form Database не работает. То есть достаточно установить плагин Contact Form 7 Dynamic Text Extension и повторить вашу инструкцию и счетчик отправлений работает. (тьфу-тьфу)))))
Count: [cf7-counter] – тут ошибка.
Правильней – Count: [CF7_counter]
Спасибо большое. Исправила