Nell'estensione personalizzata, creo un osservatore come questo.
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>
E il mio osservatore:
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;
}
}
La funzione My Observer viene chiamata, ma non mostra errori personalizzati nella pagina. A parte questo, mostra il mio messaggio in un exception.log
file come questo.
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!
e aggiungi exit
per uscire dall'esecuzione del codice sopra la $message = 'blablabla'
riga. Se vedi il messaggio, puoi andare al passaggio successivo. Provalo e fammi ora se Hello Nasty World!
viene inviato al browser.
Hello nasty World
o We can't remove the item!
qualcos'altro? Fornisci anche lo screenshot.