Ciao,
ho fatto l'aggiornamento alla nuova versione 1.0.11 prelevandola dal sito ufficiale (
www.virtuemart.com )
Hai me!! che errore!!
mi sono così accorto che:
oltre alle varie variabili inesistenti nella versione originale....
una grande differenza mi lascia perplesso e mi domando come allora viene gestito, mi spiego
La tabella #__{vm}_order_user_info richiamata al termine dell'ordine nella pagina /administrator/components/com_virtuemar/html/checkout.thankyou.php
sembra non venga utilizzata nella versione italiana, in quanto su dei test applicati (con utenti differenti) questa tabella rimane sempre vuota.
Credo che al suo posto venga sempre utilizzata la tabella #__{vm}_user_info e ho fatto riferimento a quest'ultima per non avere errori.
questo è il codice originale:
Il primo errore è nella linea 35 di
/administrator/components/com_virtuemart/html/checkout.thankyou.php
31 /** Retrieve User Email **/
32 $q = "SELECT * FROM #__{vm}_order_user_info WHERE order_id='$order_id' AND address_type='BT'";
33 $db->query( $q );
34 $db->next_record();
35 $user = $db->record[0];
36 $dbbt = $db->_clone( $db );
Il secondo errore è nella linea 60 dello stesso file
54 <?php
55 if( empty($vars['error'])) { ?>
56 <img src="<?php echo IMAGEURL ?>ps_image/button_ok.png" height="48" width="48" align="center" alt="Success" border="0" />
57 <?php echo $VM_LANG->_PHPSHOP_THANKYOU_SUCCESS?>
58
59 <br /><br />
60 <?php echo $VM_LANG->_PHPSHOP_EMAIL_SENDTO .": <strong>". $user->user_email; ?></strong><br />
61 </p>
62 <?php
63 } ?>
Tutti i campi richiesti sono presenti in entrambe le tabelle.
Le domande:
Perchè questa diversità tra le due versioni?
E' dovuta al nuovo aggiornamento o questa modifica nella versione italiana era già presente?
Quali problemi incontro a passare la tabella user_info anzichè order_user_info?
Può essere che si incontrino problemi se uno stesso utente decida di utilizzare un secondo indirizzo di spedizione anzichè quello già inserito, che differenziano non solo nella e-mail ma anche nell'indirizzo reale di spedizione e dati di fatturazione?
La soluzione:
Se modificassi lo script in questa maniera si incontrerebbero problemi di altro genere?
31 /** Retrieve User Email **/
32 $q = "SELECT * FROM #__{vm}_order_user_info WHERE order_id='$order_id' AND address_type='BT'";
/* qui vorrei aggiungere che se il record non viene trovato allora */
33 $q = "SELECT * FROM #__{vm}_user_info WHERE order_id='$order_id' AND address_type='BT'";
/* per il resto i campi non differenziano, dunque non si necessita di modifica */
33 $db->query( $q );
34 $db->next_record();
35 $user = $db->record[0];
36 $dbbt = $db->_clone( $db );
ciao
Stefano