Prestashop 覆盖默认行为
Prestashop overriding default behavior
我不是 PrestaShop 的大专家,但这是我想要实现的:每次客户确认特定产品的订单时,我想向另一台服务器发送 http 请求以开始生产的产品。
这是我的想法:
在 /override/controlers/front/OrderConfirmationController.php
中创建一个文件
class OrderConfirmationController extends OrderConfirmationControllerCore
{
public function initContent()
{
parent::initContent();
$url = 'http://server.com/path';
$data = array('key1' => 'value1', 'key2' => 'value2');
// use key 'http' even if you send the request to https://...
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
}
}
问题是我需要产品的某些规格(尺寸、颜色等),但并非所有类型的产品都会发送到该生产中心。
我使用的是 1.6.1.1 版本
感谢您的帮助!
昆汀
查看您覆盖的控制器的 init() 方法
/controllers/front/OrderConfirmationController.php
在那里你可能会看到:
$order = new Order((int)($this->id_order));
在子控制器中您可以访问 Order 对象,因此:
$products = $order->getProducts();
将为您获取产品列表。
我不是 PrestaShop 的大专家,但这是我想要实现的:每次客户确认特定产品的订单时,我想向另一台服务器发送 http 请求以开始生产的产品。
这是我的想法: 在 /override/controlers/front/OrderConfirmationController.php
中创建一个文件class OrderConfirmationController extends OrderConfirmationControllerCore
{
public function initContent()
{
parent::initContent();
$url = 'http://server.com/path';
$data = array('key1' => 'value1', 'key2' => 'value2');
// use key 'http' even if you send the request to https://...
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
}
}
问题是我需要产品的某些规格(尺寸、颜色等),但并非所有类型的产品都会发送到该生产中心。
我使用的是 1.6.1.1 版本
感谢您的帮助!
昆汀
查看您覆盖的控制器的 init() 方法
/controllers/front/OrderConfirmationController.php
在那里你可能会看到:
$order = new Order((int)($this->id_order));
在子控制器中您可以访问 Order 对象,因此:
$products = $order->getProducts();
将为您获取产品列表。