Als Entwickler müssen Sie sich häufig einem Szenario stellen, das Sie zwingt, das Kernverhalten eines Frameworks zu ändern. Wenn dies bereits von der Admin-Benutzeroberfläche oder etwas Ähnlichem bereitgestellt wird, können Sie loslegen! Bei komplexen Anpassungen benötigen Sie jedoch mehr als das. Sie müssen den Framework-Code ändern.
Wenn Sie dies tun, möchten Sie die Framework-Dateien nicht direkt ändern, da dies als schlechte Angewohnheit angesehen wird. Außerdem wird das Upgrade des Frameworks zum Alptraum, wenn Sie zahlreiche Änderungen an verschiedenen Dateien vorgenommen haben. Daher müssen Sie nach verschiedenen möglichen Ansätzen suchen, um dies zu erreichen, ohne den Kern selbst zu verändern. Die meisten Frameworks bieten heutzutage eine Art System, mit dem Sie dies als Teil der Erweiterbarkeit tun können.
Heute werden wir ein ähnliches Szenario im Kontext von OpenCart diskutieren. Wenn Sie aktiv an der OpenCart-Entwicklung beteiligt sind, wissen Sie wahrscheinlich, dass Sie die Zahlungsmethoden basierend auf dem Mindestbetrag für die Kaufabwicklung des Warenkorbs filtern können. Sie können sich beispielsweise entscheiden, die COD-Methode nicht aufzulisten, wenn die Gesamtsumme der Abrechnungen unter einem bestimmten Betrag liegt. Es ist integriert, und Sie können es während der Konfiguration der Zahlungsmethode vom Back-End aus einstellen.
In diesem Lernprogramm erweitern wir es und versuchen, die Zahlungsmethoden auf das Gesamtgewicht des Wagens zu beschränken. Wir werden besprechen, wie die COD-Methode während des Bezahlvorgangs gefiltert wird, wenn das Gewicht des Wagens einen bestimmten vordefinierten Wert unterschreitet. Um diese Funktionalität zu erreichen, sind Änderungen im Code erforderlich, da diese nicht vom Back-End selbst konfiguriert werden können.
Wie bereits erwähnt, dürfen Sie keine Kerndateien des Frameworks ändern. Dies lässt uns die Option von OCMOD. Machen Sie sich keine Sorgen, wenn Sie nicht damit vertraut sind. Ich werde es im nächsten Abschnitt vorstellen.
Ich gehe davon aus, dass Sie die neueste Version von OpenCart verwenden. Zum Schreiben ist dies OpenCart 2.2.0.0. Das OCMOD-System funktioniert auch nur mit OpenCart 2.x.x.x und bietet daher einen weiteren Grund für die Installation der neuesten Version.
Das macht die Dinge gut für uns, um voranzukommen. Lass uns gehen!
OCMOD ist ein XML-basiertes Such- und Ersetzungssystem, mit dem Sie die Kerndateien des OpenCart-Frameworks ändern können. Sie definieren die XML-Datei gemäß den Konventionen von OCMOD. Den Rest erledigen Sie. Wenn Sie in OpenCart 1.5.x von dem vQmod-System gehört haben, ist es ein Nachfolger dieses Systems.
Lassen Sie uns einige Beispiele auflisten, um zu verstehen, wozu es in der Lage ist:
Obwohl die nächsten Abschnitte Ihnen helfen sollen zu verstehen, wie es funktioniert, können Sie sich auch diese ausführliche Erklärung von OCMOD ansehen.
Wenn Sie weder mit vQmod noch mit OCMOD vertraut sind, würde ich Ihnen empfehlen, den oben genannten Artikel durchzulesen, da dieses Tutorial die Verwendung von OCMOD durchläuft.
Nachdem Sie sich mit OCMOD vertraut gemacht haben, gehen wir zum nächsten Abschnitt über, in dem ein OCMOD-Modul erstellt wird, um die oben genannte Anpassung zu erreichen.
Werfen wir einen Blick auf die Datei, die in unserem Fall geändert werden muss. Mach weiter und öffne die Katalog / Controller / Kasse / Zahlungsmethode.php
Datei in Ihrem bevorzugten Texteditor, und suchen Sie im Index
Methode.
$ results = $ this-> model_extension_extension-> getExtensions ('payment');
Es werden alle aktiven Zahlungsmethoden aus der Datenbank abgerufen. Nach dieser Zeile könnten wir unseren Code einfügen, damit die COD-Methode gefiltert wird, wenn das Gesamtgewicht des Wagens einen bestimmten Wert unterschreitet. Es sollte so aussehen, wenn wir diese Datei direkt ändern.
$ results = $ this-> model_extension_extension-> getExtensions ('payment'); / *** unser benutzerdefinierter Code *** / $ totalCartWeight = $ this-> cart-> getWeight (); $ minCodWeight = 100; if ($ totalCartWeight) < $minCodWeight) $updated_results = array(); foreach ($results as $result) if ($result['code'] != 'cod') $updated_results[] = $result; $results = $updated_results; /*** our custom code ***/
Wie Sie sehen, wird unser benutzerdefinierter Code von den Kommentaren umschlossen.
Zuerst holen wir das Gesamtgewicht des Wagens mit dem getWeight
Methode der Wagen
Objekt. Um es einfach zu halten, haben wir das für die COD-Methode erforderliche Mindestgewicht auf 100 hartcodiert. Natürlich können Sie ein Back-End-Konfigurationsmodul erstellen, sodass Sie es von der Administratorseite aus konfigurieren können.
Als nächstes gibt es eine ob
Bedingung, die das Gesamtgewicht des Wagens mit dem minimalen CSB - Gewicht prüft und darauf basierend die CSB - Methode aus der $ Ergebnisse
Array.
Das ist es also, was die Code-Modifikation angeht. Im nächsten Abschnitt werden wir dies mit OCMOD erreichen, und das habe ich Ihnen am Anfang des Artikels versprochen!
Ein ... kreieren filter_payment_method.ocmod.xml
Datei mit folgendem Inhalt.
Filtern der Zahlungsmethoden nach Gewicht des Wagens Code_Tutsplus_Filter_Payment_Methods
1,0 Code Tutsplus http://code.tutsplus.commodel_extension_extension-> getExtensions ('payment'); ]]> model_extension_extension-> getExtensions ('payment'); / *** unser benutzerdefinierter Code *** / $ totalCartWeight = $ this-> cart-> getWeight (); $ minCodWeight = 100; if ($ totalCartWeight) < $minCodWeight) $updated_results = array(); foreach ($results as $result) if ($result['code'] != 'cod') $updated_results[] = $result; $results = $updated_results; /*** our custom code ***/ ]]>
Wie Sie sehen können, sind die meisten Tags selbsterklärend. Der wichtigste Tag ist
, Hier wird der Dateiname definiert, in dem die Operation ausgeführt wird. Das
tag wird verwendet, um den Code zu suchen, nach dem wir suchen, und schließlich haben wir den Code verwendet
Tag, um unseren Code einzufügen.
Gehen Sie zum Back-End und navigieren Sie zu Erweiterungen> Erweiterung Installateur. Klicke auf das hochladen und wählen Sie die Datei aus, die wir im vorherigen Abschnitt erstellt haben. Wenn alles gut geht, sollten Sie eine Erfolgsmeldung sehen.
Navigiere zu Erweiterungen> Änderungen, und Sie sollten Ihre OCMOD-Erweiterung auf dieser Seite sehen.
Sie haben die Erweiterung erfolgreich installiert!
Gehen Sie zum Front-End und fügen Sie ein paar Produkte in den Wagen, so dass das Gesamtgewicht des Wagens unter 100 bleibt. Starten Sie nun den Checkout-Vorgang und im Zahlungsarten Tab Sie sollten bemerken, dass es keine gibt KABELJAU verfügbar. Natürlich sollte mindestens eine weitere Zahlungsmethode aktiviert sein, andernfalls wird sich OpenCart darüber beschweren Es sind keine Zahlungsoptionen verfügbar.
So ist es für heute! Auf diese Weise können Sie das OCMOD-System für jede Anpassung verwenden, bei der Sie die Kerndateien ändern müssen.
In diesem Artikel haben wir erfahren, wie Sie das OCMOD-System verwenden, um die Zahlungsmethoden in der Kasse nach dem Gesamtgewicht des Wagens zu filtern. Ich hoffe, es hat Ihnen gefallen und Sie haben in OpenCart etwas Neues gelernt.
Vergessen Sie nicht, Ihre Gedanken und Fragen mit dem Kommentar-Feed zu teilen.