In a recent Business Bloomer Club Slack thread, a member asked for suggestions on optimizing a 25GB order_itemmeta table in WooCommerce. This large table was causing slow order creation and search issues, and the user was exploring options, including switching to HPOS (High-Performance Order Storage). Here are some insights from the discussion. Is a Large […]| Business Bloomer
Hey :) I'm Rodolfo, I love WooCommerce and I really enjoy helping people. Need a hand with Woo? Steal my snippets or watch a free video!| Business Bloomer
In a recent Business Bloomer Club Slack thread, a user reported a situation where WP Cron was disabled for an unknown reason, causing WooCommerce database updates to not run after plugin updates. As a result, the site had accumulated over 1000 pending tasks. The user was seeking guidance on the best course of action to […]| Business Bloomer
Unlock great WooCommerce benefits such as help and support, networking, learning, upskilling. Join the official Business Bloomer Community!| Business Bloomer
In WooCommerce, everything is easy until you have a dozen products to manage. But once you start scaling, and maybe need to import hundreds of items, right then is when you go looking for shortcuts. Problem is – there are single product settings that you must enter manually for each product (or do it in […]| Business Bloomer
You want your website visitors to checkout fast, pay you faster and receive their item quickly. However, speed matters for us WooCommerce store owners as well. By looking at this year’s time-sheets for my own business, about 50% of the time was spent between marketing and admin – and the “admin” part is the one […]| Business Bloomer
WooCommerce product reviews shows by default in the “Reviews” tab in the single product page. But what if, like me, you’re using custom sales pages and need to show such reviews elsewhere – by using a shortcode? I’ve spent some time doing this for two Business Bloomer pages, the contact page (beside the request a […]| Business Bloomer
Business Bloomer enters the world of Gutenberg today, and we do it with a simple customization tutorial related to the “Product Grid” WooCommerce Gutenberg Blocks: currently these are “Best Selling Products“, “Newest Products“, “On Sale Products“, “Top Rated Products“, “Products by Category” and use the same base code… However, all of them use custom code […]| Business Bloomer
With the right approach to user experience you can make your WooCommerce website more effective at converting visitors into customers and encouraging existing users to come back to make purchases more regularly. There are several ways to enhance UX using WooCommerce as a foundation, so here are just a few of the most impactful options […]| Business Bloomer
A North European client told me they’re really strict about billing and shipping addresses over there. Couriers usually require a separate “House Number” in order to dispatch packages within those countries. This must be therefore placed on the checkout, BESIDE the “Address_1” field and made required. Also, it’s a good idea to make this show […]| Business Bloomer
Check out the page! And if you need a hand with Woo, feel free to steal my snippets or join my next class!| Business Bloomer
Not all WooCommerce websites are born equal. Sometimes a price and an add to cart button are just not enough. B2B platforms, wholesalers and high-ticket businesses are usually quite flexible with their pricing and might need to give customers the freedom to request a quote. Correct, WooCommerce can be used as a quoting engine as […]| Business Bloomer
The WooCommerce Orders Table, which can be found under WP Dashboard > WooCommerce > Orders, provides us with 7 default columns: Order – Date – Status – Billing – Ship to – Total – Actions. This is used by shop managers to have an overview of all orders, before eventually clicking on a specific one. […]| Business Bloomer
In terms of SEO, if you’re trying to rank your product category pages, you really need to make the most of the default WooCommerce product category “description” and “thumbnail”. Most themes, if compatible with WooCommerce, will show this content right below the product category name and above products. Nothing new so far. But what if […]| Business Bloomer
In the world of WooCommerce, customization is crucial for creating a unique online store. However, juggling numerous WooCommerce settings across multiple pages can be tedious. Imagine a solution that simplifies this process by consolidating all your WooCommerce options into a single, easy-to-use interface. This tutorial will give you a possible approach and try to fit […]| Business Bloomer
All WooCommerce orders go to either “processing“, “completed“, “on-hold” and other default order statuses based on the payment method and product type. Sometimes these statuses are not enough. For example, you might need to mark certain orders in a different way for tracking, filtering, exporting purposes. Or you might want to disable default emails by […]| Business Bloomer
How can WooCommerce customers edit an order they just placed and paid for? I swear I looked on search engine results and other places before coming to the conclusion I needed to code this myself. For example, a user might want to change the delivery date (if you provide this on the checkout page). Or […]| Business Bloomer
As a WooCommerce development freelancer, every day I repeat many coding operations that make me waste time. One of them is: “How to get ____ if I have the $order variable/object?“. For example, “How can I get the order total“? Or “How can I get the order items“? Or maybe the order dates, customer ID, […]| Business Bloomer
The WooCommerce Email Settings allow you to add custom recipients only for New Order, Cancelled Order, Failed Order and all admin-only emails. But what if you want to add an email recipient to a customer email e.g. the Completed Order one? For example, you need to send it to your dropshipper. Also, you might want […]| Business Bloomer
Customizing WooCommerce emails via the WordPress dashboard is not easy and – sometimes – not possible. For example, you can’t edit or add content to them unless you’re familiar with code. Well, here’s a quick example to learn how to add content to any WooCommerce default order email. In this case study, our goal is […]| Business Bloomer
Let’s imagine you want to add a custom checkout field (and not an additional billing or shipping field) on the WooCommerce Checkout page. For example, it might be a customer licence number – this has got nothing to do with billing and nothing to do with shipping. Ideally, this custom field could show above the […]| Business Bloomer
Adding and displaying custom fields on WooCommerce products is quite simple. For example, you can add a “RRP/MSRP” field to a product, or maybe use ACF and display its value on the single product page. Easy, yes. Unfortunately, the above only applies to “simple” products without variations (or the parent product if it’s a variable […]| Business Bloomer
WooCommerce database already stores the number of products sold for you. Therefore, you may want to show such number on the product page, close to the Add To Cart button. As we’ve seen in my book Ecommerce and Beyond, showing the number of sales for each product can increase your sales conversion rate. All you […]| Business Bloomer
Some plugins such as “deposit” and “subscription” payments send customers to the “Pay for Order” page in order to complete a pending WooCommerce order. In certain cases, also, the customer is forced to log in and this really affect sales conversion rate – instead of the checkout form customers see this notice: “Please log in […]| Business Bloomer
Today we take a look at the WooCommerce Checkout and specifically at how to disable a payment gateway (e.g. PayPal) if a specific product category is in the Cart. There are two tasks to code in this case: (1) based on all the products in the Cart, calculate the list of product categories in the […]| Business Bloomer
This is your ultimate guide – complete with shortcodes, snippets and workarounds – to completely skip the Cart page and have both cart table and checkout form on the same (Checkout) page. But first… why’d you want to do this? Well, if you sell high ticket products (i.e. on average, you sell no more than […]| Business Bloomer
Here’s a snippet regarding the checkout page. If you’ve been affected by GDPR, you will know you now need users to give you Privacy Policy consent. Or, you might need customer to acknowledge special shipping requirements for example. So, how do we display an additional tick box on the Checkout page (together with the existing […]| Business Bloomer
How can you redirect customers to a beautifully looking, custom, thank you page? Thankfully you can add some PHP code to your functions.php or install a simple plugin and define a redirect to a custom WordPress page (as opposed to the default order-received endpoint). This is a great way for you to add specific up-sells, […]| Business Bloomer
You might want to disable PayPal for non-local customers or enable a specific gateway for only one country… Either way, this is a very common requirement for all of those who trade internationally. Here’s a simple snippet you can further customize to achieve your objective. Simply pick the payment gateway “slug” you want to disable/enable […]| Business Bloomer
This is a very cool snippet that many of you should use to increase your average order value. Ecommerce customers who are near the “free shipping” threshold will try to add more products to the cart in order to qualify for free shipping. It’s pure psychology. So, here’s how we show a simple message on […]| Business Bloomer
You may want to disable payment gateways depending on the logged in user role. For example, you may want to disable PayPal for user role “subscriber” or enable a specific gateway for user role “customer”. All you need is to paste the following code in your functions.php or to install a super simple plugin. Enjoy! […]| Business Bloomer
I’m curious to know how many had the same problem. On the WooCommerce Checkout page, some user fields such as billing_name, shipping_address_1, etc. are automatically saved into the “WordPress User Profile” data upon processing. But what if we also wanted to display and save another existing user field, such as “user_twitter“, or “user_url“, which you […]| Business Bloomer
Check out the page! And if you need a hand with Woo, feel free to steal my snippets or join my next class!| Business Bloomer
A few snippets ago we introduced the magic WooCommerce inbuilt function “wc_customer_bought_product” – automatically, with a single line of PHP, you can find out if the user has already purchased a product ID. But when building my new #BloomerArmada section, I had to know if a user purchased a product ID in the last 365 […]| Business Bloomer
On the admin side, you might need to display WooCommerce information inside the users table (WordPress Dashboard > Users). For example, their billing country. Or their phone number. Or maybe some custom calculation e.g. the number of completed orders. Either way, this is super easy. First, we add a new column – second, we tell […]| Business Bloomer
Check out the page! And if you need a hand with Woo, feel free to steal my snippets or join my next class!| Business Bloomer
Here's a collection of tips, snippets and articles to answer your biggest WooCommerce customization questions. You can use the search button to refine your search, or alternatively click on one of our popular WooCommerce customization blog tags. Woo!| Business Bloomer
Adding a custom field to your WooCommerce checkout is a breeze. It’s a fantastic way to collect extra information from your customers. It could be a custom Billing field, a Shipping field, or a completely unrelated custom field. But while you can easily view the custom field data in the backend, editing it directly from […]| Business Bloomer
Customizing your WooCommerce store via PHP can involve a variety of tasks, from personalizing orders to managing customer interactions. Often, you might need to find a specific customer’s information, but all you have is their email address. For example, on this same website, I have custom contact forms that give me a name and an […]| Business Bloomer
Find WooCommerce Cart Hooks (actions & filters) by seeing their actual locations. Quickly copy/paste add_action & add_filter for easy customization!| Business Bloomer
Check out the ! And if you need a hand with Woo, feel free to steal my snippets or join my next class!| Business Bloomer
Check out the ! And if you need a hand with Woo, feel free to steal my snippets or join my next class!| Business Bloomer
WooCommerce product reviews are, actually, WordPress comments. When you install WordPress, comment notifications for admins are turned on. You can choose to receive emails for all new comments, or only for comments that require moderation (haven’t been approved yet). The problem is that if your site gets a lot of spam comments, you might be […]| Business Bloomer
I’ve put together a visual hook guide for the WooCommerce Cart Block (you can find the legacy shortcode version here). Please note – as of the date above, you can’t really customize the Cart Block via PHP (unless you use the workaround below). If you need to personalize the Cart page, move elements around, hide […]| Business Bloomer
Looking to boost your WooCommerce store’s average order value? Upsells are a powerful tool, but manually entering them via the Edit Product page can be tedious. This tutorial dives into the world of programmatic WooCommerce product upsells, empowering you to leverage code for a dynamic and data-driven upsell strategy. In under 5 lines of PHP, […]| Business Bloomer
This approach might be relevant for specific promotional offers (e.g. BOGO) or custom coded product bundles. In this case, you may want to remove a second item from the cart – programmatically – once a product is removed. Of course, a relationship is needed between the two cart items via custom cart item meta data […]| Business Bloomer
In WooCommerce, the order pay page is a specific webpage a customer lands on to complete payment for an order. It’s typically used for manual orders. When a store admin creates an order in the WooCommerce backend, the system generates a unique URL for the order pay page. This link can then be shared with […]| Business Bloomer
First impressions matter, especially in ecommerce. When a customer creates an account on your WooCommerce store, the “Your {site_title} account has been created!” welcome email is your golden opportunity to solidify a positive connection. However, the standard WooCommerce email might fall short: Hi Rodolfo,Thanks for creating an account on {site_title}. Your username is ____. You […]| Business Bloomer
The WooCommerce “Order Pay” page is a hidden gem within the checkout process. It’s not typically encountered during a standard customer purchase journey – it comes into play when a store admin creates a manual order in the WooCommerce backend and sets it to “Pending” order status, often for scenarios like phone orders or custom […]| Business Bloomer
WooCommerce offers flexibility with custom order statuses, but email notifications can be limited. By default, in fact, WooCommerce triggers the “completed”, “processing”, “on-hold” and all the other default emails when the order status changes from X to Y as defined in the plugin code. But what if you want to trigger the “Order Completed” email […]| Business Bloomer
WooCommerce offers a comprehensive set of settings organized into several tabs within the WordPress admin dashboard: General, Products, Shipping, Taxes, Payments, Accounts & Privacy, Emails, Integration, Advanced. These are the core WooCommerce settings tabs. Depending on your specific setup and any additional plugins you might be using, you might see additional custom tabs as well. […]| Business Bloomer
There are a couple of reasons why the default WooCommerce checkout page doesn’t have a separate heading for the payment section. One is about design; WooCommerce might be aiming for a clean and uncluttered checkout process. A dedicated heading might add visual weight to the page, potentially making it feel more complex. By omitting the […]| Business Bloomer
WooCommerce offers a robust shipping system, but what if you want to tailor it based on the logged in user role? In this blog post, we’ll show you how to exclude specific shipping methods from users with a particular role. This allows you to, for example, offer free shipping only to VIP members or restrict […]| Business Bloomer
When you land on the WooCommerce Checkout page, one payment option (radio button) will be selected by default. this is defined based on the last payment method (logged in customer), or the payment gateway sorting (logged out customer). Often it happens, however, that customers forget to change their payment selection, and therefore end up checking […]| Business Bloomer