HEX
Server: Apache/2
System: Linux bq-e705.pointdnshere.com 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64
User: wellmix (1103)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/wellmix/public_html/wp-content/plugins/pymntpl-paypal-woocommerce/src/Utilities/OrderLock.php
<?php

namespace PaymentPlugins\WooCommerce\PPCP\Utilities;


class OrderLock {

	const KEY = 'wc_ppcp_order_lock_';

	/**
	 * Sets a lock on the order using transients
	 *
	 * @param $order
	 */
	public static function set_order_lock( $order, $time = null ) {
		$time = is_null( $time ) ? 2 * MINUTE_IN_SECONDS : $time;
		if ( $order instanceof \WC_Order ) {
			$id = $order->get_id();
		} else {
			$id = $order;
		}
		set_transient( self::KEY . $id, $id, $time );
	}

	/**
	 * Releases the order lock
	 *
	 * @param $order
	 */
	public static function release_order_lock( $order ) {
		if ( $order instanceof \WC_Order ) {
			$id = $order->get_id();
		} else {
			$id = $order;
		}
		delete_transient( self::KEY . $id );
	}

	/**
	 * Returns true if the order has a lock
	 *
	 * @param $order
	 *
	 * @return bool
	 */
	public static function has_order_lock( $order ) {
		if ( $order instanceof \WC_Order ) {
			$id = $order->get_id();
		} else {
			$id = $order;
		}

		return get_transient( self::KEY . $id ) !== false;
	}

}