Matt Jones Tech
  • Blog
  • Video Projects
  • Web Projects
  • Creating a WordPress Plugin Downloader

    Creating a WordPress Plugin Downloader

    How it Started

    I was recently tasked with the challenge of creating a WordPress theme generator. The idea being, instead of writing your style.css file from scratch, you’d be able to just answer a few simple questions about how you’d like your theme set up, and those starter files would be automatically generated.

    How it’s Going

    Once I started diving into the specifics of how exactly to create a tool that would generate the files I was looking for, I realized very quickly that my scope for this project was perhaps a bit to broad. It ultimately had to answer the question, “What does this starter theme look like, anyway?”

    In today’s fast-paced and rapidly changing tech environments, even the world of WordPress is looking at some pretty radical changes that forced me to ask the question, “FSE theme or Classic theme?” Because the files required to create even the most basic of themes would be different based on how the user answered that simple question.

    Admittedly, the majority of the questions in this command-line program are just filling out various fields in the style.css file. And if you’re planning on making a parent or even a child theme, you’re going to have to fill that file out anyway.

    And perhaps, that should be (or should have been) the primary objective of the entire tool. Essentially a stylesheet generator, and perhaps that can still be a web app down the road. However, in my ever-growing list of things I need this tool to do, was the ability to download the latest versions of various WordPress plugins from the official WordPress plugin repository.

    This project ended up being a crash course on the finder points of Javascript async and await as I needed to figure out how to make a whole slew of HTTP GET requests in a specific order, waiting on responses from the first request before I could act on the second, and build it in such a way that it’s a modular set of download instructions that is easily repeatable for any WordPress plugin in the official repository.

    I had an absolute blast on this project, there are still loose ends to tie up, and I’m probably going to continue messing with it at least for the next few months. I’ll need to remind myself to put a badge up if it gets too far out-of-date. If you made it this far, thanks for reading. If you’d like to try out my theme generator and play around with it, feel free to fork it on GitHub: https://github.com/mjones129/themegen

    matt

    November 12, 2023
    Web Development, Web Portfolio
  • Fitness320

    Fitness320

    Project Tasks

    • Convert a traditional e-commerce website to a subscription-based website with irregular renewal times.
    • Create a fully-automated email campaign that welcomes new subscribers and reminds existing subscribers of their renewal one week before.
    • Create a “virtual gym” that restricts digital content (videos, PDFs, and web pages) to paid subscribers.
    • Inside the “virtual gym” members area, create a custom, mobile-friendly calendar that displays all upcoming virtual gym classes detailed information about each class, as well as a link to join via Zoom.

    Note: the “virtual gym” renews regularly (every 30 days) while all other fitness classes renew following the same irregular schedule.

    Project Solution

    Transitioning from Traditional E-Commerce To Subscription-Based E-Commerce

    The first step of this project was systematically converting each traditional e-commerce product available on the existing site to a different product type. This new type enables subscriptions and automatic renewals.

    Once all the products were converted, a new plugin was added to define a custom renewal schedule for all in-person fitness classes. Once that custom schedule was defined, it could then be assigned to each of the newly converted product types.

    With this system in place, the renewal schedule could be defined once and applied to any or all products on the site. The calendar could even be edited, just as long as the changes occur beyond the soonest upcoming renewal date. Changes to the soonest renewal date can be taken care of manually.

    Fully-Automated Email Campaign

    This was another plugin that enabled site administrators to write their own emails on the WordPress backend. Emails can be saved as a template and use a collection of variables for subscribers’ names, information about their specific class, orders, account information, and more.

    I wrote over 100 custom emails to be fired to subscribers for each class available for the season. It was a tedious process, but once it was complete, customers received relevant emails about their fitness classes just seconds after they signed up and a week before their subscription renewed.

    This solution enabled admins to add to the existing campaign and send global emails to all members of the site when specific conditions are met. There is also functionality to send single one-off emails to all members. This is useful for news, updates, and announcements.

    Virtual Gym

    The first step for the virtual gym was to create a few new things. First I created a login page that matched the branding and the style of the rest of the site. Next I created the members area and customized the members area to match the existing branding.

    Once the members area was created, two new areas needed to be created: the virtual gym content area (containing videos, PDFs and pages) and the virtual gym calendar (only viewable by members, as it contains links to join paid Zoom meetings).

    I ended up writing a custom WordPress plugin to handle the virtual gym calendar. Each class was a custom post type that included information about the start time, the fitness coach teaching the class, general information about the class, and a link to join the Zoom meeting.

    Once all information was saved about each fitness class, it would automatically appear in a calendar that was embedded into the protected page in the members area. The calendar was powered by JQuery, allowing for mobile (touch-friendly) functionality, as well as dynamic “accordion” style animations. The calendar consisted of blocks containing basic name and date. Touch the class you’re interested in, and more information, including a Zoom link would drop down below your selected class.

    matt

    September 9, 2022
    Web Portfolio
  • BluePoint Living

    BluePoint Living

    The Project

    This project was particularly interesting because it tapped into 3 different disciplines. When BluePoint first approached me, they were looking to update their existing website and fix some of the issues with it. Once we got deeper into the project, it wasn’t as clear cut simply because the company itself was going through a bit of an identity crisis. Historically, they had made their living sourcing sustainable building materials, specializing in insulation created from recycled blue jeans.

    selective focus photography of hanged denim jeans

    The new direction for the company was a radical one, but in an unexpected way, could possibly link with the direction the company had been headed for some time. The new direction? Smart Environments. Imagine walls that are easily installed on top of the existing walls in your home, but offer the latest in smart technology.

    The New Vision

    In an effort to successfully pitch the idea and get momentum behind this new direction, they needed a complete site overhaul. This is where the project really began.

    The Big Challenge

    Imagine you were challenged with capturing this amazing new living environment and creating a compelling website that also served as the companies single larges marketing platform. But here’s the catch- these environments don’t exist yet.

    white wooden framed glass door

    Enter 3D Modeling

    Not exactly ideal, because this method is extremely slow, but at this point in the project, there really was no other option. So we began collaborating on the look and feel of each space (there were multiple spaces) and ended up settling on the smart home gym to launch the next phase of the site.

    Homepage Animation

    There was also a discussion on creating an animation that revealed the denim insulation that was behind the walls, as well as using materials for the walls that were custom created. Here’s the result of that animation:

    Virtual Tour and More

    Just a side note, nearly all of this project was modeled from scratch as some of the specific pieces of equipment included in the room didn’t exist in major 3D model libraries (like the Tonal Home Gym). The final results are featured in the virtual tour along with vision casting videos and fresh web page designs. Check out the full project at https://bluepointliving.com

    matt

    January 9, 2022
    Web Portfolio
  • AMI Recycling

    AMI Recycling

    Project

    When AMI Recycling approached me about their website, their existing site was completely down (white screen of death). I was able to give their site a completely overhauled design as well as introduce a new e-commerce store with some unique features.

    Design That’s Personal To The Client

    AMI had some existing drone footage of their facility they wanted to use on the homepage,as well as a few other elements they wanted to include around the site which really ended up giving the site a unique look that you just can’t get with a default template.

    Unique E-Commerce Challenge

    Most e-commerce shops sell physical items that ship via commercial, third-party carriers, in whole-number quantities (e.g. I’d like to buy one t-shirt, a coffee mug, and some stickers and have them shipped to my apartment).

    AMI has a not-so-usual business model of shipping recycled construction materials (asphalt, stones, gravel) in volumetric amounts (cubic yards) via commercial dump trucks that they operate.

    Shipping and Handling… With A Twist

    With recycled construction materials, shipping and handling had to be handled in a completely custom way. Shipping was calculated based on the distance from the delivery location to the material’s origin at AMI’s Recycling Facility.

    Oh, And One More Thing

    If a customer orders more material than a single dump truck can handle, then shipping costs will have to be multiplied for each additional trip the dump truck will have to make. All done, on-the-fly, with rates that are generated based on mileage from origin to destination.

    Custom Material Calculator

    Another challenge related to their business model helping AMI create a custom material calculator to help their customers anticipate how much material they may need for a project. For example, if I want to pave my driveway and I knew it was so long and so wide and I wanted it so many inches thick, I can just punch those numbers in and get the exact amount of material I’ll need to order to complete my project.

    matt

    September 9, 2021
    Web Portfolio

Prove all things; hold fast that which is good. 1 Thess 5:21