Remove Validation from Phone Number Field on Magento Checkout
Add to Favourites
|
If you’re looking to remove the validation of telephone number (or the whole field completely) from the Magento checkout process, look no further. I’ve read that quite a few people have had some difficultly in removing this field – not only because sometimes it is difficult to find the correct template, but moreso because Magento tries to validate this field when the Continue button is pressed on the checkout – so even if you manually remove the field, you cannot progress onto the next stage of the checkout!
Until now.
Simply navigate to the file app/code/core/mage/customer/model/address/abstract.php and find the phrase “getTelephone” and you should comment out the code around this area, like so:
1 2 3 | /*if (!Zend_Validate::is($this->getTelephone(), 'NotEmpty')) {
$errors[] = $helper->__('Please enter telephone.');
}*/ |
Similarly, to remove the actual field itself, go to app/design/frontend/default/default/template/checkout/onepage/billing.phtml and app/design/frontend/default/default/template/customer/address/edit.phtml and remove the…
1 | <span class="required">*</span> |
…or just delete the whole field! If you are doing the former, it’ll look something like this:
1 2 3 4 5 6 7 8 9 10 | <li><div class="input-box">
<label for="billing:postcode"><?php echo $this->__('Zip/Postal Code') ?> <span class="required">*</span></label><br />
<input type="text" title="<?php echo $this->__('Zip/Postal Code') ?>" name="billing[postcode]" id="billing:postcode" value="<?php echo $this->htmlEscape($this->getAddress()->getPostcode()) ?>" class="validate-zip-international required-entry input-text" /></div>
<div class="input-box">
<label for="billing:country_id"><?php echo $this->__('Country') ?> <span class="required">*</span></label><br />
<?php echo $this->getCountryHtmlSelect('billing') ?></div></li>
<li><div class="input-box">
<label for="billing:telephone"><?php echo $this->__('Telephone') ?> </label><br/>
<input type="text" name="billing[telephone]" value="<?php echo $this->htmlEscape($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text" id="billing:telephone" /></div>
</li> |
Good luck!
about the author
This article was written by Sam Davis on November 28, 2008.
Computing over a glass of Grenache Shiraz... again! Sam is the Editor of Blasted Thing. Contact Us |
related articles
comments
11 Responses to “Remove Validation from Phone Number Field on Magento Checkout”
Leave a Reply
![]() Make “Ship to This Address” Default in Magento Checkout |





























Very handy tip, thanks.
For non-Windoze users the paths above are not case sensitive so:
app/code/core/mage/customer/model/address/abstract.php
should be:
/app/code/core/Mage/Customer/Model/Address/Abstract.php
Thanks
Hi nice post – very useful, definitely got me on the right track.
One small thing – note that to make this work I also had to remove the class “required entry” from the actual address input field (the one just below the span mentioned here)…
Thanks , this saved me quite a bit of time!
How can we remove this validation by custom module? not changing in core code?
Thanks,
Vijay Thummar
Hi ,
I am using Zend Forms
I have dynamic validation.
Trying to remove dynamic validation using the function
$elements->removeValidator(‘ele_4af42ceac7810′);
but its failing, not able to remove the validation, above field is having ‘Email’ Validation
Plz help.
Thanks
mohammad Tareque
Thank you very much for the tip!
it does not work for me
Thanks for this very clear synthesis of the many confuse forum posts about the subject!
Magento 1.4 users: the path to the default theme is base/default, not default/default; you have to adapt the above instructions accordingly.
Great help you have given me there. Thanks alot!
HEY thanks for this info but what about trying to remove validation when adding a customer manually trough the admin panel? Any ideas?
Thanks again