'first_name', 'lastName' => 'last_name', 'address1' => 'address_1', 'address2' => 'address_2', ]; $skip = apply_filters( 'graphql_woocommerce_customer_address_input_mapping_skipped', [ 'overwrite' ] ); $type = 'empty_' . $type; $address = ! empty( $input['overwrite'] ) && true === $input['overwrite'] ? self::{$type}() : []; foreach ( $input as $input_field => $value ) { if ( in_array( $input_field, array_keys( $key_mapping ), true ) ) { $address[ $key_mapping[ $input_field ] ] = $value; } elseif ( in_array( $input_field, $skip, true ) ) { continue; } else { $address[ $input_field ] = $value; } } return $address; } /** * Returns default customer shipping address data * * @return array */ public static function empty_shipping() { return [ 'first_name' => '', 'last_name' => '', 'company' => '', 'address_1' => '', 'address_2' => '', 'city' => '', 'state' => '', 'postcode' => '', 'country' => '', 'phone' => '', ]; } /** * Returns default customer billing address data * * @return array */ public static function empty_billing() { return array_merge( self::empty_shipping(), [ 'email' => '' ] ); } /** * Processes Customer meta data input. * * @param \WC_Customer $customer Customer object. * @param array $inputs Incoming meta data. * * @return void */ public static function input_meta_data_mapping( $customer, $inputs ) { if ( is_array( $inputs ) ) { foreach ( $inputs as $meta ) { $customer->update_meta_data( $meta['key'], $meta['value'], isset( $meta['id'] ) ? $meta['id'] : '' ); } } } }