2018/04/01 ブログのテーマをcocoonに変更しました。
スポンサーリンク

【WordPress】レビュー待ちの数を数えて通知する

スポンサーリンク

レビュー待ちの数をカウントしてみたくなったので、作ってみましたー

作成したプログラム

以下のプログラムをfunction.phpに追加します。

なんとなくコメント付けたので、説明は省略させていただきます。

add_action('transition_post_status', 'count_user_posts_by_type', 10, 3);

function count_user_posts_by_type($new_status, $old_status, $post)
{
  if (($old_status == 'auto-draft'
    || $old_status == 'draft'
    || $old_status == 'pending'
    || $old_status == 'future')
    && $new_status == 'publish' && $post->post_type == 'post') { //投稿されたら

    $args = array(
        'numberposts'   => -1, //全件取得
        'post_type'     => "post", //記事のみ
        'post_status'   => array('pending'), //pending -> レビュー待ち
        'author'        => $post->post_author //記事投稿者ID
    );
    $count_posts = count( get_posts( $args ) ); //投稿者の残りのレビュー待ち数
    $author = get_the_author_meta( 'display_name', $post->post_author ); //投稿者名
    $text = "${author}の残りのレビュー待ち数は `${count_posts}` 個"; //slackに投稿する文章
    post_slack($text); //slackに投稿
  }
}

function post_slack($text){ //slackに通知
  $slackApiKey = 'ここにslackAPI'; //上で作成したAPIキー
  $text = urlencode($text); //encode
  $channel = "general"; //channel名
  $channel = "%23".$channel; //#をくっつける
  $url = "https://slack.com/api/chat.postMessage?token=${slackApiKey}&channel=${channel}&text=${text}";
  file_get_contents($url); //slackに投稿
}

使い方

今回は通知場所をSlackにしてます。(Mailなどは wp_mailを使えばいいと思います)

 

記事が投稿されたら、投稿者の残りのレビュー待ち数を通知します。

4つも溜めてるのかよ

参考

PHPでSlackに通知を送る - Qiita
# 1. APIを使うためにAPIキーを作成する - - Slack Web APIのAuthenticationにてポチッと作成 # 2. PHPでSlackに通知を送る ``...

コメント