# woocommerce-pos/1.10.18/includes/Payments/Checkout_State_Repository.php

WCPOS – Point of Sale (POS) plugin for WooCommerce, version 1.10.18. 56 lines.

- Page: https://pluginprobe.com/plugins/woocommerce-pos/1.10.18/code/includes/Payments/Checkout_State_Repository.php
- Raw: https://pluginprobe.com/plugins/woocommerce-pos/1.10.18/raw/includes/Payments/Checkout_State_Repository.php
- Modified: 2026-09-02T13:03: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.18/code/includes/Payments/Checkout_State_Repository.php#L10-L20`.

```php
<?php
/**
 * POS checkout state repository.
 *
 * @package WCPOS\WooCommercePOS
 */

namespace WCPOS\WooCommercePOS\Payments;

\defined( 'ABSPATH' ) || die;

/**
 * Repository for checkout state.
 */
class Checkout_State_Repository {
	/**
	 * Order meta key.
	 */
	private const META_KEY = '_wcpos_checkout_state';

	/**
	 * Persist checkout state on the order.
	 *
	 * @param int   $order_id Order ID.
	 * @param array $state    State payload.
	 */
	public function upsert( int $order_id, array $state ): void {
		$order = wc_get_order( $order_id );

		if ( ! $order ) {
			return;
		}

		$order->update_meta_data( self::META_KEY, $state );
		$order->save_meta_data();
		\WCPOS\WooCommercePOS\Sync\Order_Modified_Date::touch( $order_id );
	}

	/**
	 * Get checkout state for an order.
	 *
	 * @param int $order_id Order ID.
	 */
	public function get( int $order_id ): array {
		$order = wc_get_order( $order_id );

		if ( ! $order ) {
			return array();
		}

		$state = $order->get_meta( self::META_KEY, true );

		return is_array( $state ) ? $state : array();
	}
}

```
