Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Проблема с отправкой обратной связи


 Поделиться

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

Начал делать на сайте форму обратной связи 

Вот мой код :

 

---

 

 

<div class="vin-block" id="vin-block">
    <div class="container">
        <div id="vin-overlay">
            <div class="popup">
                <div class="close-popup" onclick="document.getElementById('vin-overlay').style.display='none';"></div>
                <div id="vin-welcome">
                    
                </div>
            </div>
        </div>
      <div class="title-vin-block" name="vin-block">
        <div class="main-title-vin-block">Якщо вам потрібно дізнатись про деталь автомобіля по VIN номеру, тоді звертайтесь до нас</div>
        <div class="subtitle-vin-block">Проглядаємо як Американські, так і Європейські авто</div>
      </div>
      <form method="post" action="" enctype="multipart/form-data" id="vin-form">
        <!-- Имя пользователя -->
        <div class="group-of-form">
          <label for="name" class="main-label">Як ми можемо до вас звертатись ?</label>
          <input id="name" type="text" name="name" class="form-input" value="" placeholder="Введіть ім'я" minlength="2"
            maxlength="30" required="required">
        </div>
        <!-- Номер пользователя -->
        <div class="group-of-form">
          <label for="number" class="main-label">На який номер телефону вам надіслати інформацію ? </label>
          <input id="number" type="text" name="number" required="required" class="form-input" value=""
            placeholder="Номер телефону" minlength="10" maxlength="14">
        </div>
      <!-- Vin номер машины -->
        <div class="group-of-form">
          <label for="vin" class="main-label">Введіть ваш VIN номер автомобіля до якого потрібна запчастина </label>
          <input id="vin" type="text" name="vin" required="required" class="form-input" value=""
            placeholder="Введть Vin номер вашої машини" minlength="15" maxlength="17">
        </div>
        <!-- Сообщение пользователя -->
        <div class="group-of-form">
          <label for="message" class="main-label">Ваші побажання до пошуку за VIN номером (не обов'язково)</label>
          <textarea id="message" name="message" class="form-control" rows="10"
            placeholder="Введіть ваші побажання" minlength="20" maxlength="500"
            ></textarea>
        </div>
         <div id="invalid-feedback"></div>
        <!-- Кнопка для отправки формы на сервер -->
        <div class="form-submit">
          <button id="sendForm">Надіслати</button>
        </div>
    </form>
    </div>
</div>
<script>
    //Send Form    
    $('#sendForm').on("click",function(){        
        var form = $("#vin-form").val().trim();
        var name = $("#name").val().trim();
        var phone = $("#number").val().trim();
        var vin = $("#vin").val().trim();
        var message = $("#message").val().trim();
        
        if(name == ""){
            $("#invalid-feedback").text("Невірно вказане ім'я (від 2 до 30 символів")
        }else if(phone == ""){
            $("#invalid-feedback").text("Невірно вказаний номер телефону (від 10 до 14 символів)")
        }else if(vin == ""){
            $("#invalid-feedback").text("Невірно вказаний VIN номер")
        }else{
             $("#invalid-feedback").text("")
                $.ajax({            
                    url:'index.php?route=information/contact/ajaxSend',            
                    data: form.serialize(),            
                    type:'POST',            
                    dataType:'json',
                    beforeSend: function(){
                        $("#sendForm").prop("disabled", true);
                    },
                    success: function(json){
                        if(json["error"]){                    
                            $("#sendForm").prop("disabled", false);                    
                            $("#vin-form").trigger("reset");                    
                            $("#vin-overlay").style.display = 'block';                  
                            $('#vin-welcome').text("Виникли проблеми з відправкой спробуйте ще раз або будь-ласка пізніше")                
                        }  
                        if(json["success"]){                    
                            $("#sendForm").prop("disabled", false);                    
                            $("#vin-form").trigger("reset");                    
                            $("#vin-overlay").style.display = 'block';                  
                            $('#vin-welcome').text("Дякую, ми зв'яжемось з вами найближчим часом")                
                        }            
                    }        
                })    
            }
        })
</script>

 

 

После в contact.php прописал функцию ajaxSend 

Вот код :

 

 

---

 

 

public function ajaxSend() {

        if (($this->request->server['REQUEST_METHOD'] == 'POST')) {
            
            $html = "<h3>Mail from:".$this->request->post['name']."</h3>";
            $html .= "<p>Phone number:".$this->request->post['phone']."</p>";
            $html .= "<p>VIN number:".$this->request->post['vin']."</p>";
            $html .= "<p>Message:".$this->request->post['message']."</p>";
            
             $mail = new Mail($this->config->get('config_mail_engine'));
            $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($this->request->post['name']);
            $mail->setSubject(html_entity_decode('Тема письма от '.$this->request->post['name'], ENT_QUOTES, 'UTF-8'));
            $mail->setHtml($html);
            $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
            $mail->send();
            $json['success'] = true;

            $this->response->setOutput(json_encode($json));

                

        }

    }

 

---

 

Но после перестаёт работать форма на странице контакты хотя эту форму я и не трогал.

 

Может кто-то сталкивался с подобными проблемами ? На форуме темы есть но решения не видать 

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


Може увімкнути дебаг і подивитися, що де не так?

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

image.png.5f740f0856a3e86e14c42d49b7815704.png

image.png.9994af4115dc886f56967f11958181fe.png

 

Уже есть прогрес, сменил код и про вводе в форму значений и нажав отправить то выводится "Сообщение успешно отпралено" Но на почте так ничего и нет, также когда и клиент регистрируется и отправляет сообщение со страницы контакты. В чём проблема, что на почту ничего не приходит. Может ли причиной быть настройка сео ?

 

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


11.01.2023 в 12:30, Flint2000 сказал:

Може увімкнути дебаг і подивитися, що де не так?

С дебагом не знаю как правильно отслеживать это 

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


В 11.01.2023 в 17:43, Lucider105 сказав:

С дебагом не знаю как правильно отслеживать это 

То ваш код це копіпаст?

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

Ні не копіпаст. Сделал отправку по смтп и начало отправляться со страницы контакты и со всего сайта начали приходить сообщения. А форма начала тоже отправлятся после некоторых изменений

 

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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