Отправка e-mail покупателю
#1
Posted 17 December 2012 - 05:23
Все привыкли, что при заказе в магазине покупателю всегда отсылается копия письма для сверки заказа, в случае с jbzoo если покупатель не зарегистрирован, а просто ввел свой е-мейл, то ему ничего не отсылается. Как сделать отправку письма так, что бы при обновлении приложения все не слетело?
#2
Posted 17 December 2012 - 16:38
Пример реализации можете посмотреть тут
/media/zoo/applications/jbuniversal/framework/events/jbevent.basket.php
Собственное событие можно объявить тут (это плагин-пример для работы с событиями Zoo)
plugins/system/zooevent/zooevent.php
Тогда оно никуда не денется после обновления.
Получить поле почты можно следующим образом
<?php print_r($item->getElement('<ID элемента почты>')->data());
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#3
Posted 31 December 2012 - 06:10
Доброго дня!
Прошу простить незнание, за тем и обращаюсь, чтобы его уменьшить
Думаю многие скажут спасибо
#4
Posted 31 December 2012 - 06:50
а если в несколько файлов вставлять? а если вы там одну запятую пропустите и zoo рухнет? а если еще в базу MySQL таблицу надо будет добавить? а если вы в базе лишний символ вставите и весь сайт рухнет?smet.denis:
Доброго дня!
Прошу простить незнание, за тем и обращаюсь, чтобы его уменьшитьОсновам php и т.п. учить не прошу, если не затруднит дайте короткую инструкцию в какой файл в какое место какой код нужно вставить
Думаю многие скажут спасибо
а если вы вставите, используя обычный блокнот - скорее всего так и будет - то слетит кодировка, а?
т.е. простыню писать придется не только по вставке кода, но и по использованию того же Notepad++ и phpMyAdmin, не?)))))
и как вы таким образом уменьшите свое незнание? да ни на гулькин нос оно не уменьшится!!
учиться, учиться и еще раз учиться - как говориТ великий денис, как учит великое джбзоо!!)))
#5
Posted 31 December 2012 - 10:45
Времени, потраченного вами на ответ и количества символов, которые вы набрали, думаю, хватило бы для типовой инструкции.
Всех возможных ситуаций не описать. Но я и не прошу инструкцию на все случаи жизни. Есть конкретная ситуация и есть конкретное решение. И если нашлось время на ответ, то почему бы не сделать этот ответ понятным для большинства.
Редактирование файлов и таблиц БД проблем не вызывает, да и в PHP немного понимаю, не шибко, но немного есть.
Подход "изучите весь PHP, JS, HTMS, CSS, и т.п. а потом и спрашивайте" думаю немного не для данной ситуации.. Тогда и спрашивать не о чем будет.
Этот форум для того и существует, чтобы те, кому не хватает знаний их почерпнули, а те у кого они есть (знания) при желании поделились ими, а не носом крутили и строили из себя "знатоков".
А знания лучше усваиваются на практике, если конечно по ходу дела задаешь себе вопросы что, откуда, куда и почему.
Если же данная инструкция требует значительных трудозатрат и выльется в портянку или просто не хочется этим заниматься, почему бы просто не написать об этом? Зачем флудить?
Ваше сообщение имеет 0% полезной информации по теме вопроса.
#6
Posted 31 December 2012 - 10:59
HTMS
Прошу извинить за опечатку )))
#7
Posted 31 December 2012 - 11:25
Открываете файл plugins/system/zooevent/zooevent.php
и раскоментировать все до строки
"// register and connect events"
Регистрируете собственный обработчик события для корзины
$zoo->event->register('plgSystemZooevent');
$zoo->event->dispatcher->connect('basket:saved', array('plgSystemZooevent', 'basketSaved'));
Добавляете метод "basketSaved" в этом же плагине, внутри делаете то что хотите с материалом
Пример в закомментированом методе itemSaved или тот файл который я указывал выше.
Как из объекта $item получить нужные данные - написано опять же выше.
не забывает активировать плагин в менеджере плагинов Joomla
PS Очень печально, что вы даже не попытались. Иначе бы совершенно другие вопросы возникли...
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#8
Posted 31 December 2012 - 15:10
Читал, не понял, от того и спросил.Вижу вы не читали моего сообщения или не попытались вникнуть... хотя бы пройти по указанным адресам
PS Очень печально, что вы даже не попытались. Иначе бы совершенно другие вопросы возникли...
#9
Posted 09 February 2013 - 12:25
public function basketSaved($event) {
$params = $event->getParameters();
$appParams = $params['appParams'];
$item = $params['item'];
$subject = JText::_('JBZOO_CART_NEW_ORDER_CREATE');
$userEmail = print_r($item->getElement('E-mail')->data());
// $userEmail = $item->getElement('<E-mail>')->data();
$userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout');
$app->jbemail->sendByItem($userEmail, $subject, $item, $userLayout);
// echo 'Тест';
// $mainframe->close();
}
После этой строки $userEmail = print_r($item->getElement('E-mail')->data());
происходит ошибка
Fatal error: Call to a member function data() on a non-object in /home/dbmm/from-prc.net/www/plugins/system/zooevent/zooevent.php on line 126
Думаю что не правильно указываю ID поля для EMAIL, брал Name из настройки полей
#10
Posted 10 February 2013 - 06:12
$app = self::app();
Однако удалось реализовать в jbevent.basket.php
public static function saved($event)
{
$app = self::app();
$params = $event->getParameters();
$appParams = $params['appParams'];
$item = $params['item'];
$subject = JText::_('JBZOO_CART_NEW_ORDER_CREATE');
$adminEmail = $params['appParams']->get('global.jbzoo_cart_config.admin-email');
$adminLayout = $appParams->get('global.jbzoo_cart_config.email-admin-layout');
$app->jbemail->sendByItem($adminEmail, 'Заказ FROM-PRC.NET', $item, $adminLayout);
$userEmail = JFactory::getUser()->email;
if ($userEmail == '')
$userEmail = $item->elements['635c2c09-fa86-458e-a40f-e01f986b1a29'][0]['value'];
$userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout');
$app->jbemail->sendByItem($userEmail, $subject, $item, $userLayout);
}
Думаю что неплохо было бы сделать нечто похожее но адекватно написанное в стандартной поставке.
При отсутствии емайла делать попытку прочтения элемента с именем email или e-mail


This topic is locked








