Prestashop 1.5 如何在处理订单地址表单时使用挂钩保存自定义表单
Prestashop 1.5 how to save custom form using hook while processing order address form
我已经在订单地址表单中添加了自定义表单。
在保存订单地址的同时我也想保存自定义表单,但是它只保存了订单地址。
有人能帮帮我吗?
以下是我在我的项目中的做法。这不是一个干净的选择,但它按预期工作。
在 order-carrier.tpl
的顶部我添加了一个钩子:
{hook h="checkCustomForm"}
我创建了一个模块/mdoules/customform/customform.php
<?php
if (!defined('_PS_VERSION_'))
exit;
class CustomForm extends Module
{
public function __construct()
{
$this->name = 'customform';
$this->tab = 'administration';
$this->version = '1.0.0';
$this->author = 'Florian Lemaitre';
$this->need_instance = 0;
$this->bootstrap = true;
parent::__construct();
$this->displayName = $this->l('Custom Form');
$this->description = $this->l('Custom Form');
}
public function install()
{
return $this->createTable()
&& parent::install()
&& $this->registerHook('checkCustomForm');
}
public function hookcheckCustomForm($params)
{
[process your form values here (Tools::getValue('my_value') ...)]
if (error)
{
// We redirect to the Adrress page with a flag 'missing_value' to alert an error
Tools::redirect('index.php?controller=order&step=1&missing_value=true');
}
}
}
我已经在订单地址表单中添加了自定义表单。
在保存订单地址的同时我也想保存自定义表单,但是它只保存了订单地址。
有人能帮帮我吗?
以下是我在我的项目中的做法。这不是一个干净的选择,但它按预期工作。
在 order-carrier.tpl
的顶部我添加了一个钩子:
{hook h="checkCustomForm"}
我创建了一个模块/mdoules/customform/customform.php
<?php
if (!defined('_PS_VERSION_'))
exit;
class CustomForm extends Module
{
public function __construct()
{
$this->name = 'customform';
$this->tab = 'administration';
$this->version = '1.0.0';
$this->author = 'Florian Lemaitre';
$this->need_instance = 0;
$this->bootstrap = true;
parent::__construct();
$this->displayName = $this->l('Custom Form');
$this->description = $this->l('Custom Form');
}
public function install()
{
return $this->createTable()
&& parent::install()
&& $this->registerHook('checkCustomForm');
}
public function hookcheckCustomForm($params)
{
[process your form values here (Tools::getValue('my_value') ...)]
if (error)
{
// We redirect to the Adrress page with a flag 'missing_value' to alert an error
Tools::redirect('index.php?controller=order&step=1&missing_value=true');
}
}
}