Отменить заказ клиента в 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">

Отменить заказ, номер {{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: \ xampp \ htdocs \ 3020 \ cancel-order.php в строке 3


person ahmed mohamed    schedule 07.03.2019    source источник


Ответы (1)


  1. Вы неправильно получаете идентификатор клиента

заменять

$customer_id = $_SESSION['default']['customer_id'];

с участием

$customer_id = $this->customer->getId();
  1. Также $ _GET ['order_id'] лучше всего получать так
$order_id = $this->request->get['order_id']
  1. вы должны использовать объект базы данных вместо того, чтобы подключаться самостоятельно
$this->db->query('...');

действительно, весь код не дружелюбен к OpenCart. вам следует попробовать прочитать документацию, чтобы узнать больше о таких вещах, как MVC и как реестр OpenCart

если вам нужна помощь разработчиков, отправьте мне запрос по адресу https://dreamvention.ee/support

person Dmitriy Zhuk    schedule 07.03.2019