Номер на поръчката в VirtueMart
Когато се работи по един онлайн магазин изправен пред задачата да да промените номера на поръчката с ужасен вариант 7e8a031 тип ясен и лесен за запомняне номер. За да направите това, отворете администратор / компоненти / com_virtuemart / модели / orders.php файл, и я накара да изглежда функция generateOrderNumber. който е отговорен за генериране на номера на поръчката. Аз Virtuemart във версия 2.0.8e низ 973. Тук е оригиналната функция:
Решено бе, като номера на поръчката, използвайте ключ маса поле virtuemart_order_id #__virtuemart_orders - тя е уникална и е подходящ за нашия проблем. Остава да се получи последната стойност на това поле и да добавите към това звено получаването на такова идентификатор начин на новия ред. Но ако поръчките са били изтрити, ситуация може да възникне, когато нов virtuemart_order_id в таблицата няма да е равна на последната virtuemart_order_id. увеличава с единица. Следователно, за да се генерира нов номер на поръчката, така че ние се процедира - Изтеглете последната virtuemart_order_id. Ние добавяме един до него, и възлага на правото от секундата, когато е издадена заповедта. В крайна сметка, функцията ще изглежда така:
За съжаление, не е удобно място с VM. Но мисля, че това ми харесва да работя
$ ORDER_ID = ($ данни [ 'virtuemart_order_id'] + 1) .date ( "MS", време ());
или
$ ORDER_ID = ($ данни [ 'virtuemart_order_id'] + 1) .date ( «а», време ()) ранд (1,99) .;
ако имате нужда от повече, а след това нещо подобно
$ ORDER_ID = ($ данни [ 'virtuemart_order_id'] + 1) .date ( «а», време ()) ранд (1,9999) .;
публична функция generateOrderNumber ($ UID = 0, дължина $ = 10 $ virtuemart_vendor_id = 1)
$ Db = JFactory :: getDBO ();
$ Q = 'SELECT `virtuemart_order_id` ОТ #__virtuemart_orders ЗА BY` virtuemart_order_id` Низходящо ГРАНИЦА 1';
$ Db-> setQuery ($ р);
$ Data = $ db-> loadAssoc ();
$ ORDER_ID = (данни $ [ 'virtuemart_order_id'] + 1) .date ( «DMY»);
възвръщаемост (инт) $ ORDER_ID;
>
__________________
В този пример, първата е номер и след датата, не могат да ги разменят правилно (слаб в PHP).
String $ ORDER_ID = (данни $ [ 'virtuemart_order_id'] + 1) .date ( «DMY»); замени с
$ ORDER_ID = дата ( «DMY») ($ данни [ 'virtuemart_order_id'] + 1).
Здравейте, необходимо е, че стаите са в ред и без допълнителни номера: датата, часа и така нататък. Кой го направих, но след поръчката е от порядъка №9999 №1. Моля, пишете как да се увеличи лимита за броя на поръчките, е желателно в броя седемцифрена