De nombreuses méthodes de paiement sont disponibles dans le noyau OpenCart lui-même et de nombreuses autres sont disponibles dans le magasin OpenCart sous la forme d’extensions tierces. Bien que vous vous trouviez parfois dans une situation où vous aviez besoin de quelque chose de différent, il n’existait aucune méthode disponible pour votre choix de passerelle de paiement ou vous souhaitiez une logique différente. Dans les deux cas, il ne vous reste plus que la seule option: créer un nouveau module de méthode de paiement dans OpenCart..
Dans ce tutoriel, nous verrons la partie back-end de la méthode personnalisée. Nous verrons comment répertorier votre méthode de paiement personnalisée avec les autres méthodes de paiement. De plus, nous vérifierons comment vous pouvez créer le formulaire de configuration pour votre méthode de paiement personnalisée.
Nous supposerons que notre nom de méthode de paiement personnalisé est "personnalisé". Vous devez créer au moins trois fichiers pour pouvoir configurer les éléments. Vérifions la même chose en détail.
Allez-y et créez le fichier du contrôleur à admin / contrôleur / paiement / custom.php
. Collez le contenu suivant dans le fichier de contrôleur nouvellement créé. custom.php
. Ce fichier sera chargé d’afficher notre formulaire de configuration d’arrière-plan en appelant le fichier d’affichage approprié et en sauvegardant en même temps le fichier. poster valeurs du formulaire dans la base de données.
langue-> charge ('paiement / coutume'); $ this-> document-> setTitle ('Configuration du mode de paiement personnalisé'); $ this-> load-> model ('setting / setting'); if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['success'] = 'Sauvegardé.'; $ this-> redirect ($ this-> url-> link ('extension / payment', 'token ='. $ this-> session-> data ['token'], 'SSL')); $ this-> data ['cap_title'] = $ this-> language-> get ('cap_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 ('localisation / statut_ordre'); $ 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 ());
Comme vous pouvez le constater, le nom de la classe respecte les conventions de dénomination OpenCart standard. Comprenons chaque section.
Au début du indice
méthode, nous chargeons le fichier de langue et définissons la valeur du
étiquette.
$ this-> language-> load ('paiement / coutume'); $ this-> document-> setTitle ('Configuration du mode de paiement personnalisé');
Dans la section suivante, nous chargeons le fichier de modèle "setting.php
qui nous fournira les méthodes pour économiser poster valeurs à la base de données. Nous vérifions également si poster les valeurs sont disponibles, nous allons l'enregistrer dans la base de données.
$ this-> load-> model ('setting / setting'); if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) $ this-> model_setting_setting-> editSetting ('custom', $ this-> request-> post); $ this-> session-> data ['success'] = 'Sauvegardé.'; $ this-> redirect ($ this-> url-> link ('extension / payment', 'token ='. $ this-> session-> data ['token'], 'SSL'));
De plus, quelques lignes de code sont utilisées pour configurer les étiquettes statiques qui seront utilisées dans le fichier de modèle..
$ 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');
Ensuite, nous avons configuré la variable "action" pour nous assurer que le formulaire est soumis à notre méthode "index" lors de sa soumission. Et de la même manière, l'utilisateur est ramené à la liste des méthodes de paiement s'il clique sur le bouton "Annuler".
$ 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');
De plus, il existe un code pour renseigner les valeurs par défaut des champs du formulaire de configuration en mode ajout ou édition..
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');
Dans la section suivante, nous chargeons les différentes valeurs d’état d’ordre de la zone disponible, qui seront utilisées pour la liste déroulante dans le formulaire de configuration du système. Statut de la commande champ.
$ this-> load-> model ('localisation / statut_ordre'); $ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses ();
Enfin, nous affectons notre fichier de modèle personnalisé custom.tpl
et rendre la vue.
$ this-> template = 'payment / custom.tpl'; $ this-> children = array ('common / header', 'common / footer'); $ this-> response-> setOutput ($ this-> render ());
C'est la configuration du fichier du contrôleur.
Alors maintenant que nous en avons terminé avec le fichier contrôleur, créons les fichiers de langage et de modèle. Allez-y et créez le fichier de langue à admin / langue / anglais / paiement / custom.php
. Assurez-vous que votre fichier de langue ressemble au code que nous avons fourni ci-dessous dans notre exemple. custom.php
.
Comme vous pouvez le constater, nous venons de configurer les variables de langue précédemment utilisées dans le fichier contrôleur. C'est assez simple et direct.
Créons le fichier de vue. Allez-y et créez le fichier modèle à admin / view / template / payment / custom.tpl
. Collez le contenu suivant dans le fichier de modèle nouvellement créé. custom.tpl
.
">
Encore une fois, cela devrait être assez facile à comprendre: Le but de ce fichier modèle est de fournir le formulaire de configuration pour notre méthode de paiement personnalisée. Il utilise les variables que nous avons définies précédemment dans le fichier du contrôleur.
Nous avons fini avec les fichiers mis en place. Il est maintenant temps d'aller de l'avant et de tout voir en action. Rendez-vous sur la section admin de l'OpenCart et allez à Extensions> Paiement. Vous devriez voir que notre méthode personnalisée est listée juste en dessous de la Paiement à la livraison.
Clique sur le installer lien pour installer notre méthode de paiement personnalisée. Après l’installation, vous devriez pouvoir voir le modifier lien pour ouvrir le formulaire de configuration. Clique sur le modifier lien.
C'est donc le formulaire de configuration pour lequel nous avons effectué tout le travail nécessaire jusqu'à présent! Comme vous pouvez le constater, nous avons fourni le générique Statut de la commande et "Statut des champs. En plus de cela, nous venons de montrer comment vous pouvez également fournir les paramètres personnalisés en configurant Premier paramètre et Paramètre deux.
Vous pouvez remplir le formulaire et le sauvegarder en cliquant sur le bouton sauvegarder bouton. Nous avons mis en place le code pour cela dans notre indice
méthode de contrôleur donc il devrait fonctionner hors de la boîte! Et oui, n'oubliez pas de définir le statut sur Activée si vous voulez que votre méthode soit disponible dans le front-end!
Dans la prochaine et dernière partie, nous verrons la contrepartie initiale de la même chose. N'oubliez pas de partager vos pensées en utilisant le flux ci-dessous!