Ci sono molti metodi di pagamento disponibili nel core OpenCart stesso e molti altri sono disponibili nel negozio OpenCart sotto forma di estensioni di terze parti. Sebbene a volte ti trovi nella situazione in cui hai bisogno di qualcosa di diverso, o non esiste alcun metodo disponibile per la scelta del gateway di pagamento o se desideri una logica diversa. In entrambi i casi, ti rimane la sola opzione: creare un nuovo modulo di metodo di pagamento in OpenCart.
In questo tutorial, vedremo la parte di back-end del metodo personalizzato. Vedremo come elencare il tuo metodo di pagamento personalizzato insieme agli altri metodi di pagamento. Inoltre, controlleremo come creare il modulo di configurazione per il tuo metodo di pagamento personalizzato.
Supponiamo che il nostro nome del metodo di pagamento personalizzato sia "personalizzato". Ci sono almeno tre file che devi creare per configurare le cose. Controlliamo lo stesso in dettaglio.
Vai avanti e crea il file del controller su admin / regolatore / pagamento / custom.php
. Incolla i seguenti contenuti nel file del controller appena creato custom.php
. Questo file sarà responsabile della visualizzazione del nostro modulo di configurazione back-end chiamando il file di visualizzazione appropriato e allo stesso tempo salvando il file inviare valori del modulo nel database.
language-> load ( 'il pagamento / custom'); $ this-> document-> setTitle ('Custom Custom Method Configuration'); $ This-> load-> modello ( 'impostazione / impostazione'); if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['success'] = 'Salvato.'; $ 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 ('pagamento / personalizzato', '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-> SetOutput ($ this-> render ());
Come puoi vedere, il nome della classe segue le convenzioni di denominazione standard di OpenCart. Capiamo ogni sezione.
All'inizio del indice
metodo carichiamo il file della lingua e impostiamo il valore di
etichetta.
$ This-> language-> load ( 'il pagamento / custom'); $ this-> document-> setTitle ('Custom Custom Method Configuration');
Nella prossima sezione, verrà caricato il file del modello "setting.php
che ci fornirà i metodi per salvare inviare valori al database. Controlliamo anche se inviare i valori sono disponibili li salveremo nel database.
$ This-> load-> modello ( 'impostazione / impostazione'); if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['success'] = 'Salvato.'; $ this-> redirect ($ this-> url-> link ('extension / payment', 'token ='. $ this-> session-> data ['token'], 'SSL'));
Inoltre, il prossimo paio di righe di codice è appena usato per impostare le etichette statiche che verranno utilizzate nel file di modello.
$ 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');
Successivamente, abbiamo impostato la variabile "azione" per assicurarci che il modulo venga inviato al nostro metodo "indice" quando inviato. Allo stesso modo, l'utente viene riportato all'elenco dei metodi di pagamento se fa clic sul pulsante "Annulla".
$ this-> data ['action'] = $ this-> url-> link ('pagamento / personalizzato', 'token ='. $ this-> session-> data ['token'], 'SSL'); $ this-> data ['cancel'] = $ this-> url-> link ('extension / payment', 'token ='. $ this-> session-> data ['token'], 'SSL');
Inoltre, esiste un codice per popolare i valori predefiniti dei campi del modulo di configurazione in modalità di aggiunta o modifica.
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');
Nella prossima sezione, verranno caricati i diversi valori di stato dell'ordine nell'area disponibile, che verrà utilizzata per l'elenco a discesa nel modulo di configurazione per Lo stato dell'ordine campo.
$ This-> load-> modello ( 'localizzazione / ORDER_STATUS'); $ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses ();
Infine, assegniamo il nostro file modello personalizzato custom.tpl
e rendere la vista.
$ this-> template = 'payment / custom.tpl'; $ this-> children = array ('common / header', 'common / footer'); $ This-> response-> SetOutput ($ this-> render ());
Questo è il set up per il file del controller.
Quindi, ora che abbiamo finito con il file del controller, creiamo i file di lingua e modello. Vai avanti e crea il file della lingua su admin / lingua / inglese / pagamento / custom.php
. Assicurati che il tuo file di lingua sia simile al codice che abbiamo fornito di seguito nel nostro esempio custom.php
.
Come puoi vedere, abbiamo appena impostato le variabili di linguaggio precedentemente utilizzate nel file del controller. Questo è abbastanza semplice e diretto.
Creiamo il file di visualizzazione. Vai avanti e crea il file modello su admin / view / template / pagamento / custom.tpl
. Incolla i seguenti contenuti nel file del modello appena creato custom.tpl
.
">
Ancora una volta, questo dovrebbe essere abbastanza facile da capire: lo scopo di questo file modello è di fornire il modulo di configurazione per il nostro metodo di pagamento personalizzato. Usa le variabili che abbiamo impostato in precedenza nel file del controller.
Abbiamo finito con i file impostati. Ora è il momento di andare avanti e vedere tutte le cose in azione. Vai alla sezione di amministrazione di OpenCart e vai a Estensioni> Pagamento. Dovresti vedere che il nostro metodo personalizzato è elencato appena sotto il Pagamento alla consegna.
Clicca sul installare link per installare il nostro metodo di pagamento personalizzato. Dopo l'installazione, dovresti essere in grado di vedere il modificare link per aprire il modulo di configurazione. Clicca sul modificare collegamento.
Quindi questo è il modulo di configurazione per il quale abbiamo fatto tutto il duro lavoro finora! Come puoi vedere, abbiamo fornito il generico Lo stato dell'ordine e "Stato campi. In aggiunta a ciò, abbiamo appena dimostrato come è possibile fornire i parametri personalizzati e impostando Parametro Uno e Parametro due.
È possibile compilare il modulo e salvarlo facendo clic sul Salvare pulsante. Abbiamo impostato il codice per questo nel nostro indice
metodo di controllo in modo che dovrebbe funzionare fuori dalla scatola! E sì, non dimenticare di impostare lo stato su Abilitato se vuoi che il tuo metodo sia disponibile nel front-end!
Nella prossima e ultima parte vedremo la controparte front-end della stessa. Non dimenticare di condividere i tuoi pensieri usando il feed qui sotto!