How to vet a plugin for add on development


Without plugins, many projects in WordPress would never have been possible. Almost all developers develop add-ons to modify existing plugins to fit a client’s needs.

But how do we choose vendor plugins to develop add-ons for? What makes a plugin extensible? What makes it reliable?

These are the questions that prompted me to create a checklist for vetting plugins. The checklist starts at presales and goes to code reviewing.

This is the checklist I shared during this talk. I also received a lot of great input from other developers during the talk and was able to improve the checklist as a result.

Checklist for vetting a plugin for add-on development

Before Downloading or Purchasing

  1. Does it have a good support culture?
  2. Does it have add-ons developed by third party developers?
  3. Does it have a strong community?
  4. Do they have clear, easy on the eyes, documentation?
  5. Do they embrace open source?

After Activation: Administrator UX

  1. Does it use the WordPress UI?
    • If not, is the changed UI creating a significantly better UX?
  2. Does it use nags tastefully?
  3. Does it take up minimal space for upsells?
  4. Does it allow for exports of user generated data?
    • Ex: Form submissions.

After Activation: Database Usage

  1. Does it stick to WP’s built-in tables?
  2. If it creates new tables are they absolutely needed?
  3. Does it add just a handful of rows in the wp_options table?
  4. Is everything prefixed?
    • New tables, meta keys, option keys, CPT or Custom taxonomy slugs etc…

After Activation: Performance

  1. Load the site up with a bunch of dummy content. I use WP-CLI, or FakerPress. The dummy content is important because you’ll only be able to see performances issues with content stressing the code.
  2. Use a profiler such as Query Monitor
    • You can use your preferred profiler for this
      Debug bar, Browser Dev tools for Client side stuff.
  3. Check the Query Monitor output for red.
  4. Check for slow SQL queries, failing HTTP requests, or long running JS scripts.

After Activation: Uninstallation

  1. Does it give you the option to remove it’s data from the DB and Uploads directory? (credit to Brent Jett from the Beaver Builder Team)

Code Review: Clean Code

  1. Is it readable/easy to follow?
  2. Does it follow PHP and WP standards?

Code Review: Can you add Functionality?

  1. Grep do_action and apply_filters Are there a lot of them and are they all well documented in the code with a doc block?
  2. Does it provide a lot of actions?
  3. Does it allow you to filter data before saving?
  4. Does it allow you to filter data before it is output?

Code Review: Can you remove functionality?

  1. Does it use the hook pattern internally?
  2. Are the callbacks it adds to WP accessible?
    • Use Global Vars, static methods or Singletons.
      Bottom Line: Callbacks need to be accessible in some way.

Code Review: ShortCodes

  1. Does it allow you to filter the user input for shortcode attrs?
  2. Does it allow you to filter the allowable shortcode attrs?
  3. Does it allow you to filter shortcode HTML output?

Code Review: Internal API

  1. Does it have an internal API to access core functionality?
    • Check out WooCommerce (pre 3.0).

Code Review: Display Logic

  1. Does it have overridable templates?
  2. Does it enqueue scripts and styles?
  3. Does it use WordPress’ loop logic to output content?

Examples of good plugin design

  1. Gravity Forms- has a ton of filters to change submission data.
  2. WooCommerce- Overridable templates, great internal API.
  3. Beaver Builder- Best overridable Admin templates for module settings pages. Amazing communities of users and add-on developers.
  4. Ninja Forms- Breaks the rule about Admin UI design and greatly improves form creation UX as a result. An amazing community of add-on developers.
  5. Contact Form 7- really beautifully clean code, solid yet minimal plugin design, and amazingly extensible. Is symbolic of open source.
  6. CMB2- Great Developer’s meta box plugin


Useful Sources

Database Usage

  1. Which tables to use for what data
  2. What are the WP DB tables
  3. Problems with the options table
  4. Meta key best practices
  5. How to use post meta correctly
  6. How post meta gets abused
  7. A profiler for PHP, js, and mysql queries
  8. Versioning options arrays

Clean code

  1. PHP coding standards
  2. WP Coding standards
  3. Code mistakes in plugins
  4. Clean code in plugins
  5. Clean code in plugins
  6. File management in plugins

Can you remove functionality?

  1. Problems with not extensible plugins
  2. Orphan objects
  3. How to instantiate an accessible plugin

Display logic

  1. Overridable templates, filtered shortcodes and more

Admin UI

  1. Why use WP’s built in UI

Guide to Writing a Winning Proposal

An on-going discussion about starting and building a successful, freelance WordPress business…

Last month we discussed finding clients for your Freelance business. At this month’s Deep Dive Discussion, Nick and Sandi Batik demonstrated tools and processes that help you write a winning proposal, even if you are an introvert.

Right-brained or left brained, creative or analytical, the Introverted Freelancer needs to suss out what problem your client is asking you to solve. The discussion focused on  defining the client’s problem and converting that problem statement into a proposal that defines how you will  meet the clients’ needs and help improve their bottom line.

There is the link to the notes and slide deck for the Austin WordPress Deep Dive Discussion Meetup April 11. 2016:

Freelancer’s Guide to Writing a Winning Proposal -1

Freelancer’s Guide to Writing a Winning Proposal-2

The Introverted Freelancer’s Guide to Finding Clients

