WooCommerce: How to Build a Multi-Vendor Website (Marketplace)?

Building the next Amazon is everyone’s dream.

Allowing sellers to use your online platform to reach wider audiences without holding stock, investing in shipping and warehousing and – let’s be honest – with a few dollars budget… is actually possible in WooCommerce.

The WooCommerce Multi-Vendor/Marketplace scenarios are many – not a surprise. And sometimes, a plugin is all you need to build an Amazon-alike website. Not bad for a small investment – you can focus on the marketing while the WooCommerce plugin does the rest.

However, building a full website, no matter its project specifications, is never easy. Many WooCommerce and ecommerce entrepreneur underestimate how much work, caution, attention, patience and money are needed to complete an online platform. Nothing is free – if something looks doable with a $79 plugin you also need to consider the cost of time, outsourcing, marketing and third parties (such as picking a reliable hosting).

Anyway, today we’ll take a look at the 3 best plugins for turning a WooCommerce website into a multi-vendor marketplace, including a simple PHP snippet that might just be enough for you. Continue reading WooCommerce: How to Build a Multi-Vendor Website (Marketplace)?

WooCommerce: Display Order Delivery Date @ Checkout

Here’s how you can add a “calendar” field on the WooCommerce checkout page, let people decide the delivery date, and save this value in the order.

It took me ages to implement this for a client (it was much more complex, with available dates, different calendars based on different shipping zones, max weight per day, etc) so I thought of sharing the basic snippet with you! Enjoy 🙂

Continue reading WooCommerce: Display Order Delivery Date @ Checkout

WooCommerce: “Is This a Gift?” Checkbox @ Single Product Page

A client of mine asked me to code a checkbox on the single product page called “Is this a gift?”. They noticed that their customers who want to gift the product to a friend get confused with the “Shipping to a different address” form in the WooCommerce checkout.

So, what about renaming “Shipping to a different address” into “Who is this gift for?” if a “gift” is in the cart? Well, this snippet does just that and you can adapt it / customize it to your specific case. Continue reading WooCommerce: “Is This a Gift?” Checkbox @ Single Product Page

How To Become an Advanced WooCommerce Developer?

Well, get ready for a 2,700+ words article: becoming a WooCommerce expert won’t take you just a couple of days.

A few months won’t be enough either.

If you want to join that very small group of advanced freelancers and agencies that exclusively work with WooCommerce clients and charge top dollar, if you want to become a WooCommerce authority and build a successful career, if you want clients to come to you as opposed to you chasing them, well – you need to digest and assimilate what I’m about to tell you.

In this (long) article I will help you understand what is advanced WooCommerce, and then break this down into 5 simple steps.

Five makes-a-lot-of-sense steps you should follow in order to complete your journey.

So, want to become a WooCommerce ninja? A WooCommerce wrangler? A WooCommerce guru?

Well, despite I dislike all those ninja-like “terms”, let me tell you a thing or two. Then, join me in the comments and let’s keep the conversation going. Continue reading How To Become an Advanced WooCommerce Developer?

WooCommerce: How to Test Geolocation?

Great question, isn’t it?

How do you make sure your shipping, taxes and currency settings are working properly when they depend on geolocation and you can only test from a single world location?

WooCommerce uses a free geolocation service called MaxMind. By default this is active via the settings but can be disabled. The set of functions (or class) that WooCommerce uses is in the /includes folder, and it’s called Class WC_Geolocation.

Continue reading WooCommerce: How to Test Geolocation?

WooCommerce: Check if Product Category is in the Cart

We already studied how to detect if a product ID is in the cart – but if you take a look at the comments many of you were asking how to detect product categories.

So, today we’ll do exactly that. You can disable shipping rates, payment gateways, you can print messages, you can apply coupon programmatically… there are lots of things you can do “conditionally”, based on whether a given product category is in the Cart or not. Continue reading WooCommerce: Check if Product Category is in the Cart

WooCommerce: Detecting Current User Country (Geolocation)

In the redesign of Business Bloomer homepage, launched recently, I wanted to add some “personalization” to the main headline. In detail, I wanted to make use of PHP and WooCommerce inbuilt MaxMind Geolocation (when enabled from the General Settings Tab of course) to print a custom greeting on the screen.

The detection of the current user country could be very useful for other tasks, such as disabling payment gateways and shipping methods, printing country-specific content and so on. And as usual, this “detection” is done with one line of code! Continue reading WooCommerce: Detecting Current User Country (Geolocation)

WooCommerce: Get Product Info (ID, SKU, $) From $product Object

