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

/* 投稿タイプフィルターのコードサンプル
function send_mail_test(){
	//コンマ区切りでメールを送る投稿タイプを指定
	$post_types = 'post,投稿タイプ1,投稿タイプ2'..;

	return $post_types;
}
add_filter('haup_send_pub_mail_posttype_filter','send_mail_test');
*/

/***** 投稿の公開時にサイトメールアドレスへ通知する *****/
/* https://ottan.jp/posts/2016/10/wordpress-publish-mail-push/ */
/* https://stackoverflow.com/questions/5434475/sending-email-to-users-when-post-is-published-in-wordpress */
function haup_post_pubulished_send_email($new_status, $old_status, $post_id) {
	$posttypes = 'post';
	$posttypes = apply_filters('haup_is_single_filter', $posttypes);
	$posttypes = apply_filters('haup_is_single_pub_send_mail_filter', $posttypes);
	//20250902 explodeだけでは空文字などがあった場合に不具合が出る可能性があるので修正
	$post_types_array = array_map('trim', explode(',', $posttypes));
	$post_types_array = array_filter($post_types_array);
	//$post_types_array = explode(',', $posttypes);//「,」で投稿タイプを分割

	if (in_array($post_id->post_type, $post_types_array)) {
		if ('publish' == $new_status && 'publish' != $old_status) {
			$to = get_option('admin_email'); // 送信先（サイトメールアドレス）
			$post_url = get_permalink($post_id); // 投稿のURL
			$post_title = get_the_title($post_id); // 投稿タイトル
			$author_ID = $post_id->post_author; // 投稿者のID
			$author_name = get_the_author_meta('nickname', $author_ID); // 投稿者のIDからニックネームを取得
			$subject = __('Post publish notification', 'hima-art-utility'); // メールの件名
			$headers = array('Content-Type: text/plain; charset=UTF-8'); // ヘッダー情報

			$title_text = __('Post Published', 'hima-art-utility');
			$posttitle_text = __('Post Title：', 'hima-art-utility');
			$posturl_text = __('Post URL：', 'hima-art-utility');
			$post_author_text = __('Author：', 'hima-art-utility');

			$message = $title_text . "\n" .
					   $posttitle_text . " " . $post_title . "\n" .
					   $posturl_text . " " . $post_url . "\n" .
					   $post_author_text . " " . $author_name . "\n";

			wp_mail($to, $subject, $message, $headers, array(''));
		}
	}
}
add_action('transition_post_status', 'haup_post_pubulished_send_email', 10, 3);