Bỏ Zip code

Thảo luận trong 'Các lỗi thường gặp' bắt đầu bởi admin, 17 Tháng mười một 2009.

  1. admin

    admin Mai Văn Hải Staff Member

    Nhiều bạn muốn bỏ phần Mã quốc gia khi khách hàng đăng nhập hoặc đặt mua hàng. H xin chỉ một cách bỏ đơn giản như sau:
    1. Bỏ trong Theme:
    - Mở file app/code/core/mage/customer/model/address/abstract.php và tìm đển dòng:
    Mã:
    if (!Zend_Validate::is($this->getPostcode(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter zip/postal code.');
            }
    Sửa thành:

    Mã:
    /*    if (!Zend_Validate::is($this->getPostcode(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter zip/postal code.');
            } */
    Sau đó bỏ đoạn code sau trong templates (checkout & Custommer):
    Mã:
     <p><label for="postcode"><?php echo $this->__('Zip/Postal Code') ?><?php if ($this->isZipCodeRequired()):?> <span class="required">*</span><?php endif;?></label><br />
        <input class="input-text validate-postcode<?php if ($this->isZipCodeRequired()):?> required-entry<?php endif;?>" type="text" id="postcode" name="estimate_postcode" value="<?php echo $this->htmlEscape($this->getEstimatePostcode()) ?>" /></p>

    Bài viết khác cùng chuyên mục:

  2. admin

    admin Mai Văn Hải Staff Member

    Cách 2 là viết module mới theo dạng như sau:
    tạo file /app/code/local/MyModule/Customer/Model/Address/Abstract.php với nội dung như sau:
    Mã:
    <?php
    class MyModule_Customer_Model_Address_Abstract extends Mage_Customer_Model_Address_Abstract
    {
         /**
         * Validate address attribute values
         *
         * @return bool
         */
        public function validate()
        {
            $errors = array();
            $helper = Mage::helper('customer');
            $this->implodeStreetAddress();
            if (!Zend_Validate::is($this->getFirstname(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter first name.');
            }
    
            if (!Zend_Validate::is($this->getLastname(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter last name.');
            }
    
            if (!Zend_Validate::is($this->getStreet(1), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter street.');
            }
    
            if (!Zend_Validate::is($this->getCity(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter city.');
            }
    
    /*  if (!Zend_Validate::is($this->getTelephone(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter telephone.');
            } */
    
            if (!Zend_Validate::is($this->getPostcode(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter zip/postal code.');
            }
    
            if (!Zend_Validate::is($this->getCountryId(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter country.');
            }
    
            if ($this->getCountryModel()->getRegionCollection()->getSize()
                   && !Zend_Validate::is($this->getRegionId(), 'NotEmpty')) {
                $errors[] = $helper->__('Please enter state/province.');
            }
    
            if (empty($errors)) {
                return true;
            }
            return $errors;
        }
    
    }
    ?> 
    
    Sau đó thêm code sau vào: /app/etc/modules/MyModule_All.xml

    Mã:
    <MyModule_Customer>
            <active>true</active>
            <codePool>local</codePool>
     </MyModule_Customer> 
    
  3. thanh

    thanh New Member

    Pác H ơi.
    Bỏ đoạn code trên trong file nào vậy.đường dẫn đến file đó.A.H để vậy khó tìm quá.E vào checkout/shipping.phtml.bỏ đoạn code trên rồi (cộng với bỏ trên templates như hướng dẫn )mà vẫn ko đc.E vào luôn onepage/shipping.phtml xóa đoạn code trên lun mà vẫn ko dc.bó tay.A.H hướng dẫn dùm cái.Thanksssss.

Chia sẻ trang này