WooCommerce: Prevent Duplicate Orders

Sometimes customers accidentally submit the same order twice, or there may be a temporary issue with a WooCommerce payment gateway or a plugin conflict—such as the Sucuri Firewall problem in March 2025.

This can result in duplicate charges, refunds, chargebacks, admin costs and a poor user experience.

I recently ran into this issue myself and decided to create a simple solution. By checking if the same customer placed an identical paid order within the last 2 minutes, we can block the second attempt and show a helpful message.

If you’ve experienced something similar or want to proactively prevent it, here’s a quick snippet you can add to your site to avoid duplicate WooCommerce orders.

Continue reading WooCommerce: Prevent Duplicate Orders

WooCommerce Duplicate Orders: What Can Cause Them?

minions guitar, music, fun, characters, double, cute, two, music, double, double, double, double, double

Something odd happened for the first time on my WooCommerce store: a customer placed an order, got charged, and then—without any visible retry or user error—the exact same order came through again, just milliseconds later.

I had to issue a refund manually, and of course, this raises questions. The only recent change? I switched to the WooCommerce Stripe Gateway’s new “enhanced checkout“. Could it be responsible?

I took the issue to Twitter and got some very insightful responses. Here’s a breakdown of what I found and what you should check if this happens to you.

Continue reading WooCommerce Duplicate Orders: What Can Cause Them?

WooCommerce: Failed Orders Monitor & Temporary Lockdown

Sooner or later, every WooCommerce store will face a carding attack. It’s a matter of when, not if. We covered the ins and outs of this in a recent class (Preventing WooCommerce Checkout Carding Attacks), and now this post provides the code solution you’ve all been waiting for.

Want to temporarily lock down your WooCommerce site when too many failed orders happen?

This snippet does just that! When the 3rd order in a row fails, it triggers a 10-minute lockdown, disabling a specific payment gateway, and preventing purchases of low-ticket products. Plus, you’ll get an email notification when the lockdown is active.

It works by setting a temporary flag (a WordPress “transient“) and checking it before allowing payments and purchases.

This is a great way to prevent repeated failures, investigate payment issues, mitigate carding attacks, and ensure a smooth customer experience. Enjoy!

Continue reading WooCommerce: Failed Orders Monitor & Temporary Lockdown

Troubleshooting WooCommerce Plugin Compatibility with Database Versions

In a recent Business Bloomer Club Slack discussion, a member encountered an issue while working with the WooCommerce-compatible Shoptimizer theme and its required Commerce Kit plugin. The site was hosted on a Plesk-managed VPS running an older MariaDB version, which unexpectedly impacted the functionality of the plugin’s Ajax search after an update.

The underlying issue was related to database indexing support, where the Commerce Kit plugin attempted to create tables using the FULLTEXT index, a feature not supported in the outdated MariaDB version. The problem arose when a recent plugin update, which lacked documented system requirements, inadvertently led to compatibility issues during deployment.

This post explores approaches to mitigate database compatibility issues when updating plugins and provides solutions for WooCommerce developers and site administrators facing similar challenges.

Continue reading Troubleshooting WooCommerce Plugin Compatibility with Database Versions

WooCommerce Site Performance Issues: Tracking Resource Consumption on VPS with Plesk

In a recent Business Bloomer Club Slack thread, a WooCommerce site owner sought advice on diagnosing high PHP-FPM resource consumption on their VPS server hosted with Plesk. Despite a relatively moderate traffic load, the site—large in terms of product count and running in multiple languages via WPML—was experiencing high CPU and memory usage, leading the user to suspect the site’s theme and custom functions as potential culprits. They aimed to pinpoint precisely which scripts or functions were consuming excessive resources.

The discussion covered effective tools and strategies for diagnosing server load issues. Advanced Performance Monitoring (APM) solutions like New Relic were recommended as ideal for identifying specific lines of code that may be slowing down the site. Such tools can break down execution times, helping users understand which plugins, scripts, or custom functions are consuming resources.

Continue reading WooCommerce Site Performance Issues: Tracking Resource Consumption on VPS with Plesk

Troubleshooting Customers Seeing Someone Else’s Address @ WooCommerce Checkout

In a recent Business Bloomer Club Slack thread, a developer encountered a complex issue with a WooCommerce site where user address details at checkout were occasionally displaying previous customers’ data.

The issue seemed specific to the default language, Dutch, raising concerns about cache-related problems and potential conflicts with WPML.

Here’s an overview of possible causes, steps to troubleshoot, and a provisional solution that might help if you’re experiencing a similar situation.

