Matt Cromwell Avatar
Nudging your free users to donate to your free code is a GOOD idea. But you have to do it right. Do it right with this easy “Delayed Admin Notice” library.

I built a tool called “Delayed Admin Notice” which allows you to trigger an admin notice a certain number of days after a user activates your plugin. My purpose was to encourage my free plugin users to know that they can review my plugin and/or donate to its development. But admin notices can be obnoxious too, that’s why this one is a bit opinionated.

In the words of the WordPress Plugin Guidelines:

Users prefer and expect plugins to feel like part of WordPress. Constant nags and overwhelming the admin dashboard with unnecessary alerts detract from this experience.

I think when done well, admin notices can benefit a plugin or theme author while still being useful and informative for the user. That’s a win-win in my book. Here’s the keys to making that happen though.

Principles of Respectful Admin Notices

I believe that Admin notices have to always have the end-user in mind. These are some principles I kept in mind when I developed this little library

  • The admin notice should only appear at the time it is relevant
    Showing notices at plugin activation isn’t always the best time for a notice to appear. Sometimes a notice should be triggered after another action (or inaction) occurs. Choosing the right time for a notice to occur helps ensure that the user already has the necessary context to understand the message.
  • The admin notice must be forever dismissable
    Nothing you have to say to your users is relevant for forever. If your user indicates that they want the notice gone, it should stay gone forever.
  • The admin notice should only appear on pages that it is directly related to
    If your notice is about your plugin settings, show it on the Plugin page and/or your Plugin settings page only. It really doesn’t belong on the Post/Page edit screen.
  • The admin notice should only appear to users for whom it is relevant
    If your notice is about plugin or theme settings, it shouldn’t appear to users who don’t have the ability to see, let alone change those settings. WordPress is full of user roles and capabilities that you can target so that your admin notice doesn’t appear to users who would just be bothered by it because of irrelevance.
  • The admin notice should only have relevant and actionable information in it
    WordPress has plenty of it’s own default admin notices that are purely informational. If you are adding your own notice, it should be actionable information. If it’s about your plugin settings, there should be a link to the specific setting page that the user can click on (and potentially simultaneously dismiss the notification). This allows the user to decide between actions: (1) Do the suggested action; or (2) Dismiss the notice.

So, here’s how this little library suits those principles:

  • The admin notice should only appear at the time it is relevant
    I made this “delayed” so that the user can first get familiar with the plugin. I don’t want to ask for donations or reviews until they are informed on the plugin’s features and benefits. Getting a donation request immediately upon activation would be extremely presumptive.
  • The admin notice must be forever dismissable
    It tracks whether you’ve dismissed the notice by updating a unique key in the user-meta. This allows it to be seen by other Admins of the site, but each Admin’s preference will be respected individually.
  • The admin notice should only appear on pages that it is directly related to
    Currently, I’m limiting it to the “All Plugins” screen only. Naturally, it could be extended to be on your plugin’s settings page as well.
  • The admin notice should only appear to users for whom it is relevant
    It’s limited to only appear to Admins, or Super Admins. Further, if the site is a multisite network, then it will only appear to the Super Admin on the “All Plugins” page. Admins of child sites often don’t have any control over whether a plugin is installed on their site or not, which makes the donation ask much less relevant than for only the Super Admin.
  • The admin notice should only have relevant and actionable information in it
    The notice is focused purely on asking for the “action” of giving a review or a donation. Both are actionable.

This is the result:

Delayed Admin Notice Screenshot
Delayed Admin Notice Screenshot

I’ve currently created it as a standalone plugin primarily so users can see it in action. You’ll need to manually set the $today variable to “0” or remove it from the conditional in order to see it live. Get the full code on Github here.

Use Give for Donations

Lastly, all of this is in vain though if you don’t have a simple and easy place to ask your users for donations. I’ve seen plenty plugin authors use their donation link to go to directly. I think that’s a waste.

I (not surprisingly) use Give for my donations. This helps for several reasons. It’s a solid “landing page” for me to highlight my plugins on my website. The form is dead-simple. It uses MailChimp integration, so I can have a list of my donors to send them thank you emails at the end of the year.

You can see my archive of plugins/themes here, each one leading to a Give landing page.

If you appreciate my Delayed Admin Notice library, feel free to use ANY of those forms to let me know ;-) Thanks!


    1. Hey Vova, I like your addition of “action based trigger”. For your RatingsWidget plugin that makes a lot of sense. I could see that working for Form plugins to: “Hey, you just received your 200th form submission. We’d love your help spreading the word on how useful “Form Plugin” has been for your website.”

    2. I’m using the approach on Vova’s article and working perfectly! I’m getting so much positive reviews on this plugin of mine : . Not sure if it’s good idea to include the donation notice there though. Probably another delayed notice when the user reviewed the plugin. Would love to hear your thoughts.


      1. Hey Jeffrey, I recommend only ONE delayed notice after activation. If the user sees more than one they might think they’ll never end and get really annoyed. If you already have one that is asking for a review, then I’d update it to ask for a review OR donation. That way you still have one ask and open the possibility for donations. That’s the approach I took with this library and I think it’s effective. Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *