我正在升级Prestashop上的电子商店。
我想根据将要发送的国家/地区来编辑运费(运营商)费用。从理论上讲,我希望将delivery = 1
的价格放在后台,然后根据国家/权重或其他选项在代码中进行编辑。
我想我发现了获得运费的功能。这是 getTotalShippingCost 或者 getOrderTotal 请告诉我,如果我错了。
此时如何在 getOrderTotal 中获取投放的国家/地区名称?
if ($type == Cart::ONLY_SHIPPING)
return $shipping_fees;
或者如果在这个订单点上没有地址无法获取,请告诉我们这样做的地方。在ParentOrderController.php或PaymentModule.php或其他地方?
答案 0 :(得分:1)
如何管理您可以在Prestashop documentation中阅读的运费/运营商,并获得每个国家/地区的运费(默认为Presta使用'区域')而无需使用外部模块,您可以创建区域为每个国家/地区设置每个新区域的运费。所有这些操作都可以从后台完成,无需更改核心。
但是如果您决定在代码中执行此操作,请记住,直接更改核心文件被认为是不好的做法;使用built-in capabilities更好的方式。
$shippingCostTaxExc can be found in _assignSummaryInformations method in /controllers/front/ParentOrderController.php file.
$option array in /classes/Cart.php
<强>更新强> 您可以从任何模型/控制器类using Context object访问一些常见对象,如Currency,Cookie等和Country,所以在您的情况下,如果您需要国家/地区名称,它将如下所示:
$context = Context::getContext();
$context->country->name[1]; // for language with id=1
$context->language->id; // if you need to get actual customer language