Continue reading Troubleshooting Customers Seeing Someone Else’s Address @ WooCommerce Checkout

WooCommerce Free Shipping Threshold Not Working: Decimal Formatting Issue

In a recent Business Bloomer Club Slack thread, a user shared an unexpected issue with WooCommerce’s free shipping functionality.

They had configured a free shipping threshold of €200 in their webshop, yet encountered inconsistencies: free shipping applied correctly for some products but failed for others, even when these items exceeded the set amount.

Continue reading WooCommerce Free Shipping Threshold Not Working: Decimal Formatting Issue

WooCommerce: Email Admin Upon Fatal Error

WooCommerce has a nice feature when it comes to WordPress Error 500 / Fatal Error – it logs the error and all the information regarding it inside the WooCommerce Status > Logs > Fatal Errors area.

My problem is that sometimes these errors occur in the backend, so they may not trigger the WordPress built-in email that notifies the admin about the problem.

What I want to try (please test it on your development website first, and not on your live website), is a way to get an email each time WooCommerce logs an error, so that I can go in and fix it immediately. Enjoy!

Continue reading WooCommerce: Email Admin Upon Fatal Error

WooCommerce: Fix “Sorry, This File Type Is Not Permitted for Security Reasons” For Downloadable Products

In WordPress, you get the “Sorry, This File Type Is Not Permitted for Security Reasons” error when you try to upload certain files to the Media library. Similarly, in WooCommerce you may get the same error when you try to upload a downloadable product download files.

Why is that? Well, by default WordPress only allows certain file extensions to be uploaded to the site. For example PNG, JPG, PDF, PPT, DOC, MP3 and MP4 are within the allowed file types – the reason being they are “safe” and won’t contain malicious code that could create problems within a WordPress install.

The thing is – I’ve started selling my first downloadable product (a mini-plugin) here on Business Bloomer and I needed to upload a ZIP file (the mini-plugin), a JSON file (a Code Snippet export file for those who don’t like plugins) and a TXT file (the plugin’s raw code for those who like to play with PHP). All went smoothly for the ZIP upload, but as soon as I tried uploading the JSON and TXT files I got the “Sorry, This File Type Is Not Permitted for Security Reasons” error.

Panic? Not really. It’s only a matter of finding the right code to change this default WordPress behavior. So, say hello to the “upload_mimes” filter, which allows us to do just that. Enjoy!

Continue reading WooCommerce: Fix “Sorry, This File Type Is Not Permitted for Security Reasons” For Downloadable Products

WordPress: Fix “No Update Required” @ WP Admin

It happened to me today while updating to WordPress 5.3, so I thought of sharing the fix with all the people who are going to have this problem now and in the future.

Honestly, I should have thought about this better – but it’s an early Saturday morning and maybe my brain is still asleep.

I kept getting always the same error, even after 10 refreshes and attempts, even while trying to use /wp-login.php or /my-account to login as opposed to /wp-admin. And when you get the same behavior no matter how many times you refresh or try again… well, it should be easy to understand why!

Continue reading WordPress: Fix “No Update Required” @ WP Admin

WooCommerce: “uploaded file exceeds the upload_max_filesize” Error

upload-max-file-size wordpress

You may have seen this error at least once, if you have used WordPress. When installing a theme, plugin or uploading a image or file, you may find this dreaded message on your screen.

Well, it has nothing to do with themes or plugins. The issue is with your server settings which limit the maximum size for uploaded files.

It’s a common error and it can be easily fixed. This error message is an indication of that the file you are trying to upload is larger than your web host allows (WordPress default file upload size is 2 MB).

Continue reading WooCommerce: “uploaded file exceeds the upload_max_filesize” Error

WooCommerce: Fix the “uploaded file exceeds the upload_max_filesize directive in php.ini” error

If you’re running a WooCommerce store and trying to upload a product image, import a CSV, or install a plugin/theme, you might encounter the dreaded “uploaded file exceeds the upload_max_filesize directive in php.ini” error.

This message means the file you’re trying to upload is larger than what your server currently allows. While this is more of a hosting/server-side limitation than a WooCommerce issue, it’s a common roadblock for store owners—especially those on shared hosting or dealing with large files.

The good news? You don’t necessarily need to mess with php.ini or contact your host right away. In many cases, you can override this upload limit with a quick tweak to your .htaccess file—something you likely already have in your root WordPress directory.

Let’s look at how to do that, and get rid of that error for good.

Continue reading WooCommerce: Fix the “uploaded file exceeds the upload_max_filesize directive in php.ini” error