Pregunta:
He estado usando el nuevo personalizador de temas y realmente me hace pensar en lo increíble que sería permitir que los compradores / clientes potenciales de temas, etc., jueguen con el personalizador para un tema de demostración (sin iniciar sesión). El personalizador se encuentra en:
..wp-admin/customize.php
.
Entonces, lo que se necesitaría sería permitir de alguna manera el acceso abierto a esta URL, pero nada más en el back-end. Supongo que probablemente haya un problema de seguridad con esto, pero pensé en discutirlo aquí en caso de que sea posible hacerlo de manera segura, ya que estoy seguro de que otras personas podrían tener la misma idea.
Entonces, la pregunta es: ¿hay alguna forma segura de permitir el acceso abierto a una sola página del administrador?
Respuesta:
Solo una idea:
- Cree un usuario llamado 'Invitado' y busque el ID de usuario
- Al redirigir a sus clientes potenciales a la página de administración, redirija a una secuencia de comandos que está registrando a sus clientes como usuario invitado (Código n. ° 1)
- Agregue una acción de WordPress para no permitir que el usuario inicie sesión como 'Invitado' y no en personalizar.php (Código # 2)
Código # 1
$creds = array(
'user_login' => 'guest_user',
'user_password' => 'guest_user_plain_password'
);
$user = wp_signon( $creds, false );
if ( is_wp_error( $user ) )
echo $user->get_error_message();
else
wp_redirect( 'your_absolute_admin_url' ); exit;
Código # 2
add_action( 'init', 'check_guest_user' );
function check_guest_user() {
// Only when in backend and the guest user is logged in
if ( is_admin() && user_id = get_current_user_id() ) {
// Block other pages then custom.php
global $pagenow;
if ( 'customize' != $pagenow )
exit();
}
}
// replace user_id with the user ID of 'Guest'
El único problema con este script es cuando varios usuarios están probando el personalizador. Guardar la configuración de personalización por usuario haría las cosas mucho más difíciles.
Sin embargo, responde a su pregunta, ya que es una solución para dar acceso a los usuarios a una página específica sin que tengan que registrar una cuenta.