2011-01-25 22 views
2

Могу ли я удалить клиента из интерфейса в magento. Я хочу предоставить доступ пользователю «удалить мою учетную запись».magento удалить мою учетную запись

И в контроллере помещено действие.

public function deleteAccountAction() 
{ 
    $log_customer = Mage::getSingleton('customer/session')->getCustomer();  
    $log_customer->delete(); 
    $this->_getSession()->logout() 
     ->setBeforeAuthUrl(Mage::getUrl()); 
    $this->_redirect('*/*/'); 
} 

Но это бросает исключение, как

: с 5: {я: 0; s: 51: "Не удается завершить эту операцию из не-администратора области."; Я: 1; s: 1348: "# 0 /home/makegood/public_html/stage/app/code/core/Mage/Core/Model/Abstract.php(505): Mage :: throwException ('Can not complete ...')

Как решить эту проблему.

ответ

5

Вместо того, чтобы удалять, вы могли бы setIsActive(false), который остановил бы пользователя от входа в систему.
Учетная запись все равно будет отображаться в администраторе, но будет деактивирована.

+0

Я согласен с установкой не активными. Вы можете столкнуться с некоторыми трудностями при просмотре заказов, размещенных указанным клиентом. – Nick

+0

Более того, уничтожение данных о клиентах - всего лишь болезненная идея. Третий для isActive. –

+0

Отлично, точно. Спасибо за это. – Elamurugan

6

Вы должны установить Mage::register('isSecureArea', true); перед удалением клиента от интерфейса