Последние темы


Актуальное значение плейсхолдера shk.id

  • Добрый день, коллеги.
    Использую MODx Rev 2.7.1, Shopkeeper 3.2.7.
    Вопрос следующий. Страница оформления заказа, вызываю FormIt, затем [[!$shopOrderFormCart]]. В форме заполняются все необходимые поля, для того чтобы передать в платежную систему. Если на Formit повесить хук на отправку данных (в конце списка хуков) в платежную систему и в этом хуке (сниппете) пытаться читать значения shk.id, shk.price, то они содержат значения предыдущего заказа. Тоже самое, если вызывать отправку данных через плагин и событие OnSHKSaveOrder. Пробовал из скрипта обновлять страницу, не помогает. Актуальная информация появляется в плейсхолдерах только если перенаправлять из страницы оформления заказа на другую html страницу и там читать эти плейсхолдеры. Как получить актуальные значения без пересылки на дополнительную страницу?
    Спасибо.

  • Если на Formit повесить хук на отправку данных (в конце списка хуков) в платежную систему и в этом хуке (сниппете) пытаться читать значения shk.id, shk.price, то они содержат значения предыдущего заказа.

    Всё в соответствии с документацией, так и задумано.

    Тоже самое, если вызывать отправку данных через плагин и событие OnSHKSaveOrder.

    А зачем в плагине читать значение плейсхолдера, если там есть переменная $order_id?

  • Спасибо!

 

Последние комментарии

  • A

    Участник @Andchir написал в CatalogFill и filter_export:

    нужно через разделитель || сделать 2 столбца и т.д.

    Создаете дополнительную колонку (можно несколько) после ТВ, значение которого нужно разделить. ID ТВ для такой колонки можно указать, тот которого не существует.

    //разбивка по столбцам при импорте и экспорте (content|tv|category) $cf_config['content_row'] = array( ... array('Параметры товара', array(2, 'tv')), array('Параметры товара - вторая колонка', array(2000, 'tv'))// Дополнительная колонка в экселе );

    Далее в конфигурационном файле разделяете с помощью функции filter_export().

    //функция для фильтрации значений при ЭКСПОРТЕ function filter_export($value_arr, $doc_id=0){ $output_arr = $value_arr; if(!empty($output_arr[2])) { $tmp = explode('||', $output_arr[2]);// Разделяем строку, получаем массив if (count($tmp) >= 2) { $output_arr[2] = $tmp[0]; $output_arr[2000] = $tmp[1]; } } return $output_arr; }

    работает отлично, спасибо

    Читать далее
  • нужно через разделитель || сделать 2 столбца и т.д.

    Создаете дополнительную колонку (можно несколько) после ТВ, значение которого нужно разделить. ID ТВ для такой колонки можно указать, тот которого не существует.

    //разбивка по столбцам при импорте и экспорте (content|tv|category) $cf_config['content_row'] = array( ... array('Параметры товара', array(2, 'tv')), array('Параметры товара - вторая колонка', array(2000, 'tv'))// Дополнительная колонка в экселе );

    Далее в конфигурационном файле разделяете с помощью функции filter_export().

    //функция для фильтрации значений при ЭКСПОРТЕ function filter_export($value_arr, $doc_id=0){ $output_arr = $value_arr; if(!empty($output_arr[2])) { $tmp = explode('||', $output_arr[2]);// Разделяем строку, получаем массив if (count($tmp) >= 2) { $output_arr[2] = $tmp[0]; $output_arr[2000] = $tmp[1]; } } return $output_arr; }

    Читать далее
  • A

    @Andchir еще хотел спросить, как можно реализовать разделение столбцов при экспорте тип ввода ТВ param-edit, в экселе выводит видalt text нужно через разделитель || сделать 2 столбца и т.д., я понимаю что нужно через filter_export, можете подсказать, спасибо

    Читать далее
  • Покажите скриншот, чтобы было видно что вы вводите в значение по умолчанию.

    Читать далее