Există multe metode de plată disponibile în centrul de OpenCart în sine și multe altele sunt disponibile la magazinul OpenCart sub formă de extensii terțe părți. Deși uneori vă veți găsi în situația în care aveți nevoie de ceva diferit, fie nu există o metodă disponibilă pentru alegerea gateway-ului de plată, fie doriți o logică diferită. În ambele cazuri, aveți la dispoziție singura opțiune: pentru a crea un nou modul de metodă de plată în OpenCart.
În acest tutorial, vom vedea partea din spate a metodei personalizate. Vom vedea cum să vă prezentați metoda de plată personalizată împreună cu celelalte metode de plată. Mai mult, vom verifica modul în care puteți crea formularul de configurare pentru metoda dvs. de plată personalizată.
Vom presupune că numele metodei noastre personalizate de plată este "personalizat". Există cel puțin trei fișiere pe care trebuie să le creați pentru a configura lucrurile. Să verificăm în detaliu aceleași lucruri.
Continuați și creați fișierul controlerului la admin / controler / plata / custom.php
. Inserați următorul conținut în noul dosar de controler custom.php
. Acest fișier va fi responsabil pentru afișarea formularului de configurare back-end apelând fișierul de vizualizare corespunzător și salvând în același timp post valorile formularului la baza de date.
language-> de încărcare ( 'plată / personalizată'); $ this-> document-> setTitle ("Configurația metodei de plată personalizate"); $ This-> a sarcinii> modelul ( 'setare / setare'); dacă ($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['succes'] = 'Salvat.'; $ this-> redirect ($ this-> url-> link ('extensie / plată', 'token ='. $ this-> session-> data ['token'], 'SSL')); $ this-> data ['title_title'] = $ this-> language-> get ('title_title'); $ this-> data ['entry_text_config_one'] = $ acest-> limbă-> primi ('text_config_one'); $ this-> data ['entry_text_config_two'] = $ această-> limba-> get ('text_config_two'); $ this-> data ['button_save'] = $ această-> limbă-> obține ('text_button_save'); $ acest-> date ['button_cancel'] = $ this-> language-> get ('text_button_cancel'); $ acest-> date ['entry_order_status'] = $ this-> language-> get ('entry_order_status'); $ acest-> date ['text_enabled'] = $ this-> language-> get ('text_enabled'); $ this-> data ['text_disabled'] = $ acest-> limbă-> primi ('text_disabled'); $ acest-> date ['entry_status'] = $ this-> language-> get ('entry_status'); $ this-> data ['action'] = $ this-> url-> link ('payment / custom', 'token ='. $ this-> session-> data ['token'], 'SSL'); $ this-> data ['cancel'] = $ this-> url-> link ('extensie / plată', 'token ='. $ this-> session-> data ['token'], SSL); dacă isset ($ this-> request-> post ['text_config_one'])) $ this-> data ['text_config_one'] = $ this-> request-> post ['text_config_one']; altceva $ this-> data ['text_config_one'] = $ this-> config-> get ('text_config_one'); dacă isset ($ this-> request-> post ['text_config_two'])) $ this-> data ['text_config_two'] = $ this-> request-> post ['text_config_two']; altceva $ this-> data ['text_config_two'] = $ this-> config-> get ('text_config_two'); dacă isset ($ this-> request-> post ['custom_status'])) $ this-> data ['custom_status'] = $ this-> request-> post ['custom_status']; altceva $ this-> data ['custom_status'] = $ this-> config-> get ('custom_status'); dacă isset ($ this-> request-> post ['custom_order_status_id'])) $ this-> data ['custom_order_status_id'] = $ this-> request-> post ['custom_order_status_id']; altceva $ this-> data ['custom_order_status_id'] = $ this-> config-> get ('custom_order_status_id'); $ this-> load-> model ('localization / order_status'); $ this-> data ['ordine_status'] = $ this-> model_localisation_order_status-> getOrderStatuses (); $ this-> template = 'plata / custom.tpl'; $ this-> children = array ("common / header", "common / footer"); $ This-> response-> setOutput ($ this-> render ());
După cum puteți vedea, numele clasei urmează convențiile standard de numire OpenCart. Să înțelegem fiecare secțiune.
La începutul index
vom încărca fișierul de limbă și vom seta valoarea
etichetă.
$ This-> language-> de încărcare ( 'plată / personalizată'); $ this-> document-> setTitle ("Configurația metodei de plată personalizate");
În secțiunea următoare, încărcăm fișierul model "setting.php
care ne va oferi metodele de salvare post valori către baza de date. De asemenea, verificăm dacă post valorile sunt disponibile, îl vom salva în baza de date.
$ This-> a sarcinii> modelul ( 'setare / setare'); dacă ($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['succes'] = 'Salvat.'; $ this-> redirect ($ this-> url-> link ('extensie / plată', 'token ='. $ this-> session-> data ['token'], 'SSL'));
Mai mult, următoarele câteva linii de cod sunt folosite doar pentru a configura etichetele statice care vor fi utilizate în fișierul șablon.
$ this-> data ['title_title'] = $ aceasta-> limba-> get ('title_title'); $ this-> data ['entry_text_config_one'] = $ acest-> limbă-> primi ('text_config_one'); $ this-> data ['entry_text_config_two'] = $ această-> limba-> get ('text_config_two'); $ this-> data ['button_save'] = $ această-> limbă-> obține ('text_button_save'); $ acest-> date ['button_cancel'] = $ this-> language-> get ('text_button_cancel'); $ acest-> date ['entry_order_status'] = $ this-> language-> get ('entry_order_status'); $ acest-> date ['text_enabled'] = $ this-> language-> get ('text_enabled'); $ this-> data ['text_disabled'] = $ acest-> limbă-> primi ('text_disabled'); $ acest-> date ['entry_status'] = $ this-> language-> get ('entry_status');
Apoi, am creat variabila "acțiune" pentru a ne asigura că formularul este trimis la metoda "index" atunci când este trimis. În același mod, utilizatorul este preluat înapoi la lista metodelor de plată dacă dă clic pe butonul "Anulare".
$ this-> data ['action'] = $ this-> url-> link ('payment / custom', 'token ='. $ this-> session-> data ['token'], 'SSL'); $ this-> data ['cancel'] = $ this-> url-> link ('extensie / plată', 'token ='. $ this-> session-> data ['token'], SSL);
În plus, există cod pentru a popula valorile implicite ale câmpurilor formularului de configurare, fie în modul de adăugare sau editare.
dacă isset ($ this-> request-> post ['text_config_one'])) $ this-> data ['text_config_one'] = $ this-> request-> post ['text_config_one']; altceva $ this-> data ['text_config_one'] = $ this-> config-> get ('text_config_one'); Dacă isset ($ this-> request-> post ['custom_order_status_id'])) $ this-> data ['custom_order_status_id'] = $ this-> request-> post ['custom_order_status_id']; altceva $ this-> data ['custom_order_status_id'] = $ this-> config-> get ('custom_order_status_id');
În secțiunea următoare, încărcăm diferitele valori de stare ale comenzii disponibile pe zonă, care vor fi utilizate pentru meniul drop-down din formularul de configurare pentru Starea comenzii camp.
$ This-> a sarcinii> modelul ( 'localizare / order_status'); $ this-> data ['ordine_status'] = $ this-> model_localisation_order_status-> getOrderStatuses ();
În final, atribuim fișierul șablon personalizat custom.tpl
și face vizualizarea.
$ this-> template = 'plata / custom.tpl'; $ this-> children = array ("common / header", "common / footer"); $ This-> response-> setOutput ($ this-> render ());
Aceasta este setarea pentru fișierul controlerului.
Deci, acum că am terminat cu fișierul controlerului, să creăm fișierele de limbă și șablon. Continuați și creați fișierul de limbă la admin / limba / engleză / plata / custom.php
. Asigurați-vă că fișierul dvs. de limbă arată ca un cod pe care l-am furnizat mai jos în exemplul nostru custom.php
.
După cum puteți vedea, tocmai am creat variabilele de limbă folosite anterior în fișierul controlerului. Acest lucru este destul de simplu și simplu.
Să creăm fișierul de vizualizare. Continuați și creați fișierul șablon la admin / vizualizare / template / plata / custom.tpl
. Inserați următorul conținut în fișierul șablon nou creat custom.tpl
.
„>
Din nou, acest lucru ar trebui să fie destul de ușor de înțeles: Scopul acestui fișier de șablon este de a furniza formularul de configurare pentru metoda noastră de plată personalizată. Utilizează variabilele pe care le-am creat mai devreme în fișierul controlerului.
Am terminat cu configurarea fișierelor. Acum este timpul să mergem mai departe și să vedem totul în acțiune. Mergeți la secțiunea de administrare a OpenCart și mergeți la Extensii> Plata. Ar trebui să vedeți că metoda noastră personalizată este afișată chiar sub Plata la livrare.
Faceți clic pe instalare link pentru a instala metoda noastră de plată personalizată. După instalare, ar trebui să puteți vedea Editați | × link pentru a deschide formularul de configurare. Faceți clic pe Editați | × legătură.
Deci, aceasta este forma de configurare pentru care am făcut toată munca grea până acum! După cum puteți vedea, am furnizat genericul Starea comenzii și "stare câmpuri. În plus, tocmai am demonstrat cum ați putea oferi parametrii personalizați, de asemenea, prin înființarea Parametrul unu și Parametrul doi.
Puteți completa formularul și îl puteți salva făcând clic pe Salvați buton. Am stabilit codul pentru asta în nostru index
metoda de controler astfel încât ar trebui să funcționeze din cutie! Și da, nu uitați să setați statusul la Activat dacă doriți ca metoda dvs. să fie disponibilă în front-end!
În următoarea și ultima parte vom vedea omologul de front-end al aceleași. Nu uitați să vă împărtășiți gândurile folosind feed-ul de mai jos!