тема 1.7 добавить поле в процессе оформления заказа (и сохранить его)
Добрый день, я создал модуль, который добавляет новое поле (попросите счет) во время проверки, я добавил его в крючок выбора платежа.
Как я сохраняю значение поля (это флажок) после отправки страницы? Я имею в виду после того, как платеж был выбран и кнопка отправки нажата?
public function hookDisplayPaymentTop()
{
/*
echo"<pre>";
print_r($this->context->cart);
echo"</pre>";
*/
$sql = 'SELECT vat_number FROM ' . _DB_PREFIX_ . 'address WHERE `id_address` = '.$this->context->cart->id_address_invoice;
$vat_number = Db::getInstance()->getValue($sql);
if ($vat_number == false) {
$message = $this->l(' your VAT number is invalid or ');
$vat_status = 0;
}else{
$message = $vat_number;
$vat_status = 1;
}
$this->context->smarty->assign([
'foo' => 'bar',
'usrId' => $this->context->customer->id,
'vat' => $vat_number,
'vat_status' => $vat_status,
'cartId' => $this->context->cart->id
]);
return $this->display(__FILE__, '/views/templates/front/doyouinvoice.tpl');
}
а ТПЛ это как:
<h5>Do you need an invoice?</h5>
<div class="ggAskInvoiceError {if $vat_status == 1}hideThisMessage{/if}">
{l s="You need to add your VAT number in the billing address." m="ggaskinvoice"}
</div>
<div class="ggAskContainer">
<label><input type="checkbox" name="askInvoice" id="askInvoice" {if $vat_status == 0}disabled='disabled'{/if} data-cartid="{$cartId}" > {l s="I need an invoice for this order" m="ggaskinvoice"}</label>
</div>
У вопроса есть решение - Посмотреть?
Ответы - тема 1.7 добавить поле в процессе оформления заказа (и сохранить его) / prestashop 1.7 add a field to checkout process (and save it)

09.10.2018 04:53:54
Возможно, попробуйте использовать инструменты:: isSubmit
Я не уверен, что это может сработать для вас,
Попробуйте создать контроллер в вашем модуле следующим образом: в yourModule / controller / controllerName,
class yourModuleNameModuleFrontController extends ModuleFrontController
{
public function initContent(){
parent::initContent();
$this>setTemplate('module:yourModuleName//views/templates/front/doyouinvoice.tpl');
if(Tools::isSubmit('askInvoice')){ //askInvoice is your name button
//Your php code
}
}
}
И для DisplayHook я думаю, что вам нужно только сделать это
return $this->display(__FILE__, '/views/templates/front/doyouinvoice.tpl');

$это>setTemplate('модуль:yourModuleName/вид/шаблоны/передний/doyouinvoice.ТПЛ');
Помочь в развитии проекта: