Буквально сегодня с одного из детских садиков пришло распоряжение на сайт установить счетчик обращений посетителей. То есть, другими словами, надо вывести количество отправленных форм. Поиск выдал не много вариантов решения данной проблемы, но и они не работали.
Представляю рабочее, на данный момент, решение.
Понадобятся плагины:
- Contact form 7
- Contact Form 7 Dynamic Text Extension
- 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;