Best WooCommerce paywall plugin

Are you looking for a way to set up a WooCommerce paywall to start charging for content? Keep reading to learn how (and why) setting up a paywall is a sure-fire solution for monetizing your content 🔥.

Subscription revenue is something that every online creator can benefit from, whether you're a blogger or a course creator. Paywalls are used to generate revenue by many large publishers, including The Wall Street Journal, The New York Times, and The Washington Post. And for a reason!

Paywalling is one of the quickest and easiest methods of monetizing a WordPress website. While online subscriptions and paywalls are not new to the publishing industry, they are becoming more widespread across the content creation industry.

In this post, we'll explain the concept of the WooCommerce paywall and discuss how you can quickly implement it on any WordPress website. You'll learn how to:

  • Use WooCommerce to charge for access to any type of content on your website (e.g. an exclusive members-only or subscribers area).
  • Charge for access to a hidden area of your eCommerce online store (e.g. a members-only purchasing club).
  • Use subscriptions to generate sustainable ongoing revenue from your WooCommerce paywall.

What is a WooCommerce paywall, and why set one up?

A paywall, in essence, is a mechanism to limit who can access the information on your website. Depending on the use case, the company's branding, and other factors, you may find several different names for this type of content restriction. You could find this referred to as a content locker, gated content, a WordPress paywall, a WooCommerce paywall, or another name.

WooCommerce paywall
Newspapers often use paywalls to restrict access to premium-only content

As the world's leading eCommerce solution, WooCommerce is an excellent way to charge for access to your website content. That's why we're focussing on WooCommerce paywalls in this article.

To set up your paywall, you need a WordPress website plus the following plugin stack:

  • The free WooCommerce plugin to get the essential eCommerce functionality, such as taking payments online.
  • A paywall solution to prevent non-paying visitors from accessing the premium material.
  • Finally, you might install a subscriptions plugin to take recurring payments for ongoing access to the WooCommerce paywall.

The benefits of setting up a WooCommerce paywall

Understanding paywalls and their importance

Content paywalls offer a straightforward yet efficient approach to monetizing your blog or WordPress site. If your audience likes the content you create, they will gladly pay $5 a month (or more) to access your finest work.

1,000 subscribers to your premium material would provide you with a full-time monthly revenue. If you still doubt it, here is a quick comparison to other forms of blog monetization:

  • Ads often bother people and degrade their online experience.
  • A decent ad network requires that your blog has hundreds of thousands of visitors in order to accept it.
  • The process of creating, testing, and launching a product for other forms of revenue might take months.

In contrast, creating a paywall takes just a few minutes and doesn't require hiring a web developer. With a smart WooCommerce paywall plugin, you can accomplish this instantly (and we will show you how below).

A WooCommerce paywall is also a great solution if you offer a course or a membership. Contrary to online course platforms, such as Kajabi or Teachable, setting up a paywall on your course or online program will save you money. Platforms such as Kajabi or Teachable charge either a monthly fee or a fee from every student you add to the course. You can see how quickly it adds up. 

What sorts of sites need a paywall?

A WooCommerce paywall can help to monetize all sorts of websites. All that matters is that you have some sort of content that people will pay to access.

Here are some examples:

  • Media sites and newspapers with subscriber-only content.
  • Educational content, like a course or tutorial-style blog.
  • Private communities for your readers. This enhances community feeling, offers premium content, and improves brand image.
  • Purchasing clubs with products that only paying members can buy.

Paywalls vs memberships

It's worth understanding the difference between paywall and membership plugins. They are both methods which online content providers can use to monetize their offerings. However, they operate under different principles and have distinct characteristics:

Paywalls
  • Definition: A paywall is a feature used on websites to restrict access to content. Users must pay to gain access to specific articles, videos, etc., behind the paywall.
  • Types:
    • Hard paywalls: Users must pay to access any content.
    • Soft paywalls (or metered paywalls): You can access a limited number of articles for free before being required to pay.
    • Freemium paywalls: Some content is free, but premium content requires payment.
  • Access to content: Typically, access to individual pieces or groups of content, possibly time-limited or pay-per-view.
  • Target audience: Often used by news sites and other content-heavy platforms and apps.
Memberships
  • Definition: A membership site involves users subscribing to a service, often for a recurring fee. In return, they receive various benefits, including access to content, exclusive features, community engagement, etc. You might have one or multiple membership levels.
  • Access to content: Members usually get unlimited access to content or special benefits as part of their membership. It can include member-only forums, discounts, newsletters, and other add-on benefits.
  • Target audience: This model is often employed by content creators looking to cultivate an engaged community around their work, or services like streaming platforms that offer various content for a monthly fee. Memberships focus on building long-term relationships with customers beyond simply giving access to restricted content.

In general, paywalls are generally used to monetize individual pieces of content or groups of content. Memberships, on the other hand, focus on building a community and offering ongoing value to subscribers beyond access to content. WordPress paywall plugins therefore offer slightly different functionality from membership plugins. For example, these plugins might include MemberPress, WooCommerce Memberships, Restrict Content Pro or Paid Memberships Pro.

You can run both models on the same platform, for example offering paywall access as part of a membership plan.

In this article, we will focus specifically on setting up a WooCommerce paywall for access to restricted content. However, you can extend the information in the tutorial to add wider membership functionality.

Will a WooCommerce paywall have a negative impact on my SEO?

Lots of people worry that having a paywall will damage their SEO. After all, search engines can't crawl restricted content.

Luckily, the assumption that a paywall will drastically reduce visitors and revenue is false. A paywall may give you a stronger feeling of community and higher-quality traffic, which can actually help your SEO. This may seem counter-intuitive, so here's how it works:

  • Because your new users have paid to be there, they will really value your work.
  • Because your existing users are paying to stay, they will be more loyal to your brand and site.
  • You now have two groups of users who value your content so much that they are willing to pay for it. This increases the value of any hits you receive behind the paywall, and it can be seen in your comment sections, social media engagement and promotion, and much more.

Remember, you won't be putting all your content behind a paywall. You can still have plenty of search engine friendly content which everyone can read. This shows people the value you're offering, convincing them to sign up for the premium-only content.

Recommended plugins for your WooCommerce paywall

As you can see, there are many benefits to creating a WooCommerce paywall. Moreover, making a paywall is easy. You can do it without having to deal with complicated content restriction plugins, merchant accounts, building payment gateway integrations, or managing 1,000's of member accounts.

Now it's time to learn how to set one up. To do this, you need the following stack of plugins:

  1. The free WooCommerce plugin - this adds the basic eCommerce functionality to your site.
  2. Password Protected Categories - this restricts access to your website content, hiding it behind the paywall.
  3. YITH WooCommerce Subscriptions (optional) - this lets people make regular recurring payments to access the premium content. (Skip this step if you only require one-time payments.)

Tip: If you want to include pages within the paywall (rather than posts or a custom post type), then you'll also need to install a free plugin to categorize WordPress pages. I recommend the free Add Category to Pages plugin.

How the paywall works

People pay for premium access to your content and receive a login for your website. When they login, the unlock the paywall and can see links to the premium area in your website navigation menu. They can then navigate freely within the paywall.

You can use Password Protected Categories to hide any type of WordPress category or taxonomy. Only specific users, roles, or people with the password can get through the paywall.

Tutorial: Setting up a paywall on your WooCommerce site

Here, I'll show you how to set up a paywall on your WordPress pages easily in 3 simple steps. It's completely customizable so you can adapt it to your business.

First I'll provide a quick summary of all the steps, and then tell you how to implement them step-by-step.

How do I create a paywall in WooCommerce?

  1. Install the free WooCommerce plugin and set up your payment methods.
  2. Create the content that you plan to hide behind the paywall, then use the Password Protected Categories plugin to restrict access to certain user roles.
  3. Create a 'Paywall' product and set the price.

