get_type() . '-feed.' . $this->get_extension(); } /** * Check if a product has all required fields for this feed. * * @param array $product_data Normalized product data. * * @return array{valid: bool, missing: array} Validation result. */ public function validate_product( array $product_data ): array { $missing = array(); foreach ( $this->get_required_fields() as $field ) { if ( empty( $product_data[ $field ] ) ) { $missing[] = $field; } } return array( 'valid' => empty( $missing ), 'missing' => $missing, ); } /** * Filter products to only those with required fields. * * @param array $products Array of normalized product data. * * @return array Filtered products. */ protected function filter_valid_products( array $products ): array { return array_filter( $products, function ( array $product ): bool { return $this->validate_product( $product )['valid']; } ); } }