This is one of the larger projects I have worked on. HRtoolkit provide access to an online library of HR document templates, either by annual subscription or purchase of individual documents. They wanted to update the appearance of their website and make it easier to manage. Their business model meant there was a lot of backend functionality which needed to be implemented.

One pain point of their existing website was that documents needed to be uploaded twice, once for member access and once for individual purchases. This was multiplied by needing to do this for each reseller site. I solved this by installing WordPress in multisite mode, and writing a custom plugin which copied uploaded documents from the master site to all sub-sites at the click of a button. I also wrote another plugin which parsed the XML of the MS Word documents and customised the footer with a different logo and contact information for each site, then used the FPDF library to generate a 5-page pdf sample of each document.  The Google Doc Embedder plugin then displays the sample document, so that users don’t have to leave the page to view it. To allow the client to keep the product description pages synced across all the sites I installed the Multi-Site Content Copier plugin and made some modifications to get the partially implementing syncing functionality working. I also needed to write a filter to make internal links relative rather than absolute, so that links to a particular page on the master site pointed to the correct page on the sub-site when copied across.

I used WooCommerce to handle the eCommerce side of the site. This also required some customisation. For example the client wanted logged-in subscribers to be able to download any document from its product description page, however out of the box WooCommerce only grants access to files associated with a particular product that has been purchased. To prevent the duplication of effort involved in adding files both to the single products and to the subscription I wrote a custom download handler, which changed the “Buy now” button to a direct download link if the member’s subscription was valid. On the document category pages the client wanted all documents to be displayed, grouped by subcategory. Again WooCommerce does not handle this out of the box so I needed to write some custom functions.

The client wanted to be able to do as much as possible from within the website backend, so for sending emails to customers I installed the SendPress Newsletter plugin. A few custom functions meant that SendPress had automatically updated lists of members, and a checkbox on the checkout page allowed signing up for the newsletter without filling in an additional form. I also customised the WP-CRM plugin to give a better interface for managing user information.

Customers found the new site easier to navigate than the previous one, leading to more sales which made the client happy.