Отправка уведомления владельцу компании при покупке промо-кода
Добрый день! На сайта 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;