ВНИМАНИЕ!!! ЭТО СТАРАЯ ВЕРСИЯ САЙТА.
ДЛЯ ПОЛУЧЕНИЯ АКТУАЛЬНОЙ ИНФОРМАЦИИ
ПЕРЕЙДИТЕ НА WWW.DIDGO.RU
Добавление нового поля к заказу. Не путать с добавлением поля к товару! |
Обратился ко мне заказчик с просьбой доработать Virtuemart таким образом, чтобы каждому заказу можно было присвоить свой уникальный номер. Это сделано для отслеживания почтового отправления. Т.е. по этому номеру клиент может отследить где сейчас находится его бандероль с товаром. Так же можно использовать данный хак, если необходимо заказу задавать какую-либо метку, для использования сотрудниками магазина, например внутри организации. Тот же комментарий, к примеру. Прошу не путать с добавлением дополнительного поля к товару. В нашем случае, при просмотре заказа должно присутствовать какое-то поле, в которое мы и будем вводить код. Помимо этого, данный код должен отображаться в личном кабинете пользователя. Шаг 1. Добавление нового поля в админку. Я решил добавить поле сразу после номера заказа, чтобы было удобней. На выходе нужно было получить в админке вот такое поле. Правим файл /administrator/components/com_virtuemart/html/order.order_print.php После 87-88 строки нужно вставить код: Если сейчас обновить страничку с заказом в админке, то увидим ошибку - Fatal error: Call to undefined method. Это нормально, так и должно быть, ведь мы добавили только вызов функции, а нам нужно написать ещё и саму функцию. Это сделаем в следующем шаге.
Шаг 2. Добавление функции html_change_track Редактируем файл /administrator/components/com_virtuemart/classes/ps_order_change_html.php После 293-294 строки: нужно добавить следующий код:
Шаг 3. Добавим языковую константу. Правим файл /administrator/components/com_virtuemart/languages/common/russian.php В любое место, после Добавить: Теперь нам нужно добавить поле в базу данных.
Шаг 4. Добавление нового поля в MySQL Заходим в phpMyAdmin, выбираем нашу базу и выполняем запрос: Обновив страничку заказа, можно уже видеть наше поле с кнопкой "Обновить". Однако если ввести данные и нажать кнопку, то никаких изменений не произойдёт. Данные в базу не запишутся. Нужно выполнить ещё одно действие.
Шаг 5. Добавим функцию на обновление поля order_track Редактируем файл /administrator/components/com_virtuemart/classes/ps_order_change.php После 480-481 строки добавим код В районе 1298-1299 строки найдите код: После него нужно добавить следующий код, чтобы выводить сообщение об успешном обновлении данных: Если вам не нужно выводить эти данные в личном кабинете пользователя, то на этом можно и остановиться. Если же вывод данных нужен, то продолжаем... ))
Шаг 6. Выведем переменную на странице информации о заказе в личном кабинете покупателя. Правим файл /components/com_virtuemart/themes/default/templates/pages/account.order_details.tpl.php После 77 строки добавляем код: На выходе получаем следующее:
Чтобы вывести данные на главной странице кабинета пользователя, правим файл /administrator/components/com_virtuemart/classes/ps_order.php 661 строку дописываем, чтобы стало так:
В районе 721 строки находим код: И ниже дописываем: На выходе получаем:
|
Вы можете отблагодарить автора:
WMR - R166832041362
WMZ - Z314865156270
QIWI - 9638061071
Яндекс деньги - 41001228750313
Комментарии
Автор пожалуйста!!!
Но сейчас сделал магазина на VM 2 и инструкция категорически не подходит.
Было бы здорово, если бы вы нашли время актуализировать ее для второй версии...
Спасибо!
Реализовал у себя!
Есть определенная группа товаров, в которой должен быть выбор цвета. Цвета выбираются через чекбоксы. Пока через jquery сумел вписать значения цветов в скрытый input. А как дальше передать цвета в корзину, в заказ и в письма на почту админу и юзеру не представляю...
Lina, скопируйте код 2 шага и замените им тот, что вставляли ранее. Все будет работать.