=== ACH Mail ===
Contributors: alekseychikun
Requires at least: 6.0
Requires PHP: 8.1
Stable tag: 1.1.1
License: GPLv2 or later

Заявки с сайта: письмо на нужные адреса, журнал, защита форм, отправка в Telegram по ключу.

== Description ==

Тема передаёт заявку одной функцией:

    if (function_exists('ach_mail_send')) {
        $r = ach_mail_send('formCart', [
            'title'  => 'Заказ из корзины',
            'fields' => ['Имя' => $name, 'Телефон' => $phone],
            'cart'   => ['items' => [...], 'total' => '5 400 ₽', 'delivery' => 'Самовывоз'],
            'page'   => $url,
        ]);
    }

Плагин сохраняет заявку в журнал, отправляет письмо (свой шаблон, адреса и тему из настроек)
и, при действующем ключе, сообщение в группу Telegram. Неудачная доставка повторяется кроном.

Защита форм без токена в разметке: поле-ловушка `ach_hp`, время на странице `ach_t`
(секунды от загрузки до отправки, считает браузер), лимит заявок с IP. Склейка дублей
включается в настройках.

Темы, написанные под плагин Async Mailer (классы AsyncMailer\Message и MessageTemplate),
работают без правок: старый плагин выключается, ACH Mail принимает тот же код.

== Changelog ==

= 1.1.1 =
Исправлено:
* Собственная проверка модуля Telegram при загрузке выполнялась не всегда: функции модуля теперь объявляются только после неё. Признак «модуль подключён» — по константе, которую модуль ставит сам после проверки.

= 1.1.0 =
Изменено:
* Отправка в Telegram вынесена в модуль, который выдаётся сервером лицензий по ключу и только для этого сайта. В публичном архиве кода Telegram нет.
* Модуль проверяется подписью и контрольными суммами, подключается только при действующем ключе.
* Без права на модуль (нет ключа, ключ отозван или истёк, модуль скопирован на другой сайт, сервер не подтверждал ключ 30 дней) модуль удаляется. Журнал, настройки и почта не затрагиваются.

Новое:
* Состояние модуля и кнопка «Загрузить модуль» на вкладке Telegram.

= 1.0.1 =
Исправлено:
* Telegram на хостинге с неровной связью: соединение ждём 4 с и повторяем до 3 раз для кнопок в админке; раньше один зависший запрос (10 с) ронял «Найти группы» и тестовое сообщение.

Новое:
* Имя бота на вкладке Telegram (проверка токена при сохранении), поле для ручного ввода ID группы.
* В инструкции — команда /start@бот: обычные сообщения в группе бот не видит, а команду видит всегда.
* Ссылка «Настройки» в списке плагинов; разовый перенос получателей и отправителя из настроек темы.

= 1.0.0 =
Новое:
* Журнал заявок с итогом доставки по каналам, повтор, удаление, выгрузка CSV, срок хранения.
* Письмо по своему шаблону: получатели общие и по формам, тема, отправитель, SMTP, цвета.
* Telegram: подключение бота из админки, поиск групп, тестовое сообщение, корзина списком.
* Защита форм: ловушка, время заполнения, лимит с IP; склейка дублей.
* Совместимость с кодом тем под Async Mailer.
* Лицензия на платные каналы, обновления с alekseychikun.ru.
