Its been a hard days night... and da da da da, da da da
I don't 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 justmore...I don't 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 7 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 on plugin into The Wordpress repository, but I have several more ready to go up, including WPForm-FLG360, which allows you to create forms using a shortcode, and the data is validated before being sent to FLG360 via the API. All of my Open Source work goes on Github: as well.
I have a website for my writing business write-about-property.com and a twitter account with over 3000 followers, but my web dev business has run off freelancer sites and word-of-mouth, but I am finally getting my own website together, it is actually live if you want to find it, but I don’t feel it is ready to link to yet. I had a professional design done, but time constraints from heavy workload meant I ended up going with bought theme Elogix, and am now trying to bring the elements of the design into it. I am getting there – I hope. Same goes for Twitter, I have a page up there for Webby Scots, and am starting to make time to build it up now Web Development is the main focus of my business.