Вопрос

Есть ли способ предотвратить модификацию платежных адресов всех пользователей? После ввода платежного адреса в регистрации я не хочу позволять пользователям модифицировать его. Большое спасибо.

Это было полезно?

Решение

Уведомление

Что вы просите, становится сложно, когда вы считаете, как Magento управляет платежным адресом. любой адрес адрес может быть платежным адресом. Клиент может просто выбрать его из компонента меню в различных точках в системе (т. Е. Оформить заказ, экран адресной книги).

Даже если вы ограничиваете редактирование на «Адрес выставления выставления счета по умолчанию», это также создает для вас некоторые накладные расходы, учитывая, что Magento позволяет устанавливать любой адрес в вашей адресной книге как адрес выставления счета по умолчанию. Другими словами, клиент может редактировать адрес «без выставления счета», затем установите его как адрес выставления выставления по умолчанию. Для вас будет громоздким, чтобы написать код для управления этим.

И используете какие-либо сторонние расширения, которые предоставляют редактирование адреса на интерфейсе? Здесь много думать здесь.

решение

С отказом от ответственности вы можете
просто предотвратить возможность редактировать адрес, изменяя 2 шаблоны:

# File: app/design/frontend/[package]/[theme]/template/customer/address/book.phtml
...
<h2><?php echo $this->__('Default Addresses') ?></h2>
<ol>
<?php if($_pAddsses = Mage::getSingleton('customer/session')->getCustomer()->getDefaultBilling()): ?>
    <li class="info-box">
        <div class="title-wrap">
            <h3><?php echo $this->__('Default Billing Address') ?></h3>
            <?php /*<a href="<?php echo $this->getAddressEditUrl(Mage::getSingleton('customer/session')->getCustomer()->getAddressById($_pAddsses)) ?>"><?php echo $this->__('Change Billing Address') ?></a>*/ ?>
        </div>              
        <address class="box-content">
            <?php echo $this->getAddressHtml(Mage::getSingleton('customer/session')->getCustomer()->getAddressById($_pAddsses)) ?>
        </address>
   </li>
<?php else: ?>
    <li class="info-box">
        <h3><?php echo $this->__('Default Billing Address') ?></h3>
        <?php echo $this->__('You have no default billing address in your address book.') ?>
...
.

См. Строка 9; Здесь мы просто прокомментируем ссылку для редактирования адреса. Не безопасно, но дает вам место для начала.

# File: app/design/frontend/[package]/[theme]/template/customer/address/edit.phtml
...
<?php
/**
 * Edit customer address template
 *
 * @see Mage_Customer_Block_Address_Edit
 */
?>
<?php if($this->getTitle()): ?>
<div class="page-title">
    <h1><?php echo $this->getTitle() ?></h1>
</div>
<?php endif; ?>
<?php if ($address->getId() === Mage::getSingleton('customer/session')->getCustomer()->getDefaultBilling()) :?>
<p><?php echo $this->__('Sorry, but you cannot modify this address.'); ?></p>
<?php else : ?>
...
<?php endif; ?>
.

Ниже приведен заголовок, мы добавляем дополнительную логику, которая проверяет, если редактируемый адрес является выставлением по умолчанию. Если это так, он не сделает форму редактирования и вместо этого отображать общее сообщение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top