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

7

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

..wp-admin/customize.php.

Was also nötig wäre, wäre irgendwie den offenen Zugriff auf diese URL zuzulassen, aber sonst nichts im Backend. Ich nehme an, dass es wahrscheinlich ein Sicherheitsproblem gibt, 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?

byronyasgur
quelle

Antworten:

1

Nur eine Idee:

  1. Erstellen Sie einen Benutzer namens "Gast" und suchen Sie die Benutzer-ID
  2. Wenn Sie Ihre potenziellen Kunden auf die Administrationsseite umleiten, leiten Sie zu einem Skript um, das Ihre Kunden als Gastbenutzer anmeldet (Code 1).
  3. Fügen Sie eine WordPress-Aktion hinzu, um den Benutzer zu verbieten, wenn er als "Gast" und nicht in "customize.php" (Code 2) angemeldet ist.

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 besteht darin, dass mehrere Benutzer den Customizer ausprobieren. Das Speichern von Anpassungseinstellungen pro Benutzer würde die Dinge viel schwieriger machen.

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

Jasper Denkers
quelle
Danke, ja, Sie haben die Frage in Ordnung beantwortet, und ich verstehe das Konzept. Ich hatte diese Frage tatsächlich völlig vergessen, und ich habe momentan keine Zeit, dies zu testen ... aber es hört sich so an, als hätten Sie sich selbst, und ich bin sicher, dass es funktionieren würde oder zumindest dazu gebracht würde, zu funktionieren, denke ich Ihre Antwort verdient das Häkchen ... danke.
Byronyasgur