web-dev-qa-db-fra.com

Est-il possible (ou souhaitable) d'autoriser un accès ouvert au nouveau personnalisateur de thème pour les clients potentiels?

J'utilise le nouveau personnalisateur de thème et cela me fait vraiment penser à quel point il serait génial de permettre aux acheteurs/clients de thème potentiels de jouer avec le personnalisateur pour un thème de démonstration (sans être connecté). Le personnaliseur est situé à:

..wp-admin/customize.php.

Il faudrait donc autoriser un accès libre à cette URL , mais rien d’autre dans le back-end. Je suppose que cela pose probablement un problème de sécurité, mais je pensais avoir une discussion à ce sujet au cas où il serait possible de le faire en toute sécurité, car je suis sûr que d'autres personnes pourraient avoir la même idée.

La question est donc la suivante: existe-t-il un moyen sûr d’autoriser un accès ouvert à une seule page de l’administrateur?

7
byronyasgur

Juste une idée:

  1. Créer un utilisateur appelé 'Guest' et rechercher l'ID utilisateur
  2. Lorsque vous redirigez vos clients potentiels vers la page d'administration, redirigez vers un script qui enregistre vos clients en tant qu'invité (code n ° 1).
  3. Ajouter une action WordPress pour interdire à l'utilisateur de se connecter en tant qu'invité et non à personnaliser.php (code n ° 2)

Code # 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;

Code # 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'

Le seul problème avec ce script est lorsque plusieurs utilisateurs essaient le personnaliseur. Enregistrer les paramètres de personnalisation par utilisateur rendrait les choses beaucoup plus difficiles.

Il répond cependant à votre question, car il s’agit d’une solution permettant de donner aux utilisateurs un accès à une page spécifique sans qu’ils aient à créer un compte.

http://codex.wordpress.org/Function_Reference/wp_signon

1
Jasper Denkers