[msPromoCode2] Кейс. Установка промо-кода программно при входе на сайт


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

К сожалению, никак не успеваю пополнить раздел API, пусть этот пост станет началом!

2 волшебных шага


  1. Создаём промо-код DISCOUNT и настраиваем его, как нам необходимо,

  2. Добавляем плагин и вешаем его на событие OnWebPageInit с приоритетом -9999999prnt.sc/q4vcmt
    <?php
    // Код промо-кода, который применяем
    $code = 'DISCOUNT';
    
    $mspc2 = $modx->getService('mspromocode2', 'msPromoCode2',
        MODX_CORE_PATH . 'components/mspromocode2/model/mspromocode2/');
    $mspc2->initialize($modx->context->key);
    $manager = $mspc2->getManager();
    switch ($modx->event->name) {
        case 'OnWebPageInit':
            $couponCurrent = $manager->getCurrentCoupon();
            $couponNew = $manager->getCoupon($code);
            if (!is_array($couponCurrent) && is_array($couponNew)) {
                $manager->setCoupon((int)$couponNew['id']);
            }
            break;
    }
    Главное замените значение переменной $code, если название промо-кода у вас отличается.
Очень просто, правда? Пишите в комментариях кейсы, которые хотелось бы решить с помощью данного дополнения. Желательно такие-же простые. :)
Павел Гвоздь
03 декабря 2019, 08:21
modx.pro
5
918
+12
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0