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

/*** プラグイン一覧に配布停止の警告を表示（除外リスト機能付き）***/
function haup_check_and_warn_for_deleted_plugins( $plugin_file, $plugin_data, $status ) {
	/* 1. 【設定必須】除外リストの定義 */
	/* hima-art-utilty.phpのhaup_ignore_plugin_check()で指定 */
	$exclusion_list = haup_ignore_plugin_check();


	/* 除外リストに登録されているプラグインは即座に処理を終了 */
	if ( in_array( $plugin_file, $exclusion_list, true ) ) {
		return;
	}

	/* 管理者ユーザーかつプラグイン一覧ページでのみ実行 */
	if ( ! is_admin() || get_current_screen()->id !== 'plugins' ) {
		return;
	}

	/* 2. WordPressの更新情報トランジェントを取得 */
	$update_plugins = get_site_transient( 'update_plugins' );

	/* トランジェントが存在しない場合は処理を中断 (API通信エラーの可能性) */
	if ( ! $update_plugins || ! is_object( $update_plugins ) ) {
		return;
	}

	/* 更新情報トランジェントにプラグインファイル名が含まれているか確認 */
	$is_in_update_check = false;

	/* 'response' (更新あり) リストをチェック */
	if ( ! empty( $update_plugins->response ) && isset( $update_plugins->response[ $plugin_file ] ) ) {
		$is_in_update_check = true;
	}

	/* 'no_update' (更新なし) リストをチェック */
	if ( ! empty( $update_plugins->no_update ) && isset( $update_plugins->no_update[ $plugin_file ] ) ) {
		$is_in_update_check = true;
	}

	/* 3. 公式ディレクトリに情報がない場合に警告を表示 */
	$plugin_name = esc_html( $plugin_data['Name'] );
	$message = '';

	//メッセージの切り分け
	if ( ! $is_in_update_check ) {// --- A. 配布停止（情報なし）の警告 ---
		$message = $plugin_name . __('is not officially distributed by WP or may have been deleted. We recommend using it after checking its safety.','hima-art-utility');
	} else {// --- B. 放置（最終更新日チェック）の警告 ---
		// プラグインの最終更新日と検証済みバージョンを取得（情報がない場合は空文字）
		$last_updated = isset( $plugin_data['LastUpdated'] ) ? $plugin_data['LastUpdated'] : '';
		$tested_wp = isset( $plugin_data['Tested'] ) ? $plugin_data['Tested'] : '不明';

		// 放置の判断基準：最終更新日から2年以上経過（定数 YEAR_IN_SECONDS を使用）
		if ( defined( 'YEAR_IN_SECONDS' ) ) {
			$two_years_ago = time() - ( YEAR_IN_SECONDS * 2 );
		} else {
			// 定数がない場合のフォールバック（365日 * 2 * 24時間 * 3600秒）
		$two_years_ago = time() - ( 365 * 2 * 86400 );
		}

		if ( $last_updated && strtotime( $last_updated ) < $two_years_ago ) {
			$last_updated_date = date_i18n( get_option( 'date_format' ), strtotime( $last_updated ) );
			$message = $last_updated_date . __('It has not been updated for over two years. We recommend that you use it only after checking its safety.','hima-art-utility');
		}
	}

	// メッセージがない場合は処理を終了
	if ( empty( $message ) ) {
		return;
	}

	/* 4. 警告の表示 */
	$colspan = ( 'all' === $status || 'inactive' === $status ) ? 5 : 4; 
	$notice_class = ( ! $is_in_update_check ) ? 'notice-error' : 'notice-warning'; // 情報なしは赤、放置は黄色

?>
<tr class="plugin-update-tr active">
	<td colspan="<?php echo esc_html($colspan); ?>" class="plugin-update colspanchange">
		<div class="update-message notice inline <?php echo esc_html($notice_class); ?> notice-alt" style="border-left-color: <?php echo ( $notice_class === 'notice-error' ) ? '#dc3232' : '#ffb900'; ?>;">
			<p><?php echo wp_kses_post( $message ); ?></p>
		</div>
	</td>
</tr>
<?php
}
add_action( 'after_plugin_row', 'haup_check_and_warn_for_deleted_plugins', 10, 3 );