Отправка уведомления владельцу компании при покупке промо-кода

Добрый день! На сайта MODX Revo+minishop2 организована продажа промо-кодов при помощи msKuponator. Появилась задача настроить оповещение владельца компании (почта берётся из поля email производителя msVendor) при покупке промо-кода. Для этого был написан плагин (код под катом), отправка работает, но подробности о промо не удается вывести в письмо из-за того, что
$modx->getCollection('msKuponatorItem', array('order_id' => $msOrder->get('id'), 'status' => 'buyed'));
ничего не возвращает. Хотя при подстановке вместо $msOrder->get('id') конкретного ID всё корректно срабатывает. В чём проблема?

<?php
    case 'msOnCreateOrder':
        $user = $modx->getObject('modUser', array('id' => $msOrder->get('user_id')));
        $user__profile = $user->getOne('Profile');
        
        $user__address = $msOrder->getOne('Address');
        $user__delivery = $msOrder->getOne('Delivery');
        $user__payment = $msOrder->getOne('Payment');

        $modx->setPlaceholder('order_id',$msOrder->get('id'));
        $modx->setPlaceholders(array(
           'receiver' => $user__address->get('receiver'),
           'phone' => $user__address->get('phone'),
           'email' => $user__profile->get('email'),
           'comment' => $user__address->get('comment'),
           'delivery' => $user__delivery->get('name'),
           'payment' => $user__payment->get('name')
        ),'user__data.');
        
		$modx->setPlaceholders(array(
			'logo' => 'display:block;margin: auto;',
			'a' => 'color:#348eda;',
			'p' => 'font-family: Arial;color: #000;font-size: 16px;line-height:18px;',
			'h' => 'font-family:Arial;color: #111111;font-weight: 200;margin-top:0;',
			'h1' => 'font-size: 36px;',
			'h2' => 'font-size: 28px;',
			'h3' => 'font-size: 22px;line-height:24px;',
			'th' => 'font-family: Arial;text-align: left;color: #111111;',
			'td' => 'font-family: Arial;text-align: left;color: #111111;',
			'mb_5' => 'margin-bottom:5px;',
			'mb_10' => 'margin-bottom:10px;',
			'mb_15' => 'margin-bottom:15px;',
			'mb_20' => 'margin-bottom:20px;',
			'mb_30' => 'margin-bottom:30px;',
		),'style.');
		
        $order__array = $modx->getCollection('msKuponatorItem', array('order_id' => $msOrder->get('id'), 'status' => 'buyed'));
        if (count($order__array) > 0) {
            foreach($order__array as $id => $value) {
                $kuponator__item = $modx->getObject('msKuponatorItem', array('id' => $id));
                $product_id = $kuponator__item->get('product_id');
        
                $kuponator__item_buyed = $modx->getCollection('msKuponatorItem', array('product_id' => $product_id, 'status' => 'buyed'));
                $kuponator__item_free = $modx->getCollection('msKuponatorItem', array('product_id' => $product_id, 'status' => 'free'));
                $kuponator__item_summ = count($kuponator__item_free) + count($kuponator__item_buyed);
        
                $product = $modx->getObject('msProduct', array('id' => $product_id));
                $vendor__item = $modx->getObject('msVendor', array('id' => $product->get('vendor')));
        
                $modx->setPlaceholders(array(
                   'id' => $product->get('id'),
                   'pagetitle' => $product->get('pagetitle'),
                   'value' => $kuponator__item->get('value'),
                   'kuponator__item_free' => count($kuponator__item_free) - 1,
                   'kuponator__item_summ' => $kuponator__item_summ
                ),'product__data.');
        				
				$message = $modx->getChunk('tpl.msEmail.new.company');
				$modx->getService('mail', 'mail.modPHPMailer');
				$modx->mail->set(modMail::MAIL_BODY,$message);
				$modx->mail->set(modMail::MAIL_FROM,$modx->getOption('emailsender'));
				$modx->mail->set(modMail::MAIL_FROM_NAME,$modx->getOption('site_name'));
				$modx->mail->set(modMail::MAIL_SUBJECT,'Приобретен промо-код');
				$modx->mail->address('to','mailbox@gmail.com');
				$modx->mail->address('reply-to','mailbox@gmail.com');
				$modx->mail->setHTML(true);
				if (!$modx->mail->send()) {
					$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
				}
				$modx->mail->reset();
            }
        }
        break;
Владимир
17 мая 2019, 17:30
modx.pro
1
603
+1

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

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