Ich bin mittlerweile soweit, dass ich es mit einem Replace-Hook auf den Register-Controller das ganze geprüft kriege:
public static function getSubscribedEvents()
{
return [
'Shopware_Controllers_Frontend_Register::saveRegisterAction::replace' => 'onReplaceSaveRegister'
];
}
public function onReplaceSaveRegister(\Enlight_Hook_HookArgs $args)
{
/** @var \Shopware_Controllers_Frontend_Register $subject */
$subject = $args->getSubject();
$data = $subject->Request()->getPost();
$customerVerification = $data['register']['personal']['verification'];
if (!empty($customerVerification)) {
$verification = $this->config->getByNamespace('CompraRegisterExtension', 'verification');
if ($customerVerification !== $verification) {
// Error message
$errors['occurred'] = true;
$errors['personal'][] = $this->snippetManager->getNamespace('frontend/register/compra_register_extension')
->get('VerificationCodeNotValid', 'Bitte geben Sie einen gültigen Verifizierungscode ein.', true);
$subject->View()->assign('errors', $errors);
$subject->View()->assign($data);
$subject->forward('index', 'register', 'frontend', $subject->Request()->getParams());
}
} else {
$subject->executeParent($args->getMethod(), $args->getArgs());
}
$return = $args->getReturn();
$args->setReturn($return);
}
Mit forward geht er auch wieder zurück auf die Registrierungsseite, allerdings erhalte ich dann nur oben die Fehlermeldung…die Felder des Registrierungsformulars sind geleert und nicht aus den voherigen Eingaben übernommen…