私は2つの登録フォームを持っています、 "recruiter"ユーザーのための/wp-login.php?action=register
のデフォルトのもの、 "候補者"ユーザーのための/wp-login.php?action=register&type=candidat
の他のもの
私の問題は、候補フォームではformタグがまだアクションURLとして/wp-login.php?action=register
を持っていることです、そしてそれを/wp-login.php?action=register&type=candidat
にしたいのです。
Wp-login.phpファイルを更新しようとしましたが、将来Wordpressを更新すると、コードが上書きされてしまいます
私は他のトピックで 'register_url'フックを使うことを推奨してみましたが、うまくいかないようです
あなたはこのようなことをすることができます:
<?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
});
GETクエリ文字列で設定されている場合、これはフォームの隠しフィールドとしてtype
パラメータを追加します。
私は他の答え、site_urlフィルタを通して登録URLの修正とは異なるルートをたどりました、私はそれをテストしました、そしてそれはうまくいきます。
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 );