Prestashop FrontController::$context 在创建订单时受到保护 属性

Prestashop FrontController::$context is protected property when create a order

我的模块我正在尝试从购物车下订单。

在我的模块控制器文件中,我正在调用 validateOrder

 PaymentModule::validateOrder((int)$urbCart->id, $order_status, $order_total, "urb-it", NULL, array(), (int)$currency->id, false, $urbCart->secure_key); 

创建订单。但是我得到了错误:

PHP Fatal error: Cannot access protected property 'UrbitOrderCompleteModuleFrontController::$context in /opt/webapp/urbit/classes/PaymentModule.php on line 171'

付款模块错误发生在(第 171 行)如下

if (!isset($this->context)) {
    $this->context = Context::getContext();
}

为什么说该上下文受保护 属性?如何创建订单?

validateOrder() 不是静态方法,所以在你的模块控制器中这样调用它:

$this->module->validateOrder((int)$urbCart->id, $order_status, $order_total, "urb-it", NULL, array(), (int)$currency->id, false, $urbCart->secure_key);

任何扩展 ModuleFrontControllerModuleAdminController 的控制器都有一个 属性 module 使用该控制器的模块对象。

编辑:

模块 class 必须扩展 PaymentModule 才能使用 validateOrder 方法。