Keep reading for full details on each of these 3 steps.

Step 1: Install WooCommerce

  1. Log into the WordPress admin for your site, and go to Plugins → Add New.
  2. Search for 'WooCommerce' and install it. Don't confuse it with other plugins with a similar name. The main WooCommerce plugin is easy to spot as it has millions of installs!
  3. Once installed, disable 'Guest Checkout' under WooCommerce Settings Accounts & Privacy. This way, WooCommerce will create an account for each person when they subscribe.
  4. Use the other settings to configure whatever you need, such as taxes and payment options for accepting payments to the paywall. For example, you can easily set up online payments via PayPal or credit card (via Stripe).

Step 2: Set up the WooCommerce paywall plugin

Before you start putting content behind the paywall, it's worth thinking about what sort of content you'll be using. The options are:

  • Normal WordPress pages. This is a good option, but you'll need to use the free Add Category to Pages plugin to categorize your pages. 
  • WordPress posts. Do this if you're creating a paywall for blog or news posts. However, if you also have a public blog then I'd recommend using a custom post type instead.
  • A custom post type. If you want a dedicated area for the paywall-restricted content in the WordPress admin, then create a custom post type. You can easily do this with our free Easy Post Types and Fields plugin. For example, you might create a post type called 'Members Content'.

Once you've added some content and structured it into one or more categories, then you can start hiding it behind the paywall. To do this:

  1. Purchase and install Password Protected Categories.
  2. Go to edit one of the categories that will go inside the WooCommerce paywall. For example, if you're putting blog posts behind a paywall then go to Posts → Categories.
  3. Find the visibility section, select 'Protected' and then select the user role(s) that will have access to the paywall.
password protected categories - WooCommerce paywall plugin

Which user roles need access to the paywall?

If you're only planning to use WooCommerce to sell access to the paywall, then you can just use the built-in 'customer' role. People will automatically be added to this role when they make a purchase, so that way they will get instant access to the restricted content.

However, that won't work if you're selling other types of products too. In this case, then you should use the free User Role Editor plugin to create a dedicated role for users with paywall access. Select this custom role for all the categories that will be hidden inside the paywall.

(Tip: I also recommend selecting 'Administrator' too, so that you have access to the payroll for testing purposes.)

Step 3: Create a paywall product

Finally, you need to create a product which people will purchase in order to access the premium content.

  1. Go to Products → Add New, and add information such as the product description and price. For example, the name of this product might be "Premium Access".
  2. Now go to Appearance → Menus and add the product you just created to your website navigation menu. People will go to this page in order to pay to access the paywall.
  3. If required, then install YITH WooCommerce Subscriptions and use it to set up a Subscription plan product for the premium content. Or if you just want to charge once for access to the paywall area, then create a standard WooCommerce product instead.

Once you have done this, then customers will immediately have access to the paywall area as soon as they buy your paywall product from its product pages. If you created a dedicated user role for paywall access in Step 2 above, then to make this work then you must use the Automatic User Roles Switcher plugin to change people's roles when they purchase the paywall product.

Bonus steps

The steps described above cover all the essentials to setting up your WooCommerce paywall. To make it even more professional and user-friendly, consider adding these extra features too.

Create a login form

WordPress itself provides a basic login form, but it's not very professional and doesn't match your website. If your WordPress theme/template provides a nice front-end login form, then I recommend using that. Add a prominent 'Login' link to your header or menu.

Alternatively, you can use the free Theme My Login plugin to create a professional-looking login page.

Add your paywall categories to the menu

Navigate to Appearance   Menus and add links to the paywall-restricted categories to the menu. These links will only appear to logged-in paying customers.

Edit the 'Welcome' email to customers

In the previous steps, I showed you how to disable guest checkout in WooCommerce. This means that when someone pays for premium access, a user account will automatically be created for them. WooCommerce will send their login details by email.

You can edit this email in WooCommerce → Settings → Emails → New Account Email.

Create a WooCommerce paywall today!

As you can see, setting up a WooCommerce paywall is an easy and quick solution to start monetizing your WordPress site. Setting up a paywall or membership subscription is the ideal choice if you want to make money from your blog but don't want to spam your readers with ads and affiliate links.

.There are more benefits than drawbacks to locking away and charging for some of your content. While you could lose some visits and non-paying users, you will also gain more devoted customers and perhaps even build a strongly engaged community. Whether you offer online courses, membership or simply want to lock away your blog content, the best paywall plugin for WordPress is Password Protected Categories.

Try out the Password Protected Categories plugin today. Use it with the other plugins mentioned in this tutorial to take payment for accessing the paywall (either one-off or as a monthly subscription), and give paying customers access to the premium content. 

WordPress version control plugins

Version control is essential to any WordPress website, especially where more than one person is making changes to it, or where you need a historical record of changes. Discover how to manage your site more effectively with the best WordPress version control plugins.

WordPress is a powerful tool for bloggers and for anyone creating websites. But once you’ve built your site, how do you keep track of the ongoing changes to it?

As a site administrator, you probably know how difficult it is to keep track of WordPress revisions and other changes. There are various parts of your website which might benefit from a good version control solution:

  • The theme and plugins.
  • Website content, such as pages and posts.
  • The files and documents in the Media Library.

Version control (sometimes called source control) is a way to manage and track changes to a file or group of files over time. Keep reading to discover the best WordPress version control plugin for each of these situations.

What is WordPress version control and do I need it?

Version control allows you to keep track of changes to your code, website content, documents, WordPress revisions, and anything else across any number of development environments. It allows you to easily see what's been changed and to view a history of all modifications. A good WordPress version control system lets you roll back to any historic file version or change in case something goes wrong. As a result, you can always restore to the state before a particular change occurred.

Without version control, teams can regularly find themselves in difficult situations:

  • Two team members accidentally overwrite each other’s work.
  • Someone hits submit on a new line of code, only to have it disappear or get lost in the shuffle.
  • A mistake occurs and it’s possible to see which team member was responsible.
  • Two people update the same document at once.
  • You lose access to an older version of something.

And when this happens, it creates headaches for everyone and wastes time. Sometimes, important work is lost forever.

Most web hosts come with automatic backups, and you can often roll an entire website back to a specific backup. However, that’s not a good solution to version control problems. Rolling back means losing ALL the changes since the backup, not just the specific WordPress revision that you want to roll back. This is a pain if you or your colleagues have made lots of recent changes to the site. And it’s a total nightmare if your site contains customer data - for example, you can’t roll back an e-commerce site without losing your recent orders!

It’s much better to add proper version control to your site. You can learn more about this in Kinsta’s blog post about version control.

Benefits of using WordPress version control

Maintaining the capital investment in your website is essential. But it's not easy to recover from version control problems without collateral damage. Even small teams can become too much to keep track of. Here are some advantages of using WP version control:

Traceability

A version control plugin with traceability mechanism provides evidence of all WordPress revisions and changes made over time. This allows users to track the development of a file through its various stages. The project tracks the contributions of multiple developers or contributors. Changes are tracked from the original to the many improved versions and, finally, to the current version.

Including a changelog with each version of a dataset helps people to understand what was changed and when in the history of the data. We can see the changes from a granular level and identify the root cause of any problems. In addition, team members can identify the order in which changes were made. The amendments can be cataloged in this way.

The right version control software can be a lifesaver. Microsoft SharePoint and Google Docs (formerly Google Docs) have built-in version control tools to ensure that the most current iteration is available to customers. So, if someone makes a change that breaks something else, you can quickly go back and see what was changed - or why it was changed.

File history

The history of a file or document provides valuable information about the developer/author and the editing date. It can also gives an overview of the purpose of the WordPress revisions and content changes made.

