Prestashop 1.7, купить в 1 клик (быстрый заказ)

30 июня 2021

Вот рецепт, как в Prestashop 1.7 сделать возможность быстрого заказа бесплатно. Работает без перезагрузки страницы, отправляет на указанную почту Имя, Контактный телефон, Урл откуда отправлена форма, Комментарий 

В корне сайта создайте файл send.php с таким содержимым

<?
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' && !empty($_POST['name'])) {
    $message = 'Имя: ' . $_POST['name'] . '<br-->';
    $message .= 'Телефон: ' . $_POST['phone'] . '<br>' . $_SERVER['HTTP_REFERER'] . '<br>';
    if(!empty($_POST['text'])) {
        $message .= 'Текст: ' . $_POST['text'] . '<br>';
    }
        $mailTo = "info@site.site"; // Ваш e-mail
    $subject = "Быстрый заказ из магазина"; // Тема сообщения
    $headers= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
    $headers .= "From: shop@site.site <shop@site.site>\r\n";
    if(mail($mailTo, $subject, $message, $headers)) {
        echo "Заказ принят, ".$_POST['name'].", мы свяжемся с вами в самое ближайшее время!"; 
    } else {
        echo "Сообщение не отправлено!"; 
    }
}
?></shop@site.site>

Конечно info@site.site и shop@site.site поменяйте на свои значения (куда и от кого будет приходить почта с быстрыми заказами)

В файле /ваш_сайт/themes/ваша_тема/templates/catalog/product.tpl в нужном месте добавьте быстрый заказ. В примере он спрятан в спойлер html5, но вы можете подогнать отображение под свои нужды

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
    $(document).ready(function () {
    $("form").submit(function () {
    // Получение ID формы
    var formID = $(this).attr('id');
    // Добавление решётки к имени ID
    var formNm = $('#' + formID);
    $.ajax({
    type: "POST",
    url: '/send.php',
    data: formNm.serialize(),
    beforeSend: function () {
    // Вывод текста в процессе отправки
    $(formNm).html('<p style="text-align:center">Отправка...</p>');
    },
    success: function (data) {
    // Вывод текста результата отправки
    $(formNm).html('<p style="text-align:center">'+data+'</p>');
    },
    error: function (jqXHR, text, error) {
    // Вывод текста ошибки отправки
    $(formNm).html(error);
    }
    });
    return false;
    });
    });
</script>

<details>
    <summary><div class="btn btn-primary" style="text-transform:none!important;">Купить в 1 клик (быстрый заказ)</div></summary>
    <div style="padding:10px; border:1px solid #f5f5f5; background:#f4c5d8;">
        <i>заполните форму, мы перезвоним и уточним все детали заказа</i>
        <form id="feedback-form" action="">
            <input type="text" class="form-control mb-1" name="name" required="" placeholder="Ваше имя">
            <input type="tel" class="form-control mb-1" name="phone" required="" placeholder="Телефон для связи">
            <textarea name="text" class="form-control mb-1" placeholder="Комментарий (необязательно)"></textarea>
            <input type="submit" class="btn btn-primary" style="text-transform:none!important;" name="submit" value="Оформить быстрый заказ">
        </form>
    </div>
</details>

Собственно все. 

Рабочий пример можно глянуть на сайте https://belizna.flexplace.site/ на любой странице товара

Ну и само собой, эту штуковину можно прикрутить не только к Престашоп, а и к любому другому движку)

Если хотите, мы поможем Вам в этом вопросе за небольшое вознаграждение

>>> ОБРАТИТЬСЯ ЗА ПОМОЩЬЮ <<<