在Opencart 3中取消客户订单

问题描述 投票:0回答:1

默认情况下,客户不可能从其帐户中取消订单。商店的管理员可以从管理面板执行此操作。

我们想要客户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>

结果

注意:未定义索引:默认位于第3行的C:\ xampp \ htdocs \ 3020 \ cancel-order.php

opencart-3
1个回答
0
投票
  1. 您没有正确提取客户ID

更换

$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友好的。您应该尝试阅读documentation以了解有关MVC以及OpenCart注册表的更多信息

如果您需要任何开发人员帮助,请在https://dreamvention.ee/support向我发送请求

© www.soinside.com 2019 - 2024. All rights reserved.