2016-03-23 7 views
1

Ich arbeite für eine Apotheke und wir versuchen, es zu implementieren, so dass, wenn ein Kunde ein verschreibungspflichtiges Medikament auscheckt, sie eine physische Adresse gespeichert haben müssen. Wir haben die Standard-Kassenterminal-Controller von Magento, und dann lädt ein benutzerdefinierter Controller, nachdem sie diese Seite durchlaufen haben, wenn sie ein verschreibungspflichtiges Medikament in ihrem Einkaufswagen haben. Meine Frage ist, wie kann ich es so machen, wenn sie keine physische Adresse in der Datei haben, wird die Seite eine Fehlermeldung erzeugen und erlauben sie nicht fortzufahren, es sei denn, eine physische Adresse zu ihrem Benutzerkonto hinzufügen.Magento hinzufügen Fehlermeldung an Controller

Hier ist der Code, den ich bis jetzt haben, in der Steuerung für die Seite:

public function checkAddressOnFile() 
    { 
     return (bool) count(array_filter(Mage::getSingleton('customer/session')->getCustomer()->getAddresses(), function($address) { 
      return !preg_match("(?i)^\\s*((P(OST)?.?\\s*(O(FF(ICE)?)?)?.?\\s+(B(IN|OX))?)|B(IN|OX)", $address); 
     })); 
      Mage::getSingleton('core/session')->addError('Unfortunately we are required to have a physical address on file when shipping any controlled medications. Please note that although we are required to have a physical address on file, we still ship to PO Boxes. We sincerely apologize for the inconvenience.' . $e->getMessage()); 
    } 

Antwort

2
public function checkAddressOnFile() 
{ 

    return (bool) count(array_filter(Mage::getSingleton('customer/session')->getCustomer()->getAddresses(), function($address) { 

     Mage::getSingleton('core/session') 
      ->addError('Unfortunately we are required to have a physical address on file when shipping any controlled medications. Please note that although we are required to have a physical address on file, we still ship to PO Boxes. We sincerely apologize for the inconvenience.' . $e->getMessage()); 

     return !preg_match("(?i)^\\s*((P(OST)?.?\\s*(O(FF(ICE)?)?)?.?\\s+(B(IN|OX))?)|B(IN|OX)", $address); 
    })); 

} 

Für Hinweis

Mage::getSingleton('core/session')->addNotice('Notice Text...'); 

Für Erfolgsmeldung

Mage::getSingleton('core/session')->addSuccess('Success Text...'); 

Für eine Fehlermeldung

Mage::getSingleton('core/session')->addError('Error Text...'); 
+0

Das hat nicht funktioniert. – djames

+0

Ich entschuldige mich, dass meine Antwort nicht geholfen hat, aber ich werde versuchen, genaue Lösung zu geben –

+0

Ich aktualisierte meine Antwort bitte überprüfen –

Verwandte Themen