#opencart-3
#opencart-3
Вопрос:
По умолчанию у клиента нет возможности отменить заказ из своей учетной записи. Администратор магазина может сделать это из панели администратора.
Мы хотим p отменить заказ клиентом
<file path="catalog/view/theme/default/template/account/order_list.twig">
<operation>
<search><![CDATA[ <td class="text-right">{{ order.total }}</td>]]></search>
<add position="after"><![CDATA[
<td class="text-right">
Отменить заказ, nr {{ order.order_id }}
]]></add>
</operation>
</file>
php отмена
<?php session_start(); ?>
<?php
$customer_id = $_SESSION['default']['customer_id'];
if ($customer_id == ''){
exit;
}
//echo $customer_id;
$order_id = mysql_escape_string($_GET['order_id']);
if ($order_id == ''){
exit;
}
include 'config.php';
$link = mysql_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD);
mysql_select_db(DB_DATABASE);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$updateSQL = mysql_query("UPDATE oc_order SET order_status_id = '7' where order_id = '$order_id;' and customer_id = '$customer_id'");
?>
<script>alert("The order was canceled!");
window.location.replace('/')
</script>
Результат
Обратите внимание: Неопределенный индекс: по умолчанию в C:xampphtdocs3020cancel-order.php в строке 3
Ответ №1:
- Вы неправильно вводите идентификатор клиента
заменить
$customer_id = $_SESSION['default']['customer_id'];
с
$customer_id = $this->customer->getId();
- Также $ _GET[‘order_id’] лучше всего выбирать следующим образом
$order_id = $this->request->get['order_id']
- вы должны использовать объект базы данных вместо самостоятельного подключения
$this->db->query('...');
на самом деле, весь код не подходит для OpenCart. вам следует попробовать прочитать документацию, чтобы узнать больше о таких вещах, как MVC и как работает реестр OpenCart
если вам нужна помощь разработчиков, отправьте запрос мне по https://dreamvention.ee/support