Development Articles

WooCommerce installment payments part 2

Posted on June 21, 2016

Posted by Henry Tam

In part 2 of the installment payment series, we will explore how to capture the remaining installments of an installment purchase. The basic steps include setting up a database table to store all future payments related to the installment purchase, writing the installments data to that table, and setting up a cron job to call […]

WooCommerce installment payments part 1

Posted on June 02, 2016

Posted by Henry Tam

Installment payments breaks down the full purchase price of items into smaller amounts over periods of time to make purchasing more reachable for high priced items. A recurring billing is used to capture these smaller payments. There are 2 existing WooCommerce plugins which can help achieve this behavior. The first is WooCommerce Deposits. The other […]

How to move the WooCommerce coupon

Posted on May 12, 2016

Posted by Henry Tam

The WooCommerce coupon field at the top of the checkout page seems to be a common problem. Shop owners want it towards the bottom of the page around the payment details section. After not finding an ideal solution to this problem online, I came up with a way to move the coupon code field to […]

Contact sheet images with ImageMagick

Posted on November 15, 2014

Posted by Henry Tam

How to create contact sheet images with ImageMagick – convert, re-size, and crop images. I had a web application requirement to display online aggregated images in a contact sheet format. A contact sheet is a fixed grid (m x n) of images where every image is the same size. The challenge here is, since the […]

Migration from Moodle to LearnDash

Posted on August 22, 2014

Posted by Henry Tam

In this article, I will detail the user enrollment data migration from Moodle to LearnDash. I had a client with an established online learning website on the Moodle platform. While everything was working fine, the Moodle system was just not ideal in terms of user flow. The user interface out of the box was also dated. I […]