Mein Plugin registriert sich auf ein Event
$this->subscribeEvent(
'Enlight_Controller_Action_PostDispatchSecure_Frontend_Checkout',
'onFrontendPostDispatch'
);
da pruefe ich ob es sich um die Seite mit der Bestellbestaetigung handelt
public function onFrontendPostDispatch( \Enlight_Event_EventArgs $args )
{
$subject = $args->get('subject');
$response = $subject->Response();
$request = $subject->Request();
$action = $request->getActionName();
/* ... */
$sOrderNumber = $view->getAssign()["sOrderNumber"];
if(!$request->isDispatched()
|| $response->isException()
|| $request->getModuleName() != 'frontend'
|| $request->getControllerName() != 'checkout'
|| !$args->getSubject()->View()->hasTemplate()
|| $action !== "finish"
) {
error_log("invalid checkout finish");
return;
}
$data = array( /* ... */ );
$this->some_export_function($data); //should only be called once per order
}
Wenn ich jetzt eine Bestellung durchfuehre wird auch
$this->some_export_function($data)
aufgerufen, wenn ich im Browser dann aber die Seite neu lade und das neu senden der Formulardaten dabei bestaetige, wird die Funktion erneut aufgerufen.
Wie kann ich an dieser Stelle pruefen, ob es sich hierbei um den ersten Aufruf ausgeloest durch den erfolgreichen Bestellvorgang handelt oder nicht?