Identifying the authors of the documents helps to link the document to specific contributors so that the team may look for patterns in the behavior and flow of activities.

Reduction of errors and duplicates

Version control is a crucial aspect of project management and is often used to keep track of changes made to files, content and documents. It can lessen the duplication of multiple and outdated versions. This will reduce the number of errors that are caused by from conflicting information.

Management oversight

Version control is a software tool that helps teams to track changes in a document or file. It allows management to have a comprehensive perspective of the project's development. They are aware of the author, the timeline of progress, and the purpose of these WordPress versions against the project’s long-term objective. Version control helps managers to identify recurring issues that may stem from specific team members.

Adhere to compliance

For many organizations, regulations and compliance are top priorities. Version control is handy for managing organizational changes, particularly if you have multiple developers working with your code or data. You must maintain a detailed audit trail so that you can manage risk.

Additional benefits for development teams

Finally, there are some additional benefits for developers using version control to manage the codebase of a WordPress website:

Merging and branching

Version control provides a way to manage, review and maintain the evolution of your projects as a team. With version control, team members can work simultaneously on the same file independently without interfering with each other's contributions. Every contributor works on an independent stream of change – commonly referred to as a branch.

Branching and merging are standard practices for managing projects. When you merge two branches, the main branch becomes a parent, but you can still commit changes from the last time to the new one. After a while, development is pushed back to the old branch in preparation for merging it with the original trunk. This can be useful if your local version is ready to release while another team works on bugs or polishes up their feature.

Better communication

Version control is an increasingly popular means of collaborating on code. It enables a simple approach to workflow coordination and enables team members to work more productively. It leads to efficient workflow coordination, which frames each individual as a unit working towards a specific goal.

Efficiency

Version control allows teams to achieve efficiency and consistency in their work, allowing for easy automation of complex processes. This makes testing easier since problems can be detected quickly with little impact on the user experience.

Version control uses branches to track the progression of a file and other WordPress revisions. Developing and testing an application is easy with version control as you can revert to an earlier version when errors are discovered.

As you can see, there are lots of reasons to implement WordPress version control on various areas of your site. Next, let’s look at the best way to add it.

Version control for WordPress posts and pages

Fortunately, WordPress itself has several built-in types of version control. We’ll look at this first. After considering how far it goes towards meeting your needs, we’ll look at additional ways to add version control to a WordPress site.

Only one person can edit a page or post at a time

WordPress has an effective version control mechanism for preventing multiple editors from working on the same page/post at once. This works for all post types, including custom post types (CPT).

WordPress version control - Currently editing

When you view the main list of pages, posts or any CPT in the WordPress admin, any posts that are currently being edited by another user are clearly marked. That way, you know not to try to edit it.

If you do try to edit a post that someone else is currently working on, then WordPress will prevent you from doing this. That way, it prevents any version control conflicts.

Try it for yourself!

Open the ‘Edit’ screen for any page or post. Then, ask a colleague to log into their own account and try to edit the same page. They will see a notice telling them that they can’t edit it until you have finished. There is also an option to take over editing.
This prevents version control conflicts on WordPress pages and posts.

All of this collision detection happens automatically and you don’t need to do anything to set up this type of WordPress version control.

The warning says: "This content is currently locked. If you take over, [user's name] will be blocked from continuing to edit." The 3 options at this point are:

  • Go back - Return to the previous page without making changes.
  • Preview - View the current version of the page without making changes.
  • Take over - Take over editing the page. This will display a notice to the other user, telling them that they cannot edit it any longer. Doing this will lose any un-saved changes that they have already made. As a result, you should only take over after asking their permission. For example, people often save a page and then leave it open in their browser, even though they are no longer working on it.

How to view revisions of WordPress pages or posts

WordPress also stores previous revisions to previous pages and posts. You can easily view previous versions, compare with the current version, and roll back as needed.
This is how to view previous revisions and roll back if needed:

  1. On the ‘Edit’ screen for a page or post, click ‘Screen Options’ at the very top of the page and make sure the ‘Revisions’ box is ticked.
  2. Scroll down to the revisions section and click on a revision.
  3. The changes in every revision will be highlighted, with Blue for the additions, and Red for the deletions.
  4. Click ‘Restore’ to restore to a specific revision. This will overwrite the current version of the page/post.
View revisions of WordPress pages or posts

Tips on handling revisions in WordPress

It can be challenging to read the revision as it is displayed in code form instead of content. As a result, here are some tricks to help you find the correct revision:

  • By clicking Load, the revision will load in the editor. It will let you see the content. To save the changes, you need to click Update or Save Draft.
  • To restore a revision from a specific date, use the revision date above the revision listed on the right.
  • You can see the number of characters added or removed in every revision present under the date. The green plus shows the added characters, and the red minus shows the removed ones.
  • Revisions can quickly clutter up the WordPress MySQL database. To fix this, install the free Simple Revision Control plugin. This lets you control the number of revisions which are stored for each post. You can also bulk delete revisions of posts/pages with a high number of previous revisions.

Who has access to see the WordPress revisions?

All Editors and Administrators on your site can see the post revisions. Users with the ‘Author’ user role can only see the revisions of their posts and pages. Lastly, Contributors can see revisions on their drafts only.

How to restore part of a revision

You can copy specific parts of a revision to the current post or page:

  1. Highlight the section of the revision that you want to recover.
  2. Right-click and click copy.
  3. Cancel to quit the revisions window, and then ppaste that part of the Revision into your post or page.

Limitations of the built-in WordPress version control

There a few limitations to the version control that comes with WordPress itself:

  • You can’t draft changes to an existing post - When you create a new page or post in WordPress, you can save it as a draft until it’s ready to be published. Unfortunately, this doesn’t work for pages that are already published. When you make edits to an existing post, you have to publish them immediately. The only way to draft changes for future publication is to clone the post and manually copy the changes when you’re ready.
  • There’s no built-in version control for widgets, menus or source files - It’s great that WordPress prevents multiple people from editing pages and posts, but that’s as far as it goes. Any number of people can make simultaneous changes to other parts of your site. This creates inevitable version control conflicts and problems.
  • There’s no version control on Media Library files - WordPress also doesn’t provide any way to link different versions of a file in the Media Library, such as a PDF document or image. To do that, you need a WordPress file manager plugin with version control like Document Library Pro which we’ll look at later.

These weaken the case for WordPress in the SharePoint vs WordPress debate, as some platforms have stronger version control. However, instead of abandoning WordPress, you can fill the gap by installing a WordPress version control plugin.

The best WordPress version control plugins

Since the built-in WordPress version control is limited to posts and pages, you need some additional tools in order to improve on this. The easiest way to version control additional parts of your website is to install the right plugin or software tool. That way, you will always know what's been changed and who made the WordPress revision.

Generally, you should use a WordPress plugin for adding version control to your website content; and a hosted version control system for adding source control to your website’s file system. It all depends on what you need to control the changes for. As a result, we’ll approach each area separately.

Version control plugins for managing documents and Media Library files

The content of a WordPress website consists of much more than just the pages and posts. There’s also the files which are displayed on the website, either directly on the page (e.g. as images or embedded audio/video players), or for your users to download to their own computers (e.g. the documents in a downloads library).

Most website owners regularly replace the files on their site. For example, if you have created a WordPress document library or PDF library then you will periodically replace the current documents with a new version.

Unfortunately, WordPress offers no version control features for your documents and Media Library files. Your only option is to upload the new file from scratch and update all the existing links to it on your website. After that, you can either leave the old file sitting in the Media Library (taking up storage space on your server, and with no links to the new document); or you can delete it forever. It’s much better to add proper version control to the WordPress Media Library. Here are my favorite plugins for this:

Document Library Pro

Grid layout document library tiles

