• Resolved sunilsingh2019

    (@sunilsingh2019)


    Hi Guys, I have created repeater field in checkout page. The checkout form is working fine for me but i am not able to save the field value in order page. If you add below code in function.php for testing.

    <?php 
    //Custom WooCommerce Checkout Fields based on Quantity
    add_action( 'woocommerce_before_order_notes', 'person_details' );
    
    function person_details($checkout) {
    
        global $woocommerce;
        $items = $woocommerce->cart->get_cart();
    
        $i = 1;
    
        foreach($items as $item => $values) { 
            $_product = $values['data']->post;
            $quantity = $values['quantity'];
            $x = 1;
    
            while ($x <= $quantity) {
             echo '<div class="Attendee-group"><h4>'.  __('<span class="attendee-title">Attendee ' . $x . ' - </span>' )  . $_product->post_title .'</h4>';
             
             //firstname
            woocommerce_form_field( 'attendee_product_title_' . $x, array(
                'type'          => 'hidden',
                'class'         => array('attendee form-row-first'),
                // 'label'         => __('Attendee product title '),
                'placeholder'   => __(''),
                'required' => true,
                'value'            => 'test',
                'default' =>  " $_product->post_title "
                ), $checkout->get_value( 'attendee_product_title_' . $x ) );
                
            woocommerce_form_field( 'attendee_first_name_' . $x, array(
                'type'          => 'text',
                'class'         => array('attendee form-row-first'),
                'label'         => __('First Name '),
                'placeholder'   => __(''),
                'required' => true,
                ), $checkout->get_value( 'attendee_first_name_' . $x ) );
            // lastname
            woocommerce_form_field( 'attendee_last_name_' . $x, array(
                'type'          => 'text',
                'class'         => array('attendee form-row-last'),
                'label'         => __('Last Name '),
                'placeholder'   => __(''),
                'required' => true,
                ), $checkout->get_value( 'attendee_last_name_' . $x ));
            //email
            woocommerce_form_field( 'attendee_email_' . $x, array(
                'type'          => 'email',
                'class'         => array('attendee form-row-wide'),
                'label'         => __('Email '),
                'placeholder'   => __(''),
                'required' => true,
                ), $checkout->get_value( 'attendee_email_' . $x ));
            
            //phone
            woocommerce_form_field( 'attendee_phone_' . $x, array(
                'type'          => 'text',
                'class'         => array('attendee form-row-wide'),
                'label'         => __('Phone '),
                'placeholder'   => __(''),
                'required' => true,
                ), $checkout->get_value( 'attendee_phone_' . $x ));
            //DOB
            woocommerce_form_field( 'attendee_dob_' . $x, array(
                'type'          => 'date',
                'class'         => array('attendee form-row-first'),
                'label'         => __('DOB '),
                'placeholder'   => __(''),
                'required' => true,
                ), $checkout->get_value( 'attendee_dob_' . $x ));
            //gender
            woocommerce_form_field( 'attendee_gender_' . $x, array(
                'type' => 'select',
                'class' => array('my-field-class form-row-last'),
                'label' => __('Gender'),
                'required' => true,
                'options' => array(
                'blank'  => __( '--'),
                'Male' => __( 'Male'),
                'Female' => __( 'Female'),
                'Others' => __( 'Others' )
                )
                ), $checkout->get_value( 'attendee_gender_' . $x ));
            //Address one 
            woocommerce_form_field( 'attendee_address_1_' . $x, array(
                'type'          => 'text',
                'class'         => array('attendee form-row-wide'),
                'label'         => __('Address '),
                'placeholder'   => __(''),
                'required' => true,
                ), $checkout->get_value( 'attendee_address_1_' . $x ));
            //Address 2
            woocommerce_form_field( 'attendee_address_2_' . $x, array(
                'type'          => 'text',
                'class'         => array('attendee form-row-wide'),
                'label'         => __('Apartment, Suite, etc. '),
                'placeholder'   => __(''),
                ), $checkout->get_value( 'attendee_address_2_' . $x ));
            //City
            woocommerce_form_field( 'attendee_city_' . $x, array(
                'type'          => 'text',
                'class'         => array('attendee form-row-wide address-field'),
                'label'         => __('Suburb/City '),
                'placeholder'   => __(''),
                ), $checkout->get_value( 'attendee_city_' . $x ));
            //State
            woocommerce_form_field( 'attendee_state_' . $x, array(
                'type' => 'select',
                'class' => array('attendee form-row-wide address-field'),
                'label' => __('State/Territory'),
                'required' => true,
                'options' => array(
                'blank'  => __( '--'),
                'Australian Capital Territory' => __( 'Australian Capital Territory'),
                'New South Wales' => __( 'New South Wales'),
                'Northern Territory' => __( 'Northern Territory' ),
                'Queensland' => __( 'Queensland' ),
                'Tasmania' => __( 'South Australia' ),
                'Northern Territory' => __( 'Tasmania' ),
                'Victoria' => __( 'Victoria' ),
                'Western Australia' => __( 'Western Australia' ),
                )
                ), $checkout->get_value( 'attendee_gender_' . $x ));
            //Passcode
            woocommerce_form_field( 'attendee_postcode_' . $x, array(
                'type'          => 'text',
                'class'         => array('attendee form-row-wide address-field'),
                'label'         => __('Postcode '),
                'placeholder'   => __(''),
                'required' => true,
                ), $checkout->get_value( 'attendee_postcode_' . $x ));
    
                echo '<div class="Attendee-group-funding-type"><h4>Funding Type*</h4>';  echo '</div>';
    
                woocommerce_form_field( '_funding_type_radio_'. $x, array(
                    'type' => 'radio',
                    'class' => array('funding-type-radio'),
                    'required' => 'required',
                    'options' => array(
                    'Self_managed' => __( 'Self-managed'),
                    'Plan_managed' => __( 'Plan-managed'),
                    'Ndia_managed' => __( 'NDIA-managed' ),
                    ),
                   // 'default'  => 'Self_managed',
    
                ), $checkout->get_value( '_funding_type_radio_' . $x ));
    
                echo '<div class=" funding-type-description"><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut               enim ad minim veniam, quis nostrud exercitation ullamco labori</p></div>';
    
              //  echo "<script>alert('message');</script>";
    
                //funding type radio ending
    
            echo '<div class="self_manage_funding_text Attendee-group">';
                
                 //self manage
                 echo '<div class="Attendee-group"><h4>Self-managed details for invoicing</h4></div>';
                 //firstname
                 woocommerce_form_field( 'self_managed_funding_type_attendee_first_name_' . $x, array(
                     'type'          => 'text',
                     'class'         => array('form-row-first'),
                     'label'         => __('First Name '),
                     'placeholder'   => __(''),
                     'required' => true,
                     ), $user, $checkout->get_value( 'self_managed_funding_type_attendee_first_name_' . $x ) );
                 // lastname
                 woocommerce_form_field( 'self_managed_funding_type_attendee_last_name_' . $x, array(
                     'type'          => 'text',
                     'class'         => array('form-row-last'),
                     'label'         => __('Last Name '),
                     'placeholder'   => __(''),
                     'required' => true,
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_last_name_' . $x ));
                 //email
                 woocommerce_form_field( 'self_managed_funding_type_attendee_email_' . $x, array(
                     'type'          => 'email',
                     'class'         => array('form-row-wide'),
                     'label'         => __('Email '),
                     'placeholder'   => __(''),
                     'required' => true,
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_email_' . $x ));
                 
                 //phone
                 woocommerce_form_field( 'self_managed_funding_type_attendee_phone_' . $x, array(
                     'type'          => 'text',
                     'class'         => array('form-row-wide'),
                     'label'         => __('Phone '),
                     'placeholder'   => __(''),
                     'required' => true,
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_phone_' . $x ));
                 //DOB
                 woocommerce_form_field( 'self_managed_funding_type_attendee_dob_' . $x, array(
                     'type'          => 'date',
                     'class'         => array('form-row-first'),
                     'label'         => __('DOB '),
                     'placeholder'   => __(''),
                     'required' => true,
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_dob_' . $x ));
                 //gender
                 woocommerce_form_field( 'self_managed_funding_type_attendee_gender_' . $x, array(
                     'type' => 'select',
                     'class' => array('form-row-last'),
                     'label' => __('Gender'),
                     'required' => true,
                     'options' => array(
                     'blank'  => __( '--'),
                     'Male' => __( 'Male'),
                     'Female' => __( 'Female'),
                     'Others' => __( 'Others' )
                     )
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_gender_' . $x ));
                 //Address one 
                 woocommerce_form_field( 'self_managed_funding_type_attendee_address_1_' . $x, array(
                     'type'          => 'text',
                     'class'         => array('form-row-wide'),
                     'label'         => __('Address '),
                     'placeholder'   => __(''),
                     'required' => true,
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_address_1_' . $x ));
                 //Address 2
                 woocommerce_form_field( 'self_managed_funding_type_attendee_address_2_' . $x, array(
                     'type'          => 'text',
                     'class'         => array('form-row-wide'),
                     'label'         => __('Apartment, Suite, etc. '),
                     'placeholder'   => __(''),
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_address_2_' . $x ));
                 //City
                 woocommerce_form_field( 'self_managed_funding_type_attendee_city_' . $x, array(
                     'type'          => 'text',
                     'class'         => array('form-row-wide address-field'),
                     'label'         => __('Suburb/City '),
                     'placeholder'   => __(''),
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_city_' . $x ));
                 //State
                 woocommerce_form_field( 'self_managed_funding_type_attendee_state_' . $x, array(
                     'type' => 'select',
                     'class' => array('form-row-wide address-field'),
                     'label' => __('State/Territory'),
                     'required' => true,
                     'options' => array(
                     'blank'  => __( '--'),
                     'Australian Capital Territory' => __( 'Australian Capital Territory'),
                     'New South Wales' => __( 'New South Wales'),
                     'Northern Territory' => __( 'Northern Territory' ),
                     'Queensland' => __( 'Queensland' ),
                     'Tasmania' => __( 'South Australia' ),
                     'Northern Territory' => __( 'Tasmania' ),
                     'Victoria' => __( 'Victoria' ),
                     'Western Australia' => __( 'Western Australia' ),
                     )
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_state_' . $x ));
                 //Passcode
                 woocommerce_form_field( 'self_managed_funding_type_attendee_postcode_' . $x, array(
                     'type'          => 'text',
                     'class'         => array('form-row-wide address-field'),
                     'label'         => __('Postcode '),
                     'placeholder'   => __(''),
                     'required' => true,
                     ), $checkout->get_value( 'self_managed_funding_type_attendee_postcode_' . $x ));
                         
             echo '</div>';
    
               //plan manage funding type
               echo '<div class="plan-managed-funding-text Attendee-group">';
               //self manage
               echo '<div class="plan-managed-funding-text Attendee-group"><h4>Plan Managed</h4></div>';
               //firstname
               woocommerce_form_field( 'plan_managed_funding_type_attendee_first_name_' . $x, array(
                   'type'          => 'text',
                   'class'         => array('plan-managed-funding-text form-row-first'),
                   'label'         => __('First Name '),
                   'placeholder'   => __(''),
                   'required' => true,
                   ), $user, $checkout->get_value( 'plan_managed_funding_type_attendee_first_name_' . $x ) );
               // lastname
               woocommerce_form_field( 'plan_managed_funding_type_attendee_last_name_' . $x, array(
                   'type'          => 'text',
                   'class'         => array('plan-managed-funding-text form-row-last'),
                   'label'         => __('Last Name '),
                   'placeholder'   => __(''),
                   'required' => true,
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_last_name_' . $x ));
               //email
               woocommerce_form_field( 'plan_managed_funding_type_attendee_email_' . $x, array(
                   'type'          => 'email',
                   'class'         => array('plan-managed-funding-text form-row-wide'),
                   'label'         => __('Email '),
                   'placeholder'   => __(''),
                   'required' => true,
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_email_' . $x ));
               
               //phone
               woocommerce_form_field( 'plan_managed_funding_type_attendee_phone_' . $x, array(
                   'type'          => 'text',
                   'class'         => array('plan-managed-funding-text form-row-wide'),
                   'label'         => __('Phone '),
                   'placeholder'   => __(''),
                   'required' => true,
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_phone_' . $x ));
               //DOB
               woocommerce_form_field( 'plan_managed_funding_type_attendee_dob_' . $x, array(
                   'type'          => 'date',
                   'class'         => array('atteplan-managed-funding-text form-row-first'),
                   'label'         => __('DOB '),
                   'placeholder'   => __(''),
                   'required' => true,
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_dob_' . $x ));
               //gender
               woocommerce_form_field( 'plan_managed_funding_type_attendee_gender_' . $x, array(
                   'type' => 'select',
                   'class' => array('plan-managed-funding-text form-row-last'),
                   'label' => __('Gender'),
                   'required' => true,
                   'options' => array(
                   'blank'  => __( '--'),
                   'Male' => __( 'Male'),
                   'Female' => __( 'Female'),
                   'Others' => __( 'Others' )
                   )
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_gender_' . $x ));
               //Address one 
               woocommerce_form_field( 'plan_managed_funding_type_attendee_address_1_' . $x, array(
                   'type'          => 'text',
                   'class'         => array('plan-managed-funding-text form-row-wide'),
                   'label'         => __('Address '),
                   'placeholder'   => __(''),
                   'required' => true,
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_address_1_' . $x ));
               //Address 2
               woocommerce_form_field( 'plan_managed_funding_type_attendee_address_2_' . $x, array(
                   'type'          => 'text',
                   'class'         => array('plan-managed-funding-text form-row-wide'),
                   'label'         => __('Apartment, Suite, etc. '),
                   'placeholder'   => __(''),
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_address_2_' . $x ));
               //City
               woocommerce_form_field( 'plan_managed_funding_type_attendee_city_' . $x, array(
                   'type'          => 'text',
                   'class'         => array('plan-managed-funding-text form-row-wide address-field'),
                   'label'         => __('Suburb/City '),
                   'placeholder'   => __(''),
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_city_' . $x ));
               //State
               woocommerce_form_field( 'plan_managed_funding_type_attendee_state_' . $x, array(
                   'type' => 'select',
                   'class' => array('plan-managed-funding-text form-row-wide address-field'),
                   'label' => __('State/Territory'),
                   'required' => true,
                   'options' => array(
                   'blank'  => __( '--'),
                   'Australian Capital Territory' => __( 'Australian Capital Territory'),
                   'New South Wales' => __( 'New South Wales'),
                   'Northern Territory' => __( 'Northern Territory' ),
                   'Queensland' => __( 'Queensland' ),
                   'Tasmania' => __( 'South Australia' ),
                   'Northern Territory' => __( 'Tasmania' ),
                   'Victoria' => __( 'Victoria' ),
                   'Western Australia' => __( 'Western Australia' ),
                   )
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_state_' . $x ));
               //Passcode
               woocommerce_form_field( 'plan_managed_funding_type_attendee_postcode_' . $x, array(
                   'type'          => 'text',
                   'class'         => array('plan-managed-funding-text form-row-wide address-field'),
                   'label'         => __('Postcode '),
                   'placeholder'   => __(''),
                   'required' => true,
                   ), $checkout->get_value( 'plan_managed_funding_type_attendee_postcode_' . $x ));
       
               
                 echo '</div>';
    
                 echo '<div class="ndia-managed-funding-text Attendee-group">';
                    //self manage
                    echo '<div class="ndia-managed-funding-text Attendee-group"><h4>NDIA-managed details </h4></div>';
                    //firstname
                    woocommerce_form_field( 'ndia_managed_funding_type_attendee_ndia_number_' . $x, array(
                        'type'          => 'text',
                        'class'         => array('ndia-managed-funding-text form-row-first'),
                        'label'         => __('NDIA Number (If applicable) '),
                        'placeholder'   => __(''),
                        ), $checkout->get_value( 'ndia_managed_funding_type_attendee_ndia_number_' . $x ) );
                 
                echo '</div>';
    
            echo '</div>';
    
            //funding type starting
    
         
            $x++;
        }
    
        $i++;
        } 
    
    }
    
    /**
     * Save value of fields
     */
     
    add_action('woocommerce_checkout_update_order_meta', 'customise_checkout_field_update_order_meta'); 
    function customise_checkout_field_update_order_meta($order_id) {
        global $woocommerce;
        $items = $woocommerce->cart->get_cart();
    
        $i = 1;
    
        foreach($items as $item => $values) { 
            $_product = $values['data']->post;
            $quantity = $values['quantity'];
            $x = 1;
    
            while ($x <= $quantity) {
    
            if (!empty($_POST['attendee_product_title_'.$x])) {
                update_post_meta($order_id, 'Tour Title of Attendee'.$x, sanitize_text_field($_POST['attendee_product_title_'.$x]) );
            }
            if (!empty($_POST['attendee_first_name_'.$x])) {
                update_post_meta($order_id, 'First Name of Attendee'.$x, sanitize_text_field($_POST['attendee_first_name_'.$x]) );
            }
            if (!empty($_POST['attendee_last_name_'.$x])) {
                update_post_meta($order_id, 'Last Name of Attendee'.$x, sanitize_text_field($_POST['attendee_last_name_'.$x]));
            }
            if (!empty($_POST['attendee_email_'.$x])) {
                update_post_meta($order_id, 'Email of Attendee'.$x, sanitize_text_field($_POST['attendee_email_'.$x]));
            }
            if (!empty($_POST['attendee_phone_'.$x])) {
                update_post_meta($order_id, 'Phone Number of Attendee'.$x, sanitize_text_field($_POST['attendee_phone_'.$x]));
            }
            if (!empty($_POST['attendee_dob_'.$x])) {
                update_post_meta($order_id, 'DOB of Attendee'.$x, sanitize_text_field($_POST['attendee_dob_'.$x]));
            }
            if (!empty($_POST['attendee_gender_'.$x])) {
                update_post_meta($order_id, 'Gender of Attendee'.$x, sanitize_text_field($_POST['attendee_gender_'.$x]));
            }
            if (!empty($_POST['attendee_address_1_'.$x])) {
                update_post_meta($order_id, 'Address 1 of Attendee'.$x, sanitize_text_field($_POST['attendee_address_1_'.$x]));
            }
            if (!empty($_POST['attendee_address_2_'.$x])) {
                update_post_meta($order_id, 'Address 2 of Attendee'.$x, sanitize_text_field($_POST['attendee_address_2_'.$x]));
            }
            if (!empty($_POST['attendee_city_'.$x])) {
                update_post_meta($order_id, 'City of Attendee'.$x, sanitize_text_field($_POST['attendee_city_'.$x]));
            }
            if (!empty($_POST['attendee_state_'.$x])) {
                update_post_meta($order_id, 'State of Attendee'.$x, sanitize_text_field($_POST['attendee_state_'.$x]));
            }
            if (!empty($_POST['attendee_postcode_'.$x])) {
                update_post_meta($order_id, 'Postcode of Attendee'.$x, sanitize_text_field($_POST['attendee_postcode_'.$x]));
            }
            if (!empty($_POST['_funding_type_radio_'.$x])) {
                update_post_meta($order_id, 'Funding Type of Attendee'.$x, sanitize_text_field($_POST['_funding_type_radio_'.$x]));
            }
    
    	    //self manage funding type start
            if (!empty($_POST['self_managed_funding_type_attendee_first_name_'.$x])) {
                update_post_meta($order_id, 'Self-Managed First Name of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_first_name_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_last_name_'.$x])) {
                update_post_meta($order_id, 'Self-Managed Last Name of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_last_name_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_email_'.$x])) {
                update_post_meta($order_id, 'Self-Managed Email of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_email_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_phone_'.$x])) {
                update_post_meta($order_id, 'Self-Managed Phone Number of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_phone_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_dob_'.$x])) {
                update_post_meta($order_id, 'Self-Managed DOB of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_dob_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_gender_'.$x])) {
                update_post_meta($order_id, 'Self-Managed Gender of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_gender_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_address_1_'.$x])) {
                update_post_meta($order_id, 'Self-Managed Address 1 of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_address_1_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_address_2_'.$x])) {
                update_post_meta($order_id, 'Self-Managed Address 2 of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_address_2_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_city_'.$x])) {
                update_post_meta($order_id, 'Self-Managed City of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_city_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_state_'.$x])) {
                update_post_meta($order_id, 'Self-Managed State of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_state_'.$x]));
            }
            if (!empty($_POST['self_managed_funding_type_attendee_postcode_'.$x])) {
                update_post_meta($order_id, 'Self-Managed Postcode of Attendee'.$x, sanitize_text_field($_POST['self_managed_funding_type_attendee_postcode_'.$x]));
            }
            
            //self manage funding type end
    
            //plan manage funding type start
    
            if (!empty($_POST['plan_managed_funding_type_attendee_first_name_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed First Name of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_first_name_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_last_name_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed Last Name of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_last_name_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_email_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed Email of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_email_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_phone_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed Phone Number of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_phone_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_dob_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed DOB of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_dob_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_gender_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed Gender of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_gender_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_address_1_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed Address 1 of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_address_1_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_address_2_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed Address 2 of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_address_2_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_city_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed City of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_city_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_state_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed State of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_state_'.$x]));
            }
            if (!empty($_POST['plan_managed_funding_type_attendee_postcode_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed Postcode of Attendee'.$x, sanitize_text_field($_POST['plan_managed_funding_type_attendee_postcode_'.$x]));
            }
    
            //end plan managed 
            
            // start ndia managed
    
            if (!empty($_POST['ndia_managed_funding_type_attendee_ndia_number_'.$x])) {
                update_post_meta($order_id, 'Plan-Managed First Name of Attendee'.$x, sanitize_text_field($_POST['ndia_managed_funding_type_attendee_ndia_number_'.$x]));
            }
            
         
            $x++;
        }
    
        $i++;
        } 
    
    }
    
    /**
     * Add fields to order emails
     **/
    
    add_action('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys');
    
    function my_custom_checkout_field_order_meta_keys( $keys ) {
    	global $woocommerce;
    $items = $woocommerce->cart->cart_contents_count;
    $x = 1;
    foreach(WC()->cart->get_cart() as $items => $values) { 
        $_product = $values['data']->post;
        $quantity = $values['quantity'];
        // $start_date = get_field('tour_start_date' , $_product);
        // $end_date = get_field('tour_end_date' , $_product);
        // $terms = get_the_terms( $_product, 'location' );
        $x = 1;
        
        while ($x <= $quantity) {
            echo '<div class="Attendee-group"><h4>'.  __('<span class="attendee-title">Attendee ' . $x . ' - </span>' )  . $_product->post_title .'</h4>';
                $keys[] = 'First Name of Attendee'.$x; 
                $keys[] = 'Last Name of Attendee'.$x;
                $keys[] = 'Funding Type of Attendee'.$x;
            echo '</div>';
    
            $x++;
        }
    
        $x++;
    
        } return $keys; 
    
     }
    
    //          $x++;
    //     }
    
    //     }
    //     return $keys; 
    
    // }
    
    // add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
    
    // function custom_woocommerce_email_order_meta_fields( $keys, $sent_to_admin, $order ) {
    //     $x = 0;
    // 	for($k=1; $k<= 50; $k++) {
    //         $x++;
    //     echo '<div class="ndia-managed-funding-text Attendee-group"><h3>Name of Attendee' .$x. '</h3>';
    //     $keys['attendee_first_name_'] = array(
    //         'label' => __( 'First of Attendee' ),
    //         'value' => get_post_meta( $order->id, 'attendee_first_name_', true ),
    //     );
    //     $keys['attendee_first_name_'] = array(
    //         'label' => __( 'Last of Attendee' ),
    //         'value' => get_post_meta( $order->id, 'attendee_last_name_', true ),
    //     );
    //     echo '</div>';
    //  }
    //     return $keys;
    // }
Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Support abhinava11n

    (@abhinava11n)

    Hi @sunilsingh2019 ,

    I understand you’re customizing the core checkout functionality with the code snippets you have shared.

    Please know that to test and implement custom codes, I recommend working with a developer as we may not be able to guide you with this.

    You can reach out to one of our vetted developers on our Customizations Page to test or implement this on your behalf.

    Have a good day!

    Hi @sunilsingh2019

    I can also recommend the WooCommerce Developer Resources Portal for resources on developing for WooCommerce.

    You can also visit the WooCommerce Facebook group or the #developers channel of the WooCommerce Community Slack. We’re lucky to have a great community of open-source developers for WooCommerce, and many of our developers hang out there, as well.

    This specific forum is more focused on the default WooCommerce core features.

    I’m going to mark this thread closed but feel free to create another thread if you have any questions related to core WooCommerce.

Viewing 2 replies - 1 through 2 (of 2 total)

The topic ‘Custom Checkout repeater’ is closed to new replies.