Week ending December 6th, 2019

I need to be honest, my productivity has taken a hit the last few weeks. We put an offer on a townhouse, found out our pre-approval had fallen through (the lender got acquired and changed their policies), and eventually convinced the lender we can handle the mortgage. I’ve been spending a lot of time making calls, emailing documents, and going to meetings, all related to the home purchase. On Saturday, all subjects were removed and we provided our deposit for the purchase. As a contractor, I have a lot of flexibility with when I do my work and what work I take on, but I can’t imagine what this process would be like for someone working a rigid full-time job.

Let’s talk about the work

I spent a good chunk of time this month working on a new plugin for Qpractice, integrating WooCommerce & Woo Subscriptions with Zapier in predictable and fluid ways. When users sign up for certain premium courses they get access to a special site to enhance their learning experience, and we want them to automatically be added to that site. If their subscription ends or is downgraded we want them to be removed from the site. It gets even more complicated if there are multiple subscriptions or they are part of Teams for WooCommerce Memberships. Normally I would recommend having our site interact directly with the 3rd party site via API, but they don’t have a REST API available and only allow developers to communicate with it through a Zapier webhook.

Another fun project I have started on is setting up Algolia search for Practical Ecommerce. They have used another search provider for years, but the price is jumping from $100/month to $250/month for the same functionality. The Algolia search service is ridiculously fast, has a lot of great developer-friendly packages, and doesn’t require us to generate our own search feed .xml file for them to index. We are starting with the WP Search with Algolia plugin because it offers a lot of functionality out of the box and can be customized as needed. We’ve added new facets, modified the search page template, and added custom meta fields to the data payload being sent to Algolia for indexing, so that we have those fields available in the results template.

I also spent more time than I should have trying to help someone diagnose some performance issues on their WordPress car listing site. They have about 10,000 vehicles added to the site and it slowed down to a crawl. Having this many listings is a complicated situation. If we have the images (up to 25 each vehicle) for all these listings copied to the media library during the import process we could spend a day just importing vehicles. The theme’s image handling takes forever to load images If we decide to leave the images at the 3rd party site and add them to the media library without moving them. It wasn’t built with externally hosted images in mind, so the way thumbnails are generated can cause it to take over 60 seconds for a page to load.
So we have a few options: spend days doing imports, don’t bring the images into the media library at all (and change the way theme templates load images), or find another platform for building the vehicle listing site on. I’m going to give a shout out to Matt Kopala from SiteDistrict for allowing us to try out his hosting platform to investigate the speed issues and helping us dig into it. He has built a one of a kind WordPress host service that is very developer-friendly.

Wrapping up

With only a few weeks until our move it’s going to be a busy month of packing, working, enjoying Christmas festivities, and trying to keep the stress levels down for the family. Changing my address with dozens of companies is going to be a pain, but I’m excited for a new year, in a new house, and a renewed focus on working hard for my clients and deepening roots for my family.

The complete Work Journal series:
1. Week ending January 25th, 2019
2. Week ending February 1st, 2019
3. Week ending February 8th, 2019
4. Week ending February 15th, 2019
5. Week ending February 22nd, 2019
6. Week ending March 1st, 2019
7. Week ending March 8th, 2019
8. Week ending March 15th, 2019
9. Week ending March 22nd, 2019
10. Week ending March 29nd, 2019
11. Week ending April 5th, 2019
12. Week ending April 12th, 2019
13. Week ending April 19th, 2019
14. Week ending August 9th, 2019
15. Week ending September 20th, 2019
16. Week ending September 27th, 2019
17. Week ending December 6th, 2019
18. Week ending October 2nd, 2020
19. Week ending April 2nd, 2021
20. Coding API integrations in Twilio Studio - Work Journal May 8, 2021
21. Trudging through a complex theme implementation - Work Journal October 29, 2021
22. Creating custom Duda widgets - Work Journal December 10, 2021
23. My first Laravel Nova project - Work Journal December 1, 2023
24. Let's talk about Statamic - Work Journal January 12, 2024