March 14, 2016 Deep Dive Discussion about starting and building a successful  freelance business…

Last month we discussed the tools and processes that can help our members build an efficient, effective Freelance business. Several members contacted us and asked us to follow up that presentation with a straight forward conversation about how to find and build a profitable client base. So in  this month’s Deep Dive Discussion, Nick and Sandi Batik focused on how to find and on-board clients for your freelance business, even if you are an introvert.

Many of our WPATX members expressed that it can seem daunting to start a freelance WordPress Consulting business. We talked about where to  start; what specialized services you are best suited to offer;  and how to find clients. The goal for this month’s Deep Dive Discussion was to examine how to build a healthy freelance WordPress practice that supports you and delights your clients.

You can find “The Introverted Freelancer’s Guide to Finding Clients” notes and slides here:

The WordPress Freelancer’s Tool Box

Austin WordPress Deep Dive Discussion Meetup  February 08, 2016

Sandi Batik and Nick Batik lead this month’s Austin WordPress Deep Dive Discussion focused on what it takes to build a successful freelance WordPress business. The WPATX organizers have had numerous requests to devote more meetups to the “Business” of WordPress.  If this discussion topic proves popular, we will expand the topic into a more formal class for our WordPress Practitioners meetup, which is hosted in a larger venue.

Our attendees came prepared to talk about the tools and techniques they are currently using everyday in their WordPress businesses. We covered prospecting, marketing, proposal writing, client interviews / on-boarding, project management, client management, project close-out and invoicing client follow-up. It was a fast paced, interesting conversation about what was working and not working in our businesses.

To my mind the best part of the evening was the information exchange — each member introduced themselves, explained a little bit about their specific skill-set and their business. We were able to demonstrate that your next best resource or project partner might be sitting right next to you at the next Austin WordPress Meetup. Several folks exchanged cards and have the opportunity to work on jobs together. Helping each other succeed is the very ethos  of our Austin WordPress Community, and it was great to see that culture of mutual support in action during the meeting.

At it’s core, the successful Freelance Business is about being helpful and supportive.  Those ‘Solopreneurs’ who think in terms of collaborative partnership with their clients, and the other professions they team up with to delight that client are the pattern-card for a profitable, sustainable business.

Here is the link to our Deep Dive Discussion transcript and slide deck

There Is A CheckList For That!

Sandi Batik lead this month’s Deep Dive Discussion examining the importance of checklists in the design and development  of successful WordPress sites.  Most WP Devs has checklists they use at various stages of a site’s life cycle. Checklists can help make you more productive and lower stress levels during critical aspects of a site launch or migration. Checklists help dispel the dreaded ‘Hinky Feeling‘ that you might have forgotten an important step in a complex process.

During our deep dive discussion we shared favorite checklists, and talked about how to customize your checklist to match your workflow. As your skill set increases, your Pre-Launch, Launch and Post-Launch, checklists will also evolve  — you can add, remove or change any of the items, depending on your workflow or client offerings. Bring your checklists to share and get ready to expand your WordPress toolbox.

You can find the Sandi’s slides at:

Checklists and Other Tools

In the spirit of full disclosure Sandi uses iThemes products for Pleiades Publishing Services and, and is a fan of both their products, and  iThemes as a business.

You can download the iThemes ebook, The Essential WordPress Site Launch Checklist, that was the source material for this discussion at:

WPROSPER, Do Well, Do Better With WordPress & iThemes:

If you are serious about being part of the WordPress Space as a Freelancer, Designer or Developer I would encourage you to sign up for Cory Miller’s WPROSPER.

This group was started early this year. It has great blogs and some FREE training events, with the goal of improving the way you manage your business.

As Sandi is always looking for Best Practices for the various aspects of WordPress site development, She shared a list of checklist that she found were helpful in vetting and improving her Working Checklists.

Remember your checklists have to follow your own workflow. As your tools and practices change so will your checklists.


Understanding The Web Hosting Options for Your WordPress Site

This entry is part 1 of 1 in the series Web Hosting Options

April’s Deep Dive Dive Discussion is one of our first, Member’s Choice Topics“How to I know what kind of web hosting features I need?”

This discussion is for business site owners / managers considering adding eCommerce features, or site membership options; those new to WordPress and even those of us who have been hosting our sites for a while, and wonder if we made the right choice for our current needs.

There have never been more options for hosting your WordPress site… and frankly sometimes the level of choice is sometimes confusing. We here in the Austin WordPress Community are very fortunate to have several members who are part of the WordPress hosting industry. Even better, they are willing to sit down with us and explain all the various nuances of the WordPress hosting options available to WordPress site owners/managers.

Shayda Torabi from WP Engine and Mendel Kurland  from GoDaddywill explain the various types of web hosting options, features, best practices.  This is a great opportunity to have some one-on-one time with two great members of our WP community who are web hosting professionals. By the end of this deep Dive Discussion attendees will have a better grasp on how to choose WordPress hosting from all the available options that are out there. Bring your questions and your laptop. We look forward to seeing you there.

Service level and hardware considerations for WordPress hosting Mendel’s Presentation Notes

Go here for the slides Shayda and Mendel used for their presentation:

We need a scribe for the Deep Dive Discussion meetup — so if you are available and willing please let me know – Thanks, Sandi

ShaydaLeading Class Understanding Hosting Mendel&ShaydaTeam