Отменить заказ клиентом в Opencart 3 - PullRequest
0 голосов
/ 07 марта 2019

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

Мы хотим 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 cancel

<?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

1 Ответ

0 голосов
/ 08 марта 2019
  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

...