it-swarm.com.de

Wie leite ich action = register link auf der lostpassword-Seite auf einen anderen Link um?

Ich habe eine spezielle WordPress-Registrierungsseite, auf der ein neuer Benutzer sein Registrierungsformular ausfüllen kann. Wenn jedoch jemand auf den Link "Passwort vergessen" im Anmeldebereich meiner Website klickt und dann auf "Registrieren" klickt, kann er sich für die Website registrieren, ohne das normale Registrierungsformular durchlaufen zu müssen. Wie kann ich die Seite wp-login.php? Action = register auf sample.com/register umleiten?

Danke im Voraus!

2
BentCircle

Hängen Sie sich in login_form_register ein und werfen Sie Leute mit wp_redirect auf Ihre Registrierungsseite.

<?php
add_action( 'login_form_register', 'wpse45134_catch_register' );
/**
 * Redirects visitors to `wp-login.php?action=register` to 
 * `site.com/register`
 */
function wpse45134_catch_register()
{
    wp_redirect( home_url( '/register' ) );
    exit(); // always call `exit()` after `wp_redirect`
}

Sie können den Link "Registrieren" auf dieser Seite auch ausblenden, indem Sie die Option user_can_register auf der Anmeldeseite hijacken. Hängen Sie sich in login_form_lostpassword und login_form_retrievepassword ein und fügen Sie von dort aus einen Filter zu pre_option_users_can_register hinzu.

<?php
add_action( 'login_form_lostpassword', 'wpse45134_filter_option' );
add_action( 'login_form_retrievepassword', 'wpse45134_filter_option' );
/**
 * Simple wrapper around a call to add_filter to make sure we only
 * filter an option on the login page.
 */
function wpse45134_filter_option()
{
    // use __return_zero because pre_option_{$opt} checks
    // against `false`
    add_filter( 'pre_option_users_can_register', '__return_zero' );
}

Als Plugin .

5
chrisguitarguy