Document Library Pro is the ultimate solution for displaying any type of document, file or resource on your website. It basically creates a front end media library for your site, allowing users to easily search and find the information they’re looking for. This document management plugin is hugely popular for creating a WordPress document library, PDF library, audio library, and much more.

Either use it on its own to create a public document library, or buy it as a bundle with the Password Protected Categories plugin to create private file libraries (e.g. for your WordPress-powered company intranet).

WordPress version control Media Library pluginDocument Library Pro comes complete with a fully featured version control management system. Whenever you create a ‘Document’ (which can actually be any file type), you associate it with an uploaded file in the WordPress Media Library. Users can download the current version of the document file when they visit your document library.

You can replace the current file with a new version at any time, without losing other important information such as the document name and description. There are options to add a version name or number for each file, and view historical changes.

The version history is clearly listed, so you can easily see previous versions, delete old versions if no longer required, and even revert to previous versions. That way, you can manage current and historic versions of your documents, which are stored in the Media Library and displayed in your front end document library.

How to version control your documents

The following instructions assume that you have already installed Document Library Pro and added some downloadable files. If you haven’t done this yet, then install the plugin now and set it up. You can easily add documents either manually, via CSV upload, or by dragging and dropping files using the built-in ‘Import’ feature.

  1. First, go to Documents → Settings and make sure version control is enabled on the plugin settings page.
  2. Now, click on the main ‘Documents’ link in the WordPress admin and edit any existing document.
  3. Find the ‘Publish’ section in the top right corner of the ‘Edit Document’ screen. Click to open the version history section.
  4. You will see a list of all the previous versions of the document. You can view information about each one, delete previous versions of files, and click to restore to a previous version.

Enable Media Replace

The free Enable Media Replace plugin is a simple and effective plugin for adding basic version control to Media Library files.

This free WordPress plugin works by adding a ‘Replace’ button to each file in the Media Library. When you need to replace a file or image, simply find it in the Media Library and click the ‘Replace’ button. You can then choose whether to replace the old version with a newly uploaded file by overwriting all the old links, or automatically updating all the links. Either way, it’s an effective way to avoid cluttering up the Media Library with old versions of files which are no longer used.

However, this free WordPress revisions plugin isn’t perfect because it doesn’t add any more advanced version management features. It simply replaces old files, and doesn’t keep details of the version or links to previous versions. As a result, if you need more advanced version control for the Media Library then I’d recommend Document Library Pro instead.

Plugins for improving version management of WordPress pages and posts

As we saw before, WordPress has some limitations in the way it version controls pages and posts. For example, you can’t draft changes to an existing page and save these to publish at a later date. To help with this, here are some plugins for improving updates to on-page website content.

WordPress page builder plugins

If you use a page builder plugin on your site, then it’s likely to have its own built-in version control.

For example, Elementor has version control for editor changes history for posts, pages, templates, etc. You can learn more about this in their revision history documentation.
Have a look at what version management is available in your chosen page builder plugin.

Duplicate Post

It's annoying that WordPress doesn't let you save drafts of published posts. Fortunately, you can easily achieve this with the free WordPress plugin.

This is how to create drafts of published posts in WordPress:

  1. Install the Duplicate Post plugin.
  2. Go to the list of pages/posts (or any custom post type).
  3. Hover over the page that you want to create a draft of, and click the 'Rewrite & Republish' link.
    How to duplicate post in WordPress
  4. Make the changes to the new draft which appears in the list. Click 'Save' as many times as you like.
  5. If you like, click the 'Save changes and compare' link. This shows a side-by-side view of the original and edited versions of the page/post so that you can compare what has changed. When you're happy, click 'Return to editor'.
  6. When you're finished, click the 'Republish' button and confirm that you want to add your changes to the live version of the post.
How to republish a post in WordPress

Tip: You can also schedule changes to WordPress pages and posts in advance. Simply choose the date and time when you click 'Republish', and the changes won't go live until then.

WordPress source control systems

Finally, let’s talk about version control for the files that are used to construct your website. This is different from your website content, which we have already covered. Essentially, we’re talking about the WordPress core files (which comes from wordpress.org), your WordPress theme, and all the plugins and custom functionality used on your site.

You can manage these using the wide range of tools which are used to manage any type of software development. Most of these are called a “VCS" (version control system).

A VCS is a set of systems that allow you to manage changes in large software projects by maintaining track of every change and when it went into production. The best version control software products can easily keep track of earlier versions, WordPress revisions or even multiple versions.

If you are a digital worker or software developer, you already know the importance of keeping track of changes to your project data. Thanks to version control tools, or SCM software like Git, you can keep track of every change and roll back to the previous state if an issue arises. It's a convenient way to bring data back into alignment with the original version.

While there are many different version control systems, we will focus on the most popular for WordPress projects. Some of these are WordPress plugins, and others are hosted SAAS platforms.

Git

Git is the most popular version control software for WordPress. The Git version control is very comprehensive and ideal for individual developers and teams of any size.

With Git and WordPress, you can easily manage version control, organize your code, and track changes to your projects in one centralized location.

Bitbucket

Bitbucket is also a hugely popular VCS among WordPress professionals. It has similar features to Fit version control, so read about both systems and consider which best meets your needs.

VersionPress

VersionPress tracks every change in WordPress like version control tracks changes to files. As a result, you can see all the latest changes made to your site, whether in your local development folder or live on the web.

VersionPress is a free VCS and works flawlessly with any theme, plugin, or page builder plugin. It lets you track changes made to your applications without affecting other users or distributing changes across the globe.

VersionPress WordPress Version Control

VersionPress tracks every change you make, whether it's an action such as creating a new post, plugin installation, or something more general, like applying a theme override. All changes are logged in real-time, and VersionPress gives you an option to undo an action without affecting other actions or roll back to the stage before you act.

WP Rollback

WP Rollback is a reliable way to revert to previous versions of themes and plugins. The plugin connects to the WordPress repository and pulls any publicly available version of a plugin or theme for your site.

This is not a traditional version control system and only covers plugins and themes. However, it does provide you with a quick undo button if things go wrong. In addition, you get high-level performance features like cloning and branching in your WordPress version control system.

WP Rollback WordPress Version Control Plugin

Start tracking changes in WordPress with version control

Version control systems are a godsend for making changes to a WordPress website. Without one, there is no way of knowing who made the change or what changed.

Whereas with one of the best WordPress version control plugins, you can do it easily when you want to restore something. Just find the correct file and make changes in the right place; it will be restored exactly as it was before.

There are many kinds of WordPress version control system, so you should pick the one that works best for you. Here are my recommendations for different types of website content:

  • Document Library Pro for version control of Media Library files and other downloadable resources.
  • Duplicate Post for better version control of WordPress pages and posts.
  • Git for source control of the WordPress core, themes and plugins.

WooCommerce custom product fields plugin

This is the complete guide on how to create and display WooCommerce custom fields. You'll learn how to show extra product data and sell extra product options on your website.

WooCommerce comes with various types of data which you can add and display about your products. It also comes with a variable product type, with dropdown list fields to allow customers to select different options. But what if you want to create your own custom fields and display them in your e-commerce store? Read on, or watch this video to find out!

In this tutorial, I'm going to reveal two easy ways to create WooCommerce custom fields and display them on the shop or product page:

  1. Extra product option fields which allow customers to customize the product.
    WooCommerce extra product options file upload
  2. Custom fields for displaying extra data about the product.
    WooCommerce product page custom fields

Keep reading to learn more about each type of custom field in WooCommerce and how to set them up, step-by-step.

2 types of WooCommerce custom field

When people talk about WooCommerce custom fields, they typically mean one of two things:

  1. Selling extra product options, as an alternative to variationsThis involves installing a WooCommerce add custom field to products plugin which displays dropdown lists, checkboxes, radio buttons, text fields, etc. for the customer to complete before adding the product to their cart. Technically, extra product options aren't custom fields at all - they're better known as product add-ons! However, a lot of people refer to them as custom fields. They're perfect for adding a WooCommerce text field to the product page, and collecting other data and options from customers.
  2. Adding extra information about the productThis is the classic use of custom fields. In WordPress, custom fields are used to add additional data to posts, pages, or products. You use these to store and display extra information on your website. For example, if you're already using all the built-in types of product data for other purposes then a WooCommerce custom field plugin can display additional text for you.

Continuing on, we will explore the steps involved in adding both types of custom fields to your WooCommerce products. You will also learn how to make the custom fields visible on the shop and product page.

By following the steps outlined in this guide, you will be able to effectively use custom fields in WooCommerce. This will enhance your store and improve the shopping experience for customers. Whether you're looking to add extra information about your products or offer additional options, WooCommerce custom fields are a powerful tool to help achieve your goals.

Using custom fields to provide options and collect information from customers

WooCommerce extra add-on fields with images, swatches and text field
A product with various extra fields added, as an alternative to variations

First, we'll look at how to use custom fields in WooCommerce to show extra information about your products. This involves offering additional options to customers.

This type of custom field goes beyond merely displaying extra information about a product. It offers customers the option to select additional features before adding the product to their cart.

This method is a remarkable alternative to product variations. That's because it allows you to add a wide range of field types, including radio buttons, checkboxes, and text inputs. By adding extra fields on the product short description page, customers can provide more choices and data that they can receive along with their orders. For example, adding a WooCommerce custom text field on the product page lets customers enter their own text to be submitted with their order.

Introducing the Product Options plugin

There are several WooCommerce custom fields plugins available for adding extra product information to your store. However, when it comes to finding the best solution for letting customers select extra product options during checkout, we highly recommend WooCommerce Product Options. This plugin stands out as the best option for adding custom fields to your products and displaying them during the checkout process.

You can add a wide range of options that appear as custom fields for the customer to select. Shoppers can complete these extra custom fields and add them to their cart from the following locations:

  • The individual product page.
  • From your main shop and category pages, if you're using WooCommerce Product Table or WooCommerce Express Shop Page.
  • From a quick view lightbox, if you're using WooCommerce Quick View Pro. (Customers can access the lightbox from the main shop page or product category pages, so it's a quick way to select add-on custom fields without having to visit a separate page for each product.)

Types of WooCommerce custom field

The WooCommerce Product Options plugin comes with a wide range of custom field types which you can add to product pages:

  • Checkbox: Allow customers to tick boxes (multiple choice, so they can select as many as they like).
  • Radio button: A custom field which forces customers to select one option from a list.
  • Text: Let customers enter custom text, such as a personalized message or allergy information.
  • Text area: Collect entire paragraphs of information from the customer, suitable for longer messages.
  • File upload: Let customers upload files while placing the order. You can control details like the file types and maximum file size.
  • Number: Add a custom field to collect numeric information. This is useful for things like phone numbers, measurements or dimensions (especially when used with the price formula custom field type).
  • Color swatches: A more visual type of WooCommerce custom field, which lets customers choose from a choice of colors.
  • Dropdown: Let customers to choose an option from a dropdown list.
  • Customer-defined pricing: This custom field type provides a "Name your price" box where customers can enter an amount to be added to the product price.
  • Price formula: This is a more advanced WooCommerce custom field type. Use it to create a WooCommerce price calculator with a custom formula to calculate the price based on the information that the customer submits. This type of custom field is popular for creating a measurement price calculator for products priced by size, weight or area.
  • Date: Add a date custom field to the WooCommerce product page.
  • Products: This is less of a custom field than the other types. It displays selected products above the add to cart product and is a good tool for upselling additional products.
  • Visual editor: This is more like the classic definition of a custom field, which lets you display read-only data on the WooCommerce product page. Use this to enter static information such as headings or introductory sentences, instead of fields for the customer to fill in.
  • HTML: This custom field is like the visual editor field but more technical. You can use it to enter HTML that will appear as static information on the WooCommerce product page.

How to add custom option fields to WooCommerce products in the back end

Now we get to the tutorial part of this article. First, I'll tell you how to add custom fields to your WooCommerce products. Afterwards, I'll discuss the options for displaying custom fields on product pages and other shop pages.

  1. Install WooCommerce Product Options on your WordPress site.
  2. The plugin setup wizard will open when you activate the plugin. Use this to activate your license key.
  3. Next, go to Products → Product Options.
  4. Click 'Add New' to create a new group of product options. This will be your group of WooCommerce custom fields. Name it whatever you like.
  5. Use the onscreen instructions to add as many custom fields as you like. For each one, scroll down to see the additional options for each custom field. For example, you can use the price options to increase or decrease the product page based on the custom fields selected.
WooCommerce Product Options select products categories

Use the 'Advanced' section to configure additional options. For example, you can add minimum and maximum quantities for some of the custom field types. You can also add conditional logic to your WooCommerce custom fields so that the fields appear conditionally based on the user's selections. This is good if - for example - you want customers to be able to tick a 'Customize this product' to reveal the hidden custom fields.

conditional logic comparison

How to display WooCommerce custom product option fields in your store

As a front end plugin, WooCommerce Product Options seamlessly displays custom field data on the WooCommerce product page. Once you've added your custom product option fields and selected which products they will appear of, they will start appearing straight away.

However, this requires the customer to visit a separate page for each product they want to fill in custom fields for. That might work for your use case, or you might also like customers to be able to select custom fields on the shop page, category pages, and so on. There are three easy ways to do this. I'll tell you about these next.

Display WooCommerce custom field options directly on the shop page

The WooCommerce Express Shop Page plugin extends your existing shop and category pages by displaying your custom fields directly on the page. Customers can fill in the custom fields, choose a quantity and click the 'Add to cart' button from the actual shop page. There's no need for them to visit the single product page.

WooCommerce show product add-ons on shop page

As you can see, this is a much faster way for customers to select custom fields and add products to their cart. As a result, it can have a big impact on your store's conversion rate.

Setup instructions

  1. Install the WooCommerce Express Shop Page plugin on your WordPress site.
  2. Use the setup wizard to enable variations, product options and quantities on the shop and other archive pages.

Now when you visit your shop pages, you'll see the WooCommerce custom field options visible directly on the page.💪

Display WooCommerce custom field options in a table-based order form

The WooCommerce Product Table plugin works alongside WooCommerce Product Options to display the extra options on your main shop pages. It does this by replacing your usual store layout with a structured product table view, complete with a 'Buy' column. The buy column contains all the purchase options for adding the product to the cart. This includes product variation dropdowns, product add-on custom fields, and a quantity picker.

Displaying WooCommerce add-ons in the WooCommerce Product Table
Example of WooCommerce Product Table used with Product Options

Customers can quickly find the products they want, fill in all the custom fields, and add them to the cart - all from the shop and category page.

Setup instructions

  1. Install the WooCommerce Product Table plugin on your WordPress site.
  2. Use the plugin setup wizard to choose the main options for your product tables. When you choose your table columns, make sure you include a 'Buy' column.
  3. Select the option to use the product table layout on your shop and category pages.

Display product option custom fields in a quick view lightbox

Maybe you want customers to be able to fill in the custom fields without visiting individual product pages, but you don't want to change or clutter up the shop page. That's fine.

The solution is to use the WooCommerce Quick View Pro plugin to add 'Quick View' buttons to your shop and category pages. Customers will use these to launch a product lightbox containing the WooCommerce custom field options for that product. That way, they can easily fill in the custom fields and add to the cart, without having to visit the product page.

WooCommerce-Product-Options-Integration-with-Quick-View-Pro
Example of Product Options used to display the custom fields in a WooCommerce Quick View Pro lightbox

