php 删除Magento中账单信息部分的电话字段

iyr7buue  于 2023-01-16  发布在  PHP
关注(0)|答案(4)|浏览(72)

如何从magento中的帐单信息部分中删除telephone field。但是在发货信息中我需要telephone field。我可以隐藏billing.phtml文件中的电话字段。但是telephone fieldmandatory字段。所以我无法单击继续按钮。
我需要shipping Information page中的telephone字段(强制)。而不需要B illing information page中的telephone字段。
我该怎么办呢?请帮帮我......任何帮助都是值得感谢的。

lzfw57am

lzfw57am1#

最终解决方案包含三个步骤,即:
1.删除客户端(javascript)验证如果主题中不存在这些文件,请将以下文件从基本/默认主题复制到主题中:template/checkout/onepage/billing.phtml
在每个文件中,查找定义电话字段的,从标签中删除必需的类,从输入中删除必需属性类,并确保删除 *。
1.重新定义Mage_Customer_Model_Address_Abstract类将文件app/code/core/Mage/Customer/Model/Address/Abstract.php复制到app/code/local/Mage/Customer/Model/Address/Abstract.php,这样可以确保升级不会破坏你的修改,现在打开文件,查找验证电话字段的部分,它应该如下所示:

if (!Zend_Validate::is($this->getTelephone(), 'NotEmpty')) {
    $errors[] = $helper->__('Please enter the telephone number.');
}

您可以完全删除此部分,也可以将其放在/**/之间,将其注解掉。
1.更改数据库中的客户EAV打开表eav_attribute并搜索包含attribute_code = “telephone”的行。记下此行的attribute_id。接下来,将列is_required设置为0(零)。
现在,打开表customer_eav_attribute,搜索与上一步中记录的attribute_id相同的行,将该行的列validation_rules设置为NULL。

daolsyd0

daolsyd02#

app->code->core->mage->Eav->Model->Attribute->Data->Text.php

不要在数据库表中更改.........你在Text.php文件中更改..我提到了路径....
更改此内容:

if ($attribute->getIsRequired() && strlen($value) == 0)
{
   $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label);
}

致:

if ($attribute->getIsRequired() && strlen($value) == 0)
{
if($label != 'Telephone')
    {
        $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label);
    }
}
cotxawn7

cotxawn73#

你可以使用GoMage LightCheckout扩展,它是一个单页结账解决方案,有很多有用的选项,其中一个选项是排序字段或删除不需要的字段。因此,你可以使用该扩展的管理面板设置禁用电话号码字段。

h5qlskok

h5qlskok4#

应用程序-〉代码-〉核心-〉图像-〉Eav-〉模型-〉属性-〉数据-〉文本.php
不要在数据库表中更改.........你可以在Text.php中更改,请为它创建一个本地副本,这意味着核心文件编辑在magento中不是一个好习惯,所以在app/code/local/Mage/Eav/Model/Attribute/Data/Text.php中创建一个文件夹
更改这些行:

if ($attribute->getIsRequired() && strlen($value) == 0)
{
   $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label);
}

改为:

if ($attribute->getIsRequired() && strlen($value) == 0)
{
if($label != 'Telephone')
    {
        $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label);
    }
}


更改这些行:

$validateRules = $attribute->getValidateRules();        
                if (!empty($validateRules['min_text_length']) && $length < $validateRules['min_text_length']) {
                    $v = $validateRules['min_text_length'];
                    $errors[] = Mage::helper('eav')->__('"%s" length must be equal or greater than %s characters.', $label, $v);
                }
                if (!empty($validateRules['max_text_length']) && $length > $validateRules['max_text_length']) {
                    $v = $validateRules['max_text_length'];
                    $errors[] = Mage::helper('eav')->__('"%s" length must be equal or less than %s characters.', $label, $v);
                }

收件人:

$validateRules = $attribute->getValidateRules();
        if($label != 'Telephone')
            {
                if (!empty($validateRules['min_text_length']) && $length < $validateRules['min_text_length']) {
                    $v = $validateRules['min_text_length'];
                    $errors[] = Mage::helper('eav')->__('"%s" length must be equal or greater than %s characters.', $label, $v);
                }
                if (!empty($validateRules['max_text_length']) && $length > $validateRules['max_text_length']) {
                    $v = $validateRules['max_text_length'];
                    $errors[] = Mage::helper('eav')->__('"%s" length must be equal or less than %s characters.', $label, $v);
                }
            }

相关问题