[PHP] Invio ordine via email

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
26
Buongiorno.

Io devo inviare l'ordine via email ho già creato tutto in php e collegato tutto con il server devo inserire alcune funzioni in più applicare un sconto del 20% se superi 36 euro di ordine
In più se tu sei oltre 4 km dal ristorante non puoi effettuare l'ordine per la consegna a domicilio spero che sapete aiutare Buona giornata
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
da quello che dici e che ho capito la prima cosa mi sembrerebbe semplice
appena calcolato l'importo totale e prima di mostrarlo
PHP:
//......
if($importo_totale<36){
    echo "importo totale: $importo_totale &#8364;";
}else{
    $sconto=0.2;
    echo "importo: $importo_totale &#8364;<br>";
    echo "sconto: ".(int)($sconto*100)." %<br>";
    $importo_totale=$importo_totale*(1-$sconto)
    echo "importo totale: ".number_format($importo_totale, 2, ',', ' ');." &#8364;<br>";
}
//....
per la seconda è più complesso, intendi geolocalizzare l'utente e dalle sue coordinate calcolare la distanza dal tuo esercizio?
se è così il problema non è il calcolo della distanza che è gnocco, ma il ricavare le coordinate dell'utente:
intanto l'utente non deve utilizzare chrome
se usando il pc spesso le coordinate sono errate in quanto le sue coordinate si riferiscono probabilmente al nodo (io abito a 30 kh da parma ma le mie coordinate risultano essere centro città di parma)
se sta usando es. un cellulare oltre che aver consentito la geolocalizzazione, come detto, non deve utilizzare chrome perchè chrome non permette la geolocalizzazione per motivi di privacy.
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
26
Buongiorno.
Per la coordinate sarà l'utente dalla area clienti ad impostare dove abita/per la consegna a domicilio

Invece per lo sconto va inserito dentro alle funzioni giusto?

E per invio ordinare via email?
Grazie mille per la pazienza
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sei un po' vago e quindi devo lavorare di fantasia.
immagino che l'utente faccia la scelta (tipo e quantità) da un form, dove tra l'altro inserirà i suoi dati (nome email indirizzo...)
che tu abbia un db in cui hai il tipo di piatto e il relativo prezzo unitario (questo mi sembra il minimo) ti schematizzo, però tralascio tutti icontrolli
es db: tabella pietanze
id tipo p_unit
1 pizza 5
2 calzone 7
3 tiramisu 3
..ecc..
form invio
PHP:
<form action="conferma.php" method="post">
    tuo nome<input name="nome" type="text"><br>
    <!-- e gli altri dtai-->
<?php
//qui in base alla tabella elenchi
//io costruirei un arrai di array
    $ris=mysqli_query($connessione, "SELECT * FROM pietanze");
    while($riga=mysqli_fetch_assoc($ris)){
        $pietanza=$riga['tipo'];
        $unitario=$riga['p_unit'];
        //qui l'utente inserira es quante pizze e quanti tiramisu vorrà
        echo "$pietanza <input name=\"quantita[$pietanza]\" type=\"text\"> p.u. $unitario &#8364;<br>";
    }
?>
<input type="submit" name="ordina" value="ordina">
</form>
e la parte di invio
PHP:
<?php
//dati di connessione
$nome=$_POST['nome'];
$email=$_POST['email'];
//...
$tot_importo=0;
//leggi le pietanze ordinate
foreach($_POST['quantita'] as $tipo => $quante){
    $ris=mysqli_query($connessione,"SELECT p_unit FROM pietanze WHERE tipo=$tipo");
    //prepari rigo dell'ordine
    $riga=mysqli_fetch_assoc($ris);
    $rigo_ordine[]="ordinate n. $quante $tipo importo parziale: ".$quante*$riga['p_unit']." &#8364;<br>";
    $tot_importo+=$quante*$riga['p_unit'];
}
//qui conviene verificare che $tot_importo > 0, perchè se 0 non ha ordinato nulla
//qui prepari il testo da inviare per email
if($tot_importo<36){
    $importo= "importo totale: $importo_totale &#8364;";
}else{
    $sconto=0.2;
    $importo="importo: $importo_totale &#8364;<br>";
    $importo.="sconto: ".(int)($sconto*100)." %<br>";
    $importo_totale=$importo_totale*(1-$sconto)
    $importo.="importo totale: ".number_format($importo_totale, 2, ',', ' ')." &#8364;<br>";
}
$testo="il sig. $nome ha ordinato:<br>";
foreach($rigo_ordine as $cosa){
    $testo.=$cosa;
}
$testo.=$cosa.$importo."cordiali saluti";//testo pronto per l'invio
//e qui fai l'invio....
?>
poi per inviare puoi usare la funzione mail() o molto meglio la classe phpmailer
https://www.mrw.it/php/inviare-email-classe-phpmailer_7047.html
come detto ho omesso gli indispensabili controlli e non ho formattato il testo da inviare che potrebbe essere inviato in formato html
spero di aver soddisfatto quanto chiedevi

scusa ho fatto un errore di copy/paste da una parte ho scritto $tot_importo e in un'altra $importo_totale correggi sono la stessacosa
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
26
non applica lo sconto


