# woocommerce-pos/1.10.6/includes/Services/Receipt_Output_Adapter_Factory.php

WCPOS – Point of Sale (POS) plugin for WooCommerce, version 1.10.6. 51 lines.

- Page: https://pluginprobe.com/plugins/woocommerce-pos/1.10.6/code/includes/Services/Receipt_Output_Adapter_Factory.php
- Raw: https://pluginprobe.com/plugins/woocommerce-pos/1.10.6/raw/includes/Services/Receipt_Output_Adapter_Factory.php
- Modified: 2026-08-25T07:52:20+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.6/code/includes/Services/Receipt_Output_Adapter_Factory.php#L10-L20`.

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

namespace WCPOS\WooCommercePOS\Services;

use InvalidArgumentException;
use WCPOS\WooCommercePOS\Interfaces\Receipt_Output_Adapter_Interface;
use WCPOS\WooCommercePOS\Templates\Adapters\Cpcl_Output_Adapter;
use WCPOS\WooCommercePOS\Templates\Adapters\Epos_Xml_Output_Adapter;
use WCPOS\WooCommercePOS\Templates\Adapters\Escpos_Output_Adapter;
use WCPOS\WooCommercePOS\Templates\Adapters\Html_Output_Adapter;
use WCPOS\WooCommercePOS\Templates\Adapters\Tspl_Output_Adapter;
use WCPOS\WooCommercePOS\Templates\Adapters\Zpl_Output_Adapter;

/**
 * Receipt_Output_Adapter_Factory class.
 */
class Receipt_Output_Adapter_Factory {
	/**
	 * Create output adapter by type.
	 *
	 * @param string $output_type Output type.
	 *
	 * @throws InvalidArgumentException If output type is unsupported.
	 *
	 * @return Receipt_Output_Adapter_Interface
	 */
	public function create( string $output_type ): Receipt_Output_Adapter_Interface {
		switch ( $output_type ) {
			case 'html':
				return new Html_Output_Adapter();
			case 'escpos':
				return new Escpos_Output_Adapter();
			case 'epos-xml':
				return new Epos_Xml_Output_Adapter();
			case 'zpl':
				return new Zpl_Output_Adapter();
			case 'cpcl':
				return new Cpcl_Output_Adapter();
			case 'tspl':
				return new Tspl_Output_Adapter();
			default:
				throw new InvalidArgumentException( 'Unsupported receipt output type: ' . esc_html( $output_type ) );
		}
	}
}

```
