<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否
/* セクションID haumenu_define_section_id_04_ana_ad() */
/* タブのスラグ haumenu_define_tab_slug_04_ana_ad() */
/* $option_name 設定名 haumenu_define_option_name_04_ana_ad() */
/* get_option GetOP04_ana_ad() */

/***** 親設定の有効／無効に合わせて子設定の表示方法を変更する *****/
/* 関数名・設定名は画面ごとに変えること（関数重複を防ぐ） */
/* add_action('admin_notices', 'current_pagehook');を追加してページ名を取得し、$page_fooksuffixの値を変える */
/* 連動マップ（ID => セレクター）の項目を編集する */
function haup_child_setting_view_control_04_ana_ad( $hook_suffix ) {
	//ページフックにより出力を判断
	$page_fooksuffix = 'ha-utilitiy_page_haumenu_page_ana_ad';

	if ( $page_fooksuffix !== $hook_suffix ) {
		return;
	}

	//メインスクリプトのハンドル
	$handle = 'haup-child-setting-control-js';

	// メインスクリプトが登録されていなければ終了(スクリプトの読み込みはmain-menu.phpで記述)
	if ( ! wp_script_is( $handle, 'registered' ) ) {
		return;
	}

	//設定名
	$set_name = haumenu_define_option_name_04_ana_ad();

	// 連動マップ（ID => セレクター）
	// 1つのIDに対して複数のCSSクラスを指定する（1つなら1行）
	$dependency_map = array(
		$set_name . 'insert-adsense-tag' => array(
			'.adsense-user-id-wrapper', // Google Adsense ユーザーID
		),

		$set_name . 'adsense-ad-blocking-recovery-messages' => array(
			'.adsense-recovery-messages-id-wrapper', // 損失収益の回復用のスクリプトの識別ID
		),

	);

	$inner_js = "";
	foreach ( $dependency_map as $id => $selectors ) {
		foreach ( (array) $selectors as $selector ) {
			// translators: %s stands for the CSS Class & ID.
			$inner_js .= sprintf(
				"haup_apply_dependency('%s', '%s');\n",
				esc_js( $id ),
				esc_js( $selector )
			);
		}
	}

	if ( $inner_js ) {
		$js_code = "if (window.haup_apply_dependency) {\n" . $inner_js . "}";
		// 第3引数を 'after' にすることで、本体JSの直後に出力
		wp_add_inline_script( $handle, $js_code, 'after' );
	}
}
add_action( 'admin_enqueue_scripts', 'haup_child_setting_view_control_04_ana_ad', 20 );

/*** Adsenseスクリプトタグの出力 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_insert_google_adsense_tag(){
//項目の追加
	add_settings_field(
		'insert-adsense-tag', // $id フィールドを識別するスラッグ名
		__('Output Adsense script tag','hima-art-utility'), // $title 設定タイトル
		'haumenu_insert_google_adsense_tag', // $callback 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_04_ana_ad(), //表示させるタブのスラグ
		haumenu_define_section_id_04_ana_ad(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}

add_action( 'admin_init', 'haumenu_init_field_insert_google_adsense_tag' );

/* 入力フォーム */
function haumenu_insert_google_adsense_tag() {
	$set_name = haumenu_define_option_name_04_ana_ad(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'insert-adsense-tag'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('Enable Google Adsense ad script output','hima-art-utility'); ?></p>
</label>
<details class="accordion"  style="margin: 5px 0px 0px 0px;overflow: hidden;">
<summary class="accordion__title" style="cursor: pointer;"><?php esc_html_e('[Caution] Regarding the installation of Adsense ad tags','hima-art-utility'); ?></summary>
<div class="accordion__content">
<p><?php esc_html_e('By enabling this function, the following part of the Google Adsense ad tag will be automatically output.','hima-art-utility'); ?></p>
<p><?php esc_html_e('&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=Adsense ID&quot;
     crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;','hima-art-utility'); ?></p>
<p><?php esc_html_e('This tag is commonly written in manual Adsense ad tags, so please delete the above code part of each ad tag.','hima-art-utility'); ?></p>
<p style="color:red;"><?php esc_html_e('In particular, if you check "Enable ad delay output", please note that it will not work properly if even one of the above tags remains on the page.','hima-art-utility'); ?></p>
</div>
</details>
<?php
}

/*** Google Adsense ユーザーID ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_adsense_user_id(){
//項目の追加
	add_settings_field(
		'adsense-user-id', // 設定名
		__('Google Adsense User ID','hima-art-utility'), // 設定タイトル
		'haumenu_adsense_user_id', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_04_ana_ad(), //表示させるタブのスラグ
		haumenu_define_section_id_04_ana_ad(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-convine' )
	);

}

add_action( 'admin_init', 'haumenu_init_field_adsense_user_id' );

/* 入力フォーム */
function haumenu_adsense_user_id() {
	$set_name = haumenu_define_option_name_04_ana_ad(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'adsense-user-id'; //個別配列名
?>
<div class="adsense-user-id-wrapper">
<label>
	<input name="<?php echo esc_html($set_name . '['.$option_name.']'); ?>" type="text" class="transform" id="<?php echo esc_html($set_name . $option_name ); ?>" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>" class="transform" size="50">
	<p><?php esc_html_e('Enter the "ca-pub-xxxx" part of the Adsense Ad tag','hima-art-utility'); ?></p>
</label>
</div>
<?php
}

/*** 管理ユーザーにはAdsenseスクリプトタグを出力しない ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_insert_adsense_tag_without_user(){
//項目の追加
	add_settings_field(
		'insert-adsense-tag-without-user', // 設定名
		__('Do not display advertisements for admin users','hima-art-utility'), // 設定タイトル
		'haumenu_insert_adsense_tag_without_user', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_04_ana_ad(), //表示させるタブのスラグ
		haumenu_define_section_id_04_ana_ad(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_insert_adsense_tag_without_user() {
	$set_name = haumenu_define_option_name_04_ana_ad(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'insert-adsense-tag-without-user'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
	<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('When enabled, will output Adsense ads only if you are not logged in as an admin user','hima-art-utility'); ?></p>
</label>
<details class="accordion"  style="margin: 5px 0px 0px 0px;overflow: hidden;">
<summary class="accordion__title" style="cursor: pointer;"><?php esc_html_e('View detailed description','hima-art-utility'); ?></summary>
<div class="accordion__content">
	<p><?php esc_html_e('Once enabled, admin users will no longer see Adsense ads. This helps prevent site administrators from repeatedly viewing the page to check the site and misinterpreting it as spammy on the part of Google.','hima-art-utility'); ?></p>
</div>
</details>
<?php echo wp_kses_post(haup_usage_info_change_disable_adsense_auto_tag_cap()); ?>
<?php
}

/*** Adsenseスクリプトタグの遅延出力 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_google_adsense_delay(){
//項目の追加
	add_settings_field(
		'google-adsense-delay', // 設定名
		__('Enable ad delay output','hima-art-utility'), // 設定タイトル
		'haumenu_google_adsense_delay', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_04_ana_ad(), //表示させるタブのスラグ
		haumenu_define_section_id_04_ana_ad(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}

add_action( 'admin_init', 'haumenu_init_field_google_adsense_delay' );

/* 入力フォーム */
function haumenu_google_adsense_delay() {
	$set_name = haumenu_define_option_name_04_ana_ad(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'google-adsense-delay'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
	<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('By enabling it, it delays the loading of AdSense ads and prevents the display speed from slowing down.','hima-art-utility'); ?></p>
</label>
<details class="accordion"  style="margin: 5px 0px 0px 0px;overflow: hidden;">
<summary class="accordion__title" style="cursor: pointer;"><?php esc_html_e('View detailed description','hima-art-utility'); ?></summary>
<div class="accordion__content">
<p><?php esc_html_e('When enabled, when the mouse is operated after the page starts to load, or 3.5 seconds after the page loads, the ad output process will be performed. Enabling Adsense ads helps prevent page slowdowns','hima-art-utility'); ?></p>
</div>
</details>
<?php
}

/*** トップページでは出力しない ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_disable_adsense_autotag_frontpage(){
//項目の追加
	add_settings_field(
		'disable-adsense-autotag-frontpage', // 設定名
		__('Do not output on the top page','hima-art-utility'), // 設定タイトル
		'haumenu_disable_adsense_autotag_frontpage', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_04_ana_ad(), //表示させるタブのスラグ
		haumenu_define_section_id_04_ana_ad(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}

add_action( 'admin_init', 'haumenu_init_field_disable_adsense_autotag_frontpage' );

/* 入力フォーム */
function haumenu_disable_adsense_autotag_frontpage() {
	$set_name = haumenu_define_option_name_04_ana_ad(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'disable-adsense-autotag-frontpage'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('Do not output Adsense auto ad tags on the top page (blog format and fixed page top page)','hima-art-utility'); ?></p>
</label>
<p class="haup-admin-bk">
<span>
<?php esc_html_e('Enable it if ads are displayed even if partial output is disabled in Google Adsense auto ad tag settings.','hima-art-utility'); ?>
</span>
<br>
<span class="haup-admin-font-red">
<?php esc_html_e('*Google Adsense Auto Ads is a function that automatically displays ads when Adsense Auto Ad Settings is enabled and there is a script at the beginning of the ad code inserted into the page.','hima-art-utility'); ?>
</span>
<br>
<span class="haup-admin-font-red">
<?php esc_html_e('With this function enabled, if you insert a normal ad code in the fixed page that will be the top page or in the template that will be the home page, auto ads will be enabled and this function will be disabled. Please be careful.','hima-art-utility'); ?>
</span>
</p>
<?php
}

/*** アドセンスの広告ブロックによる損失収益の回復用のスクリプトを出力する ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_adsense_ad_blocking_recovery_messages(){
//項目の追加
	add_settings_field(
		'adsense-ad-blocking-recovery-messages', // 設定名
		__('Output a script to recover lost revenue due to AdSense ad blocking','hima-art-utility'), // 設定タイトル
		'haumenu_adsense_ad_blocking_recovery_messages', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_04_ana_ad(), //表示させるタブのスラグ
		haumenu_define_section_id_04_ana_ad(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}

add_action( 'admin_init', 'haumenu_init_field_adsense_ad_blocking_recovery_messages' );

/* 入力フォーム */
function haumenu_adsense_ad_blocking_recovery_messages() {
	$set_name = haumenu_define_option_name_04_ana_ad(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'adsense-ad-blocking-recovery-messages'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('When enabled, a tag will be output in AdSense privacy and message settings to recover lost revenue due to ad blocking.','hima-art-utility'); ?></p>
</label>
<p class="haup-admin-bk"><?php esc_html_e('Decide whether to output automatically or not according to the display method of the advertisement script on this setting screen.','hima-art-utility'); ?></p>
<?php
}

/*** 損失収益の回復用のスクリプトの識別ID ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_adsense_recovery_messages_id(){
//項目の追加
	add_settings_field(
		'adsense-recovery-messages-id', // 設定名
		__('Recovery Message Tag ID','hima-art-utility'), // 設定タイトル
		'haumenu_adsense_recovery_messages_id', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_04_ana_ad(), //表示させるタブのスラグ
		haumenu_define_section_id_04_ana_ad(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-convine' )
	);

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

/* 入力フォーム */
function haumenu_adsense_recovery_messages_id() {
	$set_name = haumenu_define_option_name_04_ana_ad(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'adsense-recovery-messages-id'; //個別配列名
?>
<div class="adsense-recovery-messages-id-wrapper">
<label>
	<input name="<?php echo esc_html($set_name . '['.$option_name.']'); ?>" type="text" class="transform" id="<?php echo esc_html($set_name . $option_name ); ?>" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>" class="transform" size="50">
	<p><?php esc_html_e('Enter the "pub-xxxx" part of the Adsense Recovery Message Tag','hima-art-utility'); ?></p>
</label>
</div>
<?php
}