get_meta( $key ); if ( ! empty( $value ) ) { return $value; } } return ''; } private function fiscal_data( $order ) { $fiscal_data = []; foreach ( [ 'fiscal_regime', 'fiscal_zip_code', 'cfdi_use' ] as $key ) { $value = $this->first_meta( $order, [ '_wc_other/alegra/' . $key, 'alegra/' . $key, 'alegra_' . $key, ] ); if ( ! empty( $value ) ) { $fiscal_data[ $key ] = $value; } } return $fiscal_data; } public function inject_alegra_metadata( $response, $order, $request ) { $doc_type = $this->first_meta( $order, [ '_wc_other/alegra/document_type', 'alegra/document_type', 'alegra_document_type', ] ); $doc_number = $this->first_meta( $order, [ '_wc_other/alegra/document_number', 'alegra/document_number', 'alegra_document_number', ] ); if ( ! empty( $doc_number ) && strtoupper( trim( (string) $doc_type ) ) === 'NATIONAL' && \Alegra\WooCommerce\Checkout\MexicoFiscalFields::is_enabled() ) { $doc_number = \Alegra\WooCommerce\Checkout\MexicoFiscalFields::normalize_rfc( $doc_number ); } if ( ! empty( $doc_number ) ) { $response->data['alegra_billing'] = array_merge( [ 'document_type' => $doc_type, 'document_number' => $doc_number, ], $this->fiscal_data( $order ) ); } return $response; } }