从 Prestashop 的订单中删除 "Social Title"?

Remove "Social Title" from order form in Prestashop?

我刚刚下载并安装了最新版本的 Prestashop。并发现在订单结帐表单中有一个社交 Title-option。

我想删除它。我找到了如何删除 Mr 和 Mrs 框。但是整行和标签 "Social Title" 仍然存在。

已尝试在 Google 上搜索答案但找不到。部分答案参考addresses.tpl。但我认为自从这些线程以来模板可能已更改。

事实上,我已经尝试在整个模板目录中搜索"social",但找不到与此相关的内容。

离我最近的是../templates/customer/_partials/customer-form.tpl。我认为它是在以下位置呈现的:

<section>
    {block "form_fields"}
      {foreach from=$formFields item="field"}
        {block "form_field"}
          {form_field field=$field}
        {/block}
      {/foreach}
    {/block}
  </section>

所以,也许社交标题不能再从模板中更改了?

那么,现在我在哪里更改它?

您可以在以下路径的文件中找到 Social Titles 的代码:

/themes/default-bootstrap/identity.tpl

注意:从核心文件中删除代码不是一个好的做法,我们建议应用一些 CSS 来隐藏社交标题块。

店铺参数->客户设置->标题-删除标题 themes/xxx/templates/_partials/form-fields.tpl 第 9 行更改

  {if $field.type !== 'checkbox'}
    {$field.label}
  {/if}

  {if $field.type !== 'checkbox' and $field.type !== 'radio-buttons'}
    {$field.label}
  {/if}

是的,这是一种虚拟的解决方法,但它确实有效。

更新: 更合适的方法是评论块:

        $genderField = (new FormField)
        ->setName('id_gender')
        ->setType('radio-buttons')
        ->setLabel(
            $this->translator->trans(
                'Social title', [], 'Shop.Forms.Labels'
            )
        )
    ;
    foreach (Gender::getGenders($this->language->id) as $gender) {
        $genderField->addAvailableValue($gender->id, $gender->name);
    }
    $format[$genderField->getName()] = $genderField;

您可以在 /classes/form/CustomerFormatter 中找到它。php

在 Prestashop 1.7 中无需编辑任何代码,您只需转到 商店参数 -> 客户设置 -> 标题 并删除所有现有标题。

这将阻止生成 "Social title" 字段。