Gets a PDF with the requested shipping labels in it
public get_labels_print_pdf ( $request ) : object | WP_Error | ||
$request | ||
return | object | WP_Error |
public function get_item($request) { $raw_params = $request->get_params(); $params = array(); $params['paper_size'] = $raw_params['paper_size']; $this->settings_store->set_preferred_paper_size($params['paper_size']); $n_label_ids = isset($raw_params['label_ids']) ? count($raw_params['label_ids']) : 0; $n_captions = isset($raw_params['captions']) ? count($raw_params['captions']) : 0; // Either there are the same number of captions as labels, or no captions at all if (!$n_label_ids || $n_captions && $n_captions !== $n_label_ids) { $message = __('Invalid PDF request.', 'woocommerce'); $error = new WP_Error('invalid_pdf_request', $message, array('message' => $message, 'status' => 400)); $this->logger->log($error, __CLASS__); return $error; } $params['labels'] = array(); for ($i = 0; $i < $n_label_ids; $i++) { $params['labels'][$i] = array(); $params['labels'][$i]['label_id'] = (int) $raw_params['label_ids'][$i]; if ($n_captions) { $params['labels'][$i]['caption'] = $raw_params['captions'][$i]; } } $raw_response = $this->api_client->get_labels_print_pdf($params); if (is_wp_error($raw_response)) { $this->logger->log($raw_response, __CLASS__); return $raw_response; } header('content-type: ' . $raw_response['headers']['content-type']); echo $raw_response['body']; die; }