In der benutzerdefinierten Erweiterung erstelle ich einen solchen Beobachter.
app\code\Vendor\Extension\etc\frontend\events.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_quote_remove_item">
<observer name="sales_quote_remove_item_handler" instance="Vendor\Extension\Observer\RemovecartbeforeObserver" shared="false" />
</event>
</config>
Und mein Beobachter:
app\code\Vendor\Extension\Observer\RemovecartbeforeObserver.php
use Magento\Framework\Event\ObserverInterface;
class RemovecartbeforeObserver implements ObserverInterface
{
public function execute(\Magento\Framework\Event\Observer $observer)
{
// HERE IS MY CODE
$message = "THIS IS CUSTOM ERROR MESSAGE";
throw new \Magento\Framework\Exception\LocalizedException(__($message));
return;
}
}
Meine Observer-Funktion wird aufgerufen, zeigt jedoch keinen benutzerdefinierten Fehler auf der Seite an. In diesem Fall wird meine Nachricht in einer solchen exception.log
Datei angezeigt .
main.CRITICAL: exception 'Magento\Framework\Exception\LocalizedException' with message 'THIS IS CUSTOM ERROR MESSAGE' in E:\xampp\htdocs\myworks\magento213\app\code\Vendor\Extension\Observer\RemovecartbeforeObserver.php:106
Hello Nasty World!
und fügen Sie hinzu exit
, um die Codeausführung über der $message = 'blablabla'
Zeile zu beenden. Wenn Sie die Nachricht sehen, können Sie mit dem nächsten Schritt fortfahren. Probieren Sie es aus und lassen Sie mich jetzt, wenn das Hello Nasty World!
an den Browser gesendet wird.
Hello nasty World
oder We can't remove the item!
oder etwas anderes? Bitte geben Sie auch den Screenshot an.