WooCommerce Custom Fields — Field Forge Product Customization
Download Log in
Field Forge Integrations

Field Forge + WooCommerce — Product Custom Fields

Field Forge integrates with WooCommerce to let you add custom fields to products, variations, orders, and customers. Every WooCommerce content type is supported via location rules, and custom fields appear natively in the product editor alongside WooCommerce’s built-in fields. Perfect for custom product metadata (specifications, warranty info, custom attributes, internal SKUs, supplier data, etc.).


What Field Forge adds to WooCommerce

WooCommerce has its own product custom fields (product attributes, custom meta), but they’re limited to simple key-value pairs. For anything more complex — structured specifications, multi-image galleries, repeating feature lists, product-specific custom content blocks — you need a custom fields plugin.

Field Forge adds:

  • Field groups on any product type (simple, variable, grouped, external, and custom types)
  • Nested fields via repeaters and flexible content (e.g., “Product Specifications” repeater with nested sub-fields)
  • Image and file fields for extra product media
  • Relational fields for linking products to content (related products, tutorials, reviews)
  • Rich text (WYSIWYG) for custom product descriptions
  • Custom fields on variations for variation-specific metadata
  • Order meta fields for custom data stored on orders

Location rules for WooCommerce

All products

Post type is equal to "product"

Applies to every WooCommerce product.

Products in specific category

Post type is equal to "product"
AND
Post taxonomy is equal to "product_cat:electronics"

Only products in the Electronics category get this field group.

Simple products only

Post type is equal to "product"
AND
Post format is equal to "simple"

Variations

Post type is equal to "product_variation"

Adds fields to individual variation edit screens.

Orders

Post type is equal to "shop_order"

Adds custom fields to order edit screens (for internal notes, fulfillment status, etc.).

Customer user fields

Current user role is equal to "customer"

Adds custom fields to customer user profiles.


Example field groups for WooCommerce

Product Specifications

A repeater field for structured specifications:

Field Group: Product Specifications
Location: Post type is equal to "product"

Fields:
  - Specifications (Repeater)
      - Spec Name (Text, required)
      - Spec Value (Text, required)
      - Unit (Text, optional — e.g., "kg", "GB", "MHz")

Render on the frontend:

<dl class="product-specs">
    <?php if (have_rows('specifications')) : ?>
        <?php while (have_rows('specifications')) : the_row(); ?>
            <dt><?php the_sub_field('spec_name'); ?></dt>
            <dd>
                <?php the_sub_field('spec_value'); ?>
                <?php if ($unit = get_sub_field('unit')) : ?>
                    <span><?php echo esc_html($unit); ?></span>
                <?php endif; ?>
            </dd>
        <?php endwhile; ?>
    <?php endif; ?>
</dl>

Product Downloads and Resources

Fields:
  - Documentation (File, multiple)
  - Installation Video (oEmbed)
  - Warranty PDF (File)
  - Product Manual (File)

Useful for tech products or anything with extensive documentation.

Custom Product Attributes (beyond WooCommerce’s built-in)

Fields:
  - Warranty Period (Select: 1 year, 2 years, 5 years, Lifetime)
  - Shipping Class Override (Select from custom options)
  - Supplier Code (Text — internal use only)
  - Discontinuation Date (Date Picker)

Related Products (with more detail than WooCommerce defaults)

Fields:
  - Related Products (Relationship, filtered to product post type)
  - Upsell Reason (Textarea — why this pairing works)

Variation-level custom fields

WooCommerce variations can have custom fields too. Create a field group with location:

Post type is equal to "product_variation"

And add fields that differ between variations (e.g., “Variation-specific weight,” “Bulk price break,” “Minimum order quantity for this variation”).

Access in templates via get_field('field_name', $variation_id).


Custom fields on orders

For fulfillment workflows, custom order fields are useful:

Field Group: Order Fulfillment
Location: Post type is equal to "shop_order"

Fields:
  - Fulfillment Status (Select: Pending, Processing, Shipped, Delivered)
  - Tracking Number (Text)
  - Estimated Delivery Date (Date Picker)
  - Internal Notes (Textarea — visible only to admins)
  - Courier (Select: UPS, FedEx, DHL, Local Courier)

These appear on the order edit screen in WooCommerce admin. Useful for teams managing fulfillment manually or integrating with shipping services.


Customer profile custom fields

Add fields to customer user profiles:

Field Group: Customer Profile Extended
Location: Current user role is equal to "customer"

Fields:
  - Preferred Contact Method (Radio: Email, Phone, SMS)
  - Delivery Preferences (Checkbox: Leave at door, Signature required, Call before delivery)
  - Customer Notes (Textarea — internal)
  - VIP Customer (True/False)
  - Birthday (Date Picker — for birthday promotions)

Access via get_field('field_name', 'user_' . $user_id).


Performance on large catalogs

For stores with 1,000+ products, the N+1 query problem hits hard. Every product page that displays custom fields fires individual meta queries. A WooCommerce shop page listing 30 products with 10 custom fields each = 300+ meta queries per pageview.

Field Forge’s custom table storage eliminates this. Product custom field queries are batched into single SQL queries. Shop pages load 3–10x faster on large catalogs.

This matters especially for:

  • Product archive pages
  • Category pages with filters
  • Search results
  • REST API endpoints for headless storefronts

Headless WooCommerce with custom fields

For headless WooCommerce setups (using Next.js, Astro, etc. for the storefront), Field Forge provides:

  • TypeScript types for every product custom field group
  • GraphQL integration via WPGraphQL (if installed)
  • REST API exposure of custom fields on WooCommerce endpoints

This means your headless frontend gets typed product data including custom fields without hand-writing type definitions.

TypeScript generation → · GraphQL generation →


Migrating from ACF + WooCommerce

If you’re currently using ACF for WooCommerce custom fields, migration is straightforward:

  1. Install Field Forge alongside ACF
  2. Run the ACF importer — product field groups and all values migrate
  3. ACF code in your theme keeps working via the compat layer
  4. Deactivate ACF
  5. Your product templates render identically, but queries run faster

Your custom get_field('spec_name', $product_id) calls continue to work. Your have_rows('specifications') loops continue to work. No theme rewrites needed.


Ready to add custom fields to WooCommerce?

Get Field Forge — from $35/year →

WooCommerce integration is included in every plan — free and paid. (Repeaters, flexible content, and the TypeScript/GraphQL tooling shown above are part of the paid plans.)

Forge AI Assistant Online

Hi! I'm the Field Forge AI assistant. Ask me anything about the plugin — setup, features, troubleshooting, or development.

Just now
Powered by Forge AI · Browse docs