2015-04-14 39 views
1

如何從帳單信息部分中刪除telephone field,magento。但在航運信息我需要telephone field。我可以隱藏billing.phtml文件中的電話號碼。但telephone fieldmandatory字段。所以我不能點擊繼續按鈕。從Magento的帳單信息部分刪除電話號碼

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

我該怎麼做?請幫助我...任何幫助真的很明顯。

+0

http://www.magentocommerce.com/magento-connect/configurable-checkout.html正如我記得這個模塊放入你的禁用字段中的一些默認值在後臺 – zhartaunik

+1

SO是不是一個代碼寫作服務。如果您有一些代碼並且無法使用,請發佈它,以便我們可以幫助解決您的問題。 –

+0

@馬克菲茨傑拉德,我不要求代碼,但我需要一個建議或一些幫助如何做到這一點。如果我改變了一頁的內容(賬單),它會影響另一頁(shippig)。這就是爲什麼我在這裏發佈問題。以下鏈接針對常見情況說明:http://swarminglabs.com/magento-making-the-telephone-field-not-required-at-checkout/ – next2u

回答

2

最終的解決方案包含三個步驟分別是:

  1. 刪除客戶端(JavaScript)驗證 如果他們不存在內的主題,從基本/默認主題的以下文件複製到你的主題: template/checkout/onepage/billing.phtml
    在這些文件的每一箇中,查找定義電話字段並從標籤中刪除所需的類,從輸入中刪除required-attribute類並確保刪除*。

  2. 重新定義Mage_Customer_Model_Address_Abstract類 拷貝文件的應用程序/代碼/核心/法師/客戶/型號/地址/ Abstract.php到App /代碼/本地/法師/客戶/型號/地址/ 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。

+0

@ JIGNESH,此操作會取消帳單和發貨頁面中的電話驗證。我只需要從結算頁面中刪除它。 – next2u

+0

您可以使用前端的magento課程來運輸有效的電話。 css類:輸入文本required-entry – JIGNESH

0

你可以使用GoMage LightCheckout擴展,它是一個有很多有用的選項的單頁結帳解決方案,以及這些選項之一是對字段進行排序或刪除你不需要的人的能力。因此,您可以使用該擴展程序的管理面板設置禁用電話號碼字段。

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

APP->代碼 - >核 - > MAGE-> Eav->模型 - >屬性 - >數據 - > 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); 
       } 
      }