从Magento的“结算信息”部分删除电话字段

时间:2015-04-14 12:40:46

标签: php magento shipping billing

如何从telephone field中的结算信息部分中删除magento。但在送货信息中,我需要telephone field。我可以隐藏billing.phtml文件中的电话。但是telephone fieldmandatory字段。所以我无法点击“继续”按钮。

telephone中我需要shipping Information page字段(必填)。并且b telephone中不需要illing information page字段。

我该怎么做?请帮助我......任何帮助都非常明显。

4 个答案:

答案 0 :(得分:3)

最终解决方案包含三个步骤:

  1. 删除客户端(javascript)验证 如果您的主题中尚不存在以下文件,则从基本/默认主题到您的主题: template/checkout/onepage/billing.phtml
    在每个文件中,查找定义电话字段的内容并从标签中删除所需的类,从输入中删除required-attribute类,并确保删除*。

  2. 重新定义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.');
    }
    

    您可以完全删除此部分,也可以将其置于/**/之间进行评论。

  3. 更改数据库中的客户EAV 打开表eav_attribute并使用attribute_code = “telephone”搜索行。记下此行的attribute_id。接下来,将列is_required设置为0(零) 现在,打开表customer_eav_attribute并搜索与您在上一步中记下的attribute_id相同的行。将此行上的列validation_rules设置为NULL。

答案 1 :(得分:1)

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

不要在数据库表中更改......... 你改变了Text.php文件..我提到了Path ....

改变这个:

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);
    }
}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

APP->代码 - >核 - > MAGE-> Eav->模型 - >属性 - > Data-用> Text.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);
                }
            }