File "class-wc-rest-connect-shipping-label-print-controller.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/woocommerce-services/classes/class-wc-rest-connect-shipping-label-print-controller.php
File size: 2.12 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( class_exists( 'WC_REST_Connect_Shipping_Label_Print_Controller' ) ) {
return;
}
class WC_REST_Connect_Shipping_Label_Print_Controller extends WC_REST_Connect_Base_Controller {
protected $rest_base = 'connect/label/print';
public function get( $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'] );
$label_ids = ! empty( $raw_params['label_id_csv'] ) ? explode( ',', $raw_params['label_id_csv'] ) : array();
$n_label_ids = count( $label_ids );
$captions = ! empty( $raw_params['caption_csv'] ) ? explode( ',', $raw_params['caption_csv'] ) : array();
$n_captions = count( $captions );
// 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-services' );
$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) $label_ids[ $i ];
if ( $n_captions ) {
$params['labels'][ $i ]['caption'] = urldecode( $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;
}
if ( isset( $raw_params['json'] ) && $raw_params['json'] ) {
return array(
'mimeType' => $raw_response['headers']['content-type'],
'b64Content' => base64_encode( $raw_response['body'] ),
'success' => true,
);
} else {
header( 'content-type: ' . $raw_response['headers']['content-type'] );
echo $raw_response['body']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
die();
}
}
}