Новости Joomla

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

Satool

  • Захожу иногда
  • 139
  • 2 / 0
На странице /administrator/index.php?option=com_jshopping&controller=orders&task=show&order_id= есть кнопка  "Отправить письмо" но она отправляет заказ клиенту и администратору, а необходимо только администратору.
В какую сторону смотреть?
*

kit2m2

  • Живу я здесь
  • 3271
  • 268 / 0
  • Беру сайты на полное сопровождение
Все правильно. В стандартном функционале письмо отправляется пользователю. Ведь там так и написано "Уведомить пользователя".

Чтобы уведомлять администратора, нужно что-то изменять в стандартном функционале, то есть писать плагин, который будет это делать.

Ну или как Вы это любите, переопределить шаблона админки и добавить в него код.
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
Ну или как Вы это любите, переопределить шаблона админки и добавить в него код.

Нет, здесь только плагин поможет. Причем "хитрый", но не сложный. Если будет время - послезавтра напишу, может пригодиться и самому.
*

kit2m2

  • Живу я здесь
  • 3271
  • 268 / 0
  • Беру сайты на полное сопровождение
На вскидку:
Добавить чекбокс или радио-кнопку по условию,  которой менять значение переменной $order->email = "почта администратора";

Но не уверен...
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
На вскидку:
Добавить чекбокс или радио-кнопку по условию,  которой менять значение переменной $order->email = "почта администратора";

Но не уверен...

Это ничего не даст, E-mail таким образом не переопределить (в шаблоне).

TO Satool: смотреть в сторону триггера onBeforeSendEmailsOrder или onBeforeSendOrderEmailClient (так немного сложнее и избыточней, первый лучше). А "хитрость" в том, что нужно обязательно проверять - находитесь вы в админке или на фронте. Рекомендую, самому попробовать написать, хотя бы в образовательных целях.
« Последнее редактирование: 18.01.2020, 20:58:01 от D. Tkachenko »
*

Satool

  • Захожу иногда
  • 139
  • 2 / 0
Рекомендую, самому попробовать написать, хотя бы в образовательных целях.
Стремлюсь к этому ^-^
Попробую тем более что пример есть
*

Satool

  • Захожу иногда
  • 139
  • 2 / 0
А "хитрость" в том, что нужно обязательно проверять - находитесь вы в админке или на фронте.
а как быть если надо отправить и клиенту и администратору?
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
а как быть если надо отправить и клиенту и администратору?

Как заметил kit2m2 выводить чекбокс рядом с кнопкой или доп. кнопку, только т.к. плагин обязателен, то это должно быть реализовано в нем. Попробуйте сами, а я постараюсь (как по времени будет) через день-два опубликовать свой вариант. Без чекбокса/доп. кнопки, там вообще несколько строк кода (но, это как-то несерьезно).
*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
Как и обещал, выкладываю свой вариант плагина.
Скачать можно с Я.Диска: https://yadi.sk/d/hEA9xyB7-xq59Q

*

D. Tkachenko

  • Захожу иногда
  • 69
  • 15 / 0
Примечание: в таком варианте письмо отправленное администратору не будет содержать e-mail покупателя. Если это недопустимо, следует заменить код плагина (файл jshopping_sendorderadm.php) на следующий:
Код
<?php
defined('_JEXEC') or die('Restricted access');

class JsOverrideMailer {

  function __call($method, $args){
    if(isset($this->$method)){
      $func = $this->$method;
      return call_user_func_array($func, $args);
    }
  }

}

class plgJshoppingOrderJshopping_sendorderadm extends JPlugin {

  function __construct(&$subject, $config){
    parent::__construct($subject, $config);
  }

  function onBeforeShowOrder(&$view){
    $view->tmp_html_start = '
      <script>
        jQuery(document).ready(function($){
          $(\'<div class="btn-wrapper" id="toolbar-mail-admin"> \
            <button onclick="Joomla.sendorderadmbtn();" class="btn btn-small button-mail"> \
            <span class="icon-mail" aria-hidden="true"></span> \
            Отправить письмо администратору</button> \
            </div>\').insertAfter(\'#toolbar-mail\');

          Joomla.sendorderadmbtn = function(){
            $("input[name=\'sendorderadm\']").val("1");
            Joomla.submitbutton(\'send\');
          }
        });
      </script>
    ';

    $view->tmp_html_end = '<input type="hidden" name="sendorderadm" value="0" />';
  }

  function onBeforeSendOrderEmailClient(&$mailer){
    $app = JFactory::getApplication();
    $jinput = $app->input;
    $sendorderadm = $jinput->getInt('sendorderadm', 0);

    if($app->isAdmin() && $sendorderadm){
      $mailer = new JsOverrideMailer();
      $mailer->Send = function(){
        return true;
      };
    }
  }

}
Скачать v1.1 с Я.Диска: https://yadi.sk/d/2UDCEFRsvlUk3A
« Последнее редактирование: 21.01.2020, 20:36:18 от D. Tkachenko »
*

Satool

  • Захожу иногда
  • 139
  • 2 / 0
Спасибо D. Tkachenko,  *DRINK* смотри личку
Самому неполучилось. Дошло до  *ОХ-Х-Х*
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отображения описании категории только на первой странице

Автор graf

Ответов: 5
Просмотров: 1183
Последний ответ 04.05.2023, 18:52:08
от kit2m2
Заказ только на самовывоз

Автор Preview

Ответов: 4
Просмотров: 546
Последний ответ 09.03.2023, 09:58:49
от victorantoniak
Ошибка при правке данных клиента и попытке отправить письмо из заказа

Автор ecolora

Ответов: 40
Просмотров: 1423
Последний ответ 17.09.2022, 20:06:26
от marksetter
Заказ (Не закончен)

Автор see_watson

Ответов: 18
Просмотров: 2334
Последний ответ 05.02.2022, 01:13:54
от nevigen
Заказ "Не закончен"

Автор Simply

Ответов: 4
Просмотров: 553
Последний ответ 12.01.2022, 16:31:45
от Simply