Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Отправка содержимого $products на почту через mail.php


Recommended Posts

День добрый! Есть задача, чтобы все содержимое корзины, а именно название товара ($product['name'];), кол-во ($product['quantity'];), отсылалось на почту через форму mail.php, в обход стандартной процедуры заказа.

Всё работает, НО отправляется только 1 товар, т. е. если в корзине его > 1 то на почту в заказе из содержимого ($products) отправляется только последний.

Каким способом выполнять проверку в корзине, либо массив c $products отправить на почту ?

Надіслати
Поділитися на інших сайтах


36 минут назад, Alex522 сказал:

Всё работает, НО отправляется только 1 товар, т. е. если в корзине его > 1 то на почту в заказе из содержимого ($products) отправляется только последний.

код формирования сообщения, ускорит помощь

Надіслати
Поділитися на інших сайтах

Форма:
 

<form action="/catalog/view/theme/orangex/send.php" method="post" enctype="multipart/form-data">
  <input type="hidden" name="product" value="<?php echo $product['name']; ?>">
  <input type="hidden" name="quantity" value="<?php echo $product['quantity']; ?>">
  <input type="hidden" name="model" value="<?php echo $product['model']; ?>">
  <input class="form-input" type="text" name="username" placeholder="Ваше имя" required>
  <input class="form-input" type="text" name="phone" placeholder="Введите ваш телефон" required>
  <input class="form-input" type="text" name="adress" placeholder="Введите адрес доставки" required>
  <input class="form-input" type="text" style="height:65px;" name="comment" placeholder="Комментарий к заказу">
  <button class="btn btn-primary-n" onclick="$('#cart').load('index.php?route=checkout/cart&remove_all'); window.location.assign('index.php?route=checkout/cart&remove_all');">Оформить заказ</button>
</form>

 

 

send.php

<?
$name=$_POST['username'];
$product=$_POST['product'];
$model=$_POST['model'];
$kolvo=$_POST['quantity'];
$phone=$_POST['phone'];
$adress=$_POST['adress'];
$comment=$_POST['comment'];
$headers=$_POST['headers'];
$toMail = '***@gmail.com';
$headers  = "From: $name <$product> \n";

