prestashop 1.7 добавить поле в процесс оформления заказа (и сохранить его) - PullRequest
0 голосов
/ 08 октября 2018

Добрый день, я создал модуль, который добавляет новое поле (запрос счета) во время оформления заказа, я добавил его в хук выбора платежа.

Как сохранить значение поля (это флажок) как только страница отправлена?Я имею в виду, что после выбора платежа и нажатия кнопки отправки?

<code>public function hookDisplayPaymentTop()
    {
        /* 
            echo"<pre>";
            print_r($this->context->cart);
            echo"
"; * / $ 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 ('Ваш номер НДС недействителен или'); $ 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]); вернуть $ this-> display (__ FILE__, '/views/templates/front/doyouinvoice.tpl');}

и 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 Ответ

0 голосов
/ 09 октября 2018

Может быть, попытаться использовать Tools :: isSubmit

Я не уверен, что это может работать для вас,

Попробуйте создать контроллер в вашем модуле, например так: в вашем Модуле / 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');
...