# woocommerce-pos/1.10.13/includes/Services/Receipt_Renderer_Factory.php

WCPOS – Point of Sale (POS) plugin for WooCommerce, version 1.10.13. 41 lines.

- Page: https://pluginprobe.com/plugins/woocommerce-pos/1.10.13/code/includes/Services/Receipt_Renderer_Factory.php
- Raw: https://pluginprobe.com/plugins/woocommerce-pos/1.10.13/raw/includes/Services/Receipt_Renderer_Factory.php
- Modified: 2026-08-04T14:21:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/woocommerce-pos/1.10.13/code/includes/Services/Receipt_Renderer_Factory.php#L10-L20`.

```php
<?php
/**
 * Receipt renderer factory.
 *
 * @package WCPOS\WooCommercePOS\Services
 */

namespace WCPOS\WooCommercePOS\Services;

use WCPOS\WooCommercePOS\Interfaces\Receipt_Renderer_Interface;
use WCPOS\WooCommercePOS\Templates\Renderers\Legacy_Php_Renderer;
use WCPOS\WooCommercePOS\Templates\Renderers\Logicless_Renderer;
use WCPOS\WooCommercePOS\Templates\Renderers\Thermal_Html_Renderer;

/**
 * Receipt_Renderer_Factory class.
 */
class Receipt_Renderer_Factory {
	/**
	 * Create renderer by engine value.
	 *
	 * @param string $engine Template engine.
	 *
	 * @return Receipt_Renderer_Interface
	 */
	public function create( string $engine ): Receipt_Renderer_Interface {
		switch ( $engine ) {
			case 'logicless':
				return new Logicless_Renderer();
			case 'thermal':
				// Thermal content is stored raw (kses-exempt), so it must render
				// through the thermal pipeline — never the PHP-executing legacy
				// renderer, which would treat the content as executable PHP.
				return new Thermal_Html_Renderer();
			case 'legacy-php':
			default:
				return new Legacy_Php_Renderer();
		}
	}
}

```
