What do you need help with?

Start typing your WooCommerce question.


WooCommerce Order/Customer CSV Export cart discount and order discount column missing

These two columns were removed in version 3.11.0 when support for WooCommerce 2.2: cart_discount and order_discount was removed as well.

These two columns remained after WooCommerce 2.3 was released for backwards compatibility and no longer apply as version 2.3 introduced changes to the coupon system – more details here: https://woocommerce.wordpress.com/2014/12/12/upcoming-coupon-changes-in-woocommerce-2-3/.

Since it’s no longer possible to have both order discounts and cart discount, the WooCommerce Customer/Order CSV Export extension now only has a discount_total column.

I suggest that you apply the required changes in any integrations using the CSV export to work with the current state of columns exported and replaces any uses of cart_discount and order_discount with just discount_total.

How to troubleshoot WordPress and WooCommerce issues: Move back to square one.

Break it down

A good technique to resolve problems is to break them down and simplify them. This is best done by recreating the scenario you are dealing with but with minimum effort.

Lets say you are troubleshooting a WooCommerce Bookings issue. You have this elaborated product with perfect configuration. Everything was working fine yesterday, but today the booking process has stopped working as it should.

You have tried everything. Toggling all different features, tried on different browsers, checking every configuration, but the error pertains.

Data corruption

Sometimes data written to your WordPress installation gets corrupted. This corrupted data impairs the functionality. In that case you cannot alleviate this by editing what you see. Corrupted data must be replaced. It must be written anew.

Checklist: Move back to square one

The fastest way to do so is to create a new instance of what you are working on. Troubleshooting one of your products? Try this:

  1. Duplicate the product. Publish it and try again.
  2. Create a new empty product. Setup only the base configuration required to checkout. Does the bare minimum work?

Do this for all components involved. If you are troubleshooting a WooCommerce product with Product Add ons or a product add on form such as Gravity Forms, create a simplified copy as well.

  1. Create a new empty product.
    Setup only the base configuration required to checkout.
  2. Create a new set of product add ons.
    Setup only the base configuration required to checkout.
  3. If you use for example Gravity Forms. Create a new empty form with only the field that is not working for you. Does the bare minimum work?

Reinstall involved plugins

If that did not change anything, a complete reinstallation of the components involved might alleviate the issue.

Completely deinstall your involved plugins.
Then do a fresh installation.
Test again.

Never forget to backup beforehand.

Still combating your issue?

  1. Read my article on resolving conflict between active components.
  2. Setup a clean test site on wcdemo.com and try recreating your issue there.

How to check and resolve conflict in WordPress and WooCommerce

Checklist for resolving conflict

Here is a checklist for you to go through all steps of resolving conflict on your WordPress and WooCommerce site. Scroll down for detailed information for all steps. Happy troubleshooting.

Component conflict occurs often

WordPress is simple and stable out of the box. As you customise your site with a custom theme and plugins and custom code, conflict can occur. Parts that you use to compose your website sometimes collide. They can block each other from resources or have identical names in the code that confuse each other. The result is always the same, something goes south.

Your feature stops working. A page layout capsizes and moreover this can come over night since your site is getting constant updates to maintain stable performance. Therefore you should always have a backup ready to deploy.

Due diligence: Apply pending updates

Checking for conflict is mandatory for every troubleshooting case. But before you check for conflict, you should always first apply all pending updates.

Update all the things:

  • Active plugins
  • Active theme
  • WordPress
  • WooCommerce

Did I mention you need a working backup at all times? Before you do that, please do make a full backup.

WordPress template and plugin conflict check

If your issue is unfazed by applying all updates then the next step is to check for conflict.

Here is how:

  1. Check for template conflict. Read my article here on how to do so.
  2. Check for plugin conflict. Disable all non-required plugins. If that does not help, keep disabling plugins, one boy one. Plugin Organizer is an elegant way to do so. I made a video tutorial on how to use it.

Still combating your issue?

  1. Disable all caching mechanisms you have in place next. Caching might be superimposed by your hosting provider: Read my article on caching here.
  2. Your database data might be corrupted. To check this: Move back to square one.

