Перейти к содержанию

Рекомендуемые сообщения

Добрый вечер!  
Сайт: https://mertenshop.com.ua
Ostore 2.3
Сделал форму для быстрого заказа, но не получается отправить данные на почту. Помогите новичку, пожалуйста! 
Работает скрипт открытие и закрытие popup окошока, а с отправкой письма на почту не выходит. Я не могу понять, где проблема, потому что отдельно от всего сайта всё работает и приходит (https://mertenshop.com.ua/test/html-form.html) , а в шапке сайта ничего не происходит (

<div class="callback-request">
								<div class="callback-button" rel="popup1"> Заказать звонок </div>

							<!--POPUP-->
							<div class="overlay_popup"></div>	
						<div class="popup-container"id="popup1">
							
							<form class="callback-form" id="callback-form" name="callback-form">
									<div class="form-row">
										<label class="name-icon" for="name"></label>
										<input type="text" class="send-field" name="name" placeholder="Ваше имя" value="" id="name">
									</div>
									<div class="form-row">
										<label class="phone-icon" for="phone"></label>
										<input type="text" placeholder="Ваш телефон" value="" id="phone" name="phone"  class="send-field phone">
									</div>

						<div class="form-submit">
							<input type="submit" value="заказать" class="submit-button send-field" name="callback_submit">
						<div class="results1"></div>

								<div class="popup-form-preload"></div>
							</form>
							</div>
						</div>
						<div class="popup-result">
							<div class="close">+</div>
								<div class="popup-result-content">Ваш запрос успешно отправлен!</div>
						</div>
						<!--POPUP-->
					</div>
<?php

$recepient = "sale@mertenshop.com.ua";
$siteName = "Ajax-форма";

$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$message = "Имя: $name \nТелефон: $phone";

$pagetitle = "Заявка с сайта \"$siteName\"";
 mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient"); 

?>
//открыть и закрыть popup 
	$('.callback-button').click(function() {
    var popup_id = $('#' + $(this).attr("rel"));
    $(popup_id).show();
    $('.overlay_popup').show();
})
$('.overlay_popup').click(function() {
    $('.overlay_popup, .popup-container').hide();
})
// Отправка заявки 
$(document).ready(function() {
	$('#callback-form').submit(function() { // проверка на пустоту заполненных полей. Атрибут html5 — required не подходит (не поддерживается Safari)
		if (document.form.name.value == '' || document.form.phone.value == '' ) {
			valid = false;
			return valid;
		}
		$.ajax({
			type: "POST",
			url: "/formpopup/mail.php",
			data: $(this).serialize()

		}).done(function() {
			
			$(this).find('input').val('');
			$('#callback-form').trigger('reset');
		});
		return false;
	});
});
/*
// Закрыть попап «спасибо»
$('.close').click(function() { // по клику на крестик
	$('.popup-result').fadeOut();
});

$(document).mouseup(function (e) { // по клику вне попапа
    var popup = $('.popup');
    if (e.target!=popup[0]&&popup.has(e.target).length === 0){
        $('.popup-result').fadeOut();
    }
});*/

// Маска ввода номера телефона (плагин maskedinput)
$(function($){
	$('[name="phone"]').mask("+38(999) 999-9999");
});

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в opencart есть встроенная библиотека для отправки писем, а SMTP почта настраивается в админке.

Возьмите пример отправки письма, например из catalog/model/checkout/order.php

$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($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($this->load->view('mail/order', $data));
$mail->setText($text);
$mail->send();

так в 2018 году отправляются письма.

а о функции mail лучше забыть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, TeslaFeo сказал:

в opencart есть встроенная библиотека для отправки писем, а SMTP почта настраивается в админке.

Возьмите пример отправки письма, например из catalog/model/checkout/order.php


$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($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($this->load->view('mail/order', $data));
$mail->setText($text);
$mail->send();

так в 2018 году отправляются письма.

а о функции mail лучше забыть.

А есть документация по встроенной библиотеке, а то нужно разобраться сначала) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, Sheedy сказал:

А есть документация по встроенной библиотеке, а то нужно разобраться сначала) 

это PHPMailer. По нему есть инфа в гугле :)

По названиям методов понятно, что зачем нужно.

На деле, всё примерно так:
 

$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($this->config->get('config_email'));  // email получателя.
$mail->setFrom($this->config->get('config_email'));  //  email отправителя.
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); // Имя отправителя
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));  //  Тема письма
$mail->setHtml($this->load->view('mail/order', $data));  html шаблон письма
$mail->setText($text); //  альтернативный текст письма. Будет отображаться в случае, если почновый клиент получателя не поддерживает html письма.
$mail->send();

Вот и вся документация :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.