Как добавить имя в данные последнего заказа?



  • Как добавить имя в данные последнего заказа?

    по умолчанию есть

    shk.id - ID заказа;
    shk.price - общая цена заказа;
    shk.currency - валюта заказа;
    shk.date - дата заказа в формате ДД.ММ.ГГГГ;
    shk.full_date - дата и время заказа в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС;
    shk.email - адрес эл.почты покупателя;
    shk.phone - номер телефона покупателя;
    shk.delivery - способ доставки;
    shk.payment - способ оплаты;
    shk.userid - ID пользователя (покупателя).

    в каком месте они добавляются?



  • Как всегда хрен дождешься пока кто нибудь ответит...

    В файле \core\components\shopkeeper3\model\shopkeeper.class.php

    в функции public function setOrderDataSession

    после 'id' => $order['id'],

    добавляем 'name' => $order['name'],

    в админке - в снипете shk_fihook

    после перед $order->fromArray($insert_data); $saved = $order->save();

    добавляем $insert_data['name'] = $allFormFields['fullname'];


  • Администраторы

    Прошел всего час и вы сами нашли ответ. По-моему это более полезный результат чем готовый ответ :)

    Но вообще код править не хорошо, т.к. вы теперь лишаетесь обновлений. Можно было написать свой плагин.



  • Не понимаю как это решение можно было реализовать через плагин?

    И если через плагин делать не замедлит ли это скорость работы?

    Напишите пожалуйста как бы это выглядело через плагин.


  • Администраторы

    Данные последнего заказа хранятся в сесии "shk_lastOrder". Нужно написать плагин на событие "OnSHKsaveOrder" или "OnSHKChangeStatus" где просто добавить нужные данные в эту сессию. А взять эти данные можно, я думаю, из $_POST.



  • А можно ли как то в плагине прервать выполнение и вывести что в $_POST например?

    пробую так

    print_r($_POST);
    exit();

    но увы и ах)


  • Администраторы

    но увы и ах)

    Что это значит, не останавливается или какая-то ошибка? Покажите код плагина и его настройки.



  • Создал плагин save_name_shk, поставил галочку OnSHKsaveOrder

    в коде

    <?php
    print_r($_POST);
    exit();

    Хочу посмотреть что лежит в $_POST на этот момент.

    Натолкнули на мысль, у меня форма через ajax отправляется поэтому и не выводится ничего наверное.

    Посмотрю этот вопрос подробнее по результату отпишусь! Спасибо!



  • Спасибо за наводку, все оказалось очень просто, вопрос в теме решается в одну строчку )
    создаем плагин на событие "OnSHKsaveOrder" и в код пишем

    $_SESSION['shk_lastOrder']['name'] = $_POST['fullname'];
    


Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.