正如我的标题所暗示的。

我熟悉如何在一页结帐的计费中执行此操作(

  1. 在不需要的属性中 eav attributes 数据库中的表格,
  2. 复制 Customer/Model/Address.php 文件编辑方法“ validate”中的相关验证)。

但是,这在PayPal Express评论页面上没有帮助,并且不允许用户结帐说明:

“不正确的帐单地址。需要城市领域”

必须有一个类似的文件(到 Abstract.php)在提交之前验证数据,但我只是无法跟踪。任何可以或已经知道的人都请注意电话 - 社区也可能会从中受益。任何其他信息都需要让我知道。谢谢

有帮助吗?

解决方案

我讨厌发布自己的问题的答案,但似乎最需要它的人,我在这里走了距离。

因此,在尝试了许多技术之后,包括:

1)在不需要的属性 eav attributes 数据库中的表格;

2)在计费更新(随着事件)时,将这些必需字段添加到数据库中

我想出的最好的作品(很好)是为任何需要但无关的字段创建隐藏的字段 - 在我的情况下 city, regionpostcode - 并将它们包括在表格中。我相信最简单的方法是在自定义模块文件中为此创建一个函数(更改 $inputFields_arr 要对应您要忽略的所需字段):

public function getRequiredNotRequestedInputs($prefix) { // fill in input values required but not wanted
    $value = 'NOT REQUESTED';
    $inputFields_arr = array('city', 'region', 'postcode'); // required fields that we don't need/request
    foreach($inputFields_arr as $inputField) {
        $return_arr[] = '<input type="hidden" name="'.$prefix.'['.$inputField.']" id="'.$prefix.':'.$inputField.'" value="'.$value.'" />';
    }
    return implode('',$return_arr);
}

然后这样称呼:

<?php echo $moduleFile->getRequiredNotRequestedInputs('billing'); // set city, postcode, etc ?>

..从您想要的任何点(哪里) $moduleFile 是您存储上述函数的文件)。就我而言,我已经打电话给:

app/design/frontend/default/YOUR-TEMPLATE/template/YOUR-CUSTOM-LAYOUT/checkout/billing.phtml

我知道,有些人想以快速而讨厌的方式(这就是您的perogative),通过将隐藏的字段直接放入本地前端文件(和覆盖核心),但是在学习使用之后随身携带的自定义模块,它不仅可以帮助您更新(听觉良好的讲道),还可以使事情变得整洁,对我来说,这是一半以上的战斗。希望这对他人有帮助。

许可以下: CC-BY-SA归因
scroll top