Проблемы с подпиской через форму подписки

Здравствуйте,

возникла пара проблем с приложением `Рассылки'.

1. Невозможно подписаться ни через фронтэнд, ни через бэкэнд. В обоих
случаях после сабмита юзер получает сообщение `Благодарим вас за
подписку.', но в БД его адрес не попадает, во `Все контакты' тоже.

Интересно, что когда подписываешь адрес через бэкэнд, напротив пункта
`Подписчики' появляется единичка. Но если после этого перейти в другую
вкладку, а потом снова нажать на `Подписчики', единица обнуляется.

Запрос к БД показывается 0 строк

select * from mailer_subscriber;
Empty set (0.00 sec)

даже если запрашивать, когда в панельке высвечивается один подписчик.

2. В меню `Отписавшиеся' в бэкэнде вручную можно отписать ЛЮБОЙ адрес,
даже если он никогда не подписывался.

Проверялось на такой конфигурации (локальный сервер):
Arch Linux + Apache + PHP 5.5.7 + MariaDB (Ver 15.1 Distrib 5.5.34-MariaDB)
Приложения: Shop-script 5 + Блог + Голосование (все последних версий)
Рассылки установлены по такому адерсу:
http://localhost/shop/index.php/mailer/

Темы: Default, Color

Пробовали удалить приложение, чистили кэш, устанавливали заново. Не помогает.

P.S. Кстати, в колоровской теме, точнее в Bootstrap, который она
использует, есть класс hidden, так что возникает конфликт с
джаваскриптом в коде подписки на рассылку. Хорошо бы исправить

<div class="hidden block" style="display:none">
Благодарим вас за подписку!
</div>

на что-нибудь типа

<div class="hiddenmsg block" style="display:none">
Благодарим вас за подписку!
</div>

И в скрипте соответственно hidden на hiddenmsg.

4 ответа

  • 1
    Михаил Ушенин Webasyst 30 января 2014 00:44 #
    1. Возможно, в приложении Сайт нет поселения для приложения Рассылки — форма подписки "не знает", куда отправлять данные подписчика.

    * А как вы подписываете получателей вручную в бекенде?

    2. Почему бы и нет? Можно заранее отписать чей-то адрес — если он потом подпишется, то рассылки на этот адрес всё равно отправляться не будут. Разные бывают ситуации. Чем конкретно вам мешает такая возможность?

    3. Это пожелание к разработчикам темы дизайна. А подстраивать приложение под все возможные темы дизайна и CSS-фреймворки, пусть даже популярные — сомнительной необходимости задача. Возможно, я где-то неправ — можно обсудить.

    * Сообщения об ошибках в приложениях Webasyst лучше отправлять в службу поддержки — там от них будет больше толка, чем в разделе сайта, в основном предназначенном для общения пользователей (хоть сотрудники компании тоже сюда заглядывают).
    • 0
      %username% 1 февраля 2014 11:27 #
      1.

      > Возможно, в приложении Сайт нет поселения для приложения Рассылки — форма подписки "не знает", куда отправлять данные подписчика.

      после установки приложения поселение (скрытое) создается автоматически, первым правилом в списке правил. выглядит так:
      адрес_магазина/mailer/* Рассылки

      это правильно?

      даже если форма подписки действительно `не знает', куда слать данные, говорить в этом случае энд-юзеру, что все окей (Благодарим вас за подписку!) как-то не очень правильно.

      > А как вы подписываете получателей вручную в бекенде?

      Рассылки -> Подписчики -> а там через форму, код которой предлагается встроить на сайте

      2. отличная возможность, кто же спорит! проблема только в том, что она не документирована. и о ней можно узнать только из вашего комментария, увы. по крайней мере из этого описания:

      ``В этом списке содержатся адреса контактов, которые отписались от получения рассылок с помощью ссылки для отписки. Эти адреса автоматически исключаются из числа получателей всех последующих рассылок. Вы также можете самостоятельно отписать любой контакт.''

      интуитивно непонятно, что это фича, а не баг. может быть, прямо так и описать эту функцию:

      ``Вы также можете самостоятельно отписать желаемый контакт. Возможна отписка любого адреса, даже если он отсутствует в актуальном списке контактов --- например, чтобы запретить отправку рассылки данному контакту в случае, если пользователь с указанным адресом зарегистрируется в системе в будущем.''

      как-то так.

      3. вы правы. поэтому это замечание было написано в постскриптуме, в надежде помочь недоумевающим юзерам, которые могут столкнуться с этой же проблемой.

      > Сообщения об ошибках в приложениях Webasyst лучше отправлять в службу поддержки — там от них будет больше толка, чем в разделе сайта, в основном предназначенном для общения пользователей (хоть сотрудники компании тоже сюда заглядывают).

      мы уже поняли, поэтому коллега эту проблему зарепортил 29-го января.

      в общем, проблема так и не решилась.
      • 0
        Михаил Ушенин Михаил Ушенин Webasyst 3 февраля 2014 05:20 #
        1.
        > после установки приложения поселение (скрытое) создается автоматически, первым правилом в списке правил. выглядит так:
        адрес_магазина/mailer/* Рассылки
        это правильно?

        Да.

        >> А как вы подписываете получателей вручную в бекенде?
        > Рассылки -> Подписчики -> а там через форму, код которой предлагается встроить на сайте

        Недокументированная возможность :) Если нет поселения, то и подписчики не добавляются. Вообще-то эта форма не для добавления подписчиков, а для предварительного просмотра её внешнего вида.

        2. Хотелось бы всё-таки понять, чем эта возможность вам мешает в работе. Какие проблемы она создаёт (или создала?). Разработчикам передал замечание, чтобы логика работы полностью соответствовала содержимому надписи.

        3.
        > в общем, проблема так и не решилась.

        Может быть, стоит попробовать отредактировать JavaScript-код формы подписки?
        • 0
          Владимир Казаринов Владимир Казаринов 4 февраля 2014 09:09 #
          То есть получается, что для использования модуля «Рассылка» нужно создавать отдельную страницу?

          Можно ли как-то сделать, чтобы код рассылки работал на страницах, для которых настроена маршрутизация другого модуля? Например, на главной странице интернет-магазина или на странице регистрации нового покупателя (там пользователь как раз вводит свой адрес почты).
          • 0
            Михаил Ушенин Михаил Ушенин Webasyst 5 февраля 2014 05:57 #
            1. Нет, можно (и нужно) создавать скрытое поселение для Рассылок.
            2. Размещать код формы подписки можно где угодно. Важно лишь убедиться в том, что ДО копирования вами кода формы в структуре Сайта присутствовало поселение для Рассылок — именно на адрес такого поселения форма будет отправлять данные новых подписчиков. На каких страницах при этом будет находиться форма, неважно.
        • +1
          Olga kajarskaia Olga kajarskaia 11 февраля 2014 10:41 #
          > Недокументированная возможность :) Если нет поселения, то и
          > подписчики не добавляются. Вообще-то эта форма не для добавления
          > подписчиков, а для предварительного просмотра её внешнего вида.

          Это понятно. Но с другой стороны в бэкэнде такая возможность
          определенно нужна.

          > 2. Хотелось бы всё-таки понять, чем эта возможность вам мешает в
          > работе. Какие проблемы она создаёт (или создала?). Разработчикам
          > передал замечание, чтобы логика работы полностью соответствовала
          > содержимому надписи.

          Ничем не мешает, совершенно. Даже наоборот. Только эта возможность
          должна быть ясно документирована.

          > 3. > в общем, проблема так и не решилась.
          > Может быть, стоит попробовать отредактировать JavaScript-код формы подписки?

          Да, мы уже поправили. Простейшее решение вот такое, например:
          https://gist.github.com/pilosus/1dd96ed795159b6d94cf

          Другое дело, что мне ну совершенно не понятно, почему в приложении за
          3000 рублей такая базовая фича, как форма подписки, не работает без
          вмешательства в нее javascript-программиста.

          То есть вот эта штука:
          wa-apps/mailer/templates/actions/subscribers/basic_form.html

          совершенно сломана и не работает из коробки.
          • 0
            Laspik.ru Laspik.ru 10 октября 2014 06:49 #
            Ольга, решилось что-нибудь? Отношение поддержки такое, как будто у них миллион простишь подарить. Партизаны.
  • 1
    Алексей Чижов 17 мая 2016 15:28 #

    можно ли как-то подписать вручную разом много адресов? может быть запросом к бд?

    • +1
      Алексей Алексей Webasyst 17 мая 2016 16:14 #

      Проще добавить необходимый список к рассылке на втором шаге. После выполнении рассылки они все будут добавлены.

  • 1
    Lelena 25 октября 2016 22:42 #
    Невозможно подписаться, после сабмита юзер получает сообщение `Благодарим вас за подписку', но в БД его адрес не попадает, во `Все контакты' тоже.

    Поселение (скрытое) существует, первым правилом в списке правил. Выглядит так: адрес_магазина/mailer/*

    Название: Рассылки

    где ошибка?

    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 26 октября 2016 17:04 #

      Есть такая нестыковка между последним обновлением Рассылок и темой дизайна. Разработчикам об этом сообщили, ожидайте исправления.

      Предположительно можно временно обойти проблему, заменив код стандартной формы подписки в теме дизайна default на код формы подписки, созданной в приложении "Рассылки". Для этого потребуется редактирование HTML/Smarty-кода темы дизайна.

      • +1
        Lelena Lelena 28 октября 2016 12:03 #

        ответ разработчика темы дизайна:

        А причем тут мы? Если webasyst обновляет приложение с ошибкой, которое не работает со стандартной формой.

  • 0
    Михаил Ушенин Webasyst 3 февраля 2014 05:20 #
    1.
    > после установки приложения поселение (скрытое) создается автоматически, первым правилом в списке правил. выглядит так:
    адрес_магазина/mailer/* Рассылки
    это правильно?

    Да.

    >> А как вы подписываете получателей вручную в бекенде?
    > Рассылки -> Подписчики -> а там через форму, код которой предлагается встроить на сайте

    Недокументированная возможность :) Если нет поселения, то и подписчики не добавляются. Вообще-то эта форма не для добавления подписчиков, а для предварительного просмотра её внешнего вида.

    2. Хотелось бы всё-таки понять, чем эта возможность вам мешает в работе. Какие проблемы она создаёт (или создала?). Разработчикам передал замечание, чтобы логика работы полностью соответствовала содержимому надписи.

    3.
    > в общем, проблема так и не решилась.

    Может быть, стоит попробовать отредактировать JavaScript-код формы подписки?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите