oont-contents/plugins/woocommerce-pdf-invoices-packing-slips/ubl/Handlers/Common/AdditionalDocumentReferenceHandler.php
2025-02-10 13:57:45 +01:00

46 lines
1.6 KiB
PHP

<?php
namespace WPO\IPS\UBL\Handlers\Common;
use WPO\IPS\UBL\Handlers\UblHandler;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class AdditionalDocumentReferenceHandler extends UblHandler {
public function handle( $data, $options = array() ) {
if ( $this->document->order_document && $this->document->order_document->exists() && $this->document->order_document->get_setting( 'include_encrypted_pdf', false, 'ubl' ) ) {
$additionalDocumentReference = array(
'name' => 'cac:AdditionalDocumentReference',
'value' => array(
array(
'name' => 'cbc:ID',
'value' => ! empty( $this->document->order_document->get_number() ) ? $this->document->order_document->get_number()->get_formatted() : '',
),
array(
'name' => 'cbc:DocumentType',
'value' => ! empty( $this->document->order_document->get_title() ) ? wpo_ips_ubl_sanitize_string( 'PDF ' . $this->document->order_document->get_title() ) : '',
),
array(
'name' => 'cac:Attachment',
'value' => array(
'name' => 'cbc:EmbeddedDocumentBinaryObject',
'value' => ! empty( $this->document->order_document->get_pdf() ) ? base64_encode( $this->document->order_document->get_pdf() ) : '',
'attributes' => array(
'mimeCode' => 'application/pdf',
'filename' => ! empty( $this->document->order_document->get_filename() ) ? $this->document->order_document->get_filename() : '',
),
),
),
),
);
$data[] = apply_filters( 'wpo_wc_ubl_handle_AdditionalDocumentReference', $additionalDocumentReference, $data, $options, $this );
}
return $data;
}
}