WordPress and the accompanying plugins are in constant development. Bug fixes, security patches and new functionality are added frequently. 3rd party services also update and any corresponding plugins will also need updating to stay compatible. For instance Payment Gateway plugins need regular updates.
Your site is composed of the following modules:
- Parent theme
- Child theme
- WordPress Core
This month (September 2014) we have seen the release of two such upgrades: WordPress 4 and WooCommerce 2.2. A few months earlier WooThemes also updated the Canvas Framework.
These are significant and involve core changes. Your site may require some changes when updates like this occur. Have a strategy in place to make sure this is managed.
Code can be written in a future-proof manner, but it will need to be maintained.
Even when developing plugins with best practices it is not possible to guarantee future compatibility. It’s not possible to anticipate how these systems will be built. For instance the latest version of WooCommerce now manages Orders in a completely different manner. Any plugin which is integrated with that process will need to be re-written.
Using Third Party Plugins
When you purchase a third party plugin they are doing custom development en masse. Because they have a business structured around a plugin they will be dedicating resources to keep it up to date.
Because plugins need constant development we believe strongly in the payment models which have an annual recurring payment. This ensures that the plugin you have purchased is future proof because they have monetised for on-going development.
This is how WooThemes manage their extensions. Ultimately paying annually is a small price to pay for the on-going development.
On-going for custom work
If you have bespoke code written for you then it is important to factor in on-going maintenance of the plugin. If there is an update that causes a problem then additional development will be required. This will require additional development time and will be billable.
The importance of a staging site and backups
Updates should be performed on a staging site first. If there are any conflicts then they can be discovered without any site downtime. Often a plugin author will only know there is a conflict when you let them know.
Good plugin authors will be testing their work with the majority of core plugins and latest WordPress versions. However there are so many plugins that conflicts do arise.
A staging site is also useful if the plugin author needs access to the site to recreate the conflict.
Needless to say whenever testing anything like this make backups. You can never have too many backups!
Bespoke or Third Party Solutions
Because there are no economies of scale when you have bespoke work commissioned it is important to consider the cost of ongoing development.
WordPress and WooCommerce have a diverse marketplace of plugins. We advise all our clients to have a consultation process with us first to discover whether existing products can be used. This might mean re-imagining the processes involved and even compromising on the original specification.
Chris Lema has written a fantastic article called Why you can’t afford the WordPress plugin you want. I recommend reading this to get an insight into the Pro’s and Con’s of building a custom solution.
When a bespoke solution is required WordPress provides the structure to build it but be sure to factor in on-going development.
Don’t update straight away
Wait a few weeks after a major launch of a plugin. For instance in the first two weeks of WooCommerce 2.2 there will be a string of fixes added as problems are identified and reported. If anything update on your staging site, but never push the latest to a live site or you risk being the first one to have a problem.
Can I just not update?
You don’t have to update but it is not recommended. The WordPress community is very active and always finding improvements. You may be missing critical security fixes. For eCommerce sites this is not acceptable risk.
Roles and Responsibility
In our article that outlines the roles and responsibilities in an ecommerce team we mention how important it is to have a clearly defined role which is responsible for the upkeep and security of the site. Work with a development partner to help deliver your goals and have an internal role which is responsible for these technical risks.
WooThemes have a module to allow you to easily update any of their extensions. You will need to have your own license for any extensions. Licenses last one year.
This is the responsibility of the store owner.
More information can be found here: http://docs.woothemes.com/document/woothemes-helper/
Other plugins have a similar setup. Keep tabs of all your licenses – perhaps using Google docs, or something similar – so you can be confident you are always up to date.