2010-02-16 4 views
1

J'utilise simplecartjs pour faire un panier sur mon site où vous pouvez sélectionner l'élément et l'envoyer à votre panier ... étape suivante, sera le processus de commande, mais pour des raisons commerciales, aucun processus de commande ajouter, et un formulaire simple avec le nom et l'email et la date pour la cueillette de la commande sera demander. Maintenant, la commande doit être envoyée à une adresse e-mail (à l'entreprise) qui remplira la commande.shopping cart to email

La question: comment envoyer le contenu du panier à un corps de l'e-mail ou en pièce jointe?

+1

Quelle langue/serveur sont vous utilisez? –

Répondre

1

Vous devez ajouter une nouvelle méthode de paiement pour simplecartjs:

me.emailCheckout = function() {  

    itemsString = ""; 
    for(var current in me.items){ 
     var item = me.items[current]; 
     itemsString += item.name + " " + item.quantity + " " + item.price + "\n"; 
    } 

    var form = document.createElement("form"); 
    form.style.display = "none"; 
    form.method = "POST"; 
    form.action = "sendjs.php"; 
    form.acceptCharset = "utf-8"; 
    form.appendChild(me.createHiddenElement("jcitems", itemsString)); 
    form.appendChild(me.createHiddenElement("jctotal", me.total)); 
    document.body.appendChild(form); 
    form.submit(); 
    document.body.removeChild(form); 
} 

Cela va créer nouvel élément de formulaire et soumettre des données de panier à sendjs.php. Activez cette méthode de paiement en définissant me.checkoutTo = 'Email' dans les options simplecart.

Maintenant, créez un nouveau fichier sendjs.php:

<?php 
    $to  = '[email protected]'; 
    $subject = 'the subject'; 
    $jcitems = $_POST['jcitems']; 
    $headers = 'From: [email protected]' . "\r\n" . 
       'Reply-To: [email protected]' . "\r\n" . 
       'X-Mailer: PHP/' . phpversion(); 
    mail($to, $subject, $jcitems, $headers); 
    Header('Location: thankyou.html'); 
?> 

Ceci enverra le message électronique et rediriger vers la page merci.html vous devez également créer.

+0

Cela fonctionne bien, mais est-il possible de vider le panier? – jsweazy

+0

Nevermind sur ce dernier post. Deviner. J'ai ajouté simpleCart.empty(); avant le formulaire soumis – jsweazy

2

Cela ajoutera l'ordre e-mail, les champs suplimentary à l'utilisateur « Téléphone et Adresse »,

Vérifiez pendant l'extrayez de la l'utilisateur est enregistré sinon redirigera à l'enregistrement.

CLEAR Panier d'achat seulement après l'envoi d'une commande par courriel réussie.

Prêt à envoyer 2 e-mail au propriétaire du magasin « [email protected] » et à l'adresse électronique des utilisateurs afin qu'il voit l'ordre

aura besoin de faire une nouvelle page pour le remerciement partie après l'ordre succesful est fait

simplecartjs: ligne autour de 288 est dans le mien

me.emailCheckout = function() {  

    itemsString = ""; 
    for(var current in me.items){ 
     var item = me.items[current]; 
     itemsString += item.name + " " + item.quantity + " " + item.price + "\n"; 
    } 

    var form = document.createElement("form"); 
    form.style.display = "none"; 
    form.method = "POST"; 
    form.action = "sendjs.php"; 
    form.acceptCharset = "utf-8"; 
    form.appendChild(me.createHiddenElement("jcitems", itemsString)); 
    form.appendChild(me.createHiddenElement("jctotal", me.total)); 
    document.body.appendChild(form); 
    form.submit(); 
    document.body.removeChild(form); 
} 

sendjs.php

<?php require(dirname(__FILE__) . '/wp-load.php'); 
    /* cheking is user is logged in*/ 
    if (is_user_logged_in()) { 
    get_currentuserinfo(); /* getting user details*/ 

/* sending e-mail to the shop email */ 
     $to  = '[email protected]'; 
     $subject = 'New Order'; 
     $jcitems = " Name: " . $current_user->user_lastname . 
        " \n First Name: " . $current_user->user_firstname . 
        " \n Email: " . $current_user->user_email . 
        " \n Phone: " . $current_user->phone . 
        " \n Adress: " . $current_user->adress ; 
     $headers = 'From: [email protected]' . "\r\n" . 
        'Reply-To: [email protected]' . "\r\n" . 
        'X-Mailer: PHP/' . phpversion(); 
     mail($to, $subject, $jcitems, $headers); 

/* sending e-mail with the order to the users email*/   

     $to  = $current_user->user_email; 
     $subject = 'Order copy from Domain'; 
     $jcitems = "Thank you for you order. Below you have your ordered products". 
        " \n ORDER: \n\n " . $_POST['jcitems'] . "Total: " . $_POST['jctotal'] . " USD" . 
        "\n\n http://www.domain.com \[email protected]"; 
     $headers = 'From: [email protected]' . "\r\n" . 
        'Reply-To: [email protected]' . "\r\n" . 
        'X-Mailer: PHP/' . phpversion(); 
     mail($to, $subject, $jcitems, $headers); 
     /*Clearing the cart info after succesfull order is made*/ 
     setcookie ("simpleCart", "", time() - 3600); 
     /*redirecting user to Thank you page from Wordpress*/ 
    Header('Location: http://www.domain.com/thank_you/'); } 

    else { /*sending user to register*/ 
     header('Location: http://www.domain.com/wp-login.php?action=register') ; exit; } ?> 

Vous devez inscrire le plugin Plus pour wordpress ajouter les 2 fiels supplémentaires à l'utilisateur « téléphone et l'adresse »
assurez-vous de vérifier
Ajouter l'enregistrement Champ
Ajouter le profil Champ
requis