Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

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

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites
32 минуты назад, fanatic сказал:

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

 

Там похоже ошибка вида $message = '...', вместо $message += '...'

Link to post
Share on other sites

Форма:
 

<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");

?>

 

Link to post
Share on other sites

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();
?>

 

Link to post
Share on other sites

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


<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">

 

Link to post
Share on other sites

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";

 

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

Link to post
Share on other sites
6 minutes ago, spectre said:

 

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

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

Link to post
Share on other sites

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

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

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

  • +1 1
Link to post
Share on other sites
2 minutes ago, spectre said:

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

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

Link to post
Share on other sites

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

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

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

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

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

  • +1 1
Link to post
Share on other sites
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");

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

Link to post
Share on other sites
1 час назад, Alex522 сказал:

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

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

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

Link to post
Share on other sites
2 часа назад, Alex522 сказал:

Undefined index: product_id

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

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

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.