Ich betreibe VM ohne Registrierungsmöglichkeit, also nur Gästecheckout. Das E-Mail Feld wird zwar validiert allerdings wird nicht geprüft ob es sich um eine E-Mailadresse handelt. Folglich ist es egal was reingeschrieben wird solange ein Buchstabe oder eine Zahl eingetragen wird geht der Checkoutprozess weiter. Die Validierung ist zwar bereits per jquery implementiert, allerdings fehlt dem E-Mail Eingabefeld einfach die Klasse "validate-email". Folgendes schafft hier Abhilfe:
Erstellt euch, falls noch nicht geschehen, ein Override der Datei components/com_virtuemart/views/user/tmpl/edit_adress.php (kopiert diese Datei nach templates/TEMPLATE_NAME/html/com_virtuemart/user). Öffnet die Datei mit dem Editor eueres Vertrauens und sucht nach der Stelle, an der die userfields eingebunden werden:
- <?php
- if (!class_exists ('VirtueMartCart')) {
- require(JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php');
- }
- if (count ($this->userFields['functions']) > 0) {
- echo '<script language="javascript">' . "\n";
- echo join ("\n", $this->userFields['functions']);
- echo '</script>' . "\n";
- }
- echo $this->loadTemplate ('userfields');
- ?>
und fügt folgendes direkt darunter ein:
Es wird also per Javascript der ID email_field (Emaileingabefeld) zusätzlich noch die Klasse "validate-email" mitgegeben. Des Weiteren könnt ihr dem Postleitzahlenfeld auch gleich die Klasse "validate-numeric" mitgeben. Folglich akzeptiert das PLZ Feld nur noch Zahlen.
Das Ganze sollte eigentlich auch funktionieren wenn ihr die Benutzerregistrierung aktiviert habt. Hab ich allerdings nicht getestet. Vielleicht kann einfach mal jemand Feedback geben der die Registrierung aktiv hat.