Joomla.it Forum

Componenti per Joomla! => Gestione e-commerce => VirtueMart - tips & tricks => : rossosat 30 Oct 2009, 10:58:51

: [ VM GUIDE 1.1.3 ] - Invio email solo dopo conferma del pagamento con paypal.
: rossosat 30 Oct 2009, 10:58:51
Visto che sicuramente qualcuno ha avuto il mio stesso problema, ecco la soluzione.

Lo stato dell'ordine non cambia in automatico dopo il pagamento con paypal?

Aprire il file notify.php contenuto qui:
/administrator/components/com_virtuemart

Cercate questa frase: If the payment_status is not Completed... do nothing but mail

Subito dopo cancellare tutto fino a
// ..If UNVerified - It's 'Suspicious'

e inserire il codice in rosso.

//----------------------------------------------------------------------
// If the payment_status is not Completed... do nothing but mail
                //----------------------------------------------------------------------
// UPDATE THE ORDER STATUS to 'INVALID'
                //----------------------------------------------------------------------
            //----------------------------------------------------------------------
            if(eregi ("Completed", $payment_status)) {
               require_once($mosConfig_absolute_path. '/includes/sef.php');
               require_once( CLASSPATH . 'vmAbstractObject.class.php');
               require_once ( CLASSPATH . 'class_currency_display.php' );
               require_once ( CLASSPATH . 'ps_checkout.php' );
               
               $default_vendor = 1;
               if( $my->id ) {
                  $db->query( 'SELECT `vendor_id` FROM `#__{vm}_auth_user_vendor` WHERE `user_id` ='.$my->id );
                  $db->next_record();
                  if( $db->f( 'vendor_id' ) ) {
                     $default_vendor = $db->f( 'vendor_id' );
                  }
               }
               $q = "SELECT vendor_currency_display_style
                     FROM (`#__{vm}_vendor`, `#__{vm}_country`)
                     WHERE `vendor_id`=$default_vendor
                     AND (vendor_country=country_2_code OR vendor_country=country_3_code);";
               $db->query($q);
               $db->next_record();
               $vendor_currency_display_style = $db->f("vendor_currency_display_style");
               $currency_display = vendor_currency_display_style( $vendor_currency_display_style );                             
               $GLOBALS['CURRENCY_DISPLAY'] =& new CurrencyDisplay($currency_display["id"], $currency_display["symbol"], $currency_display["nbdecimal"], $currency_display["sdecimal"], $currency_display["thousands"], $currency_display["positive"], $currency_display["negative"]);
               $ps_checkout = new ps_checkout;
               $ps_checkout->email_receipt($order_id);
            }
                           
            }
        }

        //----------------------------------------------------------------
        // ..If UNVerified - It's 'Suspicious' and needs investigating!
        // Send an email to yourself so you investigate it.
        //----------------------------------------------------------------


Volete che venga inviata soltanto la mail quando lo stato dell'ordine è "Confirmed" eliminando l'invio della mail con lo stato "Pending" ?

- Aprire ps_checkout.php dentro /administrator/components/com_virtuemart/classes
- Cercare la riga:
// Mail receipt to the shopper

Commentare la riga successiva
// vmMail( $from_email, $mosConfig_fromname, $shopper_email, $shopper_subject, $msg, "" );

Attenzione, più giù c'è un richiamo da commentare.. esattamente alla riga 2160:

// $shopper_mail = vmMail( $from_email, $mosConfig_fromname, $shopper_email, $shopper_subject, $shopper_mail_Body, $shopper_mail_AltBody, true, null, null, $EmbeddedImages);

Testato e funzionante.
Saluti.
: Re:[ VM GUIDE 1.1.3 ] - Invio email solo dopo conferma del pagamento con paypal.
: jk4nik 30 Oct 2009, 11:07:27
ottimo
grazie

provvedo a stikkarlo

p.s. se hai altri suggerimenti posta pure!
: Re:[ VM GUIDE 1.1.3 ] - Invio email solo dopo conferma del pagamento con paypal.
: volponerosso 08 Jan 2010, 07:50:27
ciao ho seguito la tua guida e ho sostituito la stringa. Ho seguito solo il primo pezzo non anche quello di mandare una sola mail. L' ho provato ma resta sempre sullo stato pending, come mai? Nel dubbio ho messo anche notify.php ai permessi 777  ;)

HO RISOLTO:
trasferendo il mio conto paypal normale a business. Dalla pagina del proprio conto PayPal, cliccare il link “Profilo”.Seguiamo il collegamento “Preferenze per Notifica immediata del pagamento”. Dobbiamo attivare questa opzione ed inserire l’URL "http://www.sito.com/administrator/components/com_virtuemart/notify.php" cambiando “www.sito.com” con il vostro nome di dominio.

 ;)
: Re:[ VM GUIDE 1.1.3 ] - Invio email solo dopo conferma del pagamento con paypal.
: formuladallara 10 Jan 2010, 21:45:51
ciao, ho seguito i tuoi passi ma non funziona. Come mai? Ho il conto business e ho modificato il file ma non mi arriva l' email dopo il pagamento automatico con paypal.  :'(
: Re:[ VM GUIDE 1.1.3 ] - Invio email solo dopo conferma del pagamento con paypal.
: rossosat 16 Jan 2010, 16:04:26
Ciao, usi la 1.1.3 di virtuemart? se hai seguito le istruzioni alla lettera dovrebbe funzionare, come ha funzionato per volponerosso.

Ricontrolla bene tutto.
: Re:[ VM GUIDE 1.1.3 ] - Invio email solo dopo conferma del pagamento con paypal.
: bisognoso 20 May 2011, 10:52:01
per chi ha la versione 1.1.7 funziona ugualmente??

cosa devo modificare??