Wednesday, October 8, 2025

Why WooCommerce Currency Switcher Plugin Outshines the Competition

I built the WooCommerce Currency Switcher plugin using AI tools — Windsurf, Cursor, and Copilot — to ensure it’s efficient,…

Wednesday, October 8, 2025

WooCommerce Currency Switcher: A Comprehensive Guide

Introduction In today’s global e-commerce landscape, supporting multiple currencies is crucial for reaching international customers. The WooCommerce Currency Switcher plugin…

Wednesday, October 8, 2025

Exploring the Payment Gateways by Currency Feature in the WooCommerce Currency Switcher Plugin

One of the standout capabilities of the WooCommerce Currency Switcher plugin, is its ability to link payment gateways to specific…

Friday, March 7, 2025

How Latency Impacts Digital Interactions and What It Is

In the digital world, latency is a critical factor that impacts how we interact with technology daily. Understanding latency and…

Tuesday, February 25, 2025

Filter the URLs in WordPress’ Social Link/Icons Block

Social media links are such a common design element, and it’s now one less thing to think about when building…

Monday, September 22, 2025

How to Transform the WooCommerce Shopping Flow into a Wishlist Flow without a Plugin

WooCommerce is highly customizable, allowing developers to adapt its default behaviour to fit various business needs. In this tutorial, we’ll…

Monday, May 12, 2025

How to properly secure a WordPress website using Lighthouse

