Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

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

karabert

  • Захожу иногда
  • 276
  • 30 / 3
Специалисты по джумшопинг подскажите пожалуйста.

Почему может не срабатывать событие? Такие как onAfterChangeOrderStatus, onEndCheckoutStep5, onBeforeSaveOrderStatus. Срабатывают onAfterCreateOrderFull (но в нем статус заказа еще невозможно получить) и onBeforeSendEmailsOrder (он срабатывает несколько раз за заказ) и только в  группе jshoppingorder. Пробовал также в system, там ничего.

Каким же событием можно воспользоваться, если нужно перехватывать смену статуса автоматическую при оплате на сайте или из админки?

« Последнее редактирование: 21.04.2018, 21:15:54 от karabert »
*

dmitry_stas

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

karabert

  • Захожу иногда
  • 276
  • 30 / 3
смена статуса это onAfterChangeOrderStatus и onAfterChangeOrderStatusAdmin

Спасибо, срабатывает.

Смотрю models/checkout.php
Код
$dispatcher->trigger('onAfterChangeOrderStatus', array(&$order_id, &$status, &$sendmessage));

По идее должен ид заказа, статус и параметр отправлять или нет сообщение придти, но приходит только ид заказа
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не вижу логического объяснения, почему это может быть. разве что предположить, что вот в таком виде
Код
$dispatcher->trigger('onAfterChangeOrderStatus', array(&$order_id));
вызывается еще где-то, например в каком то плагине...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

karabert

  • Захожу иногда
  • 276
  • 30 / 3
не вижу логического объяснения, почему это может быть. разве что предположить, что вот в таком виде
Код
$dispatcher->trigger('onAfterChangeOrderStatus', array(&$order_id));
вызывается еще где-то, например в каком то плагине...

Да, странно, у админской версии еще больше параметров, но у меня также только id, причем не массив с ним, а переменная. Поэтому делаю так:

Спойлер
[свернуть]
*

dmitry_stas

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

karabert

  • Захожу иногда
  • 276
  • 30 / 3
какой массив? никакого массива нет. вам нужно в плагине
Код
function onAfterChangeOrderStatus(&$order_id, &$status, &$sendmessage)

О, огромное спасибо за подсказку, все работает! Но если вручную статус менять, а если автоматом после оплаты, то не меняется, можете подсказать какое событие подходит для этого?
*

dmitry_stas

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

[Решено] Разные шаблоны для разных статусов заказов

Автор nevigen

Ответов: 4
Просмотров: 5218
Последний ответ 04.04.2022, 19:45:58
от nevigen
Поиск заказа по номеру телефона клиента

Автор Shiffer

Ответов: 19
Просмотров: 3268
Последний ответ 07.12.2021, 19:43:38
от anatol81n
Имеется ли решения дополнительного статуса заказа?

Автор dss

Ответов: 5
Просмотров: 1220
Последний ответ 17.08.2021, 09:14:35
от nevigen
Отправка сообщения админу в не зависимости от статуса заказа

Автор newalex

Ответов: 4
Просмотров: 808
Последний ответ 23.04.2021, 10:30:56
от newalex
Уведомления о смене статуса заказа

Автор anny_k

Ответов: 10
Просмотров: 1197
Последний ответ 04.12.2020, 21:01:24
от nevigen