it-swarm.com.de

Ist es möglich (oder ratsam), potenziellen Kunden den offenen Zugriff auf den neuen Theme-Customizer zu ermöglichen?

Ich habe den neuen Theme-Customizer verwendet und ich habe wirklich darüber nachgedacht, wie großartig es wäre, potenziellen Theme-Käufern/Kunden usw. das Spielen mit dem zu ermöglichen Customizer für ein Demo-Theme (ohne eingeloggt zu sein). Der Customizer befindet sich unter:

..wp-admin/customize.php.

Es müsste also irgendwie ein offener Zugriff auf diese URL zugelassen werden, aber nichts anderes im Backend. Ich nehme an, es gibt wahrscheinlich ein Sicherheitsproblem damit, aber ich dachte, ich würde hier eine Diskussion darüber führen, falls es möglich ist, dies sicher zu tun, da ich sicher bin, dass andere Leute die gleiche Idee haben könnten.

Die Frage ist also: Gibt es eine sichere Möglichkeit, den offenen Zugriff auf eine einzelne Seite des Administrators zuzulassen?

7
byronyasgur

Nur eine Idee:

  1. Erstellen Sie einen Benutzer mit dem Namen "Gast" und suchen Sie die Benutzer-ID
  2. Wenn Sie Ihre potenziellen Kunden auf die Admin-Seite umleiten, leiten Sie zu einem Skript um, das Ihre Kunden als Gastbenutzer anmeldet (Code # 1).
  3. Füge eine WordPress-Aktion hinzu, um dem Benutzer zu verbieten, wenn er als "Gast" angemeldet ist und nicht auf customise.php (Code # 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'

Das einzige Problem mit diesem Skript ist, wenn mehrere Benutzer den Customizer ausprobieren. Das Speichern von Anpassungseinstellungen pro Benutzer würde die Dinge erheblich erschweren.

Es beantwortet jedoch Ihre Frage, da es eine Lösung ist, Benutzern Zugriff auf eine bestimmte Seite zu gewähren, ohne dass sie ein Konto registrieren müssen.

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

1
Jasper Denkers