корзина для отправки по электронной почте

Я использую simplecartjs, чтобы создать корзину на своем веб-сайте, где вы можете выбрать элемент и отправить его в корзину. ... следующим шагом будет процесс оформления заказа, но по деловым причинам процесс оформления заказа не будет добавлен, и будет запрошена простая форма с именем, адресом электронной почты и датой получения заказа. Теперь заказ должен быть отправлен на адрес электронной почты (в компании), который будет выполнять заказ.

Вопрос: как отправить содержимое корзины в тело письма или вложением?


person menardmam    schedule 16.02.2010    source источник
comment
Какой язык/сервер вы используете?   -  person Daniel A. White    schedule 19.02.2010


Ответы (2)


Вы должны добавить новый метод оформления заказа в 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);
}

Это создаст новый элемент формы и отправит данные корзины в sendjs.php. Включите этот метод оформления заказа, установив me.checkoutTo = 'Email' в параметрах simplecart.

Теперь создайте новый файл 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');
?>

Это отправит сообщение электронной почты и перенаправит вас на страницу Thankyou.html, которую вы также должны создать.

person Goran Rakic    schedule 19.02.2010
comment
Да плевать на последний пост. Догадаться. Я добавил simpleCart.empty(); перед отправкой формы - person jsweazy; 27.03.2011

Это добавит заказ по электронной почте, дополнительные поля для пользователя «Телефон и адрес»,

Проверьте во время CheckOut, зарегистрирован ли пользователь, если нет, будет перенаправлено на регистрацию.

БУДЕТ ОЧИСТИТЬ Корзину только после отправки успешного заказа по электронной почте.

Отправит 2 электронных письма владельцу магазина «[email protected]» и электронной почте пользователя, чтобы он увидел заказ

Нужно будет создать новую страницу для части «Спасибо» после успешного заказа.

simplecartjs: в моей примерно строка 288

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; }   ?>

Вам понадобится плагин Register Plus для wordpress, чтобы добавить 2 дополнительных поля к пользователю «телефон и адрес»
обязательно отметьте
Добавить поле регистрации
Добавить поле профиля
Обязательно

person RaVeN    schedule 14.07.2011