Files
carpseeds.pl/wp-content/plugins/woocommerce-gateway-paypal-express-checkout/includes/class-wc-gateway-ppec-session-data.php
2024-07-15 11:28:08 +02:00

99 lines
1.9 KiB
PHP

<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
/**
* PayPal Checkout session wrapper.
*/
class WC_Gateway_PPEC_Session_Data {
/**
* Source where the session is set from. Valid value is either 'cart' or
* 'order'.
*
* If source is 'cart' then buyer starts it from cart page, otherwise it
* starts from checkout page or flow that has order created (e.g. from cart
* then the process_payment encountered error).
*
* @var string
*/
public $source;
/**
* WooCommerce Order ID.
*
* If self::$source is 'order', this must be set to order ID.
*
* @var int
*/
public $order_id;
/**
* Whether the buyer has returned from PayPal.
*
* If checkout_completed is true PPEC should be selected as the payment
* method.
*
* @var bool
*/
public $checkout_completed = false;
/**
* Express checkout token.
*
* @var string
*/
public $token;
/**
* The buyer's payer ID.
*
* Retrieved after buyer comes back from PayPal in-context dialog.
*
* @var string
*/
public $payer_id;
/**
* How long the token will expires (in seconds).
*
* @var int
*/
public $expiry_time;
/**
* Whether the buyer is checking out with PayPal Credit.
*
* @since 1.2.0
*
* @var bool
*/
public $use_paypal_credit;
/**
* Constructor.
*
* @param array $args Arguments for session data
*/
public function __construct( $args = array() ) {
$args = wp_parse_args( $args, array(
'token' => '',
'source' => 'cart',
'order_id' => false,
'expires_in' => 10800,
'use_paypal_credit' => false,
) );
$this->token = $args['token'];
$this->source = $args['source'];
$this->expiry_time = time() + $args['expires_in'];
$this->use_paypal_credit = $args['use_paypal_credit'];
if ( 'order' === $this->source ) {
$this->order_id = $args['order_id'];
}
}
}