Use wcdemo.com for ruling out all conflict

When troubleshooting you need to rule out many factors.

  • conflict between active plugins
  • conflict between active plugins and active theme
  • conflict between active components and your server configuration
  • conflict due to caching
  • conflict due to custom code

This must be taken out of the equation, when looking for the source of your problem. Only then can you be certain that there is a causality between the cause and effect you are observing.

wcdemo is a private project of mine where you can test drive WooCommerce extensions for free. It can be used to spin up a clean test environment fast.
Give it a try.

On support in WooCommerce – part 1: Definitions

This post reflects solely my personal opinion. It is not affiliated or supported by Automattic or WooCommerce in any ways.

What do you get when you shop at WooCommerce.com?

When you buy an extension at WooCommerce.com you buy three things.

  1. Access to the files you purchased.
    All files may be downloaded unlimited times for as long as your subscription is valid.
  2. Access to our closed support form.
    You may contact the WooCommerce team directly via the support form, which opens a ticket in ZenDesk. This way you can speak to the support team directly that will help you with any question you have.
  3. Automated updates for the extensions provided through the WooCommerce helper. This way you do not need to update your extensions manually.

As long as you have a valid subscription these three features get provided. The extensions will not cease their functionality once your subscription has been voided. Meaning you can run the software for as long as you like. You will however loose all access to the above mentioned services once your subscription has run out.

You may also install all software on as many sites as you like. But you can only activate your licence through the WooCommerce helper for the number of sites you have a valid subscription key for.

In summary this is what you get:

  1. Access to the files you purchased – Provision.
  2. Access to the support form – Support.
  3. Automated updates – Convenience.

Lets look at item number 2.

What is support?

Most people struggle with a clear definition of what support encompasses. Here are my personal definitions of support and its distinction to similar fields.

  1. Support: Telling people what to do.
  2. Self Help: Providing knowledge so they can do it themselves.
  3. Service: Doing it for them.
  4. Training: Making sure they can apply knowledge to do it themselves.
  5. Consulting: Preventing problems by helping them to make the right decision.

For each item there are two roles. Customer and support agent.

Roles in support and similar fields

From item 1-5 the “who does what” shifts. Lets call the customer ‘You’ and the support agent ‘I’.

  1. Support: You ask, I listen.
    I give instructions or tell you where to look.
    You do the work.
  2. Self Service: I write detailed instructions that tell you where to look or what to do.
    You search. You do the work.
  3. Service: You ask, I listen.
    I ask back until I have understood what you want.
    I do it for you.
  4. Training: I ask what you want and what you can do. I give instructions or tell you where to look.
    I demonstrate, you observe and mimic.
    I make sure you can do the work.
  5. Consulting: You do not know what you want or need.
    I help you find the optimal solution tailored to you.

From item 1-5 the amount of work that is done for you and the complexity of the task increases. As a result consulting is much more expensive than service. After all knowing what you want is the most challenging task not only in business but in general.

What is included in WooCommerce extensions?

Information on WooCommerce extensions is found in mainly two places.

  1. The products are described on their product page.
  2. They are explained in help articles and documentation.

For example WooCommerce Subscriptions has its product page here and its documentation and help articles here.

This defines the scope of the products. If a feature is neither teased in the product page nor described in the documentation it is not included.

What is a customisation and not covered by WooCommerce support?

If you need features outside the scope of the products, that this is considered a customisation. A customisation is a modification of the product to embed a feature that is not available. The WooCommerce support team does not do modifications for you, because they only offer support for features that are within the scope of their products.

How do I know my issue is within the scope of the product?

Ideal starting point: You test it until you can reproduce the issue at will. If one of the WooCommerce support team members can reproduce the issue at will as well by following your instructions, it is within the scope of the product. For testing it is mandatory that only WooCommerce.com software is active. Everything else: themes or plugins of different provider or custom code that was added must be deactivated while testing.

You can use wcdemo to setup a clean test environment or take a look at this article on what tools are available to setup a staging site.

Extension instead of plugin

