WooCommerce: One Product Per Row @ Shop Page

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!

Continue reading WooCommerce: One Product Per Row @ Shop Page

WooCommerce: Display Product Reviews @ Custom Page (Shortcode)

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!

Continue reading WooCommerce: Display Product Reviews @ Custom Page (Shortcode)

How to Build a Successful WooCommerce Wholesale Store

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.

Continue reading How to Build a Successful WooCommerce Wholesale Store

WooCommerce: Full Width Featured Image @ Single Product Page

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!

Continue reading WooCommerce: Full Width Featured Image @ Single Product Page

WooCommerce: How to Calculate Product Prices with Custom Formulas

WooCommerce is a powerful and feature-rich WordPress plugin. But despite the fact it’s got many features, there is always something missing for custom ecommerce businesses.

The problem with “all-you-can-do plugins” is the same as “all-in-one WordPress themes“: the more custom functionalities a piece of software has, the worse its performance gets.

Therefore, there is no need to pack every imaginable functionality into WooCommerce as it is easily expandable with other plugins.

For example, one particular feature is not available in WooCommerce out of the box: the possibility to use math formulas to calculate product prices.

This functionality is crucial for specific industries such as digital printing, custom-sized furniture, curtains, tiles, rollers and so on.

Curious to know how this can be implemented?

Continue reading WooCommerce: How to Calculate Product Prices with Custom Formulas

WooCommerce: Include Custom WP Page @ Thank You Page

Yes, you can redirect users to a custom thank you page (but please note all your ecommerce Google Analytics tracking will be skipped…). Yes, you can add content to the default thank you page, for example a Twitter “share your purchase” box. And yes, you can even “include” content from another WordPress page!

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!

Continue reading WooCommerce: Include Custom WP Page @ Thank You Page

How to Clone/Migrate WooCommerce (Step by Step)?

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.

1. Existing WooCommerce Website: Install Duplicator

Select your existing WooCommerce install you want to clone, and add and activate the Duplicator plugin.

2. Existing WooCommerce Website: Create a new package

Go to Duplicator and click on “Create New” package.

3. Existing WooCommerce Website: Set up the new package

Set the package name if you want, then decide if you want to exclude certain files from the clone. For example, ZIP files. Or PDF files. Or even all your images, so the process will be much faster.

4. Existing WooCommerce Website: Scan the new package

When you move to the Scan step, the system will give you warnings if the package is too big in size or if there are other errors. In case you can go back to the Setup step and add more file exclusions.

5. Existing WooCommerce Website: Build the new package

When you proceed to the “Build” step, Duplicator will slowly backup your existing WooCommerce website and will generate two files: an ARCHIVE file containing website files and database, and an INSTALLER file necessary to clone the website elsewhere.

6. Download the package

Now go ahead and download the INSTALLER and ARCHIVE files on your computer. We’ll need them later to create the website clone.

7. Hosting: Create a new subdomain

From your hosting control panel, create a new subdomain where you wish to place your WooCommerce clone. You’ll need FTP access to this folder later.

8. Hosting: Create a new database

From your hosting control panel, create a new MySQL database through the wizard. You will need to set a database name, a database user and a database password. You’ll need these at step 11.

9. FTP: Place package in the subdomain folder

With an FTP software, place the INSTALLER and ARCHIVE files inside your subdomain folder. It should be empty i.e. there should not be another WordPress install or such.

10. Run the installer

Now open your browser and go to https://SUBDOMAIN_URL/installer.php. If you’ve placed the installer in the correct folder, Duplicator will display Step 1 and “Setup” and “Validation” will show a “Pass” badge.

11. Set up the installer

This is the most difficult and more “technical” step of the cloning process. Earlier, we created a database so you should have the database name, user and password available already and you can enter them in the relative input fields. The most complex input field is the “Host” one, but not that much really. It’s basically your hosting control panel “Main Domain”. If not sure, ask your host.

