会員制のサイトを作るときなど、Ultimate Member プラグインは非常に使えるヤツなのです。
複数のユーザーレベル(権限)を設定できて、各ユーザーレベルにそれぞれの登録フォーム、編集フォーム、ログインフォームを紐付けることができます。デザインもオリジナルで十分美しい。
しかし、よくある「確認のためもう一度メールアドレスを入力してください…」というアレがないのです。
日本語で解説しているサイトが見当たらなかったので、しょうがなく本家の英語マニュアルを見てみました。
全フックのマニュアルページがあり、その中に「um_custom_field_validation_{$custom}」フックを見つけました。
このフックを使うと、Custom Validation(オリジナルの入力チェック)を設定することができました。
function.phpに追加
<?php
function um_custom_validate_email_confirm( $key, $array, $args ) {
if ( isset( $args['user_email_confirm'] ) && ( $args['user_email'] != $args['user_email_confirm'] )) {
UM()->form()->add_error( 'user_email_confirm', '確認用メールアドレスが一致しません。' );
}
}
add_action( 'um_custom_field_validation_email_confirm', 'um_custom_validate_email_confirm', 30, 3 );
?>
フォーム側はこのように設定
メールアドレスは、もともと用意されているフィールド

特に何も変更していません。メタキーは「user_email」
確認用のメールアドレスフィールドはこのように

そうすると、結果はこのように
