Hinweis: Der folgende Artikel hilft Ihnen dabei: Expertenlösung zum Abrufen des aktuellen Bestellstatus und des neuen Bestellstatus in Magento 2
Magento 2 ist eine wahnsinnig flexible Plattform, die es uns Entwicklern ermöglicht, die verrĂŒckten Anforderungen unserer Kunden zu erfĂŒllen!
Nicht wahr? đ
Ich war kĂŒrzlich mit einer Ă€hnlichen Situation konfrontiert, in der der Kunde eine bestimmte Aktion ausfĂŒhren wollte, wenn sich der Bestellstatus Ă€nderte. Dazu musste ich es tun Erhalten Sie den aktuellen Bestellstatus und den neuen Bestellstatus in Magento 2.
In diesem Blog habe ich diese Lösung sofort veröffentlicht, damit die Entwickler sich die MĂŒhen ersparen können, die ich fĂŒr die Lösung durchgemacht habe.
Sie können den folgenden Code verwenden, um beispielsweise eine Funktion zu implementieren, bei der ein Popup-Fenster angezeigt wird, wenn der Bestellstatus von âAufgegebenâ in âBearbeitungâ geĂ€ndert wird, mit dem Hinweis, dass Sie diesen Gutscheincode verwenden können, oder eine Funktion zur Berechnung und RĂŒckerstattung des Steuerbetrags bei einer Bestellung platziert und fertiggestellt.
Rufen Sie den vorherigen und nĂ€chsten Bestellstatus in Magento 2 ab, um eine Aktion auszufĂŒhren, wenn sich der Bestellstatus Ă€ndert, indem Sie den folgenden Code verwenden:
Schritte zum Abrufen des aktuellen Bestellstatus und des neuen Bestellstatus in Magento 2:
- Erstellen di.xml Datei unter app/code/Vendor/Extension/etc/ Ordner
- Erstellen OrderPlugin.php Datei unter app/code/Anbieter/Erweiterung/Plugin/
getOrigData(âstatusâ); $newData = $object->getData(âstatusâ); \Magento\Framework\App\ObjectManager::getInstance()->get(âPsr\Log\LoggerInterfaceâ)->info(print_r(âOld Data = $oldDataâ,true)); \Magento\Framework\App\ObjectManager::getInstance()->get(âPsr\Log\LoggerInterfaceâ)->info(print_r(âNew Data = $newDataâ,true)); } }
Namespace Vendor\Extension\Plugin;
verwenden Sie Magento\Sales\Model\ResourceModel\Order;
Klasse OrderPlugin
{
öffentliche Funktion afterSave(
Bestellen Sie $subject,
$result, $object
) {
$oldData = $object->getOrigData(âstatusâ);
$newData = $object->getData(âstatusâ);
\Magento\Framework\App\ObjectManager::getInstance()->get(âPsr\Log\LoggerInterfaceâ)->info(print_r(âOld Data = $oldDataâ,true));
\Magento\Framework\App\ObjectManager::getInstance()->get(âPsr\Log\LoggerInterfaceâ)->info(print_r(âNew Data = $newDataâ,true));
}
}
Das ist es.
Sie können den Bestellstatus auch im Frontend in Magento 2 sichtbar machen, indem Sie die Backend-Konfiguration anpassen.
Erfahren Sie hier, wie Sie in Magento 2 ein Bestellstatusetikett erhalten.
Irgendwelche Zweifel? Bitte erwÀhnen Sie sie im Kommentarbereich unten. Gerne helfe ich Ihnen schnellstmöglich weiter.
Teilen Sie die Lösung ĂŒber soziale Medien mit anderen Magento-Entwicklern.
Danke schön.