Prestashop 控制器中创建订单的点在何处?
我正在进行一个预结算修改,创建预结算订单时,我需要在其他平台中创建一个订单。前面的程序员将代码放在“controllers/front/OrderConfirmationController.php”控制器的方法“initContent”上。问题是这一点允许订单重复和其他衍生问题。我认为那可能是一个更好的地方Prestashop 控制器中创建订单的点在何处?,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,我正在进行一个预结算修改,创建预结算订单时,我需要在其他平台中创建一个订单。前面的程序员将代码放在“controllers/front/OrderConfirmationController.php”控制器的方法“initContent”上。问题是这一点允许订单重复和其他衍生问题。我认为那可能是一个更好的地方 我想问一下,把代码放在哪里比较好。如果您想在其他平台上创建订单,而不取决于当前的订单状态,您可以覆盖PaymentModule::validateOrder abstract class
我想问一下,把代码放在哪里比较好。如果您想在其他平台上创建订单,而不取决于当前的订单状态,您可以覆盖PaymentModule::validateOrder
abstract class PaymentModule extends PaymentModuleCore
{
public function validateOrder($id_cart, $id_order_state, $amount_paid, $payment_method = 'Unknown',
$message = null, $extra_vars = array(), $currency_special = null, $dont_touch_amount = false,
$secure_key = false, Shop $shop = null)
{
parent::validateOrder($id_cart, $id_order_state, $amount_paid, $payment_method, $message, $extra_vars, $currency_special, $dont_touch_amount = false, $secure_key, $shop);
// use $this->currentOrder to get current id_order and create order on the other platform
}
}
谢谢,我需要为每种付款模式都这样做吗?不,除非某些付款定义了validateOrder。每个支付模块已经调用PaymentModule::validateOrder来验证订单(从购物车创建订单)。例如,BankWire类扩展了PaymentModule,并且没有任何validateOrder函数,因此它将调用父validateOrder。