Title: Missing validate-required CSS class breaks Stripe payment method creation
Last modified: August 26, 2026

---

# Missing validate-required CSS class breaks Stripe payment method creation

 *  [xavier nuel](https://wordpress.org/support/users/xavier-nuel/)
 * (@xavier-nuel)
 * [1 week, 6 days ago](https://wordpress.org/support/topic/missing-validate-required-css-class-breaks-stripe-payment-method-creation/)
 * Custom checkout fields of type `radio`, `select`, `multicheckbox`, `multiselect`
   and `file` rendered by this plugin are missing the `validate-required` CSS class
   on their wrapper element when marked as required, even though the field is correctly
   flagged `required => true` in the PHP field definition.
 * The cause is in `lib/view/frontend/class-fields-filter.php`, method `custom_field()`:
 *     ```wp-block-code
       if ( $args['required'] ) {
           // $args['class'][] = 'validate-required';
           $required = '&nbsp;<abbr class="required" title="' . esc_attr__( 'required', 'woocommerce-checkout-manager' ) . '">*</abbr>';
       }
       ```
   
 * The line that adds the `validate-required` class to `$args['class']` is commented
   out. As a result, the field visually shows a required asterisk, but the rendered`
   <p class="form-row ...">` wrapper never receives `validate-required`.
 * This class is the standard convention WooCommerce core (and other plugins) use
   client-side to detect empty required fields during checkout validation.
 * **Impact:**
 * This went unnoticed for a long time because it only affected the visual “empty
   required field” highlighting for these field types. However, WooCommerce Gateway
   Stripe 10.9.0 (released 2026-08-17) added stricter client-side validation of 
   required billing fields before creating/confirming the Stripe payment intent (
   see their changelog: “Validate customer details against required billing fields
   from checkout before sending to Stripe”, “Prevent unnecessary Stripe payment 
   method creation when shortcode checkout has empty required fields”).
 * Because of the missing `validate-required` class, this new Stripe logic gets 
   confused for sites that have at least one required `radio`/`select`/`multicheckbox`/`
   multiselect`/`file` field added via this plugin. The practical symptom: **checkout
   fails on every single order paid by Stripe (card)**, with the WooCommerce Stripe
   log showing:
 *     ```wp-block-code
       The information for creating and confirming the intent is missing the following data: payment_method.
       ```
   
 * i.e. the checkout form submits to the server, but the client-side Stripe payment
   method (`pm_xxx`) was never attached before submission.
 * **Steps to reproduce:**
    1. Add a required custom billing field of type “Multiple checkbox” (or radio/select/
       multiselect/file) via WooCommerce Checkout Manager.
    2. Enable WooCommerce Gateway Stripe 10.9.0+ with the credit card (UPE) payment
       method.
    3. Go through checkout and pay by card.
    4. Payment fails; WooCommerce > Status > Logs > `woocommerce-gateway-stripe` shows
       the “missing payment_method” error above.
    5. Disabling WooCommerce Checkout Manager, or removing the “required” flag from
       the affected field, makes checkout succeed again.
 * **Suggested fix:**
 * Uncomment the line in `class-fields-filter.php`:
 *     ```wp-block-code
       if ( $args['required'] ) {
           $args['class'][] = 'validate-required';
           $required = '&nbsp;<abbr class="required" title="' . esc_attr__( 'required', 'woocommerce-checkout-manager' ) . '">*</abbr>';
       }
       ```
   
 * so the rendered markup matches what the field definition already declares.

Viewing 1 replies (of 1 total)

 *  Plugin Support [jmatiasmastro](https://wordpress.org/support/users/jmatiasmastro/)
 * (@jmatiasmastro)
 * [6 days, 2 hours ago](https://wordpress.org/support/topic/missing-validate-required-css-class-breaks-stripe-payment-method-creation/#post-19009654)
 * [@xavier-nuel](https://wordpress.org/support/users/xavier-nuel/) Hi mate,
 * In the meantime, if this is blocking a live store, the temporary workarounds 
   are: remove the “required” flag from the affected field type, or apply the one-
   line change you suggested.
 * So we can prioritize this and notify you the moment the patched version ships,
   would you mind opening a ticket at [https://urbiport.freshdesk.com/](https://urbiport.freshdesk.com/)?
   We’ll follow up with you directly there.
   Best regards, QuadLayers Support Team.

Viewing 1 replies (of 1 total)

You must be [logged in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fmissing-validate-required-css-class-breaks-stripe-payment-method-creation%2F%3Foutput_format%3Dmd&locale=en_US)
to reply to this topic.

 * ![](https://ps.w.org/woocommerce-checkout-manager/assets/icon-256x256.jpg?rev
   =2911736)
 * [Checkout Field Manager (Checkout Manager) for WooCommerce](https://wordpress.org/plugins/woocommerce-checkout-manager/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/woocommerce-checkout-manager/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/woocommerce-checkout-manager/)
 * [Active Topics](https://wordpress.org/support/plugin/woocommerce-checkout-manager/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/woocommerce-checkout-manager/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/woocommerce-checkout-manager/reviews/)

 * 1 reply
 * 2 participants
 * Last reply from: [jmatiasmastro](https://wordpress.org/support/users/jmatiasmastro/)
 * Last activity: [6 days, 2 hours ago](https://wordpress.org/support/topic/missing-validate-required-css-class-breaks-stripe-payment-method-creation/#post-19009654)
 * Status: not resolved