Er zijn veel betaalmethoden beschikbaar in de OpenCart-kern zelf en tal van andere zijn beschikbaar in de OpenCart-winkel in de vorm van extensies van derden. Hoewel u zich soms in de situatie bevindt waarin u iets anders nodig heeft, is er geen methode beschikbaar voor uw keuze van betalingsgateway of wilt u een andere logica. In beide gevallen hebt u de enige optie: een nieuwe betalingsmethode maken in OpenCart.
In deze zelfstudie zien we het back-endgedeelte van de aangepaste methode. We zullen zien hoe u uw aangepaste betaalmethode samen met de andere betaalmethoden kunt weergeven. Verder zullen we controleren hoe u het configuratieformulier voor uw aangepaste betaalmethode kunt maken.
We gaan ervan uit dat de naam van onze aangepaste betalingsmethode 'aangepast' is. Er zijn ten minste drie bestanden die u moet maken om de dingen in te stellen. Laten we hetzelfde in detail bekijken.
Ga je gang en maak het controllerbestand aan admin / controller / betaling / custom.php
. Plak de volgende inhoud in het zojuist gemaakte controllerdossier custom.php
. Dit bestand zal verantwoordelijk zijn voor het weergeven van ons back-end configuratieformulier door het juiste weergavebestand te bellen en tegelijkertijd het post waarden van het formulier naar de database.
language-> belasting ( 'betaling / custom'); $ this-> document-> setTitle ('Custom Payment Method Configuration'); $ This-> load-> model ( 'instelling / instelling'); if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['success'] = 'Opgeslagen.'; $ this-> redirect ($ this-> url-> link ('extension / payment', '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 ('payment / custom', 'token ='. $ this-> session-> data ['token'], 'SSL'); $ this-> data ['cancel'] = $ this-> url-> link ('extension / payment', 'token ='. $ this-> session-> data ['token'], 'SSL'); if (isset ($ this-> request-> post ['text_config_one'])) $ this-> data ['text_config_one'] = $ this-> request-> post ['text_config_one']; else $ this-> data ['text_config_one'] = $ this-> config-> get ('text_config_one'); if (isset ($ this-> request-> post ['text_config_two'])) $ this-> data ['text_config_two'] = $ this-> request-> post ['text_config_two']; else $ this-> data ['text_config_two'] = $ this-> config-> get ('text_config_two'); if (isset ($ this-> request-> post ['custom_status'])) $ this-> data ['custom_status'] = $ this-> request-> post ['custom_status']; else $ this-> data ['custom_status'] = $ this-> config-> get ('custom_status'); if (isset ($ this-> request-> post ['custom_order_status_id'])) $ this-> data ['custom_order_status_id'] = $ this-> request-> post ['custom_order_status_id']; else $ this-> data ['custom_order_status_id'] = $ this-> config-> get ('custom_order_status_id'); $ this-> load-> model ('localization / order_status'); $ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses (); $ this-> template = 'payment / custom.tpl'; $ this-> children = array ('common / header', 'common / footer'); $ This-> response-> Inschakeling ($ this-> render ());
Zoals je ziet, volgt de klassenaam de standaard naamgevingsconventies van OpenCart. Laten we elke sectie begrijpen.
In het begin van de inhoudsopgave
methode we laden het taalbestand en bepalen de waarde van de
label.
$ This-> language-> belasting ( 'betaling / custom'); $ this-> document-> setTitle ('Custom Payment Method Configuration');
In de volgende sectie laden we het modelbestand "setting.php
wat ons de methoden zal bieden om te redden post waarden voor de database. We controleren ook of post waarden zijn beschikbaar, we slaan het op in de database.
$ This-> load-> model ( 'instelling / instelling'); if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['success'] = 'Opgeslagen.'; $ this-> redirect ($ this-> url-> link ('extension / payment', 'token ='. $ this-> session-> data ['token'], 'SSL'));
Verder worden de volgende paar regels code alleen gebruikt om de statische labels in te stellen die in het sjabloonbestand zullen worden gebruikt.
$ 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');
Vervolgens hebben we de variabele "actie" ingesteld om ervoor te zorgen dat het formulier wordt ingediend bij onze "index" -methode wanneer het wordt ingediend. En op dezelfde manier wordt de gebruiker teruggebracht naar de lijst met betaalmethoden als ze op de knop "Annuleren" klikt.
$ this-> data ['action'] = $ this-> url-> link ('payment / custom', 'token ='. $ this-> session-> data ['token'], 'SSL'); $ this-> data ['cancel'] = $ this-> url-> link ('extension / payment', 'token ='. $ this-> session-> data ['token'], 'SSL');
Verder is er een code om de standaardwaarden van de velden van het configuratieformulier in te vullen in de modus Toevoegen of Bewerken.
if (isset ($ this-> request-> post ['text_config_one'])) $ this-> data ['text_config_one'] = $ this-> request-> post ['text_config_one']; else $ this-> data ['text_config_one'] = $ this-> config-> get ('text_config_one'); ... if (isset ($ this-> request-> post ['custom_order_status_id'])) $ this-> data ['custom_order_status_id'] = $ this-> request-> post ['custom_order_status_id']; else $ this-> data ['custom_order_status_id'] = $ this-> config-> get ('custom_order_status_id');
In de volgende sectie laden we de verschillende orderstatuswaarden die beschikbaar zijn, die worden gebruikt voor de vervolgkeuzelijst in het configuratieformulier voor de Bestelstatus veld-.
$ This-> load-> model ( 'lokalisatie / order_status'); $ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses ();
Ten slotte kennen we ons aangepaste sjabloonbestand toe custom.tpl
en render de weergave.
$ this-> template = 'payment / custom.tpl'; $ this-> children = array ('common / header', 'common / footer'); $ This-> response-> Inschakeling ($ this-> render ());
Dat is de set-up voor het controllerbestand.
Dus nu we klaar zijn met het controllerbestand, laten we de taal- en sjabloonbestanden maken. Ga je gang en maak het taalbestand aan op admin / taal / Engels / betaling / custom.php
. Zorg ervoor dat uw taalbestand lijkt op code die we hieronder hebben verstrekt in ons voorbeeld custom.php
.
Zoals u kunt zien, hebben we zojuist de taalvariabelen ingesteld die eerder in het controllerbestand werden gebruikt. Dit is vrij eenvoudig en duidelijk.
Laten we het weergavebestand maken. Ga je gang en maak het sjabloonbestand aan admin / view / template / betaling / custom.tpl
. Plak de volgende inhoud in het nieuw gemaakte sjabloonbestand custom.tpl
.
">
Nogmaals, dit zou vrij eenvoudig te begrijpen moeten zijn: het doel van dit sjabloonbestand is om het configuratieformulier voor onze aangepaste betaalmethode aan te leveren. Het gebruikt de variabelen die we eerder in het controllerbestand hebben ingesteld.
We zijn klaar met de configuratie van de bestanden. Nu is het tijd om verder te gaan en alles in actie te zien. Ga naar het admin-gedeelte van de OpenCart en ga naar Extensies> Betaling. Je zou moeten zien dat onze aangepaste methode net onder de Contante betaling.
Klik op de installeren link om onze aangepaste betaalmethode te installeren. Na de installatie zou u het kunnen zien Bewerk link om het configuratieformulier te openen. Klik op de Bewerk link.
Dit is dus het configuratieformulier waarvoor we tot nu toe al het harde werk hebben gedaan! Zoals je kunt zien hebben we de generiek geleverd Bestelstatus en "staat velden. Daarnaast hebben we zojuist aangetoond hoe u de aangepaste parameters ook kunt bieden door deze in te stellen Parameter Eén en Parameter twee.
U kunt het formulier invullen en opslaan door op de knop te klikken Opslaan knop. We hebben de code hiervoor ingesteld in onze inhoudsopgave
methode van controller, dus het zou uit de doos moeten werken! En ja, vergeet niet om de status in te stellen Ingeschakeld als u wilt dat uw methode beschikbaar is in de front-end!
In het volgende en laatste deel zien we de front-end-tegenhanger van hetzelfde. Vergeet niet om uw gedachten te delen met behulp van de onderstaande feed!