如何在结帐过程中在prestashop 1.7中默认选中简报复选框?

时间:2017-06-16 14:38:38

标签: prestashop-1.7

如何在结帐流程中在prestashop 1.7中默认选中简报复选框?

enter image description here

更新: 我找到了表格所在的文件: \模块\ ps_emailsubscription \ ps_emailsubscription.php

但令人惊讶的是,没有定义任何功能来改变属性。

public function hookAdditionalCustomerFormFields($params)
{
    $label = $this->trans(
        'Sign up for our newsletter[1][2]%conditions%[/2]',
        array(
            '[1]' => '<br>',
            '[2]' => '<em>',
            '%conditions%' => Configuration::get('NW_CONDITIONS', $this->context->language->id),
            '[/2]' => '</em>',
        ),
        'Modules.Emailsubscription.Shop'
    );

    return array(
        (new FormField())
            ->setName('newsletter')
            ->setType('checkbox')
            ->setLabel($label));
}

3 个答案:

答案 0 :(得分:1)

呈现表单的正确文件是:

/主题/ [您激活主题] /templates/customer/_partials/customer_form.tpl

在第32行中,您可以看到此代码负责呈现表单的输入字段:

{block "form_fields"}
  {foreach from=$formFields item="field"}
    {block "form_field"}
      {form_field field=$field}
    {/block}
  {/foreach}
  {$hook_create_account_form nofilter}
{/block}

创建表单字段的新方法是调用smarty函数“{form_field}”,就像第35行一样。 这个函数调用此文件来创建不同的输入:

/主题/ [您激活主题] /templates/_partials/form-fields.tpl

所以,我更快的解决方案(我认为不是最好的,但有效)是直接在这个文件中更改,以便当它是newsletter和optin输入并且在认证页面中时,选中复选框输入:< / p>

在form-fileds.tpl文件中的第91行更改此内容:

{if $field.value)}

要:

{if $field.value || ($field.name == "newsletter" && $page.page_name == 'authentication') || ($field.name == "optin" && $page.page_name == 'authentication')}

希望它对你有所帮助。

答案 1 :(得分:1)

您好,正确的答案是不要忘记&#34;结帐&#34;使一切运作良好 好的代码在这里完成

git add

答案 2 :(得分:0)

对我来说,上一个答案没有用,所以我刚刚更改了:

{if $field.value}checked="checked"{/if} 

为:

checked="checked"

问候,B