I’ve been wanting to publish this guide for a long while. As a WooCommerce development freelancer, every day I repeat many operations that make me waste time… and one of them is indeed “How to get ____ if I have the $product variable/object?“.

For example, “How can I get the product SKU“? Or “How can I get the product short description“? Or maybe the product stock level, shipping class, tax class, price, regular price, sale price, and so on… hopefully this article will save you time.

Of course, not always you have access to the $product variable (I’m talking about WooCommerce hooks for example), so you’re also required to understand your case scenario and see if you can “get” that $product object in another way.

For example, you might know the $product_id. In this case, you have to find a way to “get the $product object from $product_id” – you find this example below.

Other examples might be the order or the cart pages. Once again, in here you don’t really have a $product available, so you have to loop through the order/cart items and “get” it. After that, you can then calculate and get any piece of information you require out of $product. Enjoy!

Continue reading WooCommerce: Get Product Info (ID, SKU, $) From $product Object

WooCommerce: Display Height, Length, Width @ Shop Page

Another interesting snippet that could come very handy. How do we show the product dimensions (height, width, length) in the shop / category / tag / loop pages? This could be a handy trick for shops that calculate shipping rates based on volume, or when the volume is a vital piece of data customers need to know before proceeding further. Either way, enjoy!

Continue reading WooCommerce: Display Height, Length, Width @ Shop Page

WooCommerce: Display & Save WP User Field (e.g. user_url) @ Checkout

I’m curious to know how many had the same problem. At WooCommerce checkout, some user fields such as billing_name, shipping_address_1, etc. are automatically saved into the “WordPress User Profile” 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! Continue reading WooCommerce: Display & Save WP User Field (e.g. user_url) @ Checkout

WooCommerce: Only Ship to Predefined “Local Pickup” Addresses

Woo 2.6 introduced Shipping Zones – and with that we can play with simple PHP (and JQuery) to accomplish lots of “advanced” shipping rules, such as local pickup.

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: Only Ship to Predefined “Local Pickup” Addresses

WooCommerce: Enable Payment Gateway Only for “Order Pay Checkout”

I invoice clients via WooCommerce, and then send them the “Invoice Email”, which takes them to the “Order Pay” page. Of course, I want to give them the option to pay via “Bank Transfer” (bacs), but I don’t want this to be visible on the default checkout page.

We’ve seen in the past how to disable payment gateways given certain conditions… but how do we “enable” one? Here’s a snippet for that – enjoy!

Continue reading WooCommerce: Enable Payment Gateway Only for “Order Pay Checkout”

WooCommerce: Add House Number Field @ Checkout

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 in the Admin Order, thank you page and notification Emails.

Continue reading WooCommerce: Add House Number Field @ Checkout

WooCommerce Visual Hook Guide: Emails

WooCommerce Customizers: the Visual Hook Guide is back 🙂

Here’s a visual HTML hook guide for the WooCommerce Emails. This visual guide belongs to my “Visual Hook Guide Series“, that I’ve put together so that you can find WooCommerce hooks quickly and easily by seeing their actual locations.

Let me know in the comments if this resource it’s helpful and how! Enjoy 🙂

Continue reading WooCommerce Visual Hook Guide: Emails

WooCommerce: How to Add a Custom Checkout Field

Let’s imagine you want to add a custom checkout field (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 could be something that should show above the checkout order notes – so yes, not in the billing or shipping form. So, here’s how you do it – hope it helps you understand that anything is possible!

Continue reading WooCommerce: How to Add a Custom Checkout Field

WooCommerce: Disable Postcode/ZIP Validation @ Checkout

An annoying thing for sellers based in Ireland (for example), is that we still don’t use post codes (they recently introduced them, but nobody’s using them). So, in today’s task, I want to show you how to disable the “REQUIRED” feature of the postcode on the checkout page.

We already saw how to completely remove the PostCode/ZIP field… but this time we wish to leave it on the checkout, and just avoid a validation error if we don’t enter anything. Continue reading WooCommerce: Disable Postcode/ZIP Validation @ Checkout

#CustomizeWoo: a WooCommerce Online Course for Designers

It’s live. And it’s alive and kicking.

#CustomizeWoo, my flagship Advanced WooCommerce Online Course for designers and DIY store owners, is now live.

In this post, I’m about to show you why I invested 151hrs 39mins 1secs of my time to build #CustomizeWoo and another 50+ hours to publish the updated version in June 2019, who I’m willing to help, and what the course looks like from the “inside”.

So, here’s the story. Here’s why #CustomizeWoo was born. Continue reading #CustomizeWoo: a WooCommerce Online Course for Designers