• PHP Basics: Control Structures

    PHP control structures are something you will encounter frequently when working with WordPress. In this article I give a short overview of the available controls followed by common WP examples. Control Structures Any PHP script is built out of a series of statements. A statement can be an assignment, a function call, a loop, a […]


  • PHP Basics: Arrays

    Arrays are very common in PHP and if you do any type of coding in WordPress you’re likely to encounter them. In this article I explain the basics of what an array is and how to work with them.


  • The silent disappearance of the WooCommerce compatibility upgrade notice

    A murder mystery hunt for the missing WooCommerce compatibility updgrade notice on the plugins update page.


  • WP Plugin Development: Showing an admin message after activation

    For the plugin I’m developing I wanted to show a message after activation to prompt the admin to enter the licence key and provide a direct link to the Settings page where they key needs to be added. My first attempt was to use the admin_notices action like so: But this action does not work […]


  • Customising “View Details” plugin popup with Easy Digital Downloads

    During the development of my “SCW Stock Control for WooCommerce” plugin I wanted to improve the appearance of the popup you see when clicking “view details” link on the WP Admin > Plugins page. In this article I explain how I arrived at the popup as shown below. How to add a banner and plugin […]


  • Easy Digital Downloads not showing updates

    During the development of my new plugin SCW Stock Control for WooCommerce I could not get the plugin to show the available update. Checking the official documentation did not provide a solution, all settings were correct. So looking at the code I realised that EDD caches the version number for 3 hours in the options […]


  • Snippet: Using ?? / Null coalescing operator in PHP 7

    Welcome to Snippets! Like most I struggle to publish blog posts regularly, so I’ve decided to publish short snippets whenever I have a “why on earth didn’t I know this / do this sooner?” moment. Working with client sites I tend to be very conservative in my use of new features as I don’t control […]


  • How to use the new WooCommerce hook “woocommerce_email_sent”

    In WooCommerce 5.6.0 the Woo team add a hook to the email send function. This hook was requested by myself a while back as I needed the ability to generate an order note when a Woo order email was sent. My original proposal was for a hook added in the email classes but Claudio Sanchez […]


  • How to add row actions to custom WordPress tables with WP_List_Table

    A quick guide how to add row actions to custom tables in WP Admin when extending the WP_List_Table class with function column_{name}.