Como titulado.Cómo deshabilitar el registro de frontend en Magento
Pero aún así, los usuarios pueden iniciar sesión en la interfaz y el administrador puede crear una cuenta de usuario solo en el back-end.
Como titulado.Cómo deshabilitar el registro de frontend en Magento
Pero aún así, los usuarios pueden iniciar sesión en la interfaz y el administrador puede crear una cuenta de usuario solo en el back-end.
Ok. Lo hice funcionar. Consulte la solución Hugues, hay dos modificaciones:
añadir APP \ etc \ modules \ Mycompany_All.xml
<?xml version="1.0"?> <config> <modules> <Mycompany_Registrationremove> <active>true</active> <codePool>local</codePool> </Mycompany_Registrationremove> </modules> </config>
modificar el archivo: app/código/local/MyCompany /Registrationremove/etc/config.xml
<?xml version="1.0"?> <config> <modules> <Mycompany_Registrationremove> <version>0.1.0</version> </Mycompany_Registrationremove> </modules> <global> <rewrite> <mycompany_registrationremove_customer_account_create> <from><![CDATA[#^/customer/account/create/$#]]></from> <to>/registrationremove/customer_account/create</to> </mycompany_registrationremove_customer_account_create> <mycompany_registrationremove_customer_account_createPost> <from><![CDATA[#^/customer/account/createPost/$#]]></from> <to>/registrationremove/customer_account/createPost</to> </mycompany_registrationremove_customer_account_createPost> </rewrite> </global> <frontend> <routers> <mycompany_registrationremove> <use>standard</use> <args> <module>Mycompany_Registrationremove</module> <frontName>registrationremove</frontName> </args> </mycompany_registrationremove> </routers> </frontend> </config>
Puede modificar la pantalla de inicio de sesión para eliminar el botón "Crear nueva cuenta". De esta forma, los usuarios existentes aún pueden iniciar sesión, pero no tienen forma de crear nuevas cuentas.
El archivo a modificar es /app/design/frontend/default/default/template/customer/form/login.phtml. Alrededor de la línea 41 verás <div class="col-1 new-users">
. Comente todo el div para ocultar la sección Nuevo usuario de la página de inicio de sesión.
Editar:
No hay forma de que simplemente deshabilite el nuevo registro de usuario como lo está pidiendo. Hice un poco más de búsqueda, y todo lo que encontré fueron varias personas con sameidea como mías. Además de mi sugerencia original, me gustaría
a) eliminar la sección <customer_account_create>
de /app/design/frontend/default/default/layout/custom.xml, y
b) eliminar las líneas relacionadas con el registro de/app/diseño/frontend/default/default/template/checkout/onepage/login.phtml.
Bueno, esta es una forma sencilla de tratar con usuarios normales. Pero para los hackers avanzados, pueden hacerlo simplemente tecleando/customer/account/create/en la url para acceder a la página de creación de esa cuenta. ¿Hay alguna solución completa para eliminar la función de registro frontend? por cierto, simplemente no quiero cambiar la configuración de .htaccess. Solo quiero manejar este pequeño problema en un nivel más bajo en lugar de un nivel raíz. – Capitaine
Debe tener una tienda asesina si la gente está pirateando para entrar ;-) Es una broma, entiendo que está buscando un enfoque integral y limpio. Desafortunadamente, no creo que haya uno. Ver mis ediciones arriba. – BenV
Otra posibilidad sería sobrecargar la acción del cliente/cuenta/crear y simplemente redirigir al usuario a la página de inicio cuando se invoca esta acción.
En un primer momento, simplemente haga lo que propuso Ben V. Se eliminará la posibilidad de ver la página de registro.
A continuación, cree un nuevo módulo en el que sobrecargará el AccountController.php.
1- Crear una nueva carpeta en app/code/local/
llamado Miempresa
2- Crear una nueva carpeta en app/code/local/Mycompany/
llamado Registrationremove
3- Crear app/code/local/Mycompany/Registrationremove/etc/
4- Crear app/code/local/Mycompany/Registrationremove/etc/config.xml
Copia y Pegar en config.xml:
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Registrationremove>
<version>0.1.0</version>
</Mycompany_Registrationremove>
</modules>
<global>
<rewrite>
<mycompany_registrationremove_customer_account_create>
<from><![CDATA[#^/customer/account/create/$#]]></from>
<to>/registrationremove/customer_account/create</to>
</mycompany_registrationremove_customer_account_create>
<mycompany_registrationremove_customer_account_createPost>
<from><![CDATA[#^/customer/account/createPost/$#]]></from>
<to>/registrationremove/customer_account/createPost</to>
</mycompany_registrationremove_customer_account_createPost>
</rewrite>
</global>
<frontend>
<routers>
<registrationremove>
<use>standard</use>
<args>
<module>Mycompany_Registrationremove</module>
<frontName>registrationremove</frontName>
</args>
</registrationremove>
</routers>
</frontend>
</config>
5- Crear app/code/local/Mycompany/Registrationremove/controllers
6- Crear app/etc/modules/Mycompany_Registrationremove.xml
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Registrationremove>
<active>true</active>
<codePool>local</codePool>
</Mycompany_Registrationremove>
</modules>
</config>
7- Crear app/code/local/Mycompany/Registrationremove/controllers/Customer/AccountController.php
copiar y pegar en AccountController.php:
require_once 'Mage/Customer/controllers/AccountController.php';
class Mycompany_Registrationremove_Customer_AccountController extends Mage_Customer_AccountController
{
public function createAction()
{
$this->_redirect('*/*');
}
public function createPostAction()
{
$this->_redirect('*/*');
}
}
8- Crear app/code/local/Mycompany/Registrationremove/Helper/Data.php
Copiar y pegar en Data.php:
class Mycompany_Registrationremove_Helper_Data extends Mage_Core_Helper_Abstract
{
}
Ahora, cuando alguien trata de acceder al cliente/cuenta/crear/debería ser redirigido a la página de inicio.
Espero que haya ayudado :)
Hugues.
hola, consulte http://stackoverflow.com/questions/2959131/how-to-disable-frontend-registration-in-magento/3995507#3995507 – Capitaine
Esto funcionó. Sin embargo, puse AccountController.php bajo 'controladores /', no 'controladores/Cliente /' como se indica. –
Funcionó también para mí, pero tenía que mantener AccountController.php en 'controller/Customer /', y cambiar el nombre de la clase a 'Mycompany_Registrationremove_Customer_Accountcontroller'. –
En la estructura de ejemplo anterior, el nombre de la clase controlador debe ser cambiado de
Mycompany_Registrationremove_AccountController clase extiende Mage_Customer_AccountController
a
Mycompany_Registrationremove_Customer_AccountController clase extiende Mage_Customer_AccountController
¿Tiene este método funciona para ver. 1.4.1.1?
Finalmente decidí omitir todos los pasos complicados y también modificar el register.phtml en \ app \ design \ frontend \ base \ default \ template \ customer \ form, además de los archivos que dijo BenV.
He eliminado el formulario y le cambió el título a "Registro de usuarios discapacitados" :)
sí lo hace .... – Capitaine
Sí, creo que esto puede ser una buena idea con el mensaje que muestra "El registro está deshabilitado" sin modificaciones innecesarias pero debe copiar el archivo principal en la ubicación de su tema como \ app \ design \ frontend \ YOUR-THEME \ default \ template \ customer \ form \ register.phtml para Registration y \ app \ design \ frontend \ YOUR-THEME \ default \ template \ customer \ form \ login.phtml para iniciar sesión – Anil
no pude conseguir ninguna de las soluciones publicadas aquí a trabajar, y se encontró que tenía que utilizar la siguiente sintaxis en la configuración .xml (frontend específicamente sintaxis routers):
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Registrationremove>
<version>0.1.0</version>
</Mycompany_Registrationremove>
</modules>
<global>
<rewrite>
<mycompany_registrationremove_customer_account_create>
<from><![CDATA[#^/customer/account/create/$#]]></from>
<to>/registrationremove/customer_account/create</to>
</mycompany_registrationremove_customer_account_create>
<mycompany_registrationremove_customer_account_createPost>
<from><![CDATA[#^/customer/account/createPost/$#]]></from>
<to>/registrationremove/customer_account/createPost</to>
</mycompany_registrationremove_customer_account_createPost>
</rewrite>
</global>
<frontend>
<routers>
<customer>
<args>
<modules>
<Mycompany_Registrationremove before="Mage_Customer">Mycompany_Registrationremove_Customer</Mycompany_Registrationremove>
</modules>
</args>
</customer>
</routers>
</frontend>
</config>
Hay más información sobre este método aquí - http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/how_to_overload_a_controller
Uno siempre podría cambiar el router del cliente para apuntar a un módulo sin controladores, por ejemplo,
<frontend>
<routers>
<customer>
<args>
<module>MyModule_NullRouting</module>
</args>
</customer>
</routers>
</frontend>
Como una extensión de la respuesta de liquidez, un par de cambios más que haría para mejorar esto. En primer lugar, la expresión regular no coincide con la URL si no tiene una barra inclinada, por ejemplo. customer/account/create
. Para corregir, los nodos "de" deben leer <![CDATA[#^/customer/account/create(/.*)?$#]]>
y <![CDATA[#^/customer/account/createPost(/.*)?$#]]>
.
En segundo lugar, he incluido un observador que se detecta el evento customer_registration_is_allowed
(esto se llama en persistent/customer/form/login.phtml
cuando se utiliza el tema de RWD de la función $this->helper('customer')->isRegistrationAllowed()
):
<events>
<customer_registration_is_allowed>
<observers>
<your_module_set_is_active>
<class>Your_Module_Model_Observers_Customer</class>
<method>disableCustomerRegistration</method>
</your_module_set_is_active>
</observers>
</customer_registration_is_allowed>
</events>
Luego, en el observador:
class Your_Module_Model_Observers_Customer
{
/**
* Force disable customer registration
*
* @param Varien_Event_Observer $observer Observer
* @return void
*/
public function disableCustomerRegistration($observer)
{
$result = $observer->getResult();
if ($result->getIsAllowed() === true) {
$result->setIsAllowed(false);
}
}
}
Esto establece el registro falso y evita que se muestre el formulario de registro sin modificaciones de plantilla.
Espero que ayude esto!
Whoups, olvidé el /etc/modules/Mycompany_All.xml :) Y la acción createPost – liquidity