如何通过在 shopping-cart.tpl 中创建变量来修改 PaymentModule.php 中 $order->id_customer 的值?
How can i modify the value of $order->id_customer in PaymentModule.php by creating a variable in shopping-cart.tpl?
我在shopping-cart.tpl
中有以下代码:
$(document).ready(function(){
$.ajax({
url: document.location.origin+"/univers/themes/leostyl/shopping-cart.php",
type: 'get',
success: function(data){
var array = $.parseJSON(data);
ch='<select class="form-control" id="customer-id" onchange="myFunction()">';
for (var i=0;i<array['results'].length;i++) {
if(array['results'][i].id_default_group== 3)
ch=ch+'<option id='+array['results'][i].id_customer+'> '+array['results'][i].firstname+' '+array['results'][i].lastname+'</option>';
}
ch=ch+'</select>';
$( ".customer" ).append(ch);
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
});
如何通过在 shopping-cart.tpl 中创建变量来修改 PaymentModule.php 中 $order->id_customer
的值?
$order->id_customer = (int)$this->context->cart->id_customer;
您无法通过模板中的简单赋值更改它。客户 ID 是从 validateOrder() 函数中的上下文 (Cookie / Session) 中检索的...
将订单分配给不同的客户是非常危险的,但如果您真的需要这个,我看到了 2 个解决方法:
- 覆盖 PaymentModule::validateOrder() 函数以设置您想要的客户 ID,而不是使用上下文之一,假设您之前将其存储在其他地方:Cookie, db table
- 使用hook (actionObjectOrderAddBefore, actionValidateOrder, ...)在验证后设置或修改数据库中的所有订单相关数据(注意子流程,例如根据您使用的挂钩可能会发送给以前的客户的电子邮件确认),并且假设您之前将良好的客户 ID 存储在某处
祝你好运
我在shopping-cart.tpl
中有以下代码:
$(document).ready(function(){
$.ajax({
url: document.location.origin+"/univers/themes/leostyl/shopping-cart.php",
type: 'get',
success: function(data){
var array = $.parseJSON(data);
ch='<select class="form-control" id="customer-id" onchange="myFunction()">';
for (var i=0;i<array['results'].length;i++) {
if(array['results'][i].id_default_group== 3)
ch=ch+'<option id='+array['results'][i].id_customer+'> '+array['results'][i].firstname+' '+array['results'][i].lastname+'</option>';
}
ch=ch+'</select>';
$( ".customer" ).append(ch);
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
});
如何通过在 shopping-cart.tpl 中创建变量来修改 PaymentModule.php 中 $order->id_customer
的值?
$order->id_customer = (int)$this->context->cart->id_customer;
您无法通过模板中的简单赋值更改它。客户 ID 是从 validateOrder() 函数中的上下文 (Cookie / Session) 中检索的...
将订单分配给不同的客户是非常危险的,但如果您真的需要这个,我看到了 2 个解决方法:
- 覆盖 PaymentModule::validateOrder() 函数以设置您想要的客户 ID,而不是使用上下文之一,假设您之前将其存储在其他地方:Cookie, db table
- 使用hook (actionObjectOrderAddBefore, actionValidateOrder, ...)在验证后设置或修改数据库中的所有订单相关数据(注意子流程,例如根据您使用的挂钩可能会发送给以前的客户的电子邮件确认),并且假设您之前将良好的客户 ID 存储在某处
祝你好运