Here is a collection of tips, snippets, customizations 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 WooWeekly newsletter sign ups help me understand which WooCommerce content works and which not, so that I can fine-tune my writing :)
Thank you in advance and enjoy!
Following up from the other day’s snippet (deny checkout based on cart weight), you might want to show what is the current Total Weight on the cart and checkout page in case this is useful to your customers.
Of course, in order for this snippet to work, all your products must have a weight, otherwise the total will always be equal to 0. So here you go – enjoy!
Continue reading WooCommerce: Display Total Weight @ Cart & Checkout
Case scenario: if you add a product ID to cart with a specific, you want another product automatically added to cart (Buy One Get One, or “BOGO”).
This second product should have price = 0 if you wish to completely give it away, or maybe a set sale price. It should also be set to “hidden” because maybe you want to hide this free product from the shop and only gift it when the first one is added to Cart.
Also, if you remove product 1, the gifted product should go away from the Cart too. So here follows the PHP snippet of course!
Continue reading WooCommerce: “Buy One Get One” (BOGO)
A WooCommerce fan asked me: “How do you deny checkout if the cart weight is above a certain threshold?“.
Well, this is straight forward thanks to a WooCommerce core function called “cart_contents_weight” which allows you to get the total weight of your cart, and then the “wc_add_notice” function which shows a notification error.
Enjoy!
Continue reading WooCommerce: Deny Checkout Based on Cart Weight

I use the “WooCommerce PDF Invoices & Packing Slips” plugin, available on the WP Repository, to invoice my clients. At times, for accounting purposes, I need to show the VAT/TAX ID of the client on the PDF invoice.
So, I open the order via WooCommerce > Orders, open the order I want to edit, add a “Note to the Customer” from the right hand side… and then have the following snippet in my functions.php adding such information on the PDF invoice! Continue reading WooCommerce: Add Order Notes to WooCommerce PDF Invoices

When it comes to “editing” stuff, chances are WooCommerce gives us a “filter” we can use without overriding core. The more filters, the more customization we can do. In this case, I wanted to change the “Returning Customer?” message on my own checkout. Continue reading WooCommerce: Edit “Returning Customer?” Message @ Checkout
This is a very common task. As a WooCommerce store manager, sometimes you need to hide the SKU field on the single product page, while keeping it in the backend (Product Edit page) for order tracking and product import/export purposes.
Here’s a simple snippet you can use to remove the SKU immediately 🙂
Continue reading WooCommerce: Hide SKU @ Single Product Page
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 can find in the WP User Profile by default?
Well, this is very easy: first, we add a custom checkout field; then, we make sure that when the checkout is processed we save that field correctly.
Enjoy!
Continue reading WooCommerce: Display & Save WP User Profile Field @ Checkout

For once, this is a PHP snippet I use on my own website 🙂 In here, I’ll show you how to change the “Description” H2 Heading in the description tab on the single product page. Enjoy! Continue reading WooCommerce: Rename “Description” Title @ Single Product Page Tabs
A freelance client hired me to display each product brand in the shop/product archive pages. The WooCommerce Brands plugin, in fact, only adds these in the Single Product Page.
So, this is how it’s done. Enjoy!
Continue reading WooCommerce Brands: Display Brands @ Shop & Category Pages
A client asked to show a “Product Inquiry” button on the Single Product Page which would display, upon click, a Contact Form with an automatically populated subject (Contact Form 7 plugin must be installed of course). Here’s how I did it!
Continue reading WooCommerce: Product Enquiry Form @ Single Product Page (CF7)
A #CustomizeWoo student reached out for premium support in regard to “WooCommerce taxonomies”. The question was: How do I change the label “tag” into something else, for example “brand”? Well, this is how it’s done!
Please note that this does not change the “tag” permalinks (URL, slug, etc), but only the “Tags” label on the frontend, and only on the Single Product Page.
Continue reading WooCommerce: Rename “Tags” Label @ Single Product Page
Here’s how you force redirection to the checkout page every time a product is added to cart, no matter if you do so from the loop/shop pages or the single product page.
On top of adding the code to your functions.php you also need to double check your WooCommerce settings, see screenshot below. Enjoy!
Continue reading WooCommerce: Redirect to Checkout on Add to Cart

While working for a freelance client, I did some research on the code that generates the “Order Totals” table. This shows on the Thank-you Page and also on the Email Receipt. So, what if we wanted to add a table row to the foot of such table? Continue reading WooCommerce: Add New Row @ Order Totals (Email & Thank-you Page)
A Business Bloomer fan asked me a great question: “I’m using your visual hook guide to add content above the cart, however I notice that it doesn’t work if the cart is empty. Are there hooks specifically for empty carts?“.
Well, let’s take a look if we have anything available… (hint: of course we do!).
Continue reading WooCommerce: Add Content to Empty Cart Page
WooCommerce Shipping Zones are quite easy to override / customize. With a simple PHP (and jQuery, sometimes) snippet we can accomplish many advanced shipping rules, such as the one we’ll study today.
This time, I’ve tested a snippet to add a dropdown to the billing section where users go choose the pickup destination. As a result, the shipping address is automatically populated, and so is the shipping method. What do you think?
Continue reading WooCommerce: Ship to Predefined “Local Pickup” Addresses