如何从telephone field
中的结算信息部分中删除magento
。但在送货信息中,我需要telephone field
。我可以隐藏billing.phtml
文件中的电话。但是telephone field
是mandatory
字段。所以我无法点击“继续”按钮。
telephone
中我需要shipping Information page
字段(必填)。并且b telephone
中不需要illing information page
字段。
我该怎么做?请帮助我......任何帮助都非常明显。
答案 0 :(得分:3)
最终解决方案包含三个步骤:
删除客户端(javascript)验证
如果您的主题中尚不存在以下文件,则从基本/默认主题到您的主题:
template/checkout/onepage/billing.phtml
在每个文件中,查找定义电话字段的内容并从标签中删除所需的类,从输入中删除required-attribute类,并确保删除*。
重新定义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.');
}
您可以完全删除此部分,也可以将其置于/*
和*/
之间进行评论。
更改数据库中的客户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);
}
}