Soluzione errore VirtueMart in fase di conferma ordine: Error submitting registration form (registerCheckout). Reload the page and try again.

Chi utilizza VirtueMart 3, in fase di conferma ordine potrebbe visualizzare questo errore:
Error submitting registration form (registerCheckout). Reload the page and try again.

Potrebbe sembrare un bug VirtueMart, ma non lo è: l’errore viene generato a causa di alcuni cambiamenti in Joomla! 3.5.1., biblioteca mailerlibrary (JMail).

In attesa dell’aggiornamento VirtueMart, è possibile apportare le seguenti modifiche nel vostro sito per risolvere l’errore:

– aprire il file components/com_virtuemart/helpers/shopfunctionsf.php

– sostituire le righe di codice dalla 654 alla 674

		if(!$noVendorMail) {
			$replyTo[0] = $view->vendorEmail;
			$replyTo[1] = $view->vendor->vendor_name;
			$mailer->addReplyTo( $replyTo );
		} else {
			if(isset($view->orderDetails['details']) and isset($view->orderDetails['details']['BT'])){
				$replyTo[0] = $view->orderDetails['details']['BT']->email;
				$replyTo[1] = $view->orderDetails['details']['BT']->first_name.' '.$view->orderDetails['details']['BT']->last_name;
			} else {
				if (isset($view->user->email) and $view->user->name) {
					$replyTo[0] = $view->user->email;
					$replyTo[1] = $view->user->name;
				} else {
					$replyTo[0] = $view->user['email'];
					$replyTo[1] = $view->user['name'];
				}
 
			}
 
			$mailer->addReplyTo( $replyTo );
		}

con:

 
		$replyTo = array();
		$replyToName = array();
 
		if(!$noVendorMail) {
			$replyTo[0] = $view->vendorEmail;
			$replyToName[0] = $view->vendor->vendor_name;
		} else {
			if(isset($view->orderDetails['details']) && isset($view->orderDetails['details']['BT'])) {
				$replyTo[0] = $view->orderDetails['details']['BT']->email;
				$replyToName[0] = $view->orderDetails['details']['BT']->first_name . ' ' . $view->orderDetails['details']['BT']->last_name;
			} else {
				if(isset($view->user->email) && $view->user->name) {
					$replyTo[0] = $view->user->email;
					$replyToName[0] = $view->user->name;
				} else {
					$replyTo[0] = $view->user['email'];
					$replyToName[0] = $view->user['name'];
				}
			}
		}
 
		if(count($replyTo)) {
			if(version_compare(JVERSION, '3.5', 'ge')) {
				$mailer->addReplyTo($replyTo, $replyToName);
			} else {
				$replyTo[1] = $replyToName[0];
				$mailer->addReplyTo($replyTo);
			}
		}

Salvare il file 🙂

Tratto dal forum di virtueplanet.com