I am a coder who has fallen in love with Wordpress. When I am not spending time with my kids I am coding, my favourite task is extending excellent plugins like Woocommerce.
I don’t really like the use the word expert, because everything is moving so fast, for example I once read a book learning Ruby on Rails and by the time I finished the book I just about had to start all over again because they brought out a new major version of Rails and so many conventions had changed.
But when it comes to PHP and Wordpress I have to consider myself an expert. I have been developing in PHP for 9 years and am well versed in all the latest advanced methods, I have built many successful API connections, both clients and servers, know all about namesspaces and use PDO for my database connections, all of course using OOP PHP :-).
But of course Wordpress takes away the need for a lot of that stuff, by providing classes and functions we can use to make our lives easier, but none of it is possible without a good grounding in PHP, in fact with a good grounding and knowledge of OOP PHP anything can be made possible in the world of Wordpress.
Over the last 5 years I have specialised in Wordpress. have turned many website designs into successful Wordpress themes. Two recent ones are:
Skiingproperty.com is a completely new theme developed by me from a design done by the client. A real estate website powered entirely by Wordpress using Custom Post Types and Custom Taxonomies. sbskiproperty is a custom post type and it has taxonomies for City, Region, Property Type and Sale Type. It also has custom rewrite rules added to make the links the maximum SEO friendly.
Propertyinturkeyforsale.net is based on the purchased theme DeCasa, but I wrote a plugin to crawl the clients main website and pull in his properties for display in the theme. I also adapted the theme to use custom post types and custom taxonomies for town details. You show me a design and I can turn it into a WP theme.
But most recently my talent has been involved in the world of Wordpress plugins. Mainly not writing new plugins (although that too) but mostly customising/modifiying, enhancing and extending the functionality of existing Wordpress plugins.
Some of my proudest work of late has been extending Woocommerce. My biggest development was to customise Woocommerce for use in an automated personalised card shop. I modified the product add/edit form with a new meta box allowing the admin to enter size and position for a contentEditable div which is overlaid on the main product, they also enter a default text to go inside the div. The end user can then edit the text as they wish, and also change the font and color which updates in real time. I also added a preview button, which shows them their modified card on a 1008px as more like what the real card will look like. They add their cards to the shopping cart complete with their modifications, and once they pay for their order, their text is added on to a hi res pdf uploaded by the admin, and the finished products are exported to s3 for printing and sending.
You can see the work at http://carte-et-fairepart.fr/categorie/cartes-de-remerciements/.Ifyou look you will see that the small images have been replaced with html5 canvas, so that the text entered by admin can be shown in the selected color and font there also. It is then available for customisation on the single product screen.
I have done dozens of other modifications, mostly theme modifications, like moving the price up above the content description and such like, but I also have a Woocommerce extension in the pipeline. A client asked me to modify the wp-category-permalink plugin to use it as a Woocommerce extension with the product_cat taxonomy. I have made the modification, but I want to make a few more enhancements before releasing it. See the links at the bottom of this profile for places where this will be available when I release it.
Events Manager + Events Manager Pro
I have also worked on three mod/expansions of the events manager and events manager pro plugins.
I was tasked to build an extension to em and em-pro to allow for split payments, i.e. the user pays a deposit initially and then 4wks before the event they are sent a reminder to pay the remainder. The back end user can control the percentage of the deposit on a per event basis, and the payments of deposit and remainder are all fully tracked using the existing em and em-pro bookings management screens. The user can pay early, as the minute they pay the deposit, the my-bookings screen contains a “Complete Payment” button — the email reminder simply directs them to this page.
The second expansion allowed event authors to set a currency for their event other than that set in the main settings. And the third was again, a customisation to allow the plugin to be used seamlessly with a business model, in this case a tours website, i.e. having a static Page for each tour, which then had dates all year round, like Sat and Thu every week.
For this I made the recommendation of EM and EM pro using recurring events for the Tour, with recurrences being the tour dates. I coded a function to auto-refresh the recurring events as they ran out using WP-Cron and they also asked that the tickets have a cut-off on each recurrence, in EM you set a cut-off for each ticket, but on a recurring event’s tickets the cut off is obviously set at the end of the recurring event, and it goes the same as the tickets are created in each recurrence within the timespan. I coded a function that took the cut-off of the recurring event and translated it for the tickets of all recurrences, so if the recurring timespan ended Jan 14th, and the ticket cut-off on the recurring event was Jan 12th, it would set the cut off on recurrence tickets to be two days before the date of that recurrence event. For this one they also wanted a datepicker on the static page, so there are meta boxes to link a page to a recurring event (multiple select possible for Thu+Sat tours etc) and then the add_calendar function builds json for available dates and links to the individual pages and sends them into the datepicker as data attributes, they are then used in the js to make clickable links to the available tours.
I have done dozens of other modifications to plugins, including a couple of mods to the Wp User Frontend plugin, and fixing an extension to the Buddypress plugin, all in the last 3 months alone.
I have finally started making time to actually get some of my work out there into the open source world. So far I have released 3 plugins into The Wordpress repository, but I have several more ready to go up, including a WooCommerce payment gateway for Chase Paymentect. All of my Open Source work goes on Github: as well.
Liam is my go-to developer, he's always upfront about his intentions. His estimations are fair and accurate and he always delivers. Always. Highly recommend.
Liam did a great job. He jumped in on coding immediately after being hired and had the job completed in a couple of hours. I'd highly recommend him.
Liam was a great person to work with. When all of the other programmers were not able to resolve the issue Liam stuck with the issue until it was resolved and working. I look forward to working with him again on other projects we might have. I would highly recommend him for any project.
Liam did a great job for us. The code is concise and works perfectly. Clear and pleasant communication thought the process. Highly recommended. We'll be looking to work with Liam again in the future.
Excellent work, followed the detailed and complex spec related to vat/tax in woocommerce very well. Fast worker and good at communicating. Will use again in future!
It was a pleasure working with Liam. He immediately understood my needs, providing the perfect custom solution for my site.
Liam was extremely helpful and went above and beyond to get our project done, and on an expedited time frame to boot. I highly recommend him, he works with you and that's huge. Thanks again Liam!
Liam did exactly what was requested and attempted to go above and beyond. He was very professional and was very timely in his responses.
Liam is as good this time as he have been before.
Liam did an excellent job of serving our company and an emergency need we had for a client. He was a seemless addition to our team and went above and beyond with the project in several ways to ensure that his fix to the Authorize.net CIM Plugin for WooCommerce was as fitting as humanly possible. Tremendously thankful for this experience!
Liam worked diligently to build and refine a plugin for our commerce website. Anytime we had a request, Liam could implement a solution faster than we could properly test the functionality. When issues came up, Liam was quick to respond and help. He's been a great resource for our team, and has been able to work within an existing site architecture, without breaking the site. I would recommend him for any project.
helpful, clear, responsive and fast.
Liam is fantastic to work with. He is proactive and intuitive when it comes to determining what needs to be done. He is also very great with communication and speedy with delivery. I cannot recommend him highly enough.
excellent, fast and good communication