You may notice that I refer to WooCommerce.com software as an extension? Why not plugin? It is because an extension plugs-in into another plugin in this case WooCommerce and not WordPress. Since they extend a plugin, they are called an extension.

How to test and resolve your active WordPress theme for conflict with WooCommerce

Updates, updates, updates

WordPress and WooCommerce are in a constant state of update. This is good, updates keep your site stable. If all your WordPress site components are built modular and there is no overwriting of files, the updates will keep your site running smoothly, because they all get applied, no problem.

Template overwrites block updates

But if there are components that get overwritten they are excluded from the update process. Imagine this example:

Lets say WooCommerce plugin would only consist of two files.

  • File A  – version 1
  • File B – version 1

But your theme overwrites one of them. So instead of the structure above we have these files present.

  • File A – version 1T
  • File B – version 1

Now WooCommerce receives an update. If there are no overwrites all files get recognised and all updates get applied. The expected result is then.

  • File A – version 2
  • File B – version 2

But an active theme overwrite means the present file is modified and does not get recognised, thus it does not accept the update. In this case we now end up with this.

  • File A version 1T <- unchanged and now obsolete. This can now cause errors.
  • File B version 2

How do I know that my template is actively overwriting WooCommerce files?

WooCommerce scans and automatically knows when it gets overwritten. It then serves this message:

Screen Shot

Clicking the purple button redirects you to our documentation that explains the concept of template overwrites.

WooCommerce also provides a system report that lists all the overwritten files. You can find it at /wp-admin/admin.php?page=wc-status

Scroll down all the way to “Template Overwrites” to view the file list of overwritten WooCommerce template files. Here is an example screenshot of what this looks like:

Screen Shot

How to resolve template conflict and verify it is part of your issue at hand

The best way is to use WooCommerce template debug mode. This disables all template overwrites while maintaining your current theme active.

Alternatively you can enable a default theme such as Twenty Sixteen or Storefront.

You can also selectively dequeue assets your theme loads with the “Asset Queue Manager” plugin. Be careful though, this is for advanced users only. It dequeues assets site-wide, that may render your theme useless.

If this does not change anything you should check for Plugin conflict as a next step. Plugin Organizer is a stealthy way to do so. I made a video tutorial on how to use it.

How to troubleshoot WooCommerce CSV files with faulty or incomplete import

Import almost all the things

We offer two official CSV import extensions. The Product CSV Import Suite and Customer/Order/Coupon CSV Import Suite. Both extensions allow you to import CSV files to create bulk entries.

When your CSV import fails or produces incomplete results, most of the time your CSV file is either missing data or it contains incompatible data.

Check column titles first

The first thing you should check are your header columns. We have column header reference help pages that give you a complete overview over supported column titles and the data they accept. Here they are for both extensions:

Check each column title for unsupported or faulty titles. Correct misspelled or incomplete titles. Unsupported titles not listed in our reference must be removed or their column title changed to a supported title.

To get you started faster we also offer sample CSV files:

Check column data

Oftentimes I find that faulty CSV files contain data that should not be present. Take a look at this screenshot:

Screen Shot

As you can see here, data for the column ID and post_id must be empty in your CSV because they are automatically assigned by WordPress.

Check each column for incorrect or superfluous data. Correct column data by renaming column titles for incorrect data. Superfluos data must be removed.

Try importing your CSV file on a clean test system

If you have checked your CSV files and found no unsupported or faulty data, then it might be that your server is not up to the task. Try importing your CSV on a clean test system.

I provide the necessary infrastructure at http://wcdemo.com. Creating a test site is free so feel free to head there now and test your CSV file.

And as always boys and girls, backup your data before you attempt any CSV import.

Tools for viewing CSV files:

I use Google Sheets for online viewing and CSV Editor by L.X. for offline usage.


Image credits:
By RRZEiconsOwn work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=18462316

How to bookmark WordPress plugins using ‘My Favorites’ on WordPress.org

Ever wondered what the ‘favorite’ button does when you browse the WordPress plugin repository?

Screen Shot

I use the feature a lot to bookmark plugins I like.
Here is what it does and how to use it:


Too small? View full size GIF here.