Сейчас в админке необходимо сделать два клика для смены статуса заказа - раскрыть список со статусами, выбрать статус. При выборе статуса можно ошибиться и ткнуть не в тот статус - это нехорошо, покупателю уйдет неправильное уведомление. Да и не нужно так много статусов на выбор, потому что по алгоритму обработки заказа из каждого статуса “вытекает” один-два других статуса.
Поэтому хочу сделать кнопки для смены статуса заказа. Это уменьшит вероятность выбора неправильного статуса, уменьшит количество кликов и будет показывать только те статусы, на которые можно сменить текущий статус. Выглядеть будет так:
Подскажите, как правильно прописать теги у кнопок, чтобы корректно менялся статус? Не совсем понимаю, как это реализовано в выпадающем списке.
Держите:
в файле /design/backend/templates/views/orders/details.tpl
после строк
<div class="control-group shift-top">
<div class="control-label">
Вставить
<a class="status-link-ag cm-ajax cm-post btn-send-order" data-ca-target-id="content_downloads" href="/admin.php?dispatch=orders.update_status&id={$order_info.order_id}&status=AG&return_url=admin.php%3Fdispatch%3Dorders.details%26order_id%3D{$order_info.order_id}" onclick="setTimeout('window.location.reload()', 200); return fn_check_object_status(this, 'ag', '#6aa84f');" data-ca-event="ce.update_object_status_callback">Подтвердить заказ и передать в доставку</a>
Надо заменить: admin.php на свой адрес админки, status=AG на свою букву статуса соответствующую отправке. Далее (this, 'ag' - так же 'ag' на свою букву статуса.
Добавить стиль для btn-send-order в css.
Насчет великой правильности и красоты данного решения сомневаюсь, но работает.
Статус меняется. Но вот уведомления не уходят ни админу, ни покупателю. ((( Почему такое может быть? При смене статуса через выпадающий список уведомления уходят.
Сделал вот так:
<a
class="status-link-e cm-ajax cm-post btn o-status-e"
style="white-space: normal"
data-ca-target-id="content_downloads"
href="/admin.php?dispatch=orders.update_status&id={$order_info.order_id}&status=E&notify_user=true&notify_department=true"
onclick="setTimeout('window.location.reload()', 200); return fn_check_object_status(this, 'e', '#3c78d8');"
data-ca-event="ce.update_object_status_callback">
Подтвердить заказ и передать в доставку
</a>
return_url убрал, чтобы страница перезагружалась и кнопки пропадали.
или в начале строки три обратных кавычки `
и со следующей строки вставляйте код
т.е.
кавычкакавычкакавычка
в этом случае также тройной обратной кавычкой закрывайте код чтобы дальше писать обычный текст