Setup instructions

  1. Install the WooCommerce Quick View Pro plugin on your WordPress site.
  2. Use the setup wizard to choose what you want to include in the quick view lightbox. Make sure you include the add to cart button, as the WooCommerce custom field options are attached to this.

And that's it! This will add quick view buttons to your shop pages, linked to lightboxes containing your WooCommerce custom fields.


Using custom fields to store extra product data

So far, we've learned how to add custom fields to the WooCommerce product page which the customer interacts with. This involves things like adding some text, selecting options, and so on.

But that's not really the technical meaning of the term 'custom field' in WordPress! A WooCommerce custom field actually refers to something different: a custom meta field which is attached to the 'products' post type.

In part 2 of this tutorial, we're going to focus on custom fields in the technical sense of the word. This is all about displaying extra data on your WooCommerce products, rather than providing editable fields for customers to interact with.

WooCommerce comes with a range of standard fields for storing and displaying information about your products. This includes data such as the product title, price, categories, tags, attributes, tags, dimensions, stock information, and so on. Here, we're talking about how to add a static WooCommerce text field on the product page. That's why it's different from adding custom fields for your customers to fill in.

However, sometimes the built-in WooCommerce product data isn't enough. When that happens, you need to install a WooCommerce custom fields plugin and add some additional fields.

In this section, I'll show you how to use the best plugin to add custom fields to WooCommerce. I'll also show you how to display them on the front end of your shop and product pages like this:

WooCommerce product table custom field columns
WooCommerce Product Table plugin displaying custom fields in the front end

But before we start, I'll explain the difference between custom fields and taxonomies to make sure that custom fields are actually what you need.

Custom fields or taxonomies?

Lots of people wonder "What is the difference between a custom field and a custom taxonomy"? It's a valid question because they're both ways of adding and displaying custom data about WooCommerce products. Understanding the differences between the two options is crucial in knowing which one best fits your specific requirements.

What are custom fields?

Custom fields, also known as post meta, are individual pieces of information that can be added to your products. They are flexible and be used to store a wide range of data, including text, images, and other media.

