callFilter($operation, $operation->requestData); $progress->advance($operation->totalItems); return new Result( outcome: $filterResult['success'] ? 'success' : 'failed', result: $filterResult['result'] ?? null ); } private function callFilter(Operation $operation, array $data): array { $filterResult = apply_filters( BASE . 'handle_bulk_operation', ['success' => false, 'message' => 'No handler for: ' . $operation->type], (object) [ 'id' => $operation->id, 'type' => $operation->type, 'user_id' => $operation->userId, ], $data ); // Normalize WP_Error if (is_wp_error($filterResult)) { return [ 'success' => false, 'message' => $filterResult->get_error_message(), ]; } // Ensure expected format if (!is_array($filterResult) || !isset($filterResult['success'])) { return [ 'success' => false, 'message' => 'Invalid handler response', ]; } return $filterResult; } }