+7(982) 597-7179

Счетчик отправленных писем Contact form 7

Время на прочтение: 2 мин.

Буквально сегодня с одного из детских садиков пришло распоряжение на сайт установить счетчик обращений посетителей. То есть, другими словами, надо вывести количество отправленных форм. Поиск выдал не много вариантов решения данной проблемы, но и они не работали.

Представляю рабочее, на данный момент, решение.

Понадобятся плагины:

  1. Contact form 7
  2. Contact Form 7 Dynamic Text Extension
  3. Contact Form Database (на данный момент плагин отсутствует в галереи плагинов вордпресса, но скачать его можно здесь)

4. В файл function.php вашей темы нужно добавить следующий код:

define( 'CF7_COUNTER', 'cf7-counter' );
function cf7dtx_counter(){
$val = get_option( CF7_COUNTER, 0) + 1;
 return $val;
 }
 add_shortcode('CF7_counter', 'cf7dtx_counter'); function cf7dtx_increment_mail_counter(){
 $val = get_option( CF7_COUNTER, 0) + 1; 
 update_option(CF7_COUNTER, $val); 
 }
 add_action('wpcf7_mail_sent', 'cf7dtx_increment_mail_counter');

5. В саму форму, добавьте следующее поле. Это поле будет скрыто, и отображаться в форме не будет. Оно нужно для присвоения номера.

[dynamichidden cf7-counter «CF7_counter»]

6.Если вам, где-либо на сайте нужно вывести количество уже заполненных форм, тогда используйте шорткод:

[cfdb-count form=»*»]

7. Для вывода в файле темы:

echo get_option( CF7_COUNTER, 0);

Счетчик готов. Если у вас что-то не получилось, сообщите нам и мы вам поможем поставить счетчик сообщений на сайт за небольшую плату.

ОБНОВЛЕНИЕ 03.08.2017

Незарегистрированные пользователи не видят счетчик. Вместо него надпись: You do not have sufficient permissions to access this data.

Проблема решилась только жестким путем. Через SQL запрос. Удалите у себя пункты 6 и 7, далее там где надо вывести счетчик пропишите следующее:

$db_host = 'localhost'; 
$db_user = '123123123';
$db_password = '123123123';
$db_name = '123123123';
$link = mysqli_connect($db_host, $db_user, $db_password, $db_name);
$sql = "SELECT * FROM 'wp_cf7dbplugin_st'";  
$result = $link->query($sql);  
$total = $result->num_rows; 
echo 'Количество обращений: '.$total;


Читайте также:

Приглашаем поучаствовать в обсуждении статьи:

Комментариев 0