In short, custom fields add extra fields to the Add/Edit Product screen in WooCommerce. They're ideal for storing standalone data about products. Here are some examples of when you should use WooCommerce custom fields:

  • To store a unique product barcode, inventory, or reference number.
  • For adding extra ways for people to interact with your products. This might be by adding extra buttons (e.g. 'Enquire about this product), icons, or social sharing links.
  • To display multimedia content about the product, such as embedded video or audio tracks.
  • For adding shortcodes provided by other plugins, such as a WooCommerce Add to Quote or Wishlist plugins.
  • To store additional notes about the prices or alternate price options. For example, if you're using a bulk discount WooCommerce plugin and want to list the quantity-based discounts, then you can add this information to a custom field.

The idea of a custom field is that it stores unique information. Since the data stored in the field is unique, you can display it in the WooCommerce front end - e.g. on the product detail page, shop, or category pages. However, you wouldn't expect to use this data to group or filter products. If you want to filter by that type of data, then you need a custom taxonomy instead.

You can create WooCommerce custom fields using any custom fields plugin for WordPress. Once you've created the custom fields, it's easy to show them on your website using the WooCommerce Product Table plugin. Keep reading for full step-by-step instructions on how to do all this. First, I'll quickly tell you about WooCommerce custom taxonomies so that you can be sure you're choosing the most appropriate field type for your data.

What are custom taxonomies?

Like WooCommerce custom fields, taxonomies are a way to store and show extra product data. They are a way of grouping and organizing products into categories or tags. However, the difference is that they are designed to store reusable information which can be used to group and filter products. For example, you can create a dedicated archive page listing all products that share a specific custom taxonomy term. You can also use taxonomies to filter products using the WooCommerce Product Table plugin.

Custom taxonomies are very similar to WooCommerce product categories. In fact, WooCommerce categories are actually set up as a taxonomy under the hood. When you create a custom taxonomy in WooCommerce, it adds tick boxes/checkboxes to the right-hand side of the Add/Edit Product screen - just like categories.

Here are some examples of when you might use WooCommerce custom taxonomies:

  • A WooCommerce bookstore needs to store extra product data such as year of publication, author, and publisher. Since more than one book has the same year, author, or publisher, customers need to be able to sort and filter by this data. You can do this using WooCommerce custom taxonomies.
  • If your products relate to a specific geographical area, then you can use custom taxonomies to group products by area. For example, you could create a custom taxonomy called 'Area' and add a separate taxonomy term for each state or county. Customers can then filter by area, or view lists of products from a specific area only.
  • A WooCommerce clothes store can use custom taxonomies to store extra data such as brand names. Customers can then search and filter to find products with their favourite brands, as this field isn't built into WooCommerce as standard.

In summary

Difference between WooCommerce custom fields and taxonomies
Custom field for 'Condition', custom taxonomy for 'Colours'.

When deciding between custom fields and taxonomies, it's important to consider the type of information you want to store and the way in which you want to organize your products. If you need to add unique or specific information to a product, custom fields may be the better choice. However, if you're looking to categorize and organize your products, taxonomies may be suitable.

Read our tutorial about how to create WooCommerce custom taxonomies.

How to create custom fields in the back end

Ok, now you know when to use custom fields. Next, I'll show you how to create advanced product fields for WooCommerce. It's surprisingly easy!

While many individuals opt to add custom fields programmatically, this tutorial is designed for non-developers. By reading on, you will learn how to add custom fields to your WooCommerce products without writing a single line of code. This makes it possible for you to display extra product fields wherever you desire, including on the product page, the shop page, and category pages.

Which custom field plugin?

In order to add custom fields to your WooCommerce products, you'll need to have a WooCommerce custom fields plugin installed. There are numerous high-quality and free plugins available for creating custom fields in WooCommerce, including Easy Post Types and Fields and Advanced Custom Fields. Each custom field plugin offers unique features and benefits, so you can choose the one that best fits your needs and preferences.

If you prefer, you can also opt for a dedicated WooCommerce custom fields plugin. These are specifically designed for adding custom fields to products in the WooCommerce platform. However, custom fields are essentially the same whatever WordPress post type you're adding them to. For that reason, there's no need to use a WooCommerce-specific plugin.

I'm going to show you how to create WooCommerce custom fields using Easy Post Types and Fields, and also Advanced Custom Fields. These are my two favorites.

However, the instructions are the same for most other custom field plugins for WordPress. If the custom fields don't show up on your site when you follow the later sections of this tutorial, make sure the plugin isn't adding extra characters to the start of the custom field name. (You might need to contact their plugin support to ask about this.) For example, Toolset automatically adds wpcf- to the start of the custom field name, so you need to know this.

Creating custom fields with Easy Custom Post Types & Fields

Easy Custom Post Types Plugin

Easy Post Types and Fields is a free WooCommerce custom fields plugin. It makes it easy to add custom data fields to your WooCommerce products.

This plugin was designed to make it as quick and easy as possible to add custom fields. It comes with a choice of plain text and visual editor custom field types. Use it if you want a quick and straightforward way to add WooCommerce custom text fields to the product page. 

How to add custom fields to WooCommerce products

  1. Log into the WordPress dashboard and go to Plugins → Add New.
  2. Search for ‘Easy Post Types and Fields’, then install and activate the free plugin.
  3. The setup wizard will open. Skip this and go to Post Types → Manage, then click on the 'Other Post Types' tab.
  4. Find the 'Products' post type (this is added by WooCommerce) and click 'Custom Fields'.
    Add custom fields to WooCommerce product
  5. Click the button to add as many fields as you like to your WooCommerce products. Make a note of the name of each custom field - you'll need this to display it later in this tutorial.
    How to add WooCommerce product custom field
  6. Finally, edit your products. On the 'Edit Product' screen, you'll find the custom fields that you added in step 4. Fill in the data as needed.
    WooCommerce product with custom fields

How to create custom fields with the Advanced Custom Fields plugin

Advanced Custom Fields (ACF) is a popular WordPress custom fields plugin. Use it if you're willing to spend a bit more time on setup and want extra features such as additional field types:

  1. Log into WordPress and find Plugins → Add New. Search for ‘Advanced Custom Fields’, then install and activate this free plugin.
  2. Click ‘Custom Fields’ on the left-hand side of the WordPress dashboard.
  3. Click the ‘Add New’ link by the ‘Field Group’ at the top of the page.
  4. How to create WooCommerce custom fields
    Next, you'll see the ‘Add New Field Group’ page:
    1. First, add a name for the group of custom fields you're creating. (No one else will see this.)
    2. Location – Choose Show this field group if Post Type is equal to Product. This tells Advanced Custom Fields to show the custom field on the Add/Edit WooCommerce product screen.
    3. Press the blue ‘Add Field’ button. Now it's time to create the individual custom fields where you'll store the extra product data.
    4. Add a Label for the custom field. This is how the custom field will be labeled on the Add/Edit Product screen.
    5. Choose a Name for the custom field (this should be 1 word in lowercase). You'll need this to display the WooCommerce custom field on the front end of your website, later.
    6. Choose a Field Type from the available types of a custom field. You can choose text, text area, numbers, checkbox, radio button, etc.
    7. Complete any extra fields for the custom field such as adding a default placeholder value. Finally, click the blue ‘Publish’ button.

That's how to create WooCommerce fields. The next step is to add data to the custom field value for some or all of your products. To do this, go to the 'Edit' page for each product and you'll see the extra WooCommerce custom field(s) lower down the page. They'll be shown somewhere below the Product Data section. Edit the placeholder, enter values into the custom fields, and then save the product.

Adding custom fields to product variations

So far, you've learned about Woocommerce adding custom fields to products for storing data about individual WooCommerce products. If you're using variable products then you can also add custom fields to specific variations. You'll need a different custom field plugin for that - one that focuses on variable products. I recommend Iconic's WooCommerce Custom Fields for Variations plugin for this.

In this screenshot, you can see a product table (created using the WooCommerce Product Table plugin) that lists each variation in its own row. There is a custom field column displaying unique data for some of the variations:

WooCommerce variation custom fields plugin

Displaying custom fields on the front end

How to show custom fields on the shop page

Show WooCommerce custom fields

A shop page product table with a custom field column

In the previous section, I showed you how to store new custom fields for your WooCommerce products in the back end. The next step is to display these fields on the front end of your WordPress website for customers to see. Of course if you're using custom fields simply as a way to store internal notes, then there's no need to display them. However, if you want to show your WooCommerce custom fields on your website, it's a simple process.

There are several ways to make custom fields visible on the front end of your website. This includes displaying custom fields on product pages, the shop page, and category pages.

The easiest way to show your extra product data is to install the WooCommerce Product Table plugin. This takes your products and lists them in a quick order form layout anywhere on your site. You can add product tables to any page you like. This might be normal pages, or your WooCommerce shop and category pages.

You can choose which columns to include in the product table. The great thing is that you can include WooCommerce custom fields in the table. This is more flexible than the default store layout, which just lists basic information such as the product name and price. It's a really easy way to display the extra product data that is stored in custom fields.

See WooCommerce custom fields in action on our custom fields demo page.

How to do it

  1. Get WooCommerce Product Table and install and activate the plugin.
  2. The plugin setup wizard will open. Activate your license key and choose the other settings for your product tables.
  3. In the Columns section of the wizard, make sure you add your custom field columns. To do this, just add cf: followed by the name of the custom field name that you created earlier (e.g. cf:my-custom-field). The knowledge base contains the full list of available columns.
  4. Now it's time to add product tables to a page. (You can skip this step if you used the setup wizard to show product tables on your main shop pages.) To add a product table anywhere, use the [product_table] shortcode to list all your products. Alternatively, use the plugin documentation to list specific products only.
  5. Next, view the page and see what it looks like! You will see a product table, complete with custom fields. 

Make changes to how your custom fields are displayed

So far, I've shared a simple method to show WooCommerce custom fields in the front end of your website. Now, let's get more advanced and configure how our custom fields are displayed.

WooCommerce Product Table is a very flexible plugin. Choosing your columns is just one of over 50 options! Look at them all and configure your table to show whatever product data you need.

For example, you can:

  • Create product tables listing products from a specific category, tag, or custom field only. (More on this below.)
  • Add filter dropdown lists above the table, or filter widgets in the sidebar. (But remember, you can't filter by the custom field because custom fields aren't designed for grouping products. You need to use categories, attributes, tags, or custom taxonomies to store filterable data.)
  • Use the lazy load option to speed up the table if you have too many products to load all at once.
  • And much more...

Have a play, and get your product tables and WooCommerce custom fields showing exactly as you need them.

How to dislay WooCommerce custom fields and taxonomies

How to display custom fields on the WooCommerce product page

So far, I've shown you several ways of displaying custom fields on WordPress pages, shop, or product category pages. It's also possible to show a WooCommerce text field on the product page (also known as the product detail page).

The WooCommerce product page is great, as it displays lots of product data such as product title, image gallery, short and long description, product category, product price, attributes and variations. However, there's no built-in way to add custom fields to custom product pages.

You can do this using the WooCommerce Product Table plugin that we looked at in the previous section. It can show custom field values anywhere on your site - including the WooCommerce product page. When used on the single product page, it looks like this:

WooCommerce custom fields taxonomies single product page

A product table displaying custom field data on the WooCommerce product page

Setup tutorial

  1. Edit each product and add data to the custom fields as required.
  2. Next, install the WooCommerce Product Table plugin. When you activate it, a setup wizard will open guiding you through the main settings for your custom tables. These will be used in all your WooCommerce tables, but you can override them for each table as required. (For example, when you choose your table columns then these will apply to all your tables. Don't worry if you want to show different custom fields on different products, as I'll show you how to do this in a minute.)
  3. In the setup wizard, I recommend disabling elements such as the search box, product totals and reset button. That's because these are designed for listing large numbers of products in a table, and they're not relevant to displaying custom fields on the WooCommerce product page.
  4. Open the 'Edit Product' screen for the product where you want to add a table of custom fields.
  5. Add a product table shortcode to the Short Description field.

Here's an example product table shortcode to get you started. It will display a table containing 3 custom fields for a coffee product with ID 54121. The table has 3 columns - one for each custom field:

[product_table include="12345" columns="cf:strength,cf:region,cf:type"]

This is how it looks on the front end WooCommerce product page:

WooCommerce product page custom fields plugin

Customizing the shortcode

To create your own product table of WooCommerce custom fields, change the following sections of the shortcode:

  • Replace '12345' with the ID of the product that you're displaying custom fields for. You can easily find this by looking at the URL of the 'Edit Product' page where you're adding the product table shortcode. For example, if your product has the URL [yoursite.com]/wp-admin/post.php?post=19&action=edit, then the ID is 19.
  • 'Replace 'strength', 'region' and 'type' with the WooCommerce custom field names you created in the previous section. You can also add or remove custom fields as needed. Just make sure that they're comma separated without spaces, and you add cf: before each custom field name.
  • You can also make any other changes to the product table, for example by adding or removing columns. See the full list of options in the knowledge base.

Now click 'Update' and view the WooCommerce product page for that product. You'll see a table containing the custom field values in the short description field. Perfect!

What if I don't want to show the custom fields for each product manually?

The instructions above tell you how to manually add a product table with custom fields for specific products. You can do this for as many products as you want to display custom fields.

If you want to show custom fields on all your WooCommerce product pages then you will need to do this globally by adding product tables to the single-product.php template. This is a bit technical and you can ask your developer to do this for you. If you don't have one then I recommend that you post a job on Codeable where one of their WordPress experts will send you a quote.

To get you started, we've provided an article with code snippets on how to automatically add product tables after the short description field on the single product page. The code snippet adds a table of the current product's variations, and you can change the [product_table] shortcode to add custom field columns, disable the variations option, and make any other changes you require.

Can I add custom fields to other sections of the WooCommerce product page?

In the previous section, I showed you how to add custom fields to a table in the short description on the WooCommerce product page. This is a good option because most themes show the short description near the top of the page, under the product name and price.

If you'd rather show custom fields elsewhere on the single product page, that's absolutely fine. Simply add the product table shortcode to wherever you'd like to display the custom field values. For example, you could add it to the long product description instead.

What other extra data can I show on the WooCommerce product page?

Custom fields and taxonomies are just the tip of the iceberg. You can use WooCommerce Product Tables to show any type of product data in a table. This can include:

  • Product image, name, price
  • Short or long description
  • Categories and tags
  • Attributes and variations
  • Star rating from reviews
  • Embedded audio and video

This is a much more flexible way to show WooCommerce extra product data in the short description field. Customers can see all the relevant data from the neat table layout, instead of having to scroll down to the long description tabs.

There's even a neat option to display each product variation on its own row in the table with its own product image. This lets customers select variations and add to cart directly from the table of WooCommerce variations.

Have a play with showing custom fields and other data on the WooCommerce product page. Think about what will best sell your products and maximize conversions. This is a great way to increase sales and make your e-commerce store an even bigger success.

Alternate method: Show a text custom field above the add to cart column

So far, you've learned how to add a table to the single product page, with each custom fields displayed in a column of the table. If that's not the layout you want, then I have an alternative suggestion for you.

We're going to use a plugin called WooCommerce Lead Time. While the plugin is designed to display waiting times, it works by creating a WooCommerce custom field and showing it on the single product page, immediately above the add to cart button. As a result, you can use it to show any type of text-based information and not just lead times.

To set it up, simply install the plugin and add the information that you want to display to the 'lead time' field. The text you have added to the 'lead time' custom field will appear above the add to cart button, under the short description.

The other benefit of using WooCommerce Lead Time for your custom field is that you can choose whether to add the information individually for specific products only; or globally so that it appears on all product pages.

How to list WooCommerce products with a specific custom field value

Finally, I'll show you one more option for showing WooCommerce custom fields in the Product Table plugin.

As well as displaying custom field labels in the table layout, you can create tables containing products with a specific custom field value.

For example, if you wanted to display products with a custom field value of '2023' (saved in a custom field called 'Year') then you could do it with this shortcode:

[product_table cf="year:2023"]

Another example: Perhaps you have a custom field called ‘condition’ and want to display products with a custom field value of ‘new’. You can do this using the following shortcode:

[product_table cf="condition:new"]

Case study – How Wavelength Electronics display WooCommerce custom fields

Wavelength Electronics sell technical products in the electronics industry. As with most technical products, customers need to check a lot of information before making their purchase. With all the extra product data to display, Wavelength Electronics used our WooCommerce Product Table to create WooCommerce custom fields to help their clients quickly find what they’re looking for.

The product table now displays a datasheet column with a PDF icon for each item, so customers can open up the datasheet straight from the product table. There’s also a column with ticks to show which models include a temperature controller.


How to create custom fields without a plugin

If you're a developer, then you might be wondering how to add custom fields to a WooCommerce product programmatically. Can you even add custom fields to a WooCommerce product without plugins?

The answer is yes! WooCommerce allows you to programmatically add custom fields to products without installing any additional plugins. However, as you can imagine, the programmatic approach to creating custom fields for WooCommerce products involves programming!

With a programmatic approach, you can add custom information directly to your product metadata. You can also include your custom field(s) as part of the existing WooCommerce product data meta box.

Code sample 1

Your code will depend on the kind of custom fields you're looking to add to your products. Many product types only need a simple custom text field to let users enter some value. For such use cases, this custom text input field snippet by WooCommerce developer Rodolfo Melogli suffices:
code snippet

As you can see, you’ll be using a bunch of core WooCommerce functions and hooks in the code. For example, you're using the WooCommerce hook "woocommerce_before_add_to_cart_button" to show your custom field on your product page. You're also using the woocommerce_add_order_item_meta hook to save your product input fields for Woocommerce into the order meta information. These can vary greatly depending on the custom fields you're trying to add.

When you take such input from your users, you should include it in your cart page summary (with your cart item details), your checkout, and also in your order's email. The snippet we just saw doesn't just let you allow your users to enter a text-based value inside your product page but also takes it over to your cart and checkout. Not just that, it adds the custom input to your order confirmation email too.

Code sample 2

Next, we'll share some example codes kindly published by Plugin Republic. You'll be adding these snippets to your WordPress child theme's functions.php file. You could use the code snippet below to register a custom field, display the input field in the General tab of the WooCommerce product data box, and save it as product metadata:

/**
* Displays the custom text field input field in the WooCommerce product data meta box
*/
function cfwc_create_custom_field() {
$args = array(
'id' => 'custom_text_field_title',
'label' => __( 'Custom Text Field Title', 'cfwc' ),
'class' => 'cfwc-custom-field',
'desc_tip' => true,
'description' => __( 'Enter the title of your custom text field.', 'ctwc' ),
);
woocommerce_wp_text_input( $args );
}
add_action( 'woocommerce_product_options_general_product_data', 'cfwc_create_custom_field' );
/**
* Saves the custom field data to product meta data
*/
function cfwc_save_custom_field( $post_id ) {
$product = wc_get_product( $post_id );
$title = isset( $_POST['custom_text_field_title'] ) ? $_POST['custom_text_field_title'] : '';
$product->update_meta_data( 'custom_text_field_title', sanitize_text_field( $title ) );
$product->save();
}
add_action( 'woocommerce_process_product_meta', 'cfwc_save_custom_field' );

Then, you could use WooCommerce's many hooks to display that field data on the front end of your e-commerce store at the spot where you want it to appear.

For example, this snippet displays the custom field data after the add to cart button on your single product page:

/**
* Displays custom field data after the add to cart button
*/
function cfwc_display_custom_field() {
global $post;
// Check for the custom field value
$product = wc_get_product( $post->ID );
$title = $product->get_meta( 'custom_text_field_title' );
if( $title ) {
echo get_post_meta($post->ID, 'custom_text_field_title', true);
}
}
add_action( 'woocommerce_after_add_to_cart_button', 'cfwc_display_custom_field' );

There are also other hooks that let you display information on the WooCommerce checkout page or the cart page.

Is It worth adding WooCommerce custom text fields programmatically?

While you don't need any plugins to programmatically add custom fields to WooCommerce using this method, you can end up with errors. Your custom code could have compatibility issues with the other WooCommerce extensions or WordPress site plugins that you might be running. You can also experience code validation errors.

As you can tell, using plugins is a much simpler way to add custom fields to product pages. While it is possible to display custom fields without the use of a plugin, it's really only accessible to developers. That's why the methods described above are a better option for most store owners.


2 easy ways to create and display custom fields

And that's it! I've shown you two easy ways to show custom fields on your website:

  1. We've learned how to add custom product input fields for WooCommerce to collect extra information from customers. This uses the WooCommerce Product Options plugin.
  2. We also learned how to use a free plugin to store extra data about our products and display them using the WooCommerce Product Table plugin.

Neither method for adding custom fields to WooCommerce products requires any special technical knowledge.

Follow whichever method in this tutorial interests you the most, and put it into practice on your own website. It's a fantastic non-technical way to store and display extra product data in WooCommerce.