Custom Products for WooCommerce


Custom Products for WooCommerce

Offer your visitors a unique shopping experience.

This plugin gives you the ability to setup a store where your visitors can customize their products before buying them.

Custom Products for WooCommerce is an extension for WooCommerce that adds a new level to the product-attribute hirearchy. Instead of assigning attributes to products, split products into multiple components and assign attributes to components.

It was made to be as universal as possible so you can customize pretty much every type of product. See the demo to get an idea of what this plugin is capable of.

Some (but not all) features

  • Make any component required (don’t allow users to proceed until they make a selection on at least one attribute)
  • Assign components to products
  • Add product specific component names
  • Add product specific component descriptions
  • Assign attributes to components
  • Order components
  • Order attributes
  • Assign an image to product customizer or use products’ featured image
  • Animated components
  • Shortcode – customizer with filterable product selector
  • Shortcode – single product customizer
  • “Customize” button on product page for products that can be customized
  • Add images to WooCommerce attributes
  • Images on product and attribute select dropdowns
  • Add to cart with ajax
  • Show what was customized on cart and checkout pages and invoice
  • Template system
  • Translation ready
  • Seamlessly integrated into WooCommerce
  • Works with Polylang
  • Works with WooSwatches

Become a Premium user

Custom Products for WooCommerce is also available in Premium version that adds a lot of features.

Premium features

  • Create a layout of your own using a collection of shortcodes
  • Shortcode – components list w/wo add to cart button
  • Shortcode – customizer image
  • Shortcode – add to cart button w/wo quantity field
  • Shortcode – customizer button
  • Variable products integration
  • Use only default variation or all available variations
  • Show variation (or featured) image if customizer image isn’t found
  • Make any attribute required (don’t allow users to proceed until they make a selection)
  • Single attribute mode – Allow users to only select one attribute per component
  • Charge fees for customizing products
    • Per order
    • Per product
    • Per component
  • Edit text tag advanced settings (bold,italic,…)
  • Add text tag shadow
  • 10 icon tags to choose from
  • Add a “Customize” button to cart page

View all available features


[woocp product_ids="1,2,3" number_of_products="3" width="100%" order="ASC" orderby="title" class="classname" hide_msg_area="true" hide_select="true"]

You can use the shortcode to get product customizer anywhere on your site.
Shortcode accepts the following parameters:

  • product_ids – a comma separated list of product IDs
  • category_ids – a comma separated list of category IDs
  • number_of_products – limit of produts to show
  • width – product customizer width (px, em, %, …)
  • image_width – customizer image width (%)
  • list_width – components list width (%)
  • class – classname(s) for CSS/JS purposes
  • order – order products (ASC, DESC)
  • orderby – order products by (none, ID, title, name, date, modified, rand)
  • hide_msg_area – hide/show WooCommerce loader and message section under the add to cart button (default: false)
  • hide_select – hide/show product select dropdown (default: false)

Note: You can only use category_ids OR products_ids in the shortcode.


Contact me by contact form or find me on social media if you are in need of support.

Please take a look at the Custom Products for WooCommerce documentation as well.


The plugin is translated using Transifex. If you want to help out, please head over to the translation project on Transifex.


  • Settings tab on WooCommerce settings page
  • Manage components page
  • Manage terms page
  • Edit product page - components
  • Edit product page - image
  • Shortcode - product selector
  • Shortcode - open component
  • Cart page
  • Email invoice
  • Edit order page



  1. PHP version 5.4 or greater (PHP 7.2 or greater is recommended)
  2. MySQL version 5.0 or greater (MySQL 5.6 or greater is recommended)


  1. Log in to your WordPress dashboard, navigate to the Plugins menu and click Add New
  2. In the search field type “Custom Products for WooCommerce” and click Search Plugins
  3. Install the plugin by simply clicking “Install Now”


The manual installation method involves downloading the Custom Products for WooCommerce plugin and uploading it to your webserver via your favourite FTP application. The WordPress codex contains instructions on how to do this here.


How to override template files

Template files are stored at the “/custom-products-for-woocommerce/templates” folder.

  1. Create a subfolder “/custom-products-for-woocommerce” in your child themes folder.
  2. Copy the template that you want to override from the plugins “/templates” folder to the new folder in your child theme
  3. Edit the template

Why do I get redirected to the homepage after clicking the “Customize” button on product page?

You need to set “Customizer URL” field in the Customizer settings section of the Custom Products tab on the WooCommerce settings page.
Enter an URL of a page that has the [woocp] shortcode somewhere in the content.
If you do not set the “Customizer URL” field the plugin will assume your [woocp] shortcode is on your homepage.


September 26, 2021
The plugin looks interesting as I am trying to do something similar as the demo without having an 40,000 product variations. However, when I installed it, I received an error message indicating the plugin does not have a valid header.
Read all 2 reviews

Contributors & Developers

“Custom Products for WooCommerce” is open source software. The following people have contributed to this plugin.




  • FIX
    • WP 5.8 supported
    • PHP 8 supported


  • NOTE
    • Clear you cache
    • Check and update your custom CSS if necessary
    • Check and update you custom templates
  • ADD
    • “Required component” option to components (makes the user select a component before adding the product to cart)
    • “Single attribute mode” option to components (allows only one attribute to be selected on that component) (PREMIUM)
    • “Required attribute” option to component attributes (PREMIUM)
      • Can use on as many attributes as neccessary
      • Be careful with setting up the “Required attribute” option if this is enabled (if you make more than one attribute required the customer won’t be able to add the product to cart)
    • Advanced shadow controls for text tags (PREMIUM)
    • Opacity control on icon color (PREMIUM)
  • FIX
    • Component fee set on product page not overriding default component fee
    • Checking for customizer/product image put in one function + removed from components_list shortcode (no need, it can work without images)
    • Customizer image sizing fixed
    • Admin inputs and labels design fixes
    • woocp_add_order_item_meta PHP notice (missing array index) fixed
    • Turn admin checkboxes into YES/NO switches
    • Attribute select boxes initialized on document.ready()
    • Update plugin-update-checker library
    • Update fabric.js to v3.6.3


  • FIX
    • woocp_selected hidden input element not found


  • FIX
    • get_posts not returning all customizable products


  • NOTE
    • Clear you cache
    • Check and update your custom CSS if necessary
    • Check and update you custom templates
  • ADD
    • [woocp_single_product] shortcode
    • [woocp_components_list] shortcode (PREMIUM)
    • [woocp_customizer_image] shortcode (PREMIUM)
    • [woocp_add_to_cart] shortcode (PREMIUM)
    • [woocp_customize_button] shortcode (PREMIUM)
    • hide_select=”true/false” parameter to [woocp] shortcode
    • msg_area=”true/false” parameter to [woocp] shortcode
    • class=”CLASSNAME(s)” parameter to [woocp] shortcode
  • FIX
    • deprecated functions
    • fix some PHP warnings/notices
    • component CSS fixed
    • component & attribute labels
    • lose wp_query, use get_posts instead (not working on some sites)
    • when changing variation on single product tab only image is changed (user selection of attributes is not reset anymore)
    • JS targeting was updated, so you can have multiple shortcodes on one page (check shortcode docs for more info) and each add to cart button will work separately
    • show default variation in [woocp] shortcode if product ID (instead of variation ID) of a variable product is passed (from the “customize” button). You can override this behaviour by inserting custom [woocp_customize_button id=”VARIATION_ID”] shorcodes for each variation.


  • FIX: woocp-public.js forced to load in footer for better theme compatibility


  • FIX: jQuery tipTip not refreshing after ajax calls in admin
  • FIX: Added missing strings to translation files
  • FIX: Font selection fix