I will start by saying that the title is a bit misleading. Security starts at the lowest level (i.e. the…

Thursday, December 12, 2024

What is PropTech?

PropTech, short for Property Technology, refers to innovative technological solutions designed to transform the real estate industry. It encompasses a…

Wednesday, October 8, 2025

Launching Two New WooCommerce Plugins

Recently, I built my first WooCommerce store (previously I only managed a handful, or researched functionality plugins), and it was…

Thursday, October 17, 2024

Switching from WordPress to ClassicPress

Switching a WordPress website over to ClassicPress can be done smoothly with minimal impact if approached carefully. The process involves a few key steps…

Thursday, October 17, 2024

ClassicPress vs. WordPress

ClassicPress is an open-source content management system (CMS) that originated as a fork of WordPress in 2018. It was developed…

Monday, September 22, 2025

How to Build an Awesome Page with FX Builder for ClassicPress

What is FX Builder? FX Builder is a simple, but powerful page builder plugin designed specifically for ClassicPress, offering users…

Wednesday, October 9, 2024

Calculating Mean, Median, and Mode in JavaScript

When dealing with statistics, three key measures often come into play — mean, median, and mode. These statistical metrics help…

Monday, September 22, 2025

How to Add Voice Search Capability to Your WordPress Site

How to Add Voice Search to Your WordPress Site Ever wanted to offer voice search functionality on your WordPress site?…

Monday, September 22, 2025

How to Generate an Expandable Archive List in WordPress

Creating an expandable and collapsible archive list in WordPress is a great way to provide users with an organized view…

Sunday, November 16, 2025

Why ImagePress is the Best Plugin for Wedding Photographers

Introduction “Amazing support and plugin! Support was 10/10 and helped me solve a few issues I had with the Pro…

Monday, December 16, 2024

How to Create a Logo Carousel as a WordPress Plugin

You would be surprised to see many bloated alternatives to this simple task. Even in the age of the WordPress…

Monday, September 22, 2025

How to Create and Manage Multiple WordPress Subsites in Bulk

My latest project involved a WordPress Multisite installation and 20+ subsites. As the websites were the same, both from a…

Friday, August 16, 2024

How to Extend or Create Variations for WordPress Blocks

WordPress comes with a set of native blocks that should be enough for every designer. However, if you are a…

Monday, September 22, 2025

How to Protect Your WordPress Website Against Malware Attacks

I wrote before about this topic, and I have proactively created WordPress plugins, code, and functionality to successfully prevent malware…

Tuesday, February 25, 2025

PropertyPin – A Visual Bookmarking Platform for Property Images

By now, you should be familiar with my ImagePress plugin for WordPress. If not, here’s the gist: it allows website…

Wednesday, July 24, 2024

Animated JavaScript Counter-Up with the Intersection Observer API

An animated counter is a more engaging way to present this information, as it gradually increases the value of the…

Monday, July 29, 2024

How to Get Dominant Colours of an Image in PHP

This feature has been requested by some of my ImagePress customers. It is also being used on my PropertyPin website.…

Wednesday, July 17, 2024

How to Completely Remove the Jetpack Plugin

This is mostly a note to myself. Jetpack is a well-used plugin on a number of sites and has over…

Thursday, July 11, 2024

ClassicPress TinyMCE: How to Add Styles, Buttons, Fonts, Dropdowns & Popups

When I took over FX Builder and started updating it for the new ClassicPress 2+, I wanted to add some…

Wednesday, December 10, 2025

Moving to a System Font Stack (How and Why)

I believe the “why” in the title is self-explanatory. If not, it’s all about performance. Over the past decade, I…

Friday, July 12, 2024

How to Build a Vertical Off-Canvas Menu Bar Using JavaScript and CSS

In my work, coming up with fresh navigation ideas and creating an intuitive and efficient navigation system is essential for…

Tuesday, July 2, 2024

How to Build a Double Off-Canvas Menu Using JavaScript

Creating a double off-canvas menu can greatly enhance the user experience by providing accessible navigation options without occupying valuable screen…

Tuesday, June 18, 2024

Simplifying Conditional Statements in JavaScript with the && Operator

JavaScript provides several ways to handle conditional logic. One powerful method is the logical AND (&&) operator. This tutorial will…

Tuesday, June 18, 2024

Grouping Arrays in JavaScript with Object.groupBy() and Map.groupBy()

In JavaScript, there often arises a need to group array elements based on a certain property. Prior to ES2024, this…

Monday, September 22, 2025

How to Correctly Configure GDPR Privacy and Google Consent Mode v2

For this tutorial, I will use the WP Google Consent Platform (GCP) plugin for WordPress. This is a two-step operation.…

Wednesday, May 8, 2024

inView

Loading Images Based on Screen Visibility Lazy loading images is a technique that defers the loading of non-critical resources (such…

Wednesday, May 8, 2024

Thin Select — Custom JavaScript Dropdown Element

Let’s create a custom <select> element using vanilla JavaScript and CSS. Thin Select provides a sleek and minimalistic design for…

Tuesday, May 7, 2024

How to Create a JavaScript Spinner with Phenakistoscope Effect

In this tutorial, you will learn how to create a JavaScript spinner that mimics the effect of a Phenakistoscope, an…

Thursday, May 2, 2024

How to Lazy Load Google Map Iframe Embed in WordPress

If you embed a Google Map iframe on your WordPress website, you may notice an increase in the total webpage…

Monday, September 22, 2025

What’s New in the Latest Lighthouse Release

The last few releases of Lighthouse have been silent, and fixed or patched various issues with individual websites. I have…

Monday, May 12, 2025

Dark Mode for Lighthouse!

I’ve long wanted to add a dark mode to my WordPress back-end, but “thanks” to the block editor, it’s not…

Thursday, May 9, 2024

WordPress Plugins and User Experience

What happens when WordPress plugins reach maturity? At this moment, and I’m talking strictly from a code/design point of view,…

Monday, September 22, 2025

How to Build a Front-end Password Reset Form in WordPress

I have just moved an entire user account module from the back-end of WordPress to the front-end. This includes the…

Monday, September 22, 2025

WP Send

WP Send is the simplest way to send your files around the world. Share large files with configurable filesizes and…

Tuesday, March 19, 2024

WordPress Plugins – Focus Update

“Every 3-6 months, it’s smart to take a step back and see if you are still on the path you…

Monday, May 12, 2025

Lighthouse – CAPTCHA, Akismet Integration and Spam Registration Hooks

I am excited to announce the latest release of Lighthouse in 2024, the WordPress performance tuning plugin that removes a…

Friday, January 19, 2024

New ImagePress release, new profile editor UI and lots of issues fixed

The latest version of ImagePress decouples the user profile hooks from the front-end profile editor. The reason is that, when…

Monday, December 16, 2024

Mingle Forum Refactoring, Dogfooding and More

I have just launched version 3 of my Mingle Forum plugin. Yes, forums are a dying breed, and that’s why…

Tuesday, January 9, 2024

The Golden Age of Forums

Do you remember forums? They’re still around, obviously, but do you remember the golden age of forums? Every developer or…

Monday, September 22, 2025

How to Build a Multi-User Image Gallery in WordPress: A Comprehensive Guide

So, you want to build a specialized online platform designed for artists, particularly those in the fields of digital art,…

Friday, July 12, 2024

ImagePress – User Onboarding

The latest version of ImagePress has a new feature: onboarding. It's something that every plugin should have, and this is…

Wednesday, April 30, 2025

tail.select is getting an update

The tail.select JavaScript library is getting an update, jumping from 0.5.x to 1.0.0, and breaking custom functionality.

Page 2/9123456789