Here is a collection of tips, snippets, customizations, plugin reviews and how-to tutorials to answer your biggest WooCommerce questions, curated by Rodolfo Melogli.
Please remember feedback is vital and that your social media shares, blog comments and WooCommerce Weekly newsletter sign ups help me understand which WooCommerce content works and which not, so that I can fine-tune my writing :)
This snippet will help you synchronize all your cart items’ quantities with a given product ID quantity. When you add a second product to cart, therefore, it will get the same quantity of your product ID. Also, if you update the quantity of product ID, the other cart item quantities will automatically update accordingly.
Applications are quite niche, but it’s great to learn how to programmatically set the quantity of a cart item. As usual, each snippet of this website has got something that sooner or later you may need to use. Enjoy!
When a new version of the WooCommerce plugin is released, and the WordPress dashboard starts sending you notifications that it’s time to update, this question comes always to mind: “Should I update WooCommerce right now, wait a little longer, or stay on the same version unless something breaks?“
Well, updating WooCommerce is ALWAYS a big risk – potentially you can break your live website and miss out on traffic and sales. This can happen every time a significant update is released – many store owners don’t update their stores because they feel the hassle is not worth the effort.
But updating WooCommerce is definitely a good idea for the long-term. The main cause of WordPress hacking is because of out-of-date plugins and themes. And this is where staging environments come in.
A staging website is a clone of your existing live store. It’s completely separate and it doesn’t affect your live store in any way. Staging is also called “testing environment” or “sandbox”, while your live site is usually called “production environment”.
Staging gives you the benefit of 1-click-cloning in a few minutes, updating and testing WooCommerce without worrying about breaking your actual live website, and finally “pushing” the changes to the live website (a.k.a. overwriting the live environment), so the functioning is 100% guaranteed.
Running an online store often means coming up with smart ideas that can help you sell your products faster. Some of those ideas might succeed and some may fail.
There are no strategies that work all the time, for all WooCommerce websites. But there is one that is often very effective: offering store credits. The reason for its popularity can be attributed to the awesome flexibility it provides to both store owners and customers.
So, let’s find out more about store credits through this article and how you can enable them in your WooCommerce online store. But first – what are store credits?
Well, with this functionality, customers can purchase store credits (as opposed to buying products) and then they can use their credits to buy products from the store. Buyers can either use it for themselves or gift it to others. It’s an easy and effective way to convert your store visitors into buyers.
Now it’s time to figure it all out. And thankfully, there’s a plugin for that.
A good way to inform online customers and avoid issues is showing the estimated delivery / dispatch time on the single product page, just below the “Add to Cart” button. Yes, you could do that manually by adding shipping info to each product short description, but the goal of Business Bloomer is to learn how to code that instead, so you won’t need to write things manually.
Also, this is great because if you change something in your dispatch rules, you just need to change the short PHP snippet and not all your product descriptions. It’s much more flexible this way.
Finally, in this post we’ll learn how to work with cut-off times (hour of the day) and current day of the week (pure PHP), so that we can show a “dynamic” notice based on current date. So, let’s see how it’s done!
WooCommerce generates shop, category, tag, single product breadcrumbs out of the box. Such breadcrumbs should follow your WooCommerce permalink settings. For example, I use the “Shop base with category” option under WordPress > Permalinks. In my case, by default, a product belonging to category “Uncategorized” has an URL = “https://example.com/shop/uncategorized/product-name/” and its single product page breadcrumbs follow that same rule: “Home / Shop / Uncategorized / Product Name”.
Now, what if I want to rename one of the items? What if I want to replace one of the breadcrumb items with something else? Well, WooCommerce gives us a cool filter called “woocommerce_get_breadcrumb” that we can use to edit the breadcrumb content before displaying it. In this post, we will see how to add a suffix to product categories and also how to replace the product name with the SKU value. Enjoy!
By default, WooCommerce displays 4 products per row in the shop page. This is nice for almost any ecommerce website, however in certain cases you might want to change this setting in order to show full-width products (a.k.a. one product per row).
In this post we’ll look at the alternatives you have in regard to changing this setting, and also some CSS adjustments to make the 1-product-per-row shop page look better. Enjoy!
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 quote form) and the Bloomer Armada sales page (just above the pricing table), so I thought it would have been great sharing the snippet with you. Enjoy!
The default WooCommerce shop page layout makes it difficult for wholesale buyers to purchase in bulk.
This is because wholesale stores have different requirements as compared to retail stores. For instance, wholesale products are best displayed in a one-page order form for quick wholesale ordering as opposed to a more visual, image-rich layout.
In this post, we’ll run the rule over some of the best tools available for building a great WooCommerce wholesale store.
Along the way, we’ll share some tips on how each WooCommerce wholesale plugin can help you achieve a specific goal and deliver a better user experience.
The standard layout for the WooCommerce single product page features the main/featured product image on the left and the title/add to cart on the right. But what if you need to turn that image into a hero one i.e. a full width featured image, and push the title and add to cart button under it?
Well, for once, we’ll take a look at a CSS-only snippet. Sometimes the easiest things are also the ones that work brilliantly. Enjoy!
If you sell no downloadable products, the Downloads section of the WooCommerce My Account page will always be empty (in this case, you should completely hide the My Account Download tab). Besides, if you do sell downloadable products but customers never purchased such items, the same will happen.
So, what if you wanted to grant at least a default download file to all your customers? Well, the “woocommerce_customer_get_downloadable_products” WooCommerce filter allows us to add files to the list (empty or non empty) of customer downloadable files. Here’s how it’s done!
Basically, in this article, you will see how to write custom content for your WooCommerce Thank You page as a separate WordPress Page, so that you can use WYSIWYG, Gutenberg or a page builder to create something unique, and then ask WooCommerce to “get it” and “include” such page inside the default order-received endpoint.
If you’re not sure what I mean, try taking a look at the two screenshots below. Then, copy the simple snippet and see the result!
Maybe you don’t have staging, and you need to clone your WooCommerce website elsewhere to test updates or new functionality (because you’re not doing that on a live website, right?). Maybe you need to migrate an existing WooCommerce website to another server. Or, like me, maybe you need to copy an entire WooCommerce website on a fresh subdomain in order to write this step-by-step tutorial!
Either way, the free Duplicator plugin, available on the official WordPress.org repository, is your best friend. Whether you need to duplicate, clone, migrate, copy or even backup your WooCommerce website, Duplicator is the most straight forward system to achieve that.
Of course, is not super simple and this is why you’re reading this step-by-step tutorial about duplicating WooCommerce websites (including helpful screenshots). Hope this is helpful to those of you who need to achieve a complex and delicate operation (cloning/migrating is ALWAYS a delicate thing) within few steps.
All you need is an existing WooCommerce website, the Duplicator plugin, an FTP client (or File Manager) and access to the server where you will create the new subdomain and blank database. All the rest is handled by the plugin, so here’s the tutorial you were waiting for.
When it comes to saving time, the out-of-the-box WooCommerce plugin doesn’t give you many options and features. For example, searching through your WooCommerce orders is not straight forward enough because the search options are fairly limited.
By default, you can go to the WooCommerce Orders admin page (wp-admin/edit.php?post_type=shop_order) and use the basic search bar.
You can look for a customer name, a customer billing email and a few more, but that’s pretty much all you can do. You can’t look for multiple fields, you can sort, you can’t filter by order total, and so on.
You get the picture – for a store manager this Orders dashboard is not handy at all. Each extra minute wasted in trying to find something could be better invested – in marketing spend for example.
That’s why we want to show you a quick alternative in order to do advanced searches in seconds. You won’t need any PHP snippets – just a quick plugin that turns your order list into an intuitive and easy-to-use spreadsheet so that you can do all the filtering and manipulation you desire.
If you wish to mark paid orders as “Completed” automatically (i.e. without having to manually login to the site and “check” processing orders one by one), you can use the code below.
What is more, this snippet will completely skip the “Processing” order status transition, which means no “Order Processing” email notification will trigger either. Once again, these 4 lines of code could save you millions of hours… hope this helps!
By now, you probably know that you should never run WooCommerce with a single payment gateway. We’ve already seen in the “PayPal or Stripe?” article that (spoiler alert!), the best solution is “PayPal AND Stripe”. Which means you need to understand that different customers prefer different kinds of payment methods (and this could increase your conversion rate dramatically).
Now we move to the next step: the chargebacks issue, and the risk of having your payment gateways banned by their providers.
A user recently told us that he has a WooCommerce subscription-based business, which is great. The problem is that sometimes customers don’t read that part and think they’re making a one-time purchase. And sometimes, when they realize they purchased something different than what they had in mind, they ask their bank or credit card company to issue a chargeback.
A chargeback happens when a cardholder makes a claim to their bank or credit card company that a payment made on their card was fraudulent. When a chargeback occurs, the business to which the payment was originally made is required to repay the full purchase amount, plus a chargeback fee.
While you can really do your best to avoid chargebacks by being transparent on your website and order receipts, sometimes – especially for WooCommerce Subscriptions – that’s not enough. Investors say: “Don’t Put All Your Eggs in One Basket” and the same applies here: you’d better record your active subscriptions under PayPal, Stripe, Authorize, and so on, so that all your recurring revenue is not in the same account.
We already studied how to set min/max WooCommerce add to cart quantity programmatically. That was an easy one. This time, I want to expand on the topic, and define a “minimum order amount on a per-product basis”.
Which, translated in plain English, would be something along the lines of “set the minimum purchase amount for product XYZ to $50”. And once we do that, I expect that the add to cart quantity does non start from 1 – instead it defaults to “$50 divided by product price”. If product price is $10, I would want to set the minimum add to cart quantity to “5” on the single product and cart pages.
SKU, Category list and Tag list on the WooCommerce single product page are called “product meta”. We already saw how to hide just the SKU (while leaving Cats and Tags there), so in this “episode” we will study how to do the opposite i.e. keeping the SKU there while hiding Cats and/or Tags.
If you are a developer, you’d think there were a specific WooCommerce “filter” for this, but there is not. So, we have to first remove the whole “product meta” block and then add back the info we want (just the Cats, for example). If you’re not a dev – not to worry – just copy paste one of the snippets below in your functions.php and magic will happen. Enjoy!
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 to add a To: recipient, or instead a cleaner Cc: or safer Bcc:.
Either way, a simple snippet allows you to achieve that (and more, if you consider WooCommerce conditional logic). Enjoy!