Не высылается уведомление на email, но оно вылезает на экране Есть решение

1

Настроил уведомление покупателю с указанием бонусных баллов, заработанных клиентом на заказе. Вставлял в сообщение такую фразу:

<p>Вам начислены бонусные баллы в размере {$customer->affiliateBonus()} руб., которые Вы можете использовать при следующей покупке.</p>

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

"Имя клиента" и "№заказа" вставлено в скриншот мной отдельно, чтобы не светить клиента. Очень странно. Видно, что глюк как-то связан с синтаксисом {$customer->affiliateBonus()}, ведь на нем заканчивается сообщение.


4 комментария

  • +2

    Объект "$customer" не содержит метода "affiliateBonus"(если не ошибаюсь), видимо при тестовой отправке ошибки php от вызова несуществующего метода подавляются.

    Попробуйте использовать конструкцию:

    {shopAffiliate::calculateBonus($order)}

    или возможно так:

    {$bonus = shopAffiliate::calculateBonus($order)}

    {shopAffiliate::convertBonus($bonus)}

    • +1
      Роман Кропотов Роман Кропотов 7 октября 2015 05:28 #

      Гениально!

      Спасибо, вы меня очень выручили! Подошел первый способ с конструкцией {shopAffiliate::calculateBonus($order)}. Подскажите, может где-нибудь есть что-то вроде справочника по объектам, функциям или процедурам shop-script? Например, используемую мной ранее конструкцию {$customer->affiliateBonus()} я нашел здесь, на форуме, а хотелось бы иметь такую информацию под рукой в упорядоченном виде.

      • +1

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

        Подсказка по бонусам была выведена путем анализа файла класса работы с бонусами:

        shopAffiliate.class.php

        и вывода в шаблон объекта $customer

        К сожалению на данный момент иного пути нет как искать документацию внутри самого фреймворка(он хорошо откомменитрован), возможно в скором времени эти комментарии преобразуются в статьи официальной документации.

      • +1
        Serg Serg 22 июля 2019 23:55 #

        Доброго времени суток, столько искал инфо как сделать отправку бонусов клиенту, слава богу нашел Ваш ответ. Не сочтите за наглость может быть Вы подскажете как отправить клиенту весь остаток бонусов? Что уже только не пробовал либо слетает магаз либо приходит 0. Вот такая конструкция {$customer->affiliateBonus()} помогает но только при проверочной отправке из редактирования уведомления. При отправке из заказа вижу ошибку на месте кнопок статусов с кодом:

        Fatal error: Call to undefined method waContact::affiliateBonus() in /wa-cache/apps/shop/templates/compiled/shop_ru_RU/39/3f/85/393f8532f37c06606ba993d953787bfe258bde3d.string.php on line 74

        Такая отправляет мой остаток бонусов клиенту ( :

        {$customer = $wa->shop->customer()}
        {$balance = $customer->affiliateBonus()}
            {if $balance > 0}
                {$balance}
            {else $balance == 0}
                В данный момент бонусов нет.
            {/if}

        Заранее спасибо.

        Добавить комментарий

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