it-swarm.com.de

Ändern Sie die Registrierungsformular-Aktions-URL

Ich habe 2 Anmeldeformulare, standardmäßig eines im /wp-login.php?action=register für "Personalbeschaffer" -Benutzer und eines im /wp-login.php?action=register&type=candidat für "Kandidaten" -Benutzer

Mein Problem ist, dass im Kandidatenformular das Formular-Tag immer noch /wp-login.php?action=register als Aktions-URL hat und ich möchte, dass es /wp-login.php?action=register&type=candidat ist.

Ich habe versucht, die Datei wp-login.php zu aktualisieren, aber wenn ich Wordpress in Zukunft aktualisiere, wird mein Code überschrieben

Ich habe versucht, in anderen Themen den Hook 'register_url' zu verwenden, aber es scheint nicht zu funktionieren

2
Minimus

Sie könnten so etwas tun:

<?php

add_action( 'register_form', function() {
    $get_type = filter_input( INPUT_GET, 'type', FILTER_SANITIZE_STRING );

    if ( ! $get_type ) {
        return;
    }
?>
<input type="hidden" name="type" value="<?php echo esc_attr( $get_type ); ?>" />
<?php
});

Dadurch wird der Parameter type als ausgeblendetes Feld im Formular hinzugefügt, wenn er in der GET-Abfragezeichenfolge festgelegt ist.

1
phatskat

Ich bin einen anderen Weg gegangen als die andere Antwort, eine Änderung der Registrierungs-URL durch den site_url-Filter, ich habe es getestet und es funktioniert.

function my_verify_registration_type( $url, $path, $scheme, $blog_id ) {
    if ( $scheme == 'login_post' ) {
        if ( strpos( $url, '?action=register' ) !== false && !empty( $_REQUEST['type'] ) ) {
            $url = esc_url( add_query_arg( 'type', sanitize_text_field( $_REQUEST['type'] ), $url ) );
        }
    }
    return $url;
}
add_filter( 'site_url', 'my_verify_registration_type', 10, 4 );
0
socki03