Det er mange betalingsmåter tilgjengelig i OpenCart-kjernen selv, og mange andre er tilgjengelige på OpenCart-butikken i form av tredjepartsutvidelser. Selv om du noen ganger finner deg selv i situasjonen der du trenger noe annet, er det heller ingen metode tilgjengelig for ditt valg av betalingsgateway eller du vil ha en annen logikk. I begge tilfeller er du igjen med det eneste alternativet: Å opprette en ny betalingsmodulmodul i OpenCart.
I denne veiledningen ser vi den bakre delen av den tilpassede metoden. Vi får se hvordan du viser din tilpassede betalingsmåte sammen med de andre betalingsmetodene. Videre vil vi sjekke hvordan du kan opprette konfigurasjonsskjemaet for den egendefinerte betalingsmåten din.
Vi antar at navnet på egendefinert betalingsmetode er "egendefinert". Det er minst tre filer du må opprette for å sette opp tingene. La oss sjekke det samme i detalj.
Gå videre og opprett kontrollerfilen på admin / controller / betaling / custom.php
. Lim inn følgende innhold i den nyopprettede kontrollerfilen custom.php
. Denne filen vil være ansvarlig for å vise vår back-end konfigurasjonsskjema ved å ringe til riktig visningsfil og samtidig lagre post verdier av skjemaet til databasen.
språk> last ( 'betaling / custom'); $ this-> document-> setTitle ('Konfigurasjon av egendefinert betalingsmetode'); $ Dette-> last> modell ( 'innstilling / innstilling'); hvis (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['success'] = 'Lagret.'; $ this-> omdirigere ($ this-> url-> link ('forlengelse / betaling', 'token ='. $ this-> session-> data ['token'], 'SSL')); $ this-> data ['heading_title'] = $ this-> language-> get ('heading_title'); $ this-> data ['entry_text_config_one'] = $ this-> language-> get ('text_config_one'); $ this-> data ['entry_text_config_two'] = $ this-> language-> get ('text_config_two'); $ this-> data ['button_save'] = $ this-> language-> get ('text_button_save'); $ this-> data ['button_cancel'] = $ this-> language-> get ('text_button_cancel'); $ this-> data ['entry_order_status'] = $ this-> language-> get ('entry_order_status'); $ this-> data ['text_enabled'] = $ this-> language-> get ('text_enabled'); $ this-> data ['text_disabled'] = $ this-> language-> get ('text_disabled'); $ this-> data ['entry_status'] = $ this-> language-> get ('entry_status'); $ this-> data ['action'] = $ this-> url-> link ('betaling / tilpasset', 'token ='. $ this-> session-> data ['token'], 'SSL'); $ this-> data ['cancel'] = $ this-> url-> link ('utvidelse / betaling', 'token ='. $ this-> session-> data ['token'], 'SSL'); hvis (isset ($ this-> request-> post ['text_config_one'])) $ this-> data ['text_config_one'] = $ this-> request-> post ['text_config_one']; annet $ this-> data ['text_config_one'] = $ this-> config-> get ('text_config_one'); hvis (isset ($ this-> request-> post ['text_config_two'])) $ this-> data ['text_config_two'] = $ this-> request-> post ['text_config_two']; ellers $ this-> data ['text_config_two'] = $ this-> config-> get ('text_config_two'); hvis (isset ($ this-> request-> post ['custom_status'])) $ this-> data ['custom_status'] = $ this-> request-> post ['custom_status']; ellers $ this-> data ['custom_status'] = $ this-> config-> get ('custom_status'); hvis (isset ($ this-> request-> post ['custom_order_status_id'])) $ this-> data ['custom_order_status_id'] = $ this-> request-> post ['custom_order_status_id']; annet $ this-> data ['custom_order_status_id'] = $ this-> config-> get ('custom_order_status_id'); $ this-> load-> model ('lokalisering / order_status'); $ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses (); $ this-> template = 'payment / custom.tpl'; $ this-> children = array ('common / header', 'common / footer'); $ Dette-> response-> setOutput ($ dette-> render ());
Som du kan se, følger klassenavnet standard OpenCart-navngivningskonvensjonene. La oss forstå hvert avsnitt.
I begynnelsen av index
Metode vi laster språkfilen og angir verdien av
stikkord.
$ Dette-> Språk> load ( 'betaling / custom'); $ this-> document-> setTitle ('Konfigurasjon av egendefinert betalingsmetode');
I neste avsnitt laster vi modellfilen "setting.php
som vil gi oss metoder for å redde post verdier til databasen. Vi sjekker også om post Verdiene er tilgjengelige, vi lagrer det i databasen.
$ Dette-> last> modell ( 'innstilling / innstilling'); hvis (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['success'] = 'Lagret.'; $ this-> omdirigere ($ this-> url-> link ('forlengelse / betaling', 'token ='. $ this-> session-> data ['token'], 'SSL'));
Videre er neste par kodelinjer bare vant til å sette opp de statiske etikettene som vil bli brukt i malfilen.
$ this-> data ['heading_title'] = $ this-> language-> get ('heading_title'); $ this-> data ['entry_text_config_one'] = $ this-> language-> get ('text_config_one'); $ this-> data ['entry_text_config_two'] = $ this-> language-> get ('text_config_two'); $ this-> data ['button_save'] = $ this-> language-> get ('text_button_save'); $ this-> data ['button_cancel'] = $ this-> language-> get ('text_button_cancel'); $ this-> data ['entry_order_status'] = $ this-> language-> get ('entry_order_status'); $ this-> data ['text_enabled'] = $ this-> language-> get ('text_enabled'); $ this-> data ['text_disabled'] = $ this-> language-> get ('text_disabled'); $ this-> data ['entry_status'] = $ this-> language-> get ('entry_status');
Deretter har vi satt opp "handling" -variabelen for å sikre at skjemaet blir sendt til vår "indeks" -metode når det sendes inn. Og på samme måte blir brukeren tatt tilbake til listen over betalingsmåter hvis hun klikker på "Avbryt" -knappen.
$ this-> data ['action'] = $ this-> url-> link ('betaling / tilpasset', 'token ='. $ this-> session-> data ['token'], 'SSL'); $ this-> data ['cancel'] = $ this-> url-> link ('utvidelse / betaling', 'token ='. $ this-> session-> data ['token'], 'SSL');
Videre er det kode for å fylle standardverdiene til konfigurasjonsformularfeltene enten i tillegg eller redigeringsmodus.
hvis (isset ($ this-> request-> post ['text_config_one'])) $ this-> data ['text_config_one'] = $ this-> request-> post ['text_config_one']; annet $ this-> data ['text_config_one'] = $ this-> config-> get ('text_config_one'); ... hvis (isset ($ this-> request-> post ['custom_order_status_id'])) $ this-> data ['custom_order_status_id'] = $ this-> request-> post ['custom_order_status_id']; annet $ this-> data ['custom_order_status_id'] = $ this-> config-> get ('custom_order_status_id');
I neste del laster vi inn de forskjellige bestillingsstatusverdiene som er tilgjengelig, som vil bli brukt til rullegardinmenyen i konfigurasjonsskjemaet for Ordre status felt.
$ Dette-> last> modell ( 'lokalisering / order_status'); $ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses ();
Til slutt tilordner vi vår tilpassede malfil custom.tpl
og gjengi visningen.
$ this-> template = 'payment / custom.tpl'; $ this-> children = array ('common / header', 'common / footer'); $ Dette-> response-> setOutput ($ dette-> render ());
Det er satt opp for kontrollerfilen.
Så nå som vi er ferdige med kontrollerfilen, la oss lage språk- og malfiler. Gå videre og lag språkfilen på admin / language / engelsk / betaling / custom.php
. Pass på at språkfilen din ser ut som kode som vi har gitt nedenfor i vårt eksempel custom.php
.
Som du kan se har vi nettopp satt opp språkvariablene som tidligere ble brukt i kontrollerfilen. Dette er ganske enkelt og greit.
La oss lage visningsfilen. Gå videre og opprett malfilen på admin / view / mal / betaling / custom.tpl
. Lim inn følgende innhold i den nyopprettede malfilen custom.tpl
.
">
Igjen, dette burde være ganske enkelt å forstå: Formålet med denne malfilen er å gi konfigurasjonsskjemaet for vår tilpassede betalingsmetode. Den bruker variablene vi opprettet tidligere i kontrollerfilen.
Vi er ferdige med filene som er konfigurert. Nå er det på tide å gå videre og se alt i aktion. Gå over til administrasjonen av OpenCart og Gå til Utvidelser> Betaling. Du bør se at vår tilpassede metode er oppført like under Kontantbetaling ved levering.
Klikk på installere lenke for å installere vår tilpassede betalingsmetode. Etter installasjonen bør du kunne se Redigere lenke for å åpne konfigurasjonsskjemaet. Klikk på Redigere link.
Så dette er konfigurasjonsskjemaet som vi har gjort alt det harde arbeidet så langt! Som du kan se har vi gitt generikken Ordre status og "Status Enger. I tillegg til det har vi nettopp demonstrert hvordan du også kunne gi de tilpassede parametrene ved å sette opp Parameter En og Parameter To.
Du kan fylle ut skjemaet og lagre det ved å klikke på Lagre knapp. Vi har satt opp koden for dette i vår index
Metode for kontrolleren, så det burde tråkke ut av esken! Og ja, ikke glem å sette statusen til aktivert hvis du vil ha metoden tilgjengelig i fronten!
I neste og siste del ser vi front-end-motparten av det samme. Ikke glem å dele tankene dine med fôren nedenfor!