Tested Updated Bestseller High rating Documented

Product Input Fields for WooCommerce

(7 customer reviews)

Add custom frontend input fields to WooCommerce products.

Item is no longer available. Existing customers can still download the latest plugin version from the My Account page.

Product Input Fields for WooCommerce Pro plugin lets you add custom input fields to WooCommerce product’s frontend for customer to fill before adding product to cart.

Frontend Options

Plugin settings are located in “WooCommerce > Settings > Product Input Fields”.

Product Input Fields for WooCommerce - Frontend Options

Defines the fields position on frontend. If set to “Do not display”, you can use [alg_display_product_input_fields] shortcode, or PHP alg_display_product_input_fields() function. Possible values: Before add to cart button; After add to cart button; Do not display.
Default: Before add to cart button
Position Priority
Use this to move the fields inside the “Position”. Ignored if “Position” is set to “Do not display”.
Default: 10
HTML to Add Before Product Input Fields
This is added before the fields.
<table id="alg-product-input-fields-table" class="alg-product-input-fields-table">
Product Input Field Template
Used to display each field. Replaced values: %field_id%, %title%, %field%. Alternatively try e.g.: <p><label for="%field_id%">%title%</label>%field%</p>
<tr><td><label for="%field_id%">%title%</label></td><td>%field%</td></tr>
HTML to Add After Product Input Fields
This is added after the fields.
HTML to Add After Required Field Title
Defines how required fields are marked on frontend.
&nbsp;<abbr class="required" title="required">*</abbr>
Add HTML Required Attribute
Adds HTML required attribute.
Default: yes
Item Name Order Table Format
Affects Thank You page, Emails etc.
&nbsp;| %title% %value%
Refill Fields with Previous Input
Refills fields with previous input values.
Default: yes

Emails Options

Product Input Fields for WooCommerce - Email Options

Attach Files to Admin's New Order Emails
Default: yes
Attach Files to Customer's Processing Order Emails
Default: yes

All Products Options

Total number of global (i.e. for all products) fields. When enabled this section will add new settings section for each product input field.

Product Input Fields for WooCommerce - Global Fields - Total Number

Enable section
Add custom input fields to all products.
Default: yes
Product Input Fields Number
After you save this number, new settings sections for each product input field will appear.
Default: 1

All Products: Field X Options

Global (i.e. for all products) field options.

Product Input Fields for WooCommerce - Global Field Options

Product Input Field X

Enables the field.
Default: no

General Options

Field’s type. Possible values: Text; Textarea; Number; Checkbox; Color; File; Datepicker; Weekpicker; Timepicker; Select; Radio; Password; Country; Email; Phone; Search; URL; Range; Multi Checkbox.
Default: Text
Is Required
Check if the field is required.
Default: no
Field’s title.
Input Field
Field’s placeholder.
Default: None
Default Value
Default value. E.g. for Color type enter color code; for Checkbox type enter yes or no. Leave blank to disable.
Default: None
Field’s CSS class.
Default: None
Fields’s CSS style.
Default: None
Message on Required
Used if “Add HTML Required Attribute” option in plugin’s “General > Frontend Options” settings is disabled, or product input fields are displayed outside the add to cart button form.
Field '%title%' is required!
Converts characters to uppercase version, when possible.
Default: no

Input Restrictions

Minimum value for an input field. E.g. for Number/Range type. Leave blank to disable.
Default: None
Maximum value for an input field. E.g. for Number/Range type. Leave blank to disable.
Default: None
Legal number intervals for an input field. E.g. for Number/Range type. Leave blank to disable.
Default: None
Max Length
Maximum number of character for an input field. E.g. for Text type. Leave blank to disable.
Default: None
Regular expression to check the input value against. E.g. for Text type. Leave blank to disable. Visit documentation on regular expressions for valid option formats.
Default: None

Checkbox Type Options

Fill this section only if Checkbox type is selected.

Value for ON
Text to be shown if checkbox is checked.
Default: Yes
Value for OFF
Text to be shown if checkbox is not checked.
Default: No

File Type Options

Fill this section only if File type is selected.

Accepted File Types
E.g.: “.jpg,.jpeg,.png”. Leave blank to accept all files. Visit documentation on input accept attribute for valid option formats.
Default: .jpg,.jpeg,.png
Message on Wrong File Type
Message to be displayed if file type is wrong.
Wrong file type!
Max File Size
Set to zero to accept all files. In bytes.
Default: 0
Message on Max File Size Exceeded
Message to be displayed if file is too big.
File is too big!

