Pagina 1 di 1

Personalizzare le email

Inviato: 09/01/2004, 2:03
da tigrotto22
Sto cercando di personalizzare Osc aggiungendo indicazioni a del testo nelle email inviate automaticamente ai clienti. Ho notato che il file che comanda gli invii è (credo) "admin/mail.php". Qui però ci sono solo i richiami ai dati inseriti nel Db. Come posso fare ad inserire del normale testo? Quale parte del file è da editare?
Grazie.

Inviato: 17/01/2004, 18:41
da BluEdoG
nelle corrispondente file tradotto in italiano, oppure intervenendo sul codice direttametnte (che non è mail.php ma è all'interno dei file preposti all'invio) che pero' ha la rogna di non essere "usabile" se il sito è in multilingua.

Inviato: 17/01/2004, 21:56
da tigrotto22
Purtroppo non è così. Nelle mail di riepilogo ordini vengono estrapolati solo i dati relativi al cliente, all'ordine effettuato, al luogo di spedizione ecc. senza altro testo.
Non c'è quindi un file della lingua da cui "pesca" il testo.
Comunque sto vedendo di risolvere altrimenti.
Grazie lo stesso.

Inviato: 18/01/2004, 15:20
da BluEdoG
c'è eccome, ma non è un file unico, per esempio checkout_process.php

Inviato: 18/06/2004, 17:37
da tassoman
e se ad esempio, più specificatamente volessimo mettere

NEGOZIO >> CATEGORIA >> PRODOTTO

nel subject della mail .... :roll:

Io mi sto spulciando checkout_process

ma è alquanto complicato :cry:

Re: Personalizzare le email

Inviato: 20/06/2004, 0:26
da Bass
tigrotto22 ha scritto: Come posso fare ad inserire del normale testo? Quale parte del file è da editare?
Come ti ha detto BluEdoG il file da modificare e' checkout_process.php a partire da dove c'e' l'indicazione // lets start with the email confirmation
Ad esempio io ho messo all'inizio della mail, subito sotto il nome del negozio la frase "Grazie per il tuo ordine" + nome e cognome dell'acquirente facendo in questo modo:

EMAIL_TEXT_MESSAGE . ' ' . $order->customer['firstname'] . ' ' . $order->customer['lastname'] . "\n" .

EMAIL_TEXT_MESSAGE e' il messaggio "Grazie per il tuo ordine" che ho definito in includes/languages/italian (e le altre lingue)/checkout_process.php mentre le altre due sono le variabili che richiamano nome e cognome.

Praticamente ho inserito la parte di codice qui:

// lets start with the email confirmation
$email_order = STORE_NAME . "\n" .
EMAIL_TEXT_MESSAGE . ' ' . $order->customer['firstname'] . ' ' . $order->customer['lastname'] . "\n" .
EMAIL_SEPARATOR . "\n" .
EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";


Se devi inserire del testo all'inizio dell'email segui un procedimento simile, non e' per niente difficile, basta fare qualche prova :D

'iao

Sergio

Inviato: 20/06/2004, 10:54
da tassoman
Grazie, ottima idea quella di personalizzare la email, farò anche io come hai fatto te, col nome e cognome.

Però il capo mi ha chiesto che appaia almeno il nome della categoria in cui è stato effettuato l'ordine nell subject! :oops:

C'è l'uso della variabile tipo EMAIL_TEXT_MESSAGE anche per la subject?

Inviato: 20/06/2004, 11:02
da Bass
tassoman ha scritto: C'è l'uso della variabile tipo EMAIL_TEXT_MESSAGE anche per la subject?
Quello che viene scritto nel soggetto e' dato da EMAIL_TEXT_SUBJECT che trovi nei file checkout_process.php dei vari linguaggi.
Per mettere qualcosa di variabile dovresti creare appunto una variabile tipo $email_subject ed assegnargli i valori che vuoi tu.
Non ho idea quale sia quella della categoria, ma c'e' di sicuro, quella per il prodotto ad esempio e' poche righe piu' sopra $order->products, devi fare qualche prova :D

'iao

Sergio

Inviato: 20/06/2004, 11:07
da tassoman
Perrrffetto grazie! :wink:
Ma proverò lunedì..................... :roll:
Oggi è domenica.. :twisted:

Inviato: 21/06/2004, 15:12
da tassoman
allora, la parte di codice che inserisce i dati dell'ordine è questa

Codice: Seleziona tutto

  for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
    $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
  }
$order_totals viene definito all'inizio di checkout_process.php

Codice: Seleziona tutto

  $order_totals = $order_total_modules->process();
$order_total_modules è un nuovo oggetto:

Codice: Seleziona tutto

  require(DIR_WS_CLASSES . 'order_total.php');
  $order_total_modules = new order_total;
Ma io con la programmazione ad oggetti, sono una vera chiavica.
Secondo voi c'e' modo di ottenere le categorie appartenenti agli oggetti ordinati? :?:

...

Inviato: 06/07/2004, 12:40
da neeo
interessante

ho provato a modificare l'invio delle e-mail "ad altri", sfruttando il campo già esistente nel db, ma riscontro degli errori...

In pratica vorrei inviare una mail ad un altro indirizzo SOLO SE, ad esempio, l'acquirente risiede nella zona di napoli:

// send emails to other people

EMAIL_STATE . ' ' . $order->customer['state'] . "\n" .

if (EMAIL_STATE == 'NA') {
tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

}

Dov'è che sbaglio? (sicuramente la sintassi)

...

Inviato: 06/07/2004, 16:07
da neeo
:D

if ($order->customer['state'] == 'Napoli') {
tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
}

così funziona :D