Add color as a product attribute
Add a product's color as a taxonomy attribute making it possible to filter a product list based on its color.
Heads-up!
This tutorial is still valid but a simpler version exists here.
In this article
Add color attribute
Before you begin, the Color attribute must exist. To add it, go here WordPress Admin Area > Products > Attributes and add Color in the "Name" field and color in the "Slug" field.
Use a single field for attribute
In this example, we will choose one field from the product's list of fields and store that field as the color attribute.
- 1
-
Identify the field
We can view all fields by clicking a product's name on the add/edit Product Sets pages in your WordPress Admin Area. We see that this product does have a "color" field so we will use that.
- 2
-
Create a custom plugin
If you haven't done so already, create a custom plugin.
- 3
-
Add custom code
Add the following code to your custom plugin file.
- 4
-
Add/Update product sets
These changes will only take effect after any new Product Sets are created or after existing Product Sets are updated.
- 5
-
Expose filter as widget
Go here WordPress Admin Area > Appearance > Widgets and add a WooCommerce Layered Nav widget to your sidebar and configure it to display the color attribute like this:
Use multiple fields for attribute
Sometimes merchants store product information in different fields than other merchants. For example, some merchants will store the product's color in the "color" field while others will use a different field. In this example, we will use multiple fields to get the product's color.
- 1
-
Identify the fields
We can view all fields by clicking a product's name on the add/edit Product Sets pages in your WordPress Admin Area. We see that this product does not have a "color" field however it does have a field named "extratexttwo" which contains the product's color. So we will use that field if the "color" field does not exist.
- 2
-
Create a custom plugin
If you haven't done so already, create a custom plugin.
- 3
-
Add custom code
Add the following code to your custom plugin file.
- 4
-
Add/Update product sets
These changes will only take effect after any new Product Sets are created or after existing Product Sets are updated.
- 5
-
Expose filter as widget
Go here WordPress Admin Area > Appearance > Widgets and add a WooCommerce Layered Nav widget to your sidebar and configure it to display the color attribute like this:
Use controlled vocabulary with one field
In the above examples, we rely on the names the merchants have provided for their product colors. But this can sometimes lead to unexpected results like this:
In this example, we will provide a controlled vocabulary to ensure we have an organized color attribute filter.
- 1
-
Identify the field
We can view all fields by clicking a product's name on the add/edit Product Sets pages in your WordPress Admin Area. We see that this product does have a "color" field so we will use that.
- 2
-
Create a custom plugin
If you haven't done so already, create a custom plugin.
- 3
-
Add custom code
Add the following code to your custom plugin file.
Notice we have provided a list of terms that should be associated with the main term (ie. color) that we want to use in our color filter.
- 4
-
Add/Update product sets
These changes will only take effect after any new Product Sets are created or after existing Product Sets are updated.
- 5
-
Expose filter as widget
Go here WordPress Admin Area > Appearance > Widgets and add a WooCommerce Layered Nav widget to your sidebar and configure it to display the color attribute like this:
Use controlled vocabulary with multiple fields
This is useful when a merchant provides the product's color in a field other than "color" or if a merchant only provides the color in the product's name. Using a controlled vocabulary on a variety of fields, we can extract the data we need!
- 1
-
Identify the fields
In this example, we will use 3 fields: color, extratexttwo and name in that order.
- 2
-
Create a custom plugin
If you haven't done so already, create a custom plugin.
- 3
-
Add custom code
Add the following code to your custom plugin file.
- 4
-
Add/Update product sets
These changes will only take effect after any new Product Sets are created or after existing Product Sets are updated.
- 5
-
Expose filter as widget
Go here WordPress Admin Area > Appearance > Widgets and add a WooCommerce Layered Nav widget to your sidebar and configure it to display the color attribute like this:
Provide default attribute value
When using the controlled vocabulary mentioned in the previous 2 examples you will see that if the color field doesn't contain a color in the controlled vocabulary you have configured, it will be ignored.
For example, if the product's color is Yellow, it will be ignored because we have not configured any controlled vocabulary for that term.
In these cases, we need to configure our code to either use the provided term (ie. Yellow) or we can provide a default value. in this example, we will force the script to use the value provided in the "color" or "extratexttwo" fields if they exist, otherwise not use any value.
- 1
-
Identify the fields
In this example, we will use 3 fields: color, extratexttwo and name in that order.
- 2
-
Create a custom plugin
If you haven't done so already, create a custom plugin.
- 3
-
Add custom code
Add the following code to your custom plugin file.
Notice we are forcing the script to use the value provided by the merchant if there is no match in our controlled vocabulary. However we do not provide a default in line #16 as we do not want to store the product's name as a color attribute.
- 4
-
Add/Update product sets
These changes will only take effect after any new Product Sets are created or after existing Product Sets are updated.
- 5
-
Expose filter as widget
Go here WordPress Admin Area > Appearance > Widgets and add a WooCommerce Layered Nav widget to your sidebar and configure it to display the color attribute like this: