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

opencart 3 ничего не происходит при клике на “подтвердить заказ”


Recommended Posts

На последнем шаге оформления заказа (подтверждение заказа) при клике на кнопку "подтвердить" ничего не происходит, ошибок нет ни js, ни php;

Отключены все защиты от роботов/мошенников. Никаких модулей оплаты не стоит кроме cod (оплата при получении вроде так называется стандартно из коробки (менял название в языковом файле)) Я копировал 2 раза файл cod, то есть у меня их 3 шт - cod, cod2, cod3 Естественно везде поменял названия в скопированных файлах (например, в скопированном файле cod, везде заместо cod изменил на cod2 и также с cod3)

 

файлы менял все, admin (controller/view/model), catalog(controller/view/model) больше ничего не трогал

 

Почему может кнопка не работать еще?

хостинг beget

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


ошибки по домену нужно смотреть

и проверить отправляется ли инфа и что приходит в ответ при клике на кнопку

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


6 часов назад, Blackseabreathe сказал:

Почему может кнопка не работать еще?

Если открыть гугл и вбить :

extension/payment/cod/confirm 500 opencart

То можно для себя открыть кучу интересного по этой проблеме.

Вариантов тысячи.

Вы сами создали проблему , делая клоны.

Проблема в настройках почты в магазине (SMTP).

Проблема в статусах завершённого заказа, а так же в статусе "Статус Fraud", который совпадает например с заказом поступившим в обработку, а не с завершённым.

Проблема в настройках одного из модулей в разделе Дополнения - Защита от мошенничества.

Проблема изначально в модуле COD , который вы ко всему ещё и размножили, попробуйте включить какой то иной способ оплаты и сделать заказ через него.

Последний и не верный вариант, попробуйте отключить отображение ошибок в разделе Система - Настройки, вкладка Сервер и оформите заказ в своём магазине.

Итд итп....

 

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

11 часов назад, Blackseabreathe сказал:

На последнем шаге оформления заказа (подтверждение заказа) при клике на кнопку "подтвердить" ничего не происходит, ошибок нет ни js, ни php;

Отключены все защиты от роботов/мошенников. Никаких модулей оплаты не стоит кроме cod (оплата при получении вроде так называется стандартно из коробки (менял название в языковом файле)) Я копировал 2 раза файл cod, то есть у меня их 3 шт - cod, cod2, cod3 Естественно везде поменял названия в скопированных файлах (например, в скопированном файле cod, везде заместо cod изменил на cod2 и также с cod3)

 

файлы менял все, admin (controller/view/model), catalog(controller/view/model) больше ничего не трогал

 

Почему может кнопка не работать еще?

хостинг beget

На любом хостинге есть error.log и это НЕ то же самое, что error.log внутри opencart. Достаньте с хостинга лог фаталов - и смотреть что там написано. Если кнопка ничего не делает - значит что-то сломано и об этом будет лог (если проблема в серверной части и при условии что при нажатии на кнопку запрос уходит на сервер).

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

18 часов назад, buslikdrev сказал:

Ещё подробнее, где, что меняли и работала-ли кнопка до этого?

Здравствуйте, копировал все что касается cod (php/twig - controller+view+model в admin и catalog) и изменял в копиях везде где фигурирует cod на cod2 и cod3 . Все

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


18 часов назад, openprice сказал:

ошибки по домену нужно смотреть

и проверить отправляется ли инфа и что приходит в ответ при клике на кнопку

Что имеете в виду смотреть ошибки по домену? в success параметре (confirm.twig) вставил обычный alert, Так вот alert работает, а почему не отправляется Ajax или php что-то не нравится хз

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


12 часов назад, Tom сказал:

Если открыть гугл и вбить :

extension/payment/cod/confirm 500 opencart

То можно для себя открыть кучу интересного по этой проблеме.

Вариантов тысячи.

Вы сами создали проблему , делая клоны.

Проблема в настройках почты в магазине (SMTP).

Проблема в статусах завершённого заказа, а так же в статусе "Статус Fraud", который совпадает например с заказом поступившим в обработку, а не с завершённым.

Проблема в настройках одного из модулей в разделе Дополнения - Защита от мошенничества.

Проблема изначально в модуле COD , который вы ко всему ещё и размножили, попробуйте включить какой то иной способ оплаты и сделать заказ через него.

Последний и не верный вариант, попробуйте отключить отображение ошибок в разделе Система - Настройки, вкладка Сервер и оформите заказ в своём магазине.

Итд итп....

 

С чего Вы взяли что у меня ошибка 500? Вы читали описание проблемы?

smtp - Вы читали описание проблемы?

защита от мошенников - Вы читали описание проблемы?

Для чего отключать отображение ошибок?

 

Пробовал отключить скопированные cod2 и cod3 оставив только родной из коробки cod и все равно та же песня

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


8 часов назад, OtezVikentiy сказал:

На любом хостинге есть error.log и это НЕ то же самое, что error.log внутри opencart. Достаньте с хостинга лог фаталов - и смотреть что там написано. Если кнопка ничего не делает - значит что-то сломано и об этом будет лог (если проблема в серверной части и при условии что при нажатии на кнопку запрос уходит на сервер).

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

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


7 часов назад, Venter сказал:

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

в том то и дело что ничего, тут уж как бы пардон, но не буду же я врать на форуме

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


Сейчас нашел ошибку на вкладке сеть в dev tools 

 

{
    "error": {
        "warning": "Что-то пошло не так, попробуйте перезагрузить страницу, введенные данные не потеряются!"
    }
}

Ранее не видел ее. Ошибка из файла catalog/.../extension/payment/cod.php (cod из коробки (не моя копия))

 

из этого файла такой код

 

if (is_array($this->session->data['payment_method']['code'] == 'cod')) {
			$this->load->model('checkout/order');

			$this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('payment_cod_order_status_id'));
		
			$json['redirect'] = $this->url->link('checkout/success');
		}

// "else" это я сам дописал чтобы проверить будет ли какая-то ошибка
        
        else{
        $json['error']['warning'] = 'Что-то пошло не так, попробуйте перезагрузить страницу, введенные данные не потеряются!';
        }

//Думал проблема в $this->session->data['payment_method']['code'] == 'cod'
//однако нет, тут содержится параметр "cod"
//проверял так
$data['test'] = $this->session->data['payment_method']['code']; // пришло "cod"

 

Змінено користувачем Blackseabreathe
добавил информацию
Надіслати
Поділитися на інших сайтах


вот это что такое ??? )))

if (is_array($this->session->data['payment_method']['code'] == 'cod'))

Читаем про функцию is_array ЗДЕСЬ

тогда уж так

//если session->data массив и session->data['payment_method']['code'] равен code
if (is_array($this->session->data['payment_method']) && $this->session->data['payment_method']['code'] == 'cod') {

или

//
//если session->data передана и session->data['payment_method']['code'] равен code
if (isset($this->session->data['payment_method']) && $this->session->data['payment_method']['code'] == 'cod') {

или вообще вот так

//
//если session->data передана и session->data не пустая и session->data['payment_method']['code'] равен code
if (isset($this->session->data['payment_method']) && !empty($this->session->data['payment_method']) && $this->session->data['payment_method']['code'] == 'cod') {

 

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

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

Сейчас нашел ошибку на вкладке сеть в dev tools 

 


{
    "error": {
        "warning": "Что-то пошло не так, попробуйте перезагрузить страницу, введенные данные не потеряются!"
    }
}

Ранее не видел ее. Ошибка из файла catalog/.../extension/payment/cod.php (cod из коробки (не моя копия))

 

из этого файла такой код

 


if (is_array($this->session->data['payment_method']['code'] == 'cod')) {
			$this->load->model('checkout/order');

			$this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('payment_cod_order_status_id'));
		
			$json['redirect'] = $this->url->link('checkout/success');
		}

// "else" это я сам дописал чтобы проверить будет ли какая-то ошибка
        
        else{
        $json['error']['warning'] = 'Что-то пошло не так, попробуйте перезагрузить страницу, введенные данные не потеряются!';
        }

 

Кстати про из коробки, вот код

       if ($this->session->data['payment_method']['code'] == 'cod') {
			$this->load->model('checkout/order');

			$this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('payment_cod_order_status_id'));
		
			$json['redirect'] = $this->url->link('checkout/success');
		}

 

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

Блин, ребята, спасибо вам огромное, действительно is_array было лишним, понятия не имею как оно там очутилось, а самое загадочное это то, что в копиях cod2 и cod3 было все как из коробки, значит я по запарке когда то делал проверку на is_array и не в том файле блин. А еще сам думаю - разве может быть массив из payment-code?! Тупанул получается сам и не догадался сразу посмотреть в коробку и сравнить.

 

Спасибо еще раз огроменное.

 

PS: вспомнил что ранее была версия php 7.4 (пока не откатился на 7.3) и вот где-то надо было делать проверку is_array. Возможно в этот момент я перепутал файлы и не там сделал этот чертов is_array

 

$(now).on('ready', function(){
if (!$('you are happy')){
$('smile').getHappy('fast');  
}

 ));
  
  
  

:-D

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


session->data['payment_method'] это и так массив, просто функцию на проверку массива неправильно использовал

В is_array нужно помещать на проверку переменную без всяких сравнений как было у вас

Кстати про версию php 7.4. я бы не переводил опенкарт на эту версию

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

13 часов назад, Blackseabreathe сказал:

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

Вижу что нашли проблему, но для информации на будущее:
Я не говорил, что проблема на стороне хостера. На хостинге хранится серверный error.log, который записывает больше логов вашего движка. То есть образно говоря: в админке в логах вы видите 30% происходящего, в error.log вы видите все фаталы, которые выбрасывает ваш движок, а еще бывают просто log файлы куда пишется вообще всё.

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

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

15 часов назад, Blackseabreathe сказал:

С чего Вы взяли что у меня ошибка 500? Вы читали описание проблемы?

Отсюда

В 16.12.2020 в 01:32, Blackseabreathe сказал:

На последнем шаге оформления заказа (подтверждение заказа) при клике на кнопку "подтвердить" ничего не происходит

 

15 часов назад, Blackseabreathe сказал:

smtp - Вы читали описание проблемы?

защита от мошенников - Вы читали описание проблемы?

Для чего отключать отображение ошибок?

Постараюсь не читать более ничего от вашей персоны. Ибо хотел только помочь.

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

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

 

 

Постараюсь не читать более ничего от вашей персоны. Ибо хотел только помочь.

 

Не хотел Вас обидеть, извините, но про ошибку 500 до сих пор непонятно откуда Вы это взяли. В описании темы написано же "нет никаких ошибок, ни js, ни php"

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


Именно так и выглядит эта ошибка при таких симптомах. Либо вылазит сообщение Internal server или вообще ничего не происходит.

Как писали вам выше, можно такую ошибку отловить в логах ошибок сервера error.log ну или элементарно в консоли браузера.

А взял я это больше из личного опыта. Очень часто пишут о такой проблеме в личке и то что я написал, самые частые причины.

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

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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