php - Woocommerce rearrange checkout fields -
i have rearranged order fields on woocommerce checkout page function:
//reorder checkout add_filter( 'woocommerce_checkout_fields', 'reorder_woo_fields' ); function reorder_woo_fields( $fields ) { $fields2['billing']['billing_first_name'] = $fields['billing'] ['billing_first_name']; $fields2['billing']['billing_last_name'] = $fields['billing']['billing_last_name']; $fields2['billing']['billing_company'] = $fields['billing']['billing_company']; $fields2['billing']['billing_address_1'] = $fields['billing']['billing_address_1']; $fields2['billing']['billing_city'] = $fields['billing']['billing_city']; $fields2['billing']['billing_postcode'] = $fields['billing']['billing_postcode']; $fields2['billing']['billing_country'] = $fields['billing']['billing_country']; $fields2['billing']['billing_email'] = $fields['billing']['billing_email']; $fields2['billing']['billing_phone'] = $fields['billing']['billing_phone']; $fields2['shipping']['shipping_first_name'] = $fields['shipping']['shipping_first_name']; $fields2['shipping']['shipping_last_name'] = $fields['shipping']['shipping_last_name']; $fields2['shipping']['shipping_company'] = $fields['shipping']['shipping_company']; $fields2['shipping']['shipping_address_1'] = $fields['shipping']['shipping_address_1']; $fields2['shipping']['shipping_city'] = $fields['shipping']['shipping_city']; $fields2['shipping']['shipping_postcode'] = $fields['shipping']['shipping_postcode']; $fields2['shipping']['shipping_country'] = $fields['shipping']['shipping_country']; // add full width classes , clears adjustments $fields2['billing']['billing_first_name'] = array( 'label' => __('first name', 'woocommerce'), 'class' => array('form-row-wide'), 'clear' => true, 'required' => true ); $fields2['billing']['billing_last_name'] = array( 'label' => __('last name', 'woocommerce'), 'class' => array('form-row-wide'), 'clear' => true, 'required' => true ); $fields2['shipping']['shipping_first_name'] = array( 'label' => __('first name', 'woocommerce'), 'class' => array('form-row-wide'), 'clear' => true, 'required' => true ); $fields2['shipping']['shipping_last_name'] = array( 'label' => __('last name', 'woocommerce'), 'class' => array('form-row-wide'), 'clear' => true, 'required' => true ); return $fields2; }
and works, when enabling debug mode getting error on chekcout page: notice: undefined index: order in /html/wordpress/wp-content/plugins/woocommerce/templates/checkout/form-shipping.php on line 58
warning: invalid argument supplied foreach() in /html/wordpress/wp-content/plugins/woocommerce/templates/checkout/form-shipping.php on line 58
can aynone make sense of this?
you can try below code reorder checkout page fields. can chnage order of fields in array.
// billing fields add_filter("woocommerce_checkout_fields", "new_order_fields"); function new_order_fields($fields) { $order = array( "billing_company", "billing_first_name", "billing_last_name", "billing_address_1", "billing_address_2", "billing_postcode", "billing_country", "billing_email", "billing_phone" ); foreach( $order $field ) { $ordered_fields[$field] = $fields["billing"][$field]; } $fields["billing"] = $ordered_fields; return $fields; } // shipping fields add_filter("woocommerce_checkout_fields", "new_shiping_order_fields"); function new_shiping_order_fields($fields) { $order = array( "shipping_city", "shipping_postcode", "shipping_country", "shipping_first_name", "shipping_last_name", "shipping_company", "shipping_address_1", "shipping_address_2" ); foreach( $order $field ) { $ordered_fields[$field] = $fields["shipping"][$field]; } $fields["shipping"] = $ordered_fields; return $fields; }
Comments
Post a Comment