Draft Concluder


Based on an idea by John Blackbourn, and mentioned by Post Status, this plugin is designed to be a reminder to those who leave draft posts unloved. And, yes, all of John’s ideas are here, with more to boot.

  • Send emails out on a daily or weekly schedule and at a time that you’d prefer
  • Look for draft pages as well as posts, if you like. Or just pages, if that’s what you want. We won’t judge
  • Target those drafts that were created more than a specific time period ago, or have not been updated for a while
  • Each user, who has drafts that then reminding about, will receive an email. No, they can’t unsubscribe from them
  • Each email will show the number of drafts, along with a reminder of each of them
  • Optional ability to prevent the plugin from being deactivated (allow you to avoid the temptation to do so rather than, you know, deal with the drafts)
  • Debug features to allow to verify what’s being sent

Oh, and, naturally, the code passes WordPress and WordPress VIP coding standards.

I’d like to thank Caleb Burks for the feedback he provided. Also, the iconography is courtesy of the very talented Janki Rathod.

Please visit the Github page for the latest code development, planned enhancements and known issues


Draft Concluder was mentioned in issue 421 of the Post Status newsletter (published 16th November 2020).

It was also mentioned in edition 21 of the WP Weekly newsletter (published 23rd November 2020)


  • [設定]→[一般] 中可用的選項


在 WordPress 管理後台的 [外掛] 選單 ([外掛]→[新增外掛]) 中可以找到及安裝 Draft Concluder,也可以從 WordPress.org 手動下載並安裝…

  1. 將完整的 draft-concluder 資料夾上傳至網站的 wp-content/plugins/ 目錄中。
  2. 請在 WordPress 管理後台的 [外掛] 選單啟用這個外掛。

It’s now ready to go but, if you want to tweak further, head to Settings -> General.


為什麼這個外掛稱為 Draft Concluder?

Because it helps you find an end to those annoying drafts that sit around and never get completed. And it’s a pun on “draft excluder”. Yes, I know – blame my SO, who came up with the name.

What does the “Status” on the Settings screen mean?

In Settings -> General -> Draft Concluder, you’ll see, under the title, a status – this will tell you when it last ran and whether it was successful or not.

The success is dependent on whether any error was returned when sending out emails – a failure would indicate a problem with wp_mail and will need further investigation.

The email isn’t turning up at the time that it’s scheduled!

The internal WordPress scheduler is an interesting beast. It’s totally reliant on someone visiting your site for it to trigger – so if you set it to 1am but nobody visits until 8am then, yeah, you won’t get email until after 8am.

Thankfully, I thought of you when I wrote the plugin. As per the previous question, there’s a status on the settings screen. Additionally, there are 2 shortcodes that you can add to any post or page to help you out.

[dc_now] - this will run the email generator and show, on screen, what would be sent if you were running it now.

[dc_last_run] - this will show, on screen, what happened during the last scheduled run. So, if the status in the settings shows it ran, you can use this shortcode to display what was actually sent and to whom.



Can I just send the email to spam instead?

I wouldn’t do that. The email comes from the site’s account – marking it as spam may also lead to all other site emails going the same way, including password resets and important security information.

Look, if it means that much to you, maybe look to sorting out your drafts, yes?


…said no-one. But seriously, you want to remove the temptation, right?

Crack open your site’s wp-config.php and add the following line of code…


And the deed is done – you can no longer disable the plugin (cue diabolical laughter).




以下人員參與了開源軟體〈Draft Concluder〉的開發相關工作。


〈Draft Concluder〉外掛目前已有 2 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將〈Draft Concluder〉外掛本地化為台灣繁體中文版


任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄


I use semantic versioning, with the first release being 1.0.


  • Enhancement: Code quality improvements – now abides by the WordPress rules for PHPCS
  • Enhancement: Changed the format of the date and time in the settings screen


  • Bug: Corrected incorrect text domains – thanks to Alex Lion for identifying this.
  • Enhancement: I updated my PHPCS rulesets and, sure enough, those nerds had changed them. So I had some more changes to make to bring my code inline with the standards.
  • Enhancement: I’d split the code into 4 separate files and, yet, none of them were particularly big. To make thing easier I’ve combined them back again.


  • Enhancement: Added a word count to the draft information


  • Enhancement: Making better use of selected command for my settings output (thanks to Tom Nowell)
  • Enhancement: You can now choose any hour of the day for the email to be generated, not just select hours
  • Enhancement: Various improvements to plugin meta and this README
  • Enhancement: Improvements to email format (thanks to Michelle Keefer)
  • Enhancement: When changing the hour that the email is generated, and you’ve chosen a daily run, it will be produced same day if the hour hasn’t already passed
  • Enhancement: Added next run time to the settings output
  • Enhancement: Improved internationalization
  • Bug: Shortcodes now correctly output (thanks to Tom Nowell)


  • Bug: In what must be the quickest time from initial release to first bug report, thanks to JeanPaulH for finding a stray comma!


  • Initial release