Datepicker/Weekpicker Type Options

Fill this section only if Datepicker/Weekpicker type is selected.

Date Format
Leave blank to use your current WordPress format. Visit documentation on date and time formatting for valid date formats.
Default: None
Min Date
In days.
Default: -365
Max Date
In days.
Default: 365
Add Year Selector
Default: no
Year Selector - Year Range
Remember to set “Min Date” and “Max Date” options accordingly. Visit Datepicker > yearRange documentation for valid year range formats.
Default: c-10:c+10
First Week Day
Possible values: Sunday; Monday; Tuesday; Wednesday; Thursday; Friday; Saturday.
Default: Sunday

Timepicker Type Options

Fill this section only if Timepicker type is selected.

Time Format
Visit timepicker options page for valid time formats.
Default: hh:mm p
In minutes.
Default: 15

Select/Radio Type Options

Fill this section only if Select/Radio type is selected.

One option per line.
Default: None

Per Product Field Options

Product Input Fields for WooCommerce - Local Field Options


Product input fields data is saved as order meta. Here is a snippet which demonstrates how to get entered values with PHP:

$order = wc_get_order( $order_id );
foreach ( $order->get_items() as $item_key => $item ) {
    foreach ( wc_get_order_item_meta( $item_key, '_alg_wc_pif_local' ) as $values ) {
        echo $values['_value'];

This example is for “local input fields” (i.e. per product); for “global input fields” (i.e. all products) use _alg_wc_pif_global instead of _alg_wc_pif_local. If the type of the field is “file”, then it’s saved as an array, so, for example, to get the name of the file, you need to use $values['_value']['name'] (instead of $values['_value']).


If you need to export the product input fields from orders to CSV or XML, we suggest using free Export WooCommerce plugin.

7 reviews for Product Input Fields for WooCommerce

  1. skragglies (verified owner)

    I’d like to clarify my review, since I can’t edit it I’ll add an additional review.

    This plugin formats everything in tables. This doesn’t work for responsive designs. It takes a lot of css to get it to be mobile friendly. The options for dates and times are extremely limited. If you want to have time options from noon to five, for example, you have to find the timepicker javascript file, read jQuery documentation on it, then add in the minTime and maxTime variables.

    That’s a lot of work to get a $60 plugin to work. Frankly, you are better off learning javascript and creating some custom code for your project.

  2. skragglies (verified owner)

    This plugin is great if you can completely rewrite all of the jQuery strings that make it run. Otherwise it’s pretty much useless. Great idea, but abhorrent execution.

  3. Ed

    Great plugin and customer support. Go for the pro version you won’t be disappointed.

    • Pablo Pacheco


  4. Jess

    Great plugin. Does everything I need it to. Support is fantastic

    • Pablo Pacheco


  5. Jeremy

    Great plugin – works really well and support is top notch.

    • Pablo Pacheco


  6. Dwayne (verified owner)

    Great plugin and fantastic customer support.

    • Pablo Pacheco


  7. Max

    Great plugin, lots of options…

Add a review

Your email address will not be published.

Free version

This plugin is a premium version of free "Product Input Fields for WooCommerce" plugin.


2.4.0 - 06/06/2022

  • Fix: When using checkbox/radio/multicheck field, blank box is added on the frontend if option name value is left empty from backend.
  • Fix: The tooltip is missing "Exclude by Category/Include by Category" on the edit product page.
  • Fix: Word "Category" should be replaced with "Categories".
  • Fix: Removed uppercase field for checkbox type field.
  • Enhancement: Added optoin to set images for each checkbox/radio/select/multicheck options.
  • Enhancement: Added option to set the input field based on the product category for global fields.
  • Enhancement: Added option to re-order input field on product page on single product level.
  • Enhancement: Added conditional fields option to display field depending on quantity of each product.

2.3.1 - 27/04/2022

  • Fix: Notice in debug log.
  • Fix: Input field price not working due to Flatsome theme query

2.3.0 - 26/04/2022

  • Enhancement: Added option to exclude Global product input field by category.
  • Enhancement: Option to allow for the Price field in the "Enable Pricing Option" section to accept decimal/float numbers.
  • Enhancement: Removed Uppercase setting for Date/Time picker and select field.
  • Fix: Notice in debug log.
  • Fix: Subtotal not working when Flatsome theme is installed.
  • Fix: Calculated percentage value instead of percentage on single product page.
  • Fix: Notice to activate license.
  • Fix: Showing unnecessary notice.
  • Fix: Compatibility with Multi-Currency plugin.
  • Fix: Unwanted fields in Global PIF setting page.
  • Fix: Currency symbol position is not set according to woocommerce settings.
  • Fix: Language of condition dropdown option.
  • Fix: No 'Percentage' title if the % condition is set.
  • Fix: Price not getting displayed when select field option is set on front end.

2.2.0 - 16/11/2021

  • Enhancement: Added an option to convert the first letter to uppercase for the different input types fields.
  • Enhancement: Added maximum length option for the textarea input type.
  • Fix: Compatibility with the YITH request a quote plugin, as on the cart page error was coming due to which pricing functionality was disturbed.
  • Fix: Special characters were getting converted into emojis after passing the data to the cart. This is fixed now.
  • Fix: Pricing table was coming on the product page whenever the placeholder was set for the 'Select' input field type. This is fixed now.

2.1.2 - 07/10/2021

  • Fix: Due to the change made in the last release decimal pricing on the cart page were not coming correctly. This is fixed now.
  • Fix: Compatibility with the Porto theme.

2.1.1 - 21/09/2021

  • Enhancement: Added a filter 'alg_wc_pif_no_pif_in_child_products' for not showing the product input fields in the child products of composite products on the cart page.
  • Fix: Compatibility with the WooCommerce Bookings plugin.
  • Fix: Compatibility with YITH WooCommerce Request a Quote plugin.
  • Fix: Compatibilty with Themify Ultra theme.
  • Fix: Compatibility with Divi theme.
  • Fix: Checkbox was not coming on the product page when multi checkbox type is selected. This is fixed now.
  • Fix: When there is a custom range picker on the product page from some other plugin, classes from our plugin were getting added in that. This is fixed now.
  • Fix: The placeholder/default value was not getting used for 'Select' option type. This is fixed now.
  • Fix: Fatal error was coming on the product frontend when plugin settings were disabled and shortcode is added. This is fixed now.

2.1.0 - 18/03/2021

  • Fix: Compatibility with the Flatsome theme.
  • Fix: Compatibility with the Booking & Appointment Plugin for WooCommerce.
  • Fix: Compatibility with the WooCommerce Product Add-ons.
  • Fix: Sometimes after selecting the variations on the product page, it keeps on loading and nothing happens. This is fixed now.
  • Fix: Plugin was not getting activated with the PHP vesrion below 7.1.0 due to the syntax error. This is fixed now.
  • Fix: Sometimes error was coming on some sites due to the way of fetching quantity selected in JS. This is fixed now.
  • Fix: Pricing table was showing the incorrect values when two fields of same type are enabled and only 1 field have pricing option enabled. This is fixed now.
  • Fix: In the variable product, when we change the variations than the prices of variation were not changing on product page. This is fixed now.
  • Fix: When the global fields and local field both are enabled together then in the cart the PIF prices were not added. This is fixed now.
  • Fix: On edit product page when we enable the product input field there was error coming in the console. This is fixed now.
  • Fix: When we select the checkbox type field, than in the cart the value for that field is not passed properly. This is fixed now.
  • Fix: Checkbox Type Options were displayed on the backend even if the Radio input type was selected. This is fixed now.
  • Fix: Amount was coming wrong in the pricing table when the decimal separator was set as comma. This is fixed now.

2.0.0 - 15/12/2020

  • Enhancement - Pricing can be set for the input fields. Different prices could be set for each input field.
  • Tweak - When selecting an input field in the settings, only the related options for that input will be displayed.
  • Fix - Range input option did not display the selected value on the product page.
  • Fix - When entering the URL in Hebrew language, the Hebrew got erased from the URL after submission.
  • Fix - When the selected values of select input contained quotes in it , it was not displayed correctly in the email or order page.
  • Fix - After clicking on Order again button on My Account page, an error of required fields was displayed & product was not added to cart.
  • Fix - When the "Select" input field was used, the values got changed when we added the product to the cart.
  • Fix - The field values were not displayed in the cart when using WPBakery page builder.
  • Fix - The description added in the setting "HTML to add before the product input fields" was shown on all the products even if the All Product settings was disabled.
  • Fix - Security changes when handling downloads in the plugin.

1.3.5 - 24/07/2020

  • Fix - The plugin was conflicting with Creta theme. This is fixed now.
  • Dev - Ability to track non-sensitive diagnostic plugin data with the site admin's consent.

1.3.4 - 12/03/2020

  • This update to the plugin is for announcing the plugin compatibility with WooCommerce v4.0.0

1.3.3 - 22/02/2020

  • This update to the plugin is for announcing the plugin compatibility with WooCommerce v3.9.x

1.3.2 - 10/04/2019

  • Fix - Update notification was not coming for the plugin when updated from version 1.3 to 1.3.1. This is fixed now.

1.3.1 - 10/04/2019

  • Enhancement - The plugin is made compatible with the WPML plugin. The static strings and Dynamic strings can now be translated into different languages from the plugin.
  • Enhancement - A new page is added which will be shown when the plugin is installed and activated for the first time. This page allows users to activate the license key for future updates.
  • Fix - Data was not getting deleted from the database when the plugin is uninstalled. This is fixed now.


  • This is minor update to the plugin. This update just has changes pointing to the new server for automatic updates.

1.2.5 - 23/01/2019

  • Dev - Plugin URI updated.
  • Dev - Admin settings restyled and descriptions updated.
  • Dev - Code clean up.

1.2.4 - 26/10/2018

  • Add compatibility with Advanced Order Export For WooCommerce plugin

1.2.3 - 09/10/2018

  • Display fields on PDF Invoices & Packing Slips plugin

1.2.2 - 19/09/2018

  • Add 'Load Datepicker Style' option
  • Add 'Load Timepicker Style' option
  • Update Timepicker JS
  • Turn off autocomplete on timepicker, datepicker and weekpicker
  • Fix Datepicker, Timepicker and Weekpicker style

1.2.1 - 18/09/2018

  • Add color input compatibility with Opera and Safari

1.2.0 - 17/09/2018

  • Add color section on admin input fields options
  • Add option to allow typing or pasting the color manually
  • Update WC tested up to

1.1.9 - 10/08/2018

  • Fix maxlength attribute on textarea

1.1.8 - 01/08/2018

  • Fix PHP warnings
  • Fix file uploading when using multiple file inputs
  • Add "Smart Textarea" option, showing only the textarea excerpt on frontend and hovering it will make it display the full content

1.1.7 - 12/07/2018

  • Add multi select option for select field
  • Add multi checkbox option
  • Check if order and input fields exist before trying to delete file uploads
  • Improve help link for pattern attribute
  • Improve input sanitizing
  • Display multiple array value as comma separated string

1.1.6 - 18/05/2018

  • Remove slashes from the values

1.1.5 - 02/05/2018

  • Remove check for pro version

1.1.4 - 29/04/2018

  • Fix empty setting section on admin settings

1.1.3 - 28/04/2018

  • Add composer
  • Add new option to convert characters to uppercase version, when possible

1.1.2 - 18/04/2018

  • Dev - "WC tested up to" added to plugin header.

1.1.1 - 30/10/2017

  • Dev - WooCommerce v3.2 compatibility - Admin settings - select type options fixed.
  • Dev - WooCommerce v3.0 compatibility - "woocommerce_add_order_item_meta hook uses out of date data structures and function is deprecated..." notice fixed.
  • Fix - add_product_input_fields_to_order_item_meta() - Checking if product input fields values exist (fixes notice in log).
  • Dev - Saving settings array as main class property.

1.1.0 - 15/06/2017

  • Dev - WooCommerce 3.x.x compatibility - output_custom_input_fields_in_admin_order() - Using meta_exists() and get_meta() functions to access order items meta data.
  • Dev - WooCommerce 3.x.x compatibility - alg_get_frontend_product_input_fields() - Product ID (using get_id() function instead of accessing id object property directly).
  • Dev - Core - add_files_to_email_attachments() - Additional validation added.
  • Tweak - Plugin link updated from https://coder.fm to https://wpcodefactory.com.

1.0.1 - 28/03/2017

  • Dev - Language (POT) file added.
  • Dev - readme.txt updated (screenshots added etc.).
  • Tweak - http replaced with https in links to coder.fm.

1.0.0 - 28/03/2017

  • Initial Release.