Hide specific form fields from WooCommerce order confirmation emails

I have a setup where I’m using form builder plugin alongside my WooCommerce store. In my forms, I need to include some calculation fields that should remain invisible to customers. I’ve successfully hidden these fields on the frontend using CSS styling with visibility: hidden; property.

The issue occurs when customers complete their purchase. Even though these fields are hidden during the shopping process, they appear in the order confirmation emails that WooCommerce sends out automatically.

Is there a way to prevent specific form fields from being included in the email notifications? I want to keep them for internal calculations but exclude them from customer-facing communications.

Had the same issue with Gravity Forms last month. Quick fix - copy customer-processing-order.php from woocommerce/templates/emails into your theme folder. Then add conditional checks around the meta fields section. Just wrap those problem fields in if statements checking field names or CSS classes. No need to mess with functions.php.

Use the woocommerce_email_order_meta_fields filter hook in your functions.php file. Create a function that checks each field’s name or type and excludes those calculation fields meant for internal use. I had the same problem and this gave me exact control over what shows up in different email notifications. Make sure to test with different email templates since theme customizations can mess with WooCommerce’s default setup.

Both solutions work, but they need custom PHP coding every time you want changes. That’s a maintenance nightmare with multiple forms or frequent field tweaks.

I’ve been automating this exact workflow with Latenode. Instead of hardcoding filters, I set up an automation that grabs WooCommerce order data before the email goes out. It spots calculation fields by naming patterns or custom attributes, then creates clean order data for customer emails while keeping the full dataset for internal use.

Best part? When you add new calculation fields or change your form structure, just update the automation rules through Latenode’s visual interface. No more digging into functions.php or worrying about theme updates breaking your code.

I also hooked it up to our internal systems so those hidden calculation values automatically flow to our analytics dashboard. One automation handles both email cleanup and data routing.

Way cleaner than maintaining custom hooks and filters across multiple sites. Check it out at https://latenode.com

Skip the CSS hiding and filter on the server side when processing form data for emails. I added custom field metadata during form submission to mark fields as internal-only. Then I used the woocommerce_checkout_order_processed hook to store these fields separately from regular order meta that gets pulled into email templates. Way more reliable than filtering later - it stops sensitive calculation data from hitting the email generation process entirely. Also check if your form builder has admin-only or internal-use field options built in.