在 prestashop 的订单过程中是否可以更改价格?我需要制作根据某些条件增加运费的模块(不能在 presta 中做到,需要模块)。我尝试在一些钩子(hookBackBeforePayment、hookBeforeCarrier、hookProcessCarrier、hookExtraCarrier)上执行此操作,我只是尝试更改 ['total_price'] 或传递给钩子函数的其他变量。
将不胜感激任何帮助。
在 prestashop 的订单过程中是否可以更改价格?我需要制作根据某些条件增加运费的模块(不能在 presta 中做到,需要模块)。我尝试在一些钩子(hookBackBeforePayment、hookBeforeCarrier、hookProcessCarrier、hookExtraCarrier)上执行此操作,我只是尝试更改 ['total_price'] 或传递给钩子函数的其他变量。
将不胜感激任何帮助。
这听起来像是运营商模块应该处理的事情。不幸的是,关于这个主题的文档并不多,因此需要大量的试验和错误。这里有一个简短的 PS 1.4 载体模块教程,可以帮助您入门。我还建议您阅读现有的其他免费送货模块的源代码。
Order.php 中的 getFields() 函数携带下订单的所有数据。通过修改此数组,您可以为订单提供自定义价格。
public function getFields()
{
if (!$this->id_lang)
$this->id_lang = Configuration::get('PS_LANG_DEFAULT', null, null, $this->id_shop);
$val = parent::getFields();
$val['total_paid'] = 5678.88;
$val['total_paid_tax_incl'] = 5678.88;
$val['total_paid_tax_excl'] = 5678.88;
$val['total_paid_real'] = 0;
$val['total_products'] = 5678.88;
$val['total_products_wt'] = 5678.88;
return $val; //Return this array
//return parent::getFields();
}
实际上,您可以将此功能置于覆盖中以使您的 prestashop 可升级。版本:1.5.5.0