ciao
da quello che dici e che ho capito la prima cosa mi sembrerebbe semplice
appena calcolato l'importo totale e prima di mostrarlo
PHP:
//......
if($importo_totale<36){
    echo "importo totale: $importo_totale &#8364;";
}else{
    $sconto=0.2;
    echo "importo: $importo_totale &#8364;<br>";
    echo "sconto: ".(int)($sconto*100)." %<br>";
    $importo_totale=$importo_totale*(1-$sconto)
    echo "importo totale: ".number_format($importo_totale, 2, ',', ' ');." &#8364;<br>";
}
//....
per la seconda è più complesso, intendi geolocalizzare l'utente e dalle sue coordinate calcolare la distanza dal tuo esercizio?
se è così il problema non è il calcolo della distanza che è gnocco, ma il ricavare le coordinate dell'utente:
intanto l'utente non deve utilizzare chrome
se usando il pc spesso le coordinate sono errate in quanto le sue coordinate si riferiscono probabilmente al nodo (io abito a 30 kh da parma ma le mie coordinate risultano essere centro città di parma)
se sta usando es. un cellulare oltre che aver consentito la geolocalizzazione, come detto, non deve utilizzare chrome perchè chrome non permette la geolocalizzazione per motivi di privacy.
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto hai corretto l'errore che avevo fatto?
poi metti un var_dump per verificare il totale
PHP:
//......
var_dump($tot_importo);//poi lo togli
//qui prepari il testo da inviare per email
if($tot_importo<36){
//.........
e guarda cosa riporta (dovrebbe darti il totale)
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
26
ciao

posta la riga 122 e un paio di quelle prima

1) poi volevo chiedere un altra cosa come faccio ad impostare un numero ordine che parte da 1 senza fine quindi di continuo
2) ho devo dividere i menu quindi antipasti sashimi per il database devo creare ogni cartella con una pagina del menu giusto? perchè se le metto insieme mi esce tutto il menu insieme antipasti

grazie mille per la pazienza
PHP:
<?php
//dati di connessione
$nome=$_POST['nome'];
$email=$_POST['email'];
//...
$tot_importo=0;
//leggi le pietanze ordinate
foreach($_POST['quantita'] as $tipo => $quante){
    $ris=mysqli_query($connessione,"SELECT menu FROM menu WHERE id =$id);
    //prepari rigo dell'ordine
    $riga=mysqli_fetch_assoc($ris);
  // riga 122:  
$rigo_ordine[]="ordinate n. $quante $tipo importo parziale"$quante*$riga[menu]";
    $tot_importo+=$quante*$riga[menu];
}
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto correggi così
PHP:
$rigo_ordine[]="ordinate n. $quante $tipo importo parziale".$quante*$riga[menu];
poi per il resto abbi un minuto di pazienza
 

ANDREA20

Utente Attivo
25 Giu 2016
145
1
18
26
ciao
intanto correggi così
PHP:
$rigo_ordine[]="ordinate n. $quante $tipo importo parziale".$quante*$riga[menu];
poi per il resto abbi un minuto di pazienza

l'errore c'è comunque

Parse error: syntax error, unexpected ']', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in/web/htdocs/www.civiaggio.it/home/ristoranti/Milano152/Sushibarfirenze/carrello.php on line 118

$rigo_ordine[]="ordinate n. $quante $tipo importo parziale".$quante*$riga[menu];
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
guarda che non è semplice darti indicazioni senza sapere come hai strutturato le tabelle e come il form (che chiami carrello) con cui il cliente fa l'ordine
come già detto quante e come strutturate le tabelle è il primo passo e il più importante, se fatte male ti incasini.
 
Discussioni simili
Autore Titolo Forum Risposte Data
ANDREA20 [MySQL] [PHP] Invio email ordine MySQL 12
C verifica e invio ordine php PHP 19
M Invio dati database via email php PHP 0
K [php]form invio dati PHP 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
G Invio form con PHP PHP 3
A invio massivo dati a file php Javascript 4
P Funzione jQuery Ajax invio file a php jQuery 1
G creazione menu a tendina e invio a pagina php PHP 1
U PHP bottone per invio mail o ritorno al form PHP 15
G Invio mail con php da dati prelevati da un database PHP 9
L [PHP] Invio Immagini PHP 1
AC1 [PHP] Invio Mail PHP 18
I [PHP] Invio sms multipli PHP 4
A [PHP] Invio automatico dati da form PHP 6
ANDREA20 [PHP] Modulo email invio PHP 5
Shyson [PHP] Codice iscrizione e invio avviso nuovi articoli PHP 3
Tommy03 Errore invio email con PHP PHP 1
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
A [PHP] errore 404 e invio mai path pagina con link interrotto PHP 2
A [PHP] Invio messaggio a tutti gli iscritti PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1
C [PHP] Problema Invio Email Elseif PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
Tommy03 Invio email con PHP PHP 3
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
A [PHP] Invio MP a destinatari multipli PHP 6
paloppa [PHP] Invio mail da form dubbio PHP 17
bubino8 [PHP] Recupero input senza invio PHP 1
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
S Problema in PHP per invio file XML - RISOLTO- PHP 8
O invio dati suddiviso in con php PHP 2
F Form mail php errore invio PHP 5
K [PHP] Invio dati tramite url PHP 2
Punix [PHP] problema script invio e-mail PHP 2
A [PHP] Invio email quando viene visitata una pagina PHP 7
cobra_72 [PHP] problema invio multiplo allegati mail PHP 21
Z Limite invio newsletter con PHP - mail() PHP 4
S Problema invio form php/html PHP 3
Samuele Ronzani [PHP] Validazione e invio campi form. PHP 7
Matteo Lorenzon [PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email WordPress 1
E Rimuovere "dati in memoria" dopo invio mail [PHP] PHP 18
ComfortablyNumb [PHP] Invio sms automatici PHP 1
ANDREA20 [PHP] Non riesco ad impostare reset password invio via email PHP 6
Y INVIO AUTOMATICO EMAIL CON PHP PHP 4
asevenx [PHP] Errore tasto submit per invio dati non funziona PHP 5
R [PHP] [HTML] Creare script invio modulo contatti PHP 2
F Invio automatico mail php PHP 0
Francesco Polese Errore form invio mail+php PHP 22

Discussioni simili