[英]How to change product name in the cart in Prestashop?
产品的名称,只要它们在购物车中,就会从产品 object 中读取,因此如果您想动态更改它们的名称,则必须覆盖cart->getProducts()方法。
但请记住,一旦购物车成为订单,产品名称就会被复制/存储在orderDetail object 中,您可以在知道原始id_cart / id_order后通过重命名“product_name”字段来自由干预。
我用下面的代码解决了这个问题。 如果你遇到这个问题,你可以自己编辑下面的代码。 并且您必须在 validateOrder function 或验证订单后执行这些操作。
$order = Order::getByCartId($cart->id);
$order_details = OrderDetail::getList($order->id);
foreach ($order_details as $order_detail) {
if ($order_detail['product_name'] === 'Installment' && (string)$order_detail['product_price'] == (string)$installment_fee) {
$order_detail_id = $order_detail['id_order_detail'];
}
}
if (!is_null($order_detail_id)) {
$order_detail = new OrderDetail($order_detail_id);
$order_detail->product_name = 'Changed product name';
$order_detail->save();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.