Ultimate Member プラグインに、確認用メールアドレスの一致チェック機能を追加する

会員制のサイトを作るときなど、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」

確認用のメールアドレスフィールドはこのように

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

↑上へまいりま〜す
%d人のブロガーが「いいね」をつけました。