Craft CMS: Understanding “Tasks”

Automated, Scheduled "Tasks" with Craft CMS

Craft CMS is still the relatively new kid on the block when it comes content management systems, but I am doing more work with it these days. Compared to the 500-pound gorilla in the room, WordPress, there are a lot of differences. Of course, both have their advantages and disadvantages. As time goes on, however, Craft seems to be taking full advantage of hard learned lessons by other platforms, including WordPress.

Mainly, Craft is still new, and, as such, has a lot of catching up to do in terms of extensibility. That comes as more users and use cases are presented. For example, there is huge disparity in “hooks”, or places for developers to alter core outputs, when comparing Craft to WordPress.

With that said, I do want to talk about a feature of Craft that I feel it handles much better than its counterparts: automated background tasks.


Amazon Pay for Craft Commerce Plugin

Craft Commerce payment method using Amazon Pay

I’ve been doing some work recently with Craft CMS, and its ecommerce plugin Craft Commerce.  Although Craft is still up-and-coming, it’s doing quite well.  The community is great, and I love working with it.  Craft itself is quite extensible, and Commerce is progressing in that aspect.  A recent project called for a lot of customization of Commerce, and I ended up creating quite a few plugins to handle third-party integrations.

One such instance was to integrate Amazon Pay as a new payment method in Commerce.  This had not been done by anyone else to this point, and more than a few clients/developers had asked if someone knew of an existing solution.  After a lot of work, I completed the plugin, and I am making it available for purchase here.


Code Quickie: Prettify a List of Dates

Code Quickie: Prettify a List of Dates

Most of the time, writing code can be very repetitive. There are only so many ways to handle something. However, a few times per project, I’m tasked to come up with a new solution to a challenge. After accepting and conquering the challenge, I sometimes come up with code that I’m very proud to share because of its elegance, simplicity, and/or novelty.

This particular challenge involved a report that produced a list of dates as parts of its results. When I ran a few sample reports, I noticed that I could potentially get a nigh unreadable list of numerous, consecutive dates. I decided to try and turn that horrible list into something beautiful by condensing three or more consecutive dates into a range.


ACF – Get All Fields In A Field Group

ACF - How To Display All Fields In A Field Group

As a WordPress developer, I create a lot of custom data to give clients the functionality they want. I’ve used every way possible, like posts for a custom post type, post meta, taxonomies, options, custom tables, etc. However, for ease of use and client convenience, I mostly use either WordPress native custom fields or the Advanced Custom Fields PRO plugin. With ACF, the interface is great, and, having used it so much, I can quickly setup any field type very quickly. The most time consuming part of using custom data is when it comes time to integrate into the theme.


WordPress 4.7: Custom Bulk Actions

Custom Bulk Actions added in WordPress 4.7

With the release of WordPress 4.7, developers have a lot to be thankful for. Many have already covered post type templates, and the addition of the REST API in the core is a game changer. There’s a few more features that came along with the release, but I’d like to cover one that I’ve been looking forward to as a developer: custom bulk actions.


How to Handle Long-Running Scripts

Scripts Timing Out? Try this!

Data import scripts are some of the most important, common, and challenging tasks I perform. Time-outs, memory limits, and boredom are just the most common of frustrations. Once a development project enters its final stages, the conversations invariably begin to shift from functionality to data. Most clients have a lot of existing content and data that needs to be incorporated into their brand new site. The information may reside in an old database, large volumes of text files, spreadsheets, or something else entirely. Regardless of the method of storage, any transfer of a large amount of data will require some automation in the form of a script. After you’ve written a few of these types of processes, you’ll undoubtedly encounter the same issues for each one.