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

/***** 規定値の設定 *****/
/* $parent_slug メインメニューのスラグ */
//haumenu_define_menu_slug()

/* $menu_slug サブメニューのスラグ */
function haumenu_define_slug_optimize(){
	return 'haumenu_page_optimize';
}

/*** SEO ***/
/* セクションID */
function haumenu_define_section_id_01_optimize(){
	return 'haumenu-section-01-optimize';
}

/* タブのスラグ */
function haumenu_define_tab_slug_01_optimize(){
	return 'haumenu-tab-slug-01-optimize';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_01_optimize(){
	return 'haumenu-option-group-01-optimize';
}

/* $option_name 設定名 */
function haumenu_define_option_name_01_optimize(){
	return 'hautility-option-01-optimize';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP01_optimize(){
	$output = get_option(haumenu_define_option_name_01_optimize() , [] );
	return $output;
}

/*** 表示速度改善 ***/
/* セクションID */
function haumenu_define_section_id_02_optimize(){
	return 'haumenu-section-02-optimize';
}

/* タブのスラグ */
function haumenu_define_tab_slug_02_optimize(){
	return 'haumenu-tab-slug-02-optimize';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_02_optimize(){
	return 'haumenu-option-group-02-optimize';
}

/* $option_name 設定名 */
function haumenu_define_option_name_02_optimize(){
	return 'hautility-option-02-optimize';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP02_optimize(){
	$output = get_option(haumenu_define_option_name_02_optimize() , [] );
	return $output;
}

/*** OGPタグ設定 ***/
/* セクションID */
function haumenu_define_section_id_03_optimize(){
	return 'haumenu-section-03-optimize';
}

/* タブのスラグ */
function haumenu_define_tab_slug_03_optimize(){
	return 'haumenu-tab-slug-03-optimize';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_03_optimize(){
	return 'haumenu-option-group-03-optimize';
}

/* $option_name 設定名 */
function haumenu_define_option_name_03_optimize(){
	return 'hautility-option-03-optimize';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP03_optimize(){
	$output = get_option(haumenu_define_option_name_03_optimize() , [] );
	return $output;
}

/*** SMTP ***/
/* セクションID */
function haumenu_define_section_id_04_optimize(){
	return 'haumenu-section-04-optimize';
}

/* タブのスラグ */
function haumenu_define_tab_slug_04_optimize(){
	return 'haumenu-tab-slug-04-optimize';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_04_optimize(){
	return 'haumenu-option-group-04-optimize';
}

/* $option_name 設定名 */
function haumenu_define_option_name_04_optimize(){
	return 'hautility-option-04-optimize';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP04_optimize(){
	$output = get_option(haumenu_define_option_name_04_optimize() , [] );
	return $output;
}

/*** その他 ***/
/* セクションID */
function haumenu_define_section_id_05_optimize(){
	return 'haumenu-section-05-optimize';
}

/* タブのスラグ */
function haumenu_define_tab_slug_05_optimize(){
	return 'haumenu-tab-slug-05-optimize';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_05_optimize(){
	return 'haumenu-option-group-05-optimize';
}

/* $option_name 設定名 */
function haumenu_define_option_name_05_optimize(){
	return 'hautility-option-05-optimize';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP05_optimize(){
	$output = get_option(haumenu_define_option_name_05_optimize() , [] );
	return $output;
}

/*****  サブメニューの追加 *****/
/* サブメニューの追加 */
function haumenu_add_submenu_optimize() {
	add_submenu_page(
		haumenu_define_menu_slug(), // $parent_slug メインメニューのスラグ
		__('Site Optimize','hima-art-utility'), //$page_title ページのタイトル
		__('Site Optimize','hima-art-utility'), // $menu_title メニューのタイトル
		'manage_options', // $capability 権限
		haumenu_define_slug_optimize(), // $menu_slug サブメニューのスラグ
		'haumenu_setting_screen_optimize', // $callback コールバック関数
		2 //$position サブメニューを表示する位置
	);
}
add_action( 'admin_menu', 'haumenu_add_submenu_optimize' );


/***** このサブメニューに表示させるセクションの登録 *****/
function haumenu_add_section_optimize(){
// SEO
	add_settings_section(
		haumenu_define_section_id_01_optimize(), // セクションID
		__('search engine optimization','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_01_optimize', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_01_optimize() // タブのスラグ
	);

// 表示速度改善
	add_settings_section(
		haumenu_define_section_id_02_optimize(), // セクションID
		__('Display speed improvement','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_02_optimize', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_02_optimize() // タブのスラグ
	);

// OGPタグ設定
	add_settings_section(
		haumenu_define_section_id_03_optimize(), // セクションID
		__('OGP Tag Setting','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_03_optimize', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_03_optimize() // タブのスラグ
	);

// SMTP
	add_settings_section(
		haumenu_define_section_id_04_optimize(), // セクションID
		__('SMTP-AUTH','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_04_optimize', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_04_optimize() // タブのスラグ
	);

// その他
	add_settings_section(
		haumenu_define_section_id_05_optimize(), // セクションID
		__('Other optimization features','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_05_optimize', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_05_optimize() // タブのスラグ
	);
}
add_action('admin_init', 'haumenu_add_section_optimize');

/*** 説明文のコールバック ***/
/* SEOの説明文 */
function haumenu_section_callback_01_optimize() {
	$content01 = __('It is a setting to convey the correct information of the content to the search engine','hima-art-utility');
	echo '<p>'.esc_html( $content01 ).'</p>';
}

/* 表示速度改善の説明文 */
function haumenu_section_callback_02_optimize() {
	$content01 =__('Settings for improving page display speed and scores on Google PageSpeed Insights, etc.','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
}

/* OGPタグ設定の説明文 */
function haumenu_section_callback_03_optimize() {
	$content01 =__('Settings for OGP Tags','hima-art-utility');
		echo '<p>'.esc_html($content01).'</p>';
}

/* SMTP Authの説明文 */
function haumenu_section_callback_04_optimize() {
	$content01 =__('Settings for sending emails using SMTP-AUTH','hima-art-utility');
	$content02 =__('Send emails in the SMTP-AUTH format, which has a higher delivery rate than normal email sending methods','hima-art-utility');
	$content03 =__('Also, the sender name, which is usually "WordPress", will be changed to the site name.','hima-art-utility');
	$content04 =__('There is no function to judge whether each item is set correctly. Be sure to check if the email is sent correctly using a plugin such as "WP Test Email"','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
	echo '<p>'.esc_html($content02).'</p>';
	echo '<p>'.esc_html($content03).'</p>';
	echo '<p style="color:red;">'.esc_html($content04).'</p>';
	echo '<div style="text-align:right;margin-top:1rem;"><a href="'.esc_url(HAUP_MANUAL_DIR).'/howtouse-smtp-auth" target="_blank">'.esc_html(haup_manual_text()).'</a></div>';
}

/* その他の説明文 */
function haumenu_section_callback_05_optimize() {
	$content01 =__('Settings for other functions useful for optimizing the site','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
}

/***** 設定グループを追加 *****/
function haumenu_register_setting_optimize(){
/* SEO */
	register_setting(
		haumenu_define_option_group_01_optimize(), // $option_group 設定グループ名
		haumenu_define_option_name_01_optimize(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_optimize_seo',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* 表示速度改善 */
	register_setting(
		haumenu_define_option_group_02_optimize(), // $option_group 設定グループ名
		haumenu_define_option_name_02_optimize(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_optimize_speedup',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);


/* OGPタグ設定 */
	register_setting(
		haumenu_define_option_group_03_optimize(), // $option_group 設定グループ名
		haumenu_define_option_name_03_optimize(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_optimize_ogp_tag',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* SMTP設定 */
	register_setting(
		haumenu_define_option_group_04_optimize(), // $option_group 設定グループ名
		haumenu_define_option_name_04_optimize(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_optimize_smtp_auth',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* その他 */
	register_setting(
		haumenu_define_option_group_05_optimize(), // $option_group 設定グループ名
		haumenu_define_option_name_05_optimize(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_optimize_other',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

}
add_action('admin_init', 'haumenu_register_setting_optimize');

/***** 設定画面内に表示させる内容 *****/
function haumenu_setting_screen_optimize() {
?>
<div class="wrap">
	<h1><?php esc_html_e('HimaArt Utilitiy Site Optimize Setting','hima-art-utility'); ?></h1>
	<p><?php esc_html_e('Setting screen for site optimization and SEO related items','hima-art-utility'); ?></p>

	<?php settings_errors(); //更新時のメッセージ表示?>
<?php
//クリックしたらタブを開く（初期はtabs_01を開く）
if ( ! isset( $_POST['haumenu_admin_panel_nonce_field'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash($_POST['haumenu_admin_panel_nonce_field'])), 'haumenu_admin_panel_nonce_action' ) ) {
if( isset( $_GET[ 'tab' ] )) {
	$active_tab = sanitize_text_field(wp_unslash($_GET[ 'tab' ]));
}else{
	$active_tab = 'tabs_01';
}
}
?>

	<?php //ページスラグとタブスラグを変更すること ?>
	<h2 class="nav-tab-wrapper">
		<a href="?page=<?php echo esc_html(haumenu_define_slug_optimize()); ?>&tab=tabs_01" class="nav-tab <?php echo $active_tab == 'tabs_01' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('search engine optimization','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_optimize()); ?>&tab=tabs_02" class="nav-tab <?php echo $active_tab == 'tabs_02' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Display speed improvement','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_optimize()); ?>&tab=tabs_03" class="nav-tab <?php echo $active_tab == 'tabs_03' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('OGP Tag Setting','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_optimize()); ?>&tab=tabs_04" class="nav-tab <?php echo $active_tab == 'tabs_04' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('SMTP-AUTH','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_optimize()); ?>&tab=tabs_05" class="nav-tab <?php echo $active_tab == 'tabs_05' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Other optimization features','hima-art-utility'); ?>
		</a>
	</h2>

<form action="options.php" method="post">
<?php wp_nonce_field( 'haumenu_admin_panel_nonce_action', 'haumenu_admin_panel_nonce_field' ); ?>

	<?php 
//詳細項目の「表示させるタブのスラグ」によって設定内容を表示させるタブを分ける
	if( $active_tab == 'tabs_01') { 
		settings_fields( haumenu_define_option_group_01_optimize() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_01_optimize() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_02' ) { 
		settings_fields( haumenu_define_option_group_02_optimize() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_02_optimize() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_03' ) { 
		settings_fields( haumenu_define_option_group_03_optimize() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_03_optimize() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_04' ) { 
		settings_fields( haumenu_define_option_group_04_optimize() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_04_optimize() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_05' ) { 
		settings_fields( haumenu_define_option_group_05_optimize() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_05_optimize() ); //タブのスラグ
	}else{}

		// 保存ボタンを生成
				submit_button(); 
		?>

	</form>
</div>
<?php
}

/*** 詳細設定項目の呼び出し ***/
/* SEO */
require_once (__DIR__ .'/seo/setting.php');

/* 表示速度改善 */
require_once (__DIR__ .'/speedup/setting.php');

/* OGPタグ設定 */
require_once (__DIR__ .'/ogp-tag/setting.php');

/* SMTP設定 */
require_once (__DIR__ .'/smtp-auth/setting.php');

/* その他 */
require_once (__DIR__ .'/other/setting.php');

/*** サニタイズ関数の呼び出し ***/
/* SEO */
require_once (__DIR__ .'/seo/sanitize.php');

/* 表示速度改善 */
require_once (__DIR__ .'/speedup/sanitize.php');

/* OGPタグ設定 */
require_once (__DIR__ .'/ogp-tag/sanitize.php');

/* SMTP設定 */
require_once (__DIR__ .'/smtp-auth/sanitize.php');

/* その他 */
require_once (__DIR__ .'/other/sanitize.php');