12. Review the installer setup

On step 3, simply review the “Setup” window, and make sure title, URL and path are correct. Title will be taken from the original website, URL should be the URL of your NEW WooCommerce clone. Then click on Next.

13. New WooCommerce Website: login

That’s it – easy peasy! You can now login to the cloned site and verify everything is working properly. Of course, you can login with the same credentials you use for the existing WooCommerce website.

WooCommerce: Advanced Order Search

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.

Continue reading WooCommerce: Advanced Order Search

WooCommerce: Automatically Complete Processing Orders

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!

Continue reading WooCommerce: Automatically Complete Processing Orders

WooCommerce: Why Rotating Payment Methods Can Protect your Revenue

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.

The Stripe website explains it like this:

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.

Continue reading WooCommerce: Why Rotating Payment Methods Can Protect your Revenue

WooCommerce: Set Min Purchase Amount for Specific Product

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.

Makes sense? Great – here’s how it’s done.

Continue reading WooCommerce: Set Min Purchase Amount for Specific Product

WooCommerce: Hide Category & Tag @ Single Product Page

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!

Continue reading WooCommerce: Hide Category & Tag @ Single Product Page

WooCommerce: Add To, Cc, Bcc Order Email Recipients

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!

Continue reading WooCommerce: Add To, Cc, Bcc Order Email Recipients

WordPress: Fix “No Update Required” @ WP Admin

It happened to me today while updating to WordPress 5.3, so I thought of sharing the fix with all the people who are going to have this problem now and in the future.

Honestly, I should have thought about this better – but it’s an early Saturday morning and maybe my brain is still asleep.

I kept getting always the same error, even after 10 refreshes and attempts, even while trying to use /wp-login.php or /my-account to login as opposed to /wp-admin. And when you get the same behavior no matter how many times you refresh or try again… well, it should be easy to understand why!

Continue reading WordPress: Fix “No Update Required” @ WP Admin

How to Customize your WooCommerce Store Without Coding

WooCommerce, with 25% market share for website eCommerce solutions as of November 2019, is the most popular platform for building online stores. It’s easy to get a basic setup running and start selling your products online.

WooCommerce also offers a lot of hooks and filters for further customization – the only problem is you need to understand a bit of PHP programming.

This is where the WooCustomizer WordPress plugin comes in. WooCustomizer offers all of these filters and more, all neatly built into one WordPress plugin so you can visually customize your WooCommerce store in an ‘easy to use’ and intuitive interface within the WordPress Customizer.

No more creating a child theme to manually add code snippets to your WordPress website, no more adding multiple plugins and increasing the chance of bugs coming up… Just a simple, one plugin solution.

Continue reading How to Customize your WooCommerce Store Without Coding

WooCommerce: Dynamically Hide / Show Checkout Field

We already saw a lot of examples e.g. hiding checkout fields if a product is virtual or hiding checkout fields if a checkbox is manually checked… but this time I want to hide a field dynamically – automatically – based on whether another checkout field is empty or no value is entered in it.

In this example, I will demonstrate how to hide the “billing phone” if “billing company” is empty or no information is entered. Of course, you also have to disable the mandatory attribute for the billing phone from the Customizer settings, otherwise checkout validation will fail. You can readapt this snippet to any other checkout field combo – just identify the IDs and change jQuery accordingly. Enjoy!

Continue reading WooCommerce: Dynamically Hide / Show Checkout Field

WooCommerce: Hide Product Based on IP Address / Geolocation

There are many plugins that would allow you to do this in bulk or that would give you advanced features… but what if you just need to hide one product ID for users who are visiting your WooCommerce website from a specific country code?

This is also called “geolocation” – remember this won’t work unless you’ve enabled geolocation inside the WooCommerce general settings. Other than that, get your product ID, find out the target country 2-letter code, and this snippet will do the trick. Enjoy!

Continue reading WooCommerce: Hide Product Based on IP Address / Geolocation