<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否

function haumenu_sanitize_security_user_security($value){
	$value = (array) $value;
	$original_value = get_option('hautility-option-01-security'); // 元の値を保持

	/*** ログインにユーザー名を使用しない ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['use-login-forced-email'] ) && $value['use-login-forced-email'] === '1' ) {
		$value['use-login-forced-email'] = '1'; // 明示的に '1' を設定
	} else {
		$value['use-login-forced-email'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ログインヒントを変更する ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['change-login-hints'] ) && $value['change-login-hints'] === '1' ) {
		$value['change-login-hints'] = '1'; // 明示的に '1' を設定
	} else {
		$value['change-login-hints'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ログイン時に計算問題を出す ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['login-math-check'] ) && $value['login-math-check'] === '1' ) {
		$value['login-math-check'] = '1'; // 明示的に '1' を設定
	} else {
		$value['login-math-check'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ログイン試行回数制限 ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['login-attemps'] ) && $value['login-attemps'] === '1' ) {
		$value['login-attemps'] = '1'; // 明示的に '1' を設定
	} else {
		$value['login-attemps'] = ''; // チェックされていない場合は空文字を設定
	}

	/***  ログイン状態を保存する」を無効にする ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['disable-rememberme'] ) && $value['disable-rememberme'] === '1' ) {
		$value['disable-rememberme'] = '1'; // 明示的に '1' を設定
	} else {
		$value['disable-rememberme'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ログイン履歴 ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['record-login-history'] ) && $value['record-login-history'] === '1' ) {
		$value['record-login-history'] = '1'; // 明示的に '1' を設定
	} else {
		$value['record-login-history'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ユーザースラグの変更 ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['use-change-author-slug'] ) && $value['use-change-author-slug'] === '1' ) {
		$value['use-change-author-slug'] = '1'; // 明示的に '1' を設定
	} else {
		$value['use-change-author-slug'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ユーザー名を6文字以上にする ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['minimun-username-length'] ) && $value['minimun-username-length'] === '1' ) {
		$value['minimun-username-length'] = '1'; // 明示的に '1' を設定
	} else {
		$value['minimun-username-length'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** 特定のユーザー名で登録できなくする ***/
	 /* * チェックボックス（存在するかどうか） */
	if ( isset( $value['banned-registration-username'] ) && $value['banned-registration-username'] === '1' ) {
		$value['banned-registration-username'] = '1'; // 明示的に '1' を設定
	} else {
		$value['banned-registration-username'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ユーザー名のブラックリスト ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['username-blacklist'] ) && is_string( $value['username-blacklist'] ) ) {
		$value['username-blacklist'] = sanitize_text_field( $value['username-blacklist'] ); // サニタイズ
	} else {
		if ( isset( $original_value['username-blacklist'] ) ) {
			$value['username-blacklist'] = $original_value['username-blacklist']; // 元の値を保持
		} else {
			$value['username-blacklist'] = '';
		}
	}

	/*** ログイン時に管理者メールアドレス（サイトのメールアドレス）へ通知する ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['is-use-login-notice-for-admin'] ) && $value['is-use-login-notice-for-admin'] === '1' ) {
		$value['is-use-login-notice-for-admin'] = '1'; // 明示的に '1' を設定
	} else {
		$value['is-use-login-notice-for-admin'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ログイン時にユーザーへ通知する ***/
	/* チェックボックス（存在するかどうか） */
	if ( isset( $value['is-use-login-notice-for-user'] ) && $value['is-use-login-notice-for-user'] === '1' ) {
		$value['is-use-login-notice-for-user'] = '1'; // 明示的に '1' を設定
	} else {
		$value['is-use-login-notice-for-user'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** 特定のIP以外から管理画面へのアクセスを禁止する ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['setting-restrict-access-ip'] ) && is_string( $value['setting-restrict-access-ip'] ) ) {
		$value['setting-restrict-access-ip'] = sanitize_text_field( $value['setting-restrict-access-ip'] ); // サニタイズ
	} else {
		if ( isset( $original_value['setting-restrict-access-ip'] ) ) {
			$value['setting-restrict-access-ip'] = $original_value['setting-restrict-access-ip']; // 元の値を保持
		} else {
			$value['setting-restrict-access-ip'] = '';
		}
	}

	/*** アクセス拒否時の遷移先 ***/
	/* セレクトボックス */
	if ( isset( $value['ip-vanned-redirect-page'] ) ) {
		//選択肢に合わせてarrayの中身を変更
		if ( in_array( (string) $value['ip-vanned-redirect-page'], array( '1', '2', '3','4' ), true ) ) {
			$value['ip-vanned-redirect-page'] = intval( $value['ip-vanned-redirect-page'] ); // 数値として保存する場合
		} else {
			// エラーメッセージの追加を削除
			$value['ip-vanned-redirect-page'] = isset( $original_value['ip-vanned-redirect-page'] ) ? $original_value['ip-vanned-redirect-page'] : ''; // 元の値を保持
		}
	} else {
		$value['ip-vanned-redirect-page'] = '1';
	}

	/* ---------- ここまでに項目ごとの記述をする ---------- */
	return $value;//値を返す
}