К содержанию

Как контролировать изменение свойств товара при сохранении ресурса?

Добрый день!
Подскажите, пожалуйста, как можно отслеживать изменение свойств товара при его сохранении?
Положим, при изменении свойства товара «в наличии» нужно отправлять письмо пользователю о появлении в наличии товара.
Нужно написать плагин и повесить его на событие OnBeforeDocFormSave, как я понимаю. Но как получить значение свойства до сохранения ресурса и то, на которое происходит замена, чтобы их сравнить?
Если делать так, то получаю одинаковые значения
$stock_new_value = $_REQUEST['stock'];
$stock_old_value = $resource->get('stock');
Giant Dad
Giant Dad
10 февраля 2023, 17:53
modx.pro
1 214
Реклама

Комментарии: 7

Артур Шевченко
10 февраля 2023, 20:10
Попробуй OnDocFormSave
    Giant Dad
    Giant Dad Старожил
    12 февраля 2023, 09:14
    тот же самый результат(
      Артур Шевченко
      12 февраля 2023, 11:42
      <?php
      switch ($modx->event->name) {
          case 'OnDocFormRender':
              $_SESSION['tmp_res'] = $resource->toArray();
          case 'OnDocFormSave':
              if ($mode == 'upd') { // если изменяется родитель
                  $resData = $resource->toArray();
                  $result = [];
                  foreach($resData as $k => $v){
                      if($_SESSION['tmp_res'][$k] !== $v){
                          $result[$k] = $v;
                      }
                  }
                 $_SESSION['tmp_res'] = $resData;
              }
          break;
      }
        Giant Dad
        Giant Dad Старожил
        13 февраля 2023, 15:30
        Спасибо! Это помогло)
          Артур Шевченко
          13 февраля 2023, 20:48
          Если помогло, добавь плюсик в карму, это дело одного клика.
            Giant Dad
            Giant Dad Старожил
            14 февраля 2023, 18:01
            не вопрос!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
7