Automattic\WooCommerce\Blocks\Domain\Services
CheckoutFieldsFrontend::edit_address_fields()
Adds additional address fields to the My Account edit address form.
Method of the class: CheckoutFieldsFrontend{}
No Hooks.
Return
Array
. Updated address fields.
Usage
$CheckoutFieldsFrontend = new CheckoutFieldsFrontend(); $CheckoutFieldsFrontend->edit_address_fields( $address, $address_type );
- $address(array) (required)
- Address fields.
- $address_type(string) (required)
- Type of address (billing or shipping).
CheckoutFieldsFrontend::edit_address_fields() CheckoutFieldsFrontend::edit address fields code WC 9.8.1
public function edit_address_fields( $address, $address_type ) { $customer = new WC_Customer( get_current_user_id() ); if ( Features::is_enabled( 'experimental-blocks' ) ) { $document_object = new DocumentObject(); $document_object->set_customer( $customer ); $document_object->set_context( $address_type . '_address' ); $fields = $this->checkout_fields_controller->get_contextual_fields_for_location( 'address', $document_object ); } else { $fields = $this->checkout_fields_controller->get_fields_for_location( 'address' ); } foreach ( $fields as $key => $field ) { $field_key = CheckoutFields::get_group_key( $address_type ) . $key; $address[ $field_key ] = $field; $address[ $field_key ]['value'] = $this->checkout_fields_controller->get_field_from_object( $key, $customer, $address_type ); if ( 'select' === $field['type'] ) { $address[ $field_key ]['options'] = array_column( $field['options'], 'label', 'value' ); // If a placeholder is set, add a placeholder option if it doesn't exist already. if ( ! empty( $address[ $field_key ]['placeholder'] ) && ! array_key_exists( '', $address[ $field_key ]['options'] ) ) { $address[ $field_key ]['options'] = array( '' => $address[ $field_key ]['placeholder'] ) + $address[ $field_key ]['options']; } } if ( 'checkbox' === $field['type'] ) { $address[ $field_key ]['checked_value'] = '1'; $address[ $field_key ]['unchecked_value'] = '0'; } } return $address; }