На форуме 9558 тем, 76452 сообщений, 44664 участников
тема · 2 057 просмотров · 11 ответов

Не работает форма в контактах, opencart Version 3.0.2.0 (rs.4), в файле contact.php нет...

Ошибки и их решения
читают: 0 участников и 1 гость
порядок
1 фев 2019 08:53#1
Не работает форма в контактах, opencart Version 3.0.2.0 (rs.4), в файле contact.php нет...даже text_message который есть в catalog/language/ru-ru/information/contact.php :
$_['text_message'] = '<p>Ваше сообщение успешно отправлено владельцу магазина!</p>'; на 14 строке.

добавлял перед:

$data['continue'] = $this->url->link('common/home'😉;

это:

$data['text_message'] = $this->language->get('text_message'😉;

все равно не работает! Даже поле об успешной отправке не открывается! Перезагружается страница и поля остаются заполненными, на почте $this->config->get('config_email'😉 письма нет! Пробовал многое! Вплоть до того что явно писал функцию mail(); даже она ничего не отправляет, и не будет, так как ощущение что не происходит редирект:

$this->response->redirect($this->url->link('information/contact/success'😉);

так как форма не отправляется судя по тому что не появляется сообщение об успешной отправке,
ни то что это сообщение даже поля нет! это явный баг? или нет?
Вложения · 2
даже так письмо не приходит.pngне работает форма и письма 2.png
1 фев 2019 09:18#2
iv8383 написал(а): ↑функцию mail(); даже она ничего не отправляет,

Майл проверяют не на файлах движка, а простым размещением в корне сайта php файл с одной вашей строкой.

iv8383 написал(а): ↑Не работает форма в контактах, opencart Version 3.0.2.0 (rs.4),

Работает. Т.е не работает только у вас.

Попробуйте в \system\tweak.ocmod.xml
заменить
php
<file path="catalog/view/theme/default/template/information/contact.twig">

на это
php
<file path="catalog/view/theme/*/template/information/contact.twig">


Сохранить. Обновить кеш модификаторов. После этого посмотреть на форму. Рядом с кнопкой Оправить появится поле чекбокса для согласия. Если не появится, то вам проще просто в модификаторе удалить часть кода с 290-298 строку
1 фев 2019 10:07#3
Ravilr написал(а): ↑Майл проверяют не на файлах движка, а простым размещением в корне сайта php файл с одной вашей строкой.


Работает. Т.е не работает только у вас.

Попробуйте в \system\tweak.ocmod.xml
заменить
php
<file path="catalog/view/theme/default/template/information/contact.twig">

на это
php
<file path="catalog/view/theme/*/template/information/contact.twig">


Сохранить. Обновить кеш модификаторов. После этого посмотреть на форму. Рядом с кнопкой Оправить появится поле чекбокса для согласия. Если не появится, то вам проще просто в модификаторе удалить часть кода с 290-298 строку


Появилась галочка, форма заработала, но галочка мне там не нужна! И в смысле удалить с 290-298 строку ?

вы предлагали кусок кода удалить, а кусок с продолжением оставить?


<!-- Приводим немного сайт к 152 ФЗ -->
<file path="catalog/controller/information/contact.php">

<operation>
<search><![CDATA[
if (isset($this->error['name'])) {
]]></search>
<add position="before"><![CDATA[
Вложения · 1
что предложили по ocmod.png
1 фев 2019 10:12#4
Да и кстати! Форма не присылает email отправителя!!! Это тоже не баг?
Вложения · 1
баг формы почты.png
1 фев 2019 10:34#5
iv8383 написал(а): ↑Это тоже не баг?

Нет. Нажмите ответить и увидите.
iv8383 написал(а): ↑вы предлагали кусок кода удалить, а кусок с продолжением оставить?

Там нет продолжение. Весь код который отвечает за соответвию закона это вот
code
<!-- Приводим немного сайт к 152 ФЗ     -->   
<file path="catalog/controller/information/contact.php">

    <operation>
        <search><![CDATA[
            if (isset($this->error['name'])) {
        ]]></search>
        <add position="before"><![CDATA[
        if (isset($this->error['warning'])) {
            $data['error_warning'] = $this->error['warning'];
        } else {
            $data['error_warning'] = '';
        }
        ]]></add>
    </operation>

    <operation>
        <search><![CDATA[
            $data['comment'] = $this->config->get('config_comment');
        ]]></search>
        <add position="after"><![CDATA[
        if ($this->config->get('config_account_id')) {
            $this->load->model('catalog/information');

            $information_info = $this->model_catalog_information->getInformation($this->config->get('config_account_id'));

            if ($information_info) {
                $data['text_agree'] = sprintf($this->language->get('text_agree'), $this->url->link('information/information/agree', 'information_id=' . $this->config->get('config_account_id'), true), $information_info['title'], $information_info['title']);
            } else {
                $data['text_agree'] = '';
            }
        } else {
            $data['text_agree'] = '';
        }

        if (isset($this->request->post['agree'])) {
            $data['agree'] = $this->request->post['agree'];
        } else {
            $data['agree'] = false;
        }
        ]]></add>
    </operation>

    <operation>
        <search><![CDATA[
            return !$this->error;
        ]]></search>
        <add position="before"><![CDATA[
        // Agree to terms
        if ($this->config->get('config_account_id')) {
            $this->load->model('catalog/information');

            $information_info = $this->model_catalog_information->getInformation($this->config->get('config_account_id'));

            if ($information_info && !isset($this->request->post['agree'])) {
                $this->error['warning'] = sprintf($this->language->get('error_agree'), $information_info['title']);
            }
        }
        ]]></add>
    </operation>

</file>

<file path="catalog/view/theme/default/template/information/contact.twig">

    <operation>
        <search><![CDATA[
            <div class="row">{{ column_left }}
        ]]></search>
        <add position="before"><![CDATA[
        {% if error_warning %}
        <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}</div>
        {% endif %}
        ]]></add>
    </operation>

    <operation>
        <search><![CDATA[
            <div class="buttons">
        ]]></search>
        <add position="before"><![CDATA[
        {% if text_agree %}
        <div class="buttons">
          <div class="pull-right">{{ text_agree }}
            {% if agree %}
            <input type="checkbox" name="agree" value="1" checked="checked" />
            {% else %}
            <input type="checkbox" name="agree" value="1" />
            {% endif %}
            &nbsp;
            <input type="submit" value="{{ button_submit }}" class="btn btn-primary" />
          </div>
        </div>
        {% else %}
        ]]></add>
    </operation>

    <operation>
        <search><![CDATA[
            </form>
        ]]></search>
        <add position="before"><![CDATA[
        {% endif %}
        ]]></add>
    </operation>

</file>
1 фев 2019 11:11#6
Ravilr написал(а): ↑Нет. Нажмите ответить и увидите.

Там нет продолжение. Весь код который отвечает за соответвию закона это вот
code
<!-- Приводим немного сайт к 152 ФЗ     -->  
<file path="catalog/controller/information/contact.php">

    <operation>
        <search><![CDATA[
            if (isset($this->error['name'])) {
        ]]></search>
        <add position="before"><![CDATA[
        if (isset($this->error['warning'])) {
            $data['error_warning'] = $this->error['warning'];
        } else {
            $data['error_warning'] = '';
        }
        ]]></add>
    </operation>

    <operation>
        <search><![CDATA[
            $data['comment'] = $this->config->get('config_comment');
        ]]></search>
        <add position="after"><![CDATA[
        if ($this->config->get('config_account_id')) {
            $this->load->model('catalog/information');

            $information_info = $this->model_catalog_information->getInformation($this->config->get('config_account_id'));

            if ($information_info) {
                $data['text_agree'] = sprintf($this->language->get('text_agree'), $this->url->link('information/information/agree', 'information_id=' . $this->config->get('config_account_id'), true), $information_info['title'], $information_info['title']);
            } else {
                $data['text_agree'] = '';
            }
        } else {
            $data['text_agree'] = '';
        }

        if (isset($this->request->post['agree'])) {
            $data['agree'] = $this->request->post['agree'];
        } else {
            $data['agree'] = false;
        }
        ]]></add>
    </operation>

    <operation>
        <search><![CDATA[
            return !$this->error;
        ]]></search>
        <add position="before"><![CDATA[
        // Agree to terms
        if ($this->config->get('config_account_id')) {
            $this->load->model('catalog/information');

            $information_info = $this->model_catalog_information->getInformation($this->config->get('config_account_id'));

            if ($information_info && !isset($this->request->post['agree'])) {
                $this->error['warning'] = sprintf($this->language->get('error_agree'), $information_info['title']);
            }
        }
        ]]></add>
    </operation>

</file>

<file path="catalog/view/theme/default/template/information/contact.twig">

    <operation>
        <search><![CDATA[
            <div class="row">{{ column_left }}
        ]]></search>
        <add position="before"><![CDATA[
        {% if error_warning %}
        <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}</div>
        {% endif %}
        ]]></add>
    </operation>

    <operation>
        <search><![CDATA[
            <div class="buttons">
        ]]></search>
        <add position="before"><![CDATA[
        {% if text_agree %}
        <div class="buttons">
          <div class="pull-right">{{ text_agree }}
            {% if agree %}
            <input type="checkbox" name="agree" value="1" checked="checked" />
            {% else %}
            <input type="checkbox" name="agree" value="1" />
            {% endif %}
            &nbsp;
            <input type="submit" value="{{ button_submit }}" class="btn btn-primary" />
          </div>
        </div>
        {% else %}
        ]]></add>
    </operation>

    <operation>
        <search><![CDATA[
            </form>
        ]]></search>
        <add position="before"><![CDATA[
        {% endif %}
        ]]></add>
    </operation>

</file>


я вас не понимаю, лучше просто напишите как мне сделать, чтобы приходил email отправителя.
1 фев 2019 11:14#7
iv8383 написал(а): ↑чтобы приходил email отправителя.

Я же выше сказал. Емайл приходит, оно есть в письме, но скрыто. Поэтому, нажмите ОТВЕТИТЬ в письме и увидите что все нормально!!
1 фев 2019 11:16#8
Ravilr написал(а): ↑Я же выше сказал. Емайл приходит, оно есть в письме, но скрыто. Поэтому, нажмите ОТВЕТИТЬ в письме и увидите что все нормально!!

Спасибо!!!
29 янв 2021 20:16#9
Здравствуйте! А у меня отправка почты с контактов переходит на index.php?route=information/contact/success где два раза отображено меню личного кабинета и все, почта не приходит. Все моды отключал и пробовал перезалить файлы модели и контроллеры - не работает. Поиск не помог, кто сталкивался?
30 янв 2021 11:12#10
Zidky написал(а): ↑Поиск не помог, кто сталкивался?

Сталкивался, когда понаставят все подряд с вареза, когда люди не читая документацию начинаю все подряд удалять, менять макеты, все забывают, а потом опааа помогите, что делать, разберитесь..... Тут сообщениями на форуме не помочь уже, это работа по изучению что там и как.
30 янв 2021 14:09#11
Vlad написал(а): ↑Сталкивался, когда понаставят все подряд с вареза, когда люди не читая документацию начинаю все подряд удалять, менять макеты, все забывают, а потом опааа помогите, что делать, разберитесь

Сочувствую, с варезом и не такое случается. Но не мой случай. Было из коробки, все лицензионное. Это что-то типа неправильной установки или что-то с url alias.
4 фев 2021 00:10#12
Решилось - в макете - "по умолчанию" был 2 раза этот самый личный кабинет выведен. Вероятно какая-то ошибка базы или удаление модуля его туда закинуло. Проявлялось так же на странице акций.
сообщения 1–12 из 12
Чтобы ответить, войдите или зарегистрируйтесь.

Похожие темы