0 Пользователей и 1 Гость просматривают эту тему.
  • 19 Ответов
  • 724 Просмотров
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
В платежном модуле объявлен prepareParamsDispayMail, который меняет description у заказа.
Но срабатывает после отправки письма, а не до, как должен.

Помогите исправить.
JSHopping 4.18.2
*

nevigen

  • Moderator
  • 10436
  • 863 / 25
  • http://n*****n.com
а как помочь ?
кофе заварить погуще, чтобы можно было гадать ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Но срабатывает после отправки письма, а не до, как должен.
он и срабатывает до, а не после
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
он и срабатывает до, а не после
так вот не срабатывает он до. Сначала письмо уходит (и приходит со старым дескрипшном товара), а потом меняется дескрипнш в базе.
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
а как помочь ?
кофе заварить погуще, чтобы можно было гадать ?
Ага, разобрался. Получается, этот метод запускается таки, но все данные уже считаны из базы в этот момент и отправка происходит ранее считанных данных.
« Последнее редактирование: 28.01.2019, 13:07:29 от mrtigerfox »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
конечно, они считаны, а как иначе? для этого ж в метод и передается первый параметр, сама таблица, чтобы ее можно было поменять.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
конечно, они считаны, а как иначе? для этого ж в метод и передается первый параметр, сама таблица, чтобы ее можно было поменять.
что-то мозг буксует, подскажите решение.
Я изменяю данные product_freeattributes в функции complete платежного модуля и сохраняю их в таблицу __jshopping_order_item. Это происходит по каждому продукту, заказанному пользователем.
Как перезагрузить данные этого поля из таблиц обратно в $order перед отправкой письма?
« Последнее редактирование: 29.01.2019, 11:02:07 от mrtigerfox »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
у вас в плагин приходит $order. у него есть $order->products где лежат ваши товары
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
у вас в плагин приходит $order. у него есть $order->products где лежат ваши товары
Спасибо, нашел  $order->items->products
Проблема в том, что prepareParamsDispayMail  вызывается каждый раз, когда в админке заходишь в заказ, а когда complite в модуле оплаты - items отсутствует в $ order.
Может подскажите метод, вызывающийся один раз при окончании заказа?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
я честно просто не пойму до конца что вы хотите сделать. но по всей видимости насколько я понимаю вам нужен обычный плагин для этого, а не платежный...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
я честно просто не пойму до конца что вы хотите сделать. но по всей видимости насколько я понимаю вам нужен обычный плагин для этого, а не платежный...
Хочу сделать следующее.
На сайте продаются цифровые товары с доступом (типа выделения лицензионного ключа). Доступ привязывается к email клиента, заранее нагенерить доступов не получится.
Сразу после успешной покупки в методе complete платежного модуля я по API обращаюсь к системе и получаю ключи, которые пишу в комментарий к каждому товару в заказе. Все ок, в ЛК клиента все попадает. Но вот письмо уходит к нему еще без ключей в комментарии. Пытаюсь это поправить.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
в комментарий к каждому товару
в каком именно поле в таблице?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
в каком именно поле в таблице?
product_freeattributes в таблицу __jshopping_order_item.
В шаблоне письма это поле тоже есть, если сформировать письмо из админки - то там уже есть данные.
Проблема именно с письмом, которое отправляется сразу после оплаты и завершения заказа.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну я тогда не понимаю почему у вас не получается то что я сказал. я попробовал - все меняется. может у вас в принципе письмо уходит до того, как вы там что то меняете, т.е. когда например заказ еще не оплачен?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
ну я тогда не понимаю почему у вас не получается то что я сказал. я попробовал - все меняется. может у вас в принципе письмо уходит до того, как вы там что то меняете, т.е. когда например заказ еще не оплачен?
Скажите, а вы меняете значение каким образом и на каком этапе?
У меня значения добываются в методе complete модуля оплаты, он вызывается после оплаты. Значения пишутся напрямую в поле таблицы, ибо передаваемый в complete $order не содержит items.
Добывать значения в методе prepareParamsDispayMail модуля оплаты не представляется возможным, поскольку он вызывается каждый раз, когда кто-либо заходит  в подробности заказа.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Добывать значения в методе prepareParamsDispayMail модуля оплаты не представляется возможным, поскольку он вызывается каждый раз, когда кто-либо заходит  в подробности заказа.
так а кто мешает в complete установить любое приватное свойство класса в true, которое затем проверить в prepareParamsDispayMail, установлено оно или нет, т.е. просто зашли или комплит был выполнен?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
так а кто мешает в complete установить любое приватное свойство класса в true, которое затем проверить в prepareParamsDispayMail, установлено оно или нет, т.е. просто зашли или комплит был выполнен?
заценим такое, спасибо за идею.
UPD
а вот и нет. comlete выполняется после prepareParamsDispayMail оказывается. Поэтому и нет данных, их и так еще нет
« Последнее редактирование: 31.01.2019, 14:33:22 от mrtigerfox »
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
может есть информация, где вызывается метод prepareParamsDispayMail  для отправки письма при успешной оплате заказа? не могу найти
*

mrtigerfox

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
может есть информация, где вызывается метод prepareParamsDispayMail  для отправки письма при успешной оплате заказа? не могу найти
отвечу сам себе - в методе orderDataSave класса jshopCheckoutOrder (файл components\com_jshopping\models\checkoutorder.php)
Закоментировал там и добавил отправку письма в конце complete в модуле оплаты.
*

nevigen

  • Moderator
  • 10436
  • 863 / 25
  • http://n*****n.com
теперь главное не обновлять ЖШ.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проверьте время заказа после обновления до Joomla 3.7

Автор den13

Ответов: 0
Просмотров: 899
Последний ответ 28.04.2017, 11:37:59
от den13
Простой модуль оплаты для отправки текста

Автор graf

Ответов: 9
Просмотров: 1534
Последний ответ 12.02.2017, 14:31:42
от S2pidsMan
после обновления перстал работать плагтин Addon states

Автор Doctor Death

Ответов: 3
Просмотров: 941
Последний ответ 25.04.2016, 15:47:37
от dmitry_stas
Получение цифрового товара после оплаты

Автор oleg856

Ответов: 14
Просмотров: 3951
Последний ответ 12.04.2015, 19:09:50
от dmitry_stas
Как сделать чтобы после оплаты менялась группа пользователя?

Автор viy

Ответов: 0
Просмотров: 942
Последний ответ 21.06.2014, 15:14:24
от viy