Număr de ordine în virtuemart

Atunci când se lucrează la un magazin online se confruntă cu sarcina de a schimba numărul de ordine cu opțiune teribil 7e8a031 tip clar și ușor de reținut numărul. Pentru a face acest lucru, deschideți administratorul / componente / com_virtuemart / modele / fișierul orders.php și în ea în căutarea funcției generateOrderNumber. care este responsabil pentru generarea de numărul de ordine. Am Virtuemart în versiunea 2.0.8e un șir de 973. Aici este funcția originală:

Sa decis ca numărul de ordine utiliza tasta tabel #__virtuemart_orders câmp virtuemart_order_id - este unic și adecvat pentru problema noastră. Rămâne de a obține ultima valoare a acestui domeniu și se adaugă la aceasta o unitate de recepție un astfel de identificator manieră a noii ordini. Dar, în cazul în care ordinele au fost șterse, o situație poate apărea atunci când un nou virtuemart_order_id în tabel nu va fi egală cu ultima virtuemart_order_id. a crescut cu unul. Prin urmare, pentru a genera un nou număr de ordine asa ca vom continua - Obtineti cel mai recent virtuemart_order_id. Adăugăm o să-l, și atribuie dreptul de a doua, în cazul în care ordinul a fost emis. În cele din urmă, funcția va arăta astfel:

Din păcate, nu există nici site-ul la îndemână, cu VM. Dar cred că îmi place acest lucru ar trebui să funcționeze

$ ORDER_ID = ($ date [ 'virtuemart_order_id'] + 1) .date ( «ms», timpul ());
sau
$ ORDER_ID = ($ date [ 'virtuemart_order_id'] + 1) .date ( «s», timpul ()) rand (1,99) .;
dacă aveți nevoie de mai mult, atunci ceva de genul
$ ORDER_ID = ($ date [ 'virtuemart_order_id'] + 1) .date ( «s», timpul ()) rand (1,9999) .;

funcția publică generateOrderNumber ($ uid = 0, $ lungime = 10, $ virtuemart_vendor_id = 1)
$ Db = JFactory :: getDBO ();
$ Q = 'SELECT `virtuemart_order_id` DIN #__virtuemart_orders COMANDA BY` virtuemart_order_id` DESC LIMIT 1';
$ DB> setQuery ($ q);
$ Date = $ DB> loadAssoc ();
$ ORDER_ID = (date $ [ 'virtuemart_order_id'] + 1) .date ( «DMY»);
retur (int) $ ORDER_ID;
>
__________________
În acest exemplu, primul este id-ul și apoi data nu le poate schimba în mod corespunzător (slab în php).

String $ ORDER_ID = (date $ [ 'virtuemart_order_id'] + 1) .date ( «DMY»); înlocuiți cu
$ ORDER_ID = data ( «DMY») ($ date [ 'virtuemart_order_id'] + 1),.;

Bună ziua, este necesar ca camerele erau în ordine și fără numere suplimentare: data, ora și așa mai departe. Pe cine am făcut-o, dar după ce ordinul este de ordinul №9999 №1. Vă rugăm să scrie cum să măriți limita numărului de comenzi, este de dorit în numărul de șapte cifre