mail ("$toMail", "$product", 
"\nИмя : $name
\nПродукт : $product, категория : $model - Количество: $kolvo;
\nАдрес: $adress;
\nТелефон: $phone;
\nКомментарий: $comment\n\n", "$headers");

?>

 

Надіслати
Поділитися на інших сайтах


54 минуты назад, Alex522 сказал:

$name=$_POST['username']; $product=$_POST['product']; $model=$_POST['model'];

что присвоили, то и отправляет.


<input type="hidden" name="products[<?php echo $product['product_id']; ?>][name]" value="<?php echo $product['name']; ?>">
<input type="hidden" name="products[<?php echo $product['product_id']; ?>][quantity]" value="<?php echo $product['quantity']; ?>">
<input type="hidden" name="products[<?php echo $product['product_id']; ?>][model]" value="<?php echo $product['model']; ?>">

<?php
$html = '<table>';
$html .= '<thead>';
$html .= '<tr>';
$html .= '<th>Наименование</th>';
$html .= '<th>Модель</th>';
$html .= '<th>Количество</th>';
$html .= '<tr>';
$html .= '</thead>';
$html .= '<tbody>';

foreach ($this->request->post['products'] as $product) {
    $html .= '<tr>';
    $html .= '<td>' . $product['name'] . '</td>';
    $html .= '<td>' . $product['model'] . '</td>';
    $html .= '<td>' . $product['quantity'] . '</td>';
    $html .= '</tr>';
}

$html .= '</tbody>';
$html .= '</table>';

$subject = 'subject';
$email = '****@gmail.com';

$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
$mail->smtp_username = $this->config->get('config_mail_smtp_username');
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
$mail->smtp_port = $this->config->get('config_mail_smtp_port');
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

$mail->setTo($email);
$mail->setFrom($this->config->get('config_email'));
$mail->setSender($email);
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($html);
$mail->send();
?>

 

Надіслати
Поділитися на інших сайтах

Сообщение не приходит на почту, далее смотрю в исходном коде:


<input type="hidden" name="products[<b>Notice</b>: Undefined index: product_id in <b>/home/n/***/***/public_html/catalog/view/theme/default/template/checkout/cart.tpl</b> on line <b>114</b>][name]" value="iPhone 6 128Gb Gold (MG4E2RU/A)">
<input type="hidden" name="products[<b>Notice</b>: Undefined index: product_id in <b>/home/n/***/***/public_html/catalog/view/theme/default/template/checkout/cart.tpl</b> on line <b>115</b>][quantity]" value="1">
<input type="hidden" name="products[<b>Notice</b>: Undefined index: product_id in <b>/home/n/***/***/public_html/catalog/view/theme/default/template/checkout/cart.tpl</b> on line <b>116</b>][model]" value="iPhone 6">

 

Надіслати
Поділитися на інших сайтах


3 часа назад, Alex522 сказал:

<? $name=$_POST['username']; $product=$_POST['product']; $model=$_POST['model']; $kolvo=$_POST['quantity']; $phone=$_POST['phone']; $adress=$_POST['adress']; $comment=$_POST['comment']; $headers=$_POST['headers']; $toMail = '***@gmail.com'; $headers = "From: $name <$product> \n";

 

бросьте программирование и никогда больше этим не занимайтесь, то что вы делаете это варварство

Надіслати
Поділитися на інших сайтах

6 minutes ago, spectre said:

 

бросьте программирование и никогда больше этим не занимайтесь, то что вы делаете это варварство

Вы зашли чтобы потратить свое время и оставить свой пустой отзыв? Так вас никто и не спрашивал. Не вижу смысла с вами спорить и тратить свое время

Надіслати
Поділитися на інших сайтах


2 минуты назад, Alex522 сказал:

Вы зашли чтобы потратить свое время и оставить свой пустой отзыв? Так вас никто и не спрашивал. Не вижу смысла с вами спорить и тратить свое время

а я с вами не спорю, я вам говорю что из-за вашей рукожопости могут пострадать люди и лучше этим не заниматься, от греха подальше

  • +1 1
Надіслати
Поділитися на інших сайтах

2 minutes ago, spectre said:

а я с вами не спорю, я вам говорю что из-за вашей рукожопости могут пострадать люди и лучше этим не заниматься, от греха подальше

Было бы лучше, если бы вы потерялись с топика

Надіслати
Поділитися на інших сайтах


Только что, Alex522 сказал:

Было бы лучше, если бы вы потерялись с топика

Я думаю что хамить малознакомым людям из-за монитора это плохая идея, я может немного груб, но то что вы делаете это действительно варварство, вы б хоть посмотрели как заказ отправляется, там все это есть

а без проверки переменных POST заказчику которому вы пилите эту мегафичу зальют парочку шеллов и вас вывезут в лес за профнепригодность, я примерно это хотел сказать

перед тем как просить помощи нужно попытаться сделать самому, да и вам больше пользы, научитесь

  • +1 1
Надіслати
Поділитися на інших сайтах

1 час назад, Alex522 сказал:

Сообщение не приходит на почту, далее смотрю в исходном коде:

а вы думали я дал рабочий код, только скопировал и вставил?

я показал пример,  как вывести в форме несколько товаров и потом собрать данные 

а у вас что?

5 часов назад, Alex522 сказал:

<input type="hidden" name="product" value="<?php echo $product['name']; ?>">

а следующий товар, тоже с name="product".?

ну а за это

5 часов назад, Alex522 сказал:

$name=$_POST['username']; $product=$_POST['product'];

вам уже все правильно рассказал@spectre

совет.  прежде чем лезть в движок подтяните html. php.  тогда отпадет множество вопросов.

и зачем это

5 часов назад, Alex522 сказал:

mail ("$toMail", "$product", "\nИмя : $name \nПродукт : $product, категория : $model - Количество: $kolvo; \nАдрес: $adress; \nТелефон: $phone; \nКомментарий: $comment\n\n", "$headers");

в движке есть инструменты для отправки сообщений.

Надіслати
Поділитися на інших сайтах

1 час назад, Alex522 сказал:

свое время и оставить свой пустой отзыв?

очень даже не пустой.  я бы к примеру, как минимум, поинтересовался что плохого в коде, и почему так делать нельзя.

а вы, как я понял, ждете готовый код.  тогда в другой радел.

Надіслати
Поділитися на інших сайтах

2 часа назад, Alex522 сказал:

Undefined index: product_id

неопределенный индекс.

я просто  предположил, если у вас есть $product['name'],  то должен быть     $product['product_id']

мне отсюда не видно? что та у вас в  массиве  $product

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.