如何在结帐流程中在prestashop 1.7中默认选中简报复选框?
更新: 我找到了表格所在的文件: \模块\ 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));
}
答案 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