PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.20
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.20
1.10.20 1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 All 164 releases
← All changes | includes/Templates/Receipt.php +16 -5 1.9.16 → 1.10.20 View file →
@@ -15,8 +15,10 @@
15 15 use WCPOS\WooCommercePOS\Services\Receipt_Data_Builder;
16 16 use WCPOS\WooCommercePOS\Services\Receipt_Renderer_Factory;
17 17 use WCPOS\WooCommercePOS\Services\Template_Pdf_Service;
18 18 use WCPOS\WooCommercePOS\Templates as TemplatesManager;
19 +use WCPOS\WooCommercePOS\Templates\Thermal\Html_Thermal_Emitter;
20 +use WCPOS\WooCommercePOS\Templates\Thermal\Thermal_Renderer;
19 21
20 22 /**
21 23 * Receipt class.
22 24 */
@@ -243,15 +245,24 @@
243 245 * that ignore the filter still print acceptably because template colours are
244 246 * print-safe (dark accent ink, near-white fills). Legacy PHP templates emit a
245 247 * full HTML document and own their print styling, so they render untouched.
246 248 *
247 - * @param array $custom_template Template metadata/content.
248 - * @param \WC_Abstract_Order|null $order Order object.
249 - * @param array $receipt_data Canonical receipt payload.
249 + * @param array $custom_template Template metadata/content.
250 + * @param \WC_Abstract_Order $order Order object.
251 + * @param array $receipt_data Canonical receipt payload.
250 252 */
251 - private function render_custom_template( array $custom_template, ?\WC_Abstract_Order $order, array $receipt_data ): void {
253 + private function render_custom_template( array $custom_template, \WC_Abstract_Order $order, array $receipt_data ): void {
252 254 $template_engine = $this->get_template_engine( $custom_template );
253 - $renderer = ( new Receipt_Renderer_Factory() )->create( $template_engine );
255 + if ( 'thermal' === $template_engine ) {
256 + $ast = ( new Thermal_Renderer() )->build_ast( $custom_template, $order, $receipt_data );
257 + $thermal_html = ( new Html_Thermal_Emitter() )->emit( $ast );
258 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- The emitter escapes every dynamic value.
259 + echo $thermal_html;
260 +
261 + return;
262 + }
263 +
264 + $renderer = ( new Receipt_Renderer_Factory() )->create( $template_engine );
254 265
255 266 if ( 'logicless' !== $template_engine ) {
256 267 $renderer->render( $custom_template, $order, $receipt_data );
257 268