Zapier Proxy for WishList Member

Integrates Zapier with WishList Member generic shopping cart so customers are automatically given access.


  1. Install this plugin
  2. Enable the Generic Shopping Cart in WishList Member
    1. Go to WishList Member > Integration and choose the “Shopping Cart” tab
    2. Click on the gear icon next to the “Set Shopping Cart” button
    3. Ensure that “Generic” is enabled and press the “Update Shopping Carts” button
    4. Choose “Generic” from the dropdown menu and press the “Set Shopping Cart” button
    5. Make a note of the last segment of the “Post To URL” (you’ll need the characters after “register/”)
    6. Make sure you have SKUs set up for the appropriate membership level(s)
  3. Log in to your Zapier account and create a zap
  4. Set your trigger as desired
  5. For the Action step, use “Webhooks” and choose “POST”
  6. Set the URL to (update to match your site’s URL and replace “XXXXXX” with the last segment of your “Post To URL”)
  7. Set the “Payload Type” to “Form”
  8. Add these fields under “Data”:
    1. transaction_id: transaction ID (if provided by your trigger) or random string of text
    2. lastname: contact’s last name
    3. firstname: contact’s firstname
    4. email: contact’s email address
    5. level: the SKU for your WishList Member Membership Level


1. Zapier Recommended Setup

Zapier Recommended Setup



  • First stable version

How to Use Backblaze B2 with Sermon Manager for WordPress

If you’re hosting a church website on shared webhosting, chances are they limit how much space and bandwidth you can use each month. Uploading sermons each week can eat into those limits very quickly.

Enter Backblaze B2, a cloud storage option costs less than a quarter of what Amazon S3 would cost for the same amount of storage. Backblaze has been around for years as a computer backup solution and has made their name by providing reliable storage at low cost.

In fact, the first 10GB of storage is free, so you might even be able to host your sermons at no cost at all.

Getting Started with Backblaze B2

  1. Sign up for a Backblaze B2 account; you don’t even need a credit card to get started.
  2. Once you’re in your account, click on Buckets and then on Create a Bucket.
    Backblaze B2 buckets
  3. Enter a unique name for the bucket, set the privacy settings to Public, and click Create a Bucket.
    Creating a B2 bucket
  4. Click on Show Account and Application Key; make a note of your Account ID and then create an application key. You’ll need these later.

Setting Up Cyberduck

Backblaze B2 provides the ability to upload files right in the web browser, but it also provides support for a growing list of third-party tools, including the popular Cyberduck FTP client.

I recommend the Cyberduck client because it’s easy to use and feels familiar: it lets you work with files just like you normally do on your desktop.

Here’s where to get it:

Here’s how to get started:

  1. Open Cyberduck
  2. Go to the Bookmarks menu and choose New Bookmark
  3. Choose Backblaze B2 from the dropdown menu at the top of the window
    Creating a Cyberduck bookmark
  4. Set a name if you want; add the Backblaze B2 Account ID and close the window

You’ll only need to go through this process once.

Adding Sermons

Now that all the setup is out of the way, adding sermons is pretty easy. Here’s how:

  1. Open Cyberduck
  2. If it doesn’t open automatically, double-click the B2 server in your list of connections
  3. Open the bucket you just created
  4. Drag your sermon audio (or video) file into the Cyberduck window and wait for it to finish uploading
  5. Right-click on the sermon, go to Copy URL, and choose HTTPS URL
    Copying a B2 HTTPS URL
  6. Paste that URL into the the Location of MP3 field in Sermon Manager

Advanced Options

For more advanced users, you can set up CloudFlare and Backblaze B2 to work together and potentially save more money; here’s an article explaining how to set up a “vanity URL” and use CloudFlare’s caching.

If you set up a vanity URL as described in that article, you’ll still want to copy the HTTPS URL from Cyberduck, but when you paste it into Sermon Manager, modify it to include your vanity URL instead of Backblaze’s domain name.


Backblaze B2 is a great cost-effective option for hosting sermon media, and is easy to use with the popular Sermon Manager for WordPress plugin.

WPForms: Force Async Scripts

This little plugin has one job: make the Google Recaptcha script loaded by WPForms load asynchronously.

Get the plugin on GitHub.

Installation Instructions

  1. Copy the wpforms-recaptcha-async.php file to your wp-content/plugins/ directory (or compress to a zip file and upload in the WordPress backend “Plugins > Add New”
  2. Activate
  3. That’s it. All the merged scripts will be loaded with the async and defer attributes.

Merge + Minify + Refresh: Force Async Scripts

This little plugin has one job: make all merged scripts produced by the Merge + Minify + Refresh plugin load asynchronously.

Get the plugin on GitHub.

Installation Instructions

  1. Copy the merge-minify-refresh-async.php file to your wp-content/plugins/ directory (or compress to a zip file and upload in the WordPress backend “Plugins > Add New”
  2. Activate
  3. That’s it. All the merged scripts will be loaded with the async attribute.

Listing Unique Font Stacks on a Webpage

I just put together a new tool to list all the unique font stacks on a web page, intended to help with diagnose and remove unnecessary webfonts and save page load time.


Download this file and include in your page source, or copy-and-paste it into your browser’s JS console, then run the styleInPage() function with the CSS style you want to inspect as the parameter.


// Show all unique font stacks in use on the current page

// Show a list of all DOM elements with their computed font stack
console.log(styleInPage('fontFamily', true));

// Highlight all DOM elements using font stack 8
var fontStacksInUse = styleInPage('fontFamily');

php iconA quick-and-dirty PHP script to unserialize a string in PHP.

Clone (or download and expand the zip file) into your documents root and point to the folder.

Enter your serialized data into the `textarea`, submit, and boom!—your serialized data is expanded to a much more human-readable view! screenshot

Created for use with this Alfred custom search (note that if your serialized string is longer than 4,000 characters, it may cause a 414 “Request Too Long” error).

Woo Generate New Password Reset Link

If your site auto-generates customer credentials, then they receive their username and password in plaintext in their email.

To improve security and make the experience a bit more user-friendly, this plugin sends users a link to create their password, much like WordPress core does when you add a new user account.

Get the code at the WordPress plugin repository, or open issues at the GitHub repository. Continue reading

Alfred MX Toolbox SuperTool Custom Search

If you use Alfred on your Mac and use with any regularity, this custom search should save you time.

Add the custom search

Alfred MX Toolbox SuperTool screenshot

Use the keyword “mx” and any of the SuperTool commands listed here to search for the info you need.

Here is another custom search specifically for whois data.

Add the custom whois search

Alfred MX Toolbox Whois information

Here’s an icon you can use, since custom search URLs don’t include images:MXToolbox