既読ボタン

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

会員制サイトで大切なお知らせをユーザーが読んだことを確認したい、読んだユーザーの名前と合計人数を投稿上に表示したい。

1.カスタムフィールドでユーザー名欄を作成
2.ログイン中のユーザー名を取得
3.ユーザー名欄を取得して、ログイン中ユーザー名が含まれていなければ既読ボタンを表示して送信してもらう
4.ユーザー名欄が空であれば、そのままログイン中ユーザー名を保存
5.ユーザー名欄に値が入っていれば、ログイン中ユーザー名をカンマ区切りで追加して保存
6.ユーザー名のみの表示であれば、そのままカンマ区切りで表示・カンマをタグに置換して表示
7.カウントをつけるのでユーザー名欄の値を一旦配列に入れてforeach、ユーザー名とカウントを表示

<?php $current_user = wp_get_current_user();
	$current = $current_user->last_name.' '.$current_user->first_name; ?>
<?php $usernames = get_field('username');
	if ($usernames) { $datas = explode(',', $usernames);
		$count=0; foreach ($datas as $data) {
			echo $data.' '; $count++; } echo ' 既読人数:'.$count.'人'; } 
	if (strpos($usernames, $current) === false) { ?>
<form method="post" action="" id="update">
   <input type='hidden' name='currentuser' value='<?php echo $current; ?>' />
   <input type='submit' value='既読' />
</form>
<?php } $username = $_POST['currentuser'];
	if ($usernames && $username && strpos($usernames,$username) === false) {
		$addition = $usernames.','.$username; 
			update_field('username', $addition, $post_id); } 
	elseif (!$usernames && $username) { update_field('username', $username, $post_id); } 	
?>