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)


  • Available options, available in Settings -> General


Draft Concluder can be found and installed via the Plugin menu within WordPress administration (Plugins -> Add New). Alternatively, it can be downloaded from WordPress.org and installed manually…

  1. Upload the entire draft-concluder folder to your wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress administration.

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


Why’s it called 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 unsubscribe from the email that I’m sent?

Heck, no. That’s the beauty of this plugin.

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?

How can I prevent the plugin from being deactivated?

…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).


Ma jiraan wax dibu-eegis ah oo ku saabsan kaabahan.

Ka-qaybgalayaasha & Horumariyayaasha

“Draft Concluder” waa softiweer il furan. Dadka soo socda ayaa wax ku biiriyay kaabahan.


“Draft Concluder” waxaa lagu tarjumay 2 luqadood. Way ku mahadsan yihiin turjumaannada ka-qaybqaadashadooda.

Ku tarjun “Draft Concluder” luqaddaada.

Ma xiisaynaysaa horumarinta?

Baadh koodka, fiiri bakhaarka SVN, ama iska qor diiwaanka horumarinta adigoo adeegsanaya 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