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
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.
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 );