• Contact Form 7 - как отслеживать какой пользователь отправил форму?

    @Refguser
    Решения для бизнеса: от создания ИМ до...
    Всё в целом просто.
    Если человек авторизован, то присылать его например [_user_login]
    Если нет, то менее надёжно - [_remote_ip].
    См все служебные шорткоды CF7.
    Или он должен в каждой форме указывать свой емейл (или другие данные).

    АПД. Решение чуть сложнее, но универсальнее: генерировать цифровую автоинкрементную куку с ограниченным сроком жизни и вставлять её в скрытое поле формы. Будет что-то типа ID юзера независимо от авторизации.

    НО
    На моем сайте есть поэтапное заполнение опросников, реализовано через формы. Отправка на каждом этапе проходит как отдельным лидом.

    Может лучше/достаточно сделать многошаговую форму? С CF7 это просто.
    Ответ написан
    Комментировать
  • Contact Form 7 - как отслеживать какой пользователь отправил форму?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Но проблема в том что форму заполняет сразу несколько человек и сложно идентифицировать какой человек проходит этапы.

    Номер телефона или почта указывается пользователем?

    да единожны на первой форме

    Достаточно не простая задача, т.к. необходимо реализовать множество этапов по связке этапов с конкретным пользователем, особенно, на бэке. Если коротко, то:
    1. Форма должна слать куку пользователя, чтобы бэк мог понимать, кто перед ним.
    2. Бэк должен понимать, кто шлет ему форму, чтобы связать разные этапы.
    Ответ написан
    Комментировать
  • Contact Form 7 как запретить ввод пробелов?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Подключить скрипт на сайт, и при необходимости, подкорректировать селектор полей формы:
    document.addEventListener('DOMContentLoaded', () => {
        const elements = document.querySelectorAll('.wpcf7-form input[type="text"], .wpcf7-form textarea');
    
        elements.forEach((el) => {
            el.addEventListener('input', (e) => {
                e.target.value = e.target.value.replace(/\s+/g, '');
            });
        });
    });

    UPD из комментов, ограничение на ввод в input только цифр (необходимо указать css класс такому input only-numbers):
    document.addEventListener('DOMContentLoaded', () => {
        const elements = document.querySelectorAll('.only-numbers');
    
        elements.forEach((el) => {
            el.addEventListener('input', (e) => {
                e.target.value = e.target.value.replace(/\D/g, '');
            });
        });
    });
    Ответ написан
    3 комментария
  • Contact Form 7 как сделать автоматический переход между полями?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Поля формы ограничены по количеству символов

    Т.к. надо угадать, что такое "ограничены по количеству символов", то предположу, что речь о length input.

    Подключить скрипт на сайт, и при необходимости, подкорректировать селектор полей формы:
    document.addEventListener('DOMContentLoaded', () => {
        const elements = document.querySelectorAll('.wpcf7-form input[type="text"], .wpcf7-form textarea');
    
        elements.forEach((el, i) => {
            const maxLength = parseInt(el.getAttribute('maxlength'), 10);
    
            el.addEventListener('input', () => {
                const length = el.value.length;
                if (length >= maxLength) {
                    if (i + 1 < elements.length) {
                        elements[i + 1].focus();
                    }
                }
            });
        });
    });
    Ответ написан
    Комментировать