Unlocking WooCommerce’s Full Potential: Addressing Its Weaknesses

cockle, shell, beach

Greetings from a seasoned WooCommerce user, developer, and advocate with over 12 years of experience!

I “play” with WooCommerce daily and believe there’s room for improvement. Simply catching up with competitors isn’t the right goal—STANDING OUT (yes, in all caps) is what we should be aiming for.

When you’re focused solely on closing the gap, you risk being seen as “the alternative to” rather than a standout in your own right. WooCommerce, with its unique ecosystem and flexibility, has the potential to thrive by embracing its strengths instead of chasing a moving target. By stepping away from the “catching up” mindset, you can create a truly exceptional product—one that isn’t just comparable but incomparable, one that leads rather than follows.

So, let’s take a step back.

I believe ecommerce software should let you sell ANYTHING (products) to ANYONE (customers around the world), while getting PAID and being able to DELIVER the package asap.

If Woo can address all that, it can really become outstanding, a piece of software that is worth talking about, and that doesn’t need to be compared to others. Because it’s unique.

There’s a reason why you can’t compare pears to apples—yet you could argue that diamonds outshine gold.

So, here’s an overview of key areas where WooCommerce might have weaknesses compared to other ecommerce platforms, together with some context.

Continue reading Unlocking WooCommerce’s Full Potential: Addressing Its Weaknesses

WooCommerce: View Customer Order History on Single Order Admin Page

Viewing the WooCommerce customer’s order history directly on the single order admin page can be incredibly useful when you need quick access to a customer’s past purchases without navigating away from the current order screen.

With a simple PHP snippet, you can add this functionality, enabling you to view previous orders and better understand customer behavior in real time.

This customization not only enhances your workflow but also improves customer service, allowing you to address inquiries more efficiently.

Below, I’ll walk through the steps needed to implement this feature, providing you with the PHP code necessary to display order history details on the order admin page itself.

As always, remember to test customizations in a staging environment to ensure compatibility with your setup!

Continue reading WooCommerce: View Customer Order History on Single Order Admin Page

WooCommerce: Get Customer ID From An Email Address

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 email address upon submit. What if I need to check if the email address is an existing WooCommerce customer who has placed some orders?

Well, the PHP below will give you a quick way to “calculate” the customer ID if you only have an email address. It’s then easy to use the result in a custom calculation or core function, such as wc_get_orders().

Enjoy!

Continue reading WooCommerce: Get Customer ID From An Email Address

WooCommerce: Add Content To “New Account” Welcome Email

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 can access your account area to view orders, change your password, and more at: ___

Click here to set your new password.

This tutorial teaches you how to display additional content in the “welcome” email. You can then personalize greetings, showcase your brand story, and strategically introduce features like exclusive offers or product recommendations. By tailoring these emails, you’ll not only provide valuable information but also nurture customer loyalty and encourage them to explore your offerings further.

Enjoy!

Continue reading WooCommerce: Add Content To “New Account” Welcome Email

WooCommerce: Populate Billing & Shipping When Adding A New User @ WP Dashboard

If you do a lot of manual work such as creating WordPress users for a B2B WooCommerce site (because they can only shop if they have an account, and you’ve disabled registration on the frontend), you may want to populate some Billing and Shipping fields so that you can save some time.

For example, imagine if all customers are based in Florida, USA; you could automatically populate their billing country, billing state, shipping country and shipping state!

So, let’s see how to approach this. Enjoy!

Continue reading WooCommerce: Populate Billing & Shipping When Adding A New User @ WP Dashboard

WooCommerce: Change Address Format For a Specific Country

We’ve already covered a little about address formats when we added a custom House Number field to the WooCommerce Checkout page.

Address formats define the way Billing and Shipping addresses are formatted for the end user. Addresses show on the order received / thank you page, on transactional emails and on some My Account pages, and look like this:

{name}\n{company}\n{address_1}\n{address_2}\n{city}\n{state}\n{postcode}\n{country}

Now, what if you wanted to move the “company” before the customer name, or maybe have “address 1” and “address 2” on the same line, or move “postcode” to the last line? Well, thankfully there is a neat WooCommerce filter called “woocommerce_localisation_address_formats” that allows us to do just that – reformat any address for any country we wish. Enjoy!

Continue reading WooCommerce: Change Address Format For a Specific Country

WooCommerce: Get List Of All Customers

Today’s snippet is a helpful shortcut for getting the list of customers in your WooCommerce website. This may be necessary during customization, especially if you need tailor-made features for administrators and shop managers in the backend or frontend.

How did I find out about the solution below? Well, our job is mainly copy/paste from online forums or read thoroughly the WooCommerce core files on a daily basis – so it must’ve been one of the two. Enjoy!

Continue reading WooCommerce: Get List Of All Customers

WooCommerce: Check if User Has Bought Product in the Last 365 Days

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 days… so I rewrote the function, changed its name and added a little edit to it – easy peasy!

Continue reading WooCommerce: Check if User Has Bought Product in the Last 365 Days

WooCommerce: Display & Save WP User Profile Field @ Checkout

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