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

function haumenu_sanitize_optimize_smtp_auth($value){
	$value = (array) $value;
	$original_value = get_option('hautility-option-04-optimize'); // 元の値を保持

	/*** SMTP Authの有効化 ***/
		/* チェックボックス（存在するかどうか） */
	if ( isset( $value['enable-smtp-auth'] ) && $value['enable-smtp-auth'] === '1' ) {
		$value['enable-smtp-auth'] = '1'; // 明示的に '1' を設定
	} else {
		$value['enable-smtp-auth'] = ''; // チェックされていない場合は空文字を設定
	}

	/*** ホスト名 ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['smtp-host-name'] ) && is_string( $value['smtp-host-name'] ) ) {
		$value['smtp-host-name'] = sanitize_text_field( $value['smtp-host-name'] ); // サニタイズ
	} else {
		if ( isset( $original_value['smtp-host-name'] ) ) {
			$value['smtp-host-name'] = $original_value['smtp-host-name']; // 元の値を保持
		} else {
			$value['smtp-host-name'] = '';
		}
	}

	/* SMTP暗号化方式 */
	/* セレクトボックス */
	if ( isset( $value['smtp-encryption'] ) ) {
		//選択肢に合わせてarrayの中身を変更
		if ( in_array( (string) $value['smtp-encryption'], array( '1', '2' ), true ) ) {
			$value['smtp-encryption'] = intval( $value['smtp-encryption'] ); // 数値として保存する場合
		} else {
			// エラーメッセージの追加を削除
			$value['smtp-encryption'] = isset( $original_value['smtp-encryption'] ) ? $original_value['smtp-encryption'] : ''; // 元の値を保持
		}
	} else {
		$value['smtp-encryption'] = '1';
	}

	/*** ポート番号 ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['smtp-port'] ) && is_string( $value['smtp-port'] ) ) {
		$value['smtp-port'] = sanitize_text_field( $value['smtp-port'] ); // サニタイズ
	} else {
		if ( isset( $original_value['smtp-port'] ) ) {
			$value['smtp-port'] = $original_value['smtp-port']; // 元の値を保持
		} else {
			$value['smtp-port'] = '';
		}
	}

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

	/*** SMTP パスワード ***/
	/* テキストフィールド（文字列） */
	if ( isset( $value['smtp-password'] ) && is_string( $value['smtp-password'] ) ) {
		$value['smtp-password'] = sanitize_text_field( $value['smtp-password'] ); // サニタイズ
	} else {
		if ( isset( $original_value['smtp-password'] ) ) {
			$value['smtp-password'] = $original_value['smtp-password']; // 元の値を保持
		} else {
			$value['smtp-password'] = '';
		}
	}

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