Presta 8 - 如何控制结账页面表单中显示的表单字段

问题描述 投票:0回答:1

结帐步骤 - 第一步“个人信息.tpl”有一个用于登录或创建帐户的表格。

我需要修改此表单的字段 - 实际上修改表单。有一个性别广播输入,我不想让前任看到。或生日日期字段。

所以我在override/classes中创建了文件夹表单并放在那里CustomerFormatter.php类-覆盖表单类(因为我不想修改Presta核心文件)

我想:

private $ask_for_birthdate = true;
private $ask_for_partner_optin = true;
private $partner_optin_is_required = true;

代表是否显示表单字段 - 但似乎这是错误的.. (已将

$ask_for_birthday
设置为 false,但生日日期字段仍然存在于表单中)

我错过了什么?如何控制结帐页面上的表单中显示哪些表单字段?

更新 我发现表单中的生日可以在PS选项中关闭。 但是当我对覆盖性别字段进行更改时,它们仍然存在。

当我在 classes/form/CustomerFormatter.php 中进行更改时 - 它的行为应如此,但在:

覆盖/classes/form/CustomerFormatter.php - 什么也没发生....

我正在研究 PS 8.04

php overriding prestashop prestashop-8
1个回答
0
投票

我发现了问题并将分享解决方案。

1 - 覆盖类必须扩展核心 - 我缺少这一点 - 这就是为什么在类中所做的更改没有任何作用的原因。

所以

override/classes/form/CustomerFormatter.php 
应该以

开头
class CustomerFormatter extends CustomerFormatterCore

菜鸟错误..

2 - 正如@ébewè 所指出的 您可以通过以下方式禁用 BO 中的性别:

  • 转到商店参数 > 客户 - 选择性别选项卡 - 删除所有性别 通过这样做,性别将从表格中消失。
  • 商店参数>客户->客户选项卡,您可以启用/禁用出生日期和合作伙伴优惠字段
© www.soinside.com 2019 - 2024. All rights reserved.