Newsgroup: it.comp.www.php
Titolo: php casella controllo "richiedi fattura" a fine ordine

sono riuscito ad aggiungere una casella di controllo da cliccare con 
etichetta "richiedi fattura" che appare a fine ordine dove il cliente deve 
accettare anche i termini e le condizioni di vendita e poi confermare 
l'ordine cliccando sul pulsante apposito.
la casella di controllo "richiedi fattura" l'hò chiamata "ricfat" e aggiunta 
nel file di virtuemart di nome
get_final_confirmation.tpl.php
ora dovrei però inviare un avviso nell'email che arriva al propietario del 
negozio con scritto
"il cliente richiede fattura" se la casella di controllo è cliccata
"il cliente non richiede fattura" altrimenti
ho letto di dover modificare il file di nome checkout.index.php
ma non saprei in che modo avere lo stato di quella casella di controllo e 
quindi come gestire l'informazione da inviare nell'email del propietario.
qualcuno ha già affrontato questo problema? se posto il codice dei 2 file 
qualcuno di voi può aiutarmi?
grazie. 


io non so cosa ci sia scritto in checkout.index.php, ma in generale
se per aggiungere la casella "richiedi fattura"
hai scritto una cosa del tipo:
<input type="checkbox" name="ricfat" value="richiedi" /> richiedi
credo che in checkout.index.php dovresti controllare
se esiste la variabile
     $_REQUEST['ricfat'].
e a seconda del valore fai la cosa che devi fare
per esempio
if (IsSet($_REQUEST['ricfat'])) {
 if ($_REQUEST['ricfat'] == "richiedi") {
   $stringa = "il cliente richiede fattura";
 } else {
   $stringa = "il cliente non richiede fattura";
 }
}
spero che ti sia utile
ciao

ciao
fantastico, ci provo e vi farò sapere l'esito. grazie. 

ciao
un chiarimento, ma essendo una ceck box il valore di ricfat se selezionato 
sarà -1 e 0 se non selezionato è corretto?
se è corretto il tuo codice diventa
if (IsSet($_REQUEST['ricfat'])) {
if ($_REQUEST['ricfat'] == -1) {
$stringa = "il cliente richiede fattura";
} else {
$stringa = "il cliente non richiede fattura";
}
}
dico bene? 

nel file  checkout.index.php ci ho messo:
$richiedifat = vmGet( $_REQUEST, 'ricfat');
if (IsSet($richiedifat)) {
if ($richiedifat == -1) {
   $stringa = "il cliente richiede fattura";
} else {
   $stringa = "il cliente non richiede fattura";
}
}
però poi dove la metto la stringa per farla arrivare per email al titolare 
del negozio?
vi chiedo una seconda variante se è più semplice, posso fare in modo che in 
tempo reale quando un cliente clicca sulla ceckbox "ricfat" io esegua un 
codice che assegna un valore al campo note presente nella stessa pagina? 
chiesto questo perchè il campo note viene già recuperato ed inserito 
nell'email in modo corretto mentre non so dove mettere $stringa
qualcuno sa aiutarmi? 


a me risulta che se metti nel checkbutton un valore value="qualcosa",
per esempio:
<input type="checkbox" name="ricfat" value="PIPPO" /> richiedi fattura
se l'utente seleziona il checkbox, il valore della variabile
$_REQUEST['ricfat'] sarà proprio quello che tu hai messo nel campo value
(in questo caso la stringa "PIPPO")


$stringa la metti dentro al corpo del messaggio che mandi via email
per esempio, se il testo del messaggio è nella stringa $testo
puoi accodare $stringa alla fine di $testo in questo modo:
$testo .= "\n".$stringa;   // questo se il messaggio e in formato txt
oppure
$testo .= "<br>".$stringa; // questo se il messaggio è in html
ciao
davide

ma il codice che invia l'email come lo trovo? sar� nel secondo file di cui 
parlavamo? e che codice avr�?

 
in che file è ovviamente io non lo so
dovresti guardare il file in cui hai aggiunto il checkbox
e controllare qual'e' la action del form
<FORM METHOD=POST ACTION="pincopallino.php">
in questo esempio il file pincopallino.php e' quello che dovrebbe
essere aperto/eseguito quando l'utente preme il bottone submit del form
e probabilmente dovrebbe essere qui il codice che manda l'email
in questo file potresti cercare la parola Mail o mail
ciao

grazie mille ci provo e ti tengo aggiornato sugli sviluppi \ casini che 
faccio

**** Questo è il codice parte finale della pagina 
get_final_confirmation.tpl.php ****** praticamente accettando i termini e 
cliccando sul pulsante "conferma ordine" visualizza una pagina che ringrazia 
per l'ordine eseguito e credo sia in quel momento, su click del pulsante 
"conferma ordine" che vengono processate le 2 email una al cliente e una al 
gestore el negozio ma riesci a capire che file richiama per inviare l'email 
e pe rinfilarci quindi il famoso $stringa che vale "il cliente richiede la 
fattura" oppure "il cliente non richiede la fattura" di cui parlavamo nei 
post precedenti?
**** questo è i lcodice (BAAAA!!!) *****
<br />
<?php
if (PSHOP_AGREE_TO_TOS_ONORDER == '1') { ?>
<br />
<input type="checkbox" name="agreed" value="1" class="inputbox" 
/>&nbsp;&nbsp;
<?php
$link = $mosConfig_live_site 
.'/index2.php?option=com_virtuemart&amp;page=shop.tos&amp;pop=1&amp;Itemid='. 
$Itemid;
$text = $VM_LANG->_('PHPSHOP_I_AGREE_TO_TOS');
echo vmPopupLink( $link, $text );
echo '<br />';
}
?>
</div>
<?php
if( VM_ONCHECKOUT_SHOW_LEGALINFO == '1' ) {
$link = 
sefRelToAbs('index2.php?option=com_content&amp;task=view&amp;id='.VM_ONCHECKOUT_LEGALINFO_LINK 
 );
$jslink = "window.open('$link', 'win2', 
'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no'); 
return false;";
if( @VM_ONCHECKOUT_LEGALINFO_SHORTTEXT=='' || 
!defined('VM_ONCHECKOUT_LEGALINFO_SHORTTEXT')) {
$text = $VM_LANG->_('VM_LEGALINFO_SHORTTEXT');
} else {
$text = VM_ONCHECKOUT_LEGALINFO_SHORTTEXT;
}
?>
<div class="legalinfo">
<?php
echo sprintf( $text, $link, $jslink );
?>
</div><br />
<?php
}
?>
<div>
<input type="submit" onclick="return( submit_order( this.form ) );" 
class="button button02" name="formSubmit" value="<?php echo 
$VM_LANG->_('PHPSHOP_ORDER_CONFIRM_MNU') ?>" />
</div>
<?php
if( PSHOP_AGREE_TO_TOS_ONORDER == '1' ) {
echo vmCommonHTML::scriptTag('', "function submit_order( form ) {
if (!form.agreed.checked) {
alert( \"". $VM_LANG->_('PHPSHOP_AGREE_TO_TOS',false) ."\" );
return false;
}
else {
return true;
}
}" );
} else {
echo vmCommonHTML::scriptTag('', "function submit_order( form ) { return 
true; }" );
}
?> 

$_REQUEST è deprecato ormai.
Usa $_POST o $_GET (ma se si tratta di un form, spero sia in post).

 
azz...
ci ho guardato ma non riesco a capire
io in questi casi comincio a fare tante prove mettendo degli
echo "debug xxx"; di qua e di la nel codice per capire come funziona
e di solito questa cosa mi e' molto utile
di sicuro non e' il modo migliore ma e' l'unico modo in cui riesco a
capire come funziona un programma in php scritto da altri
ciao

 su click del pulsante "conferma ordine" che vengono processate le 2 email
Quindi al limite devi guardare nella successiva pagina, in pratica dove 
rimanda quel form, qua creagli un campo hidden in cui mantieni il valore 
di "ricfat" e nella successiva pagina dovresti poter vedere come 
spedisce la mail.
Ciao
-- 
MMM

MMM
si ma non so qual'è la pagina successiva, tu l'hai capito dal mio codice 
postato ieri? 

come assegno al campo note che è già valorizzato nell'email di conferma il 
testo "richiede fattura" oppure "non richiede fattura" se è cliccato il 
ceckbox ricfat?
cioè vorrei che
se ceckbox cliccato
   nomecaponote= nomecaponote & " " &  "richiede fattura"
altrimenti
   nomecaponote= nomecaponote & " " & "non richiede fattura"
grazie a tutti. 

Questo coso non funzia...
Dicevo: ho lo stesso atroce problema.
 
Hai risolto?
 
Grazie
 
L.
 

 Hai risolto?
 
no, non ho risolto.