| Current File : /home/digitaw/www/wp-content/plugins/event-tickets/src/Tickets/Commerce/Gateways/PayPal/Status.php |
<?php
namespace TEC\Tickets\Commerce\Gateways\PayPal;
use TEC\Tickets\Commerce\Status as Commerce_Status;
/**
* Class Status
*
* @since 5.1.9
*
* @package TEC\Tickets\Commerce\Gateways\PayPal
*/
class Status {
/**
* Order Status in PayPal for created.
*
* @since 5.1.9
*
* @var string
*/
CONST CREATED = 'CREATED';
/**
* Order Status in PayPal for saved.
*
* @since 5.1.9
*
* @var string
*/
CONST SAVED = 'SAVED';
/**
* Order Status in PayPal for approved.
*
* @since 5.1.9
*
* @var string
*/
CONST APPROVED = 'APPROVED';
/**
* Order Status in PayPal for voided.
*
* @since 5.1.9
*
* @var string
*/
CONST VOIDED = 'VOIDED';
/**
* Order Status in PayPal for completed.
*
* @since 5.1.9
*
* @var string
*/
CONST COMPLETED = 'COMPLETED';
/**
* Order Status in PayPal for payer action required.
*
* @since 5.1.9
*
* @var string
*/
CONST PAYER_ACTION_REQUIRED = 'PAYER_ACTION_REQUIRED';
/**
* Order Capture Status in PayPal for failed captures.
*
* @since 5.4.0.2
*
* @var string
*/
CONST FAILED = 'FAILED';
/**
* Order Capture Status in PayPal for declined captures.
*
* @since 5.4.0.2
*
* @var string
*/
CONST DECLINED = 'DECLINED';
/**
* Default mapping from PayPal Status to Tickets Commerce
*
* @since 5.1.9
*
* @var array
*/
protected $default_map = [
self::CREATED => Commerce_Status\Created::SLUG,
self::SAVED => Commerce_Status\Pending::SLUG,
self::APPROVED => Commerce_Status\Approved::SLUG,
self::VOIDED => Commerce_Status\Voided::SLUG,
self::COMPLETED => Commerce_Status\Completed::SLUG,
self::PAYER_ACTION_REQUIRED => Commerce_Status\Action_Required::SLUG,
self::FAILED => Commerce_Status\Denied::SLUG,
self::DECLINED => Commerce_Status\Denied::SLUG,
];
/**
* Gets the valid mapping of the statuses.
*
* @since 5.1.9
*
* @return array
*/
public function get_valid_statuses() {
return $this->default_map;
}
/**
* Checks if a given PayPal status is valid.
*
* @since 5.1.9
*
* @param string $status Status from PayPal.
*
* @return bool
*/
public function is_valid_status( $status ) {
$statuses = $this->get_valid_statuses();
return isset( $statuses[ $status ] );
}
/**
* Converts a valid PayPal status into a commerce status object.
*
* @since 5.1.9
*
* @param string $paypal_status A PayPal status string.
*
* @return false|Commerce_Status\Status_Interface|null
*/
public function convert_to_commerce_status( $paypal_status ) {
if ( ! $this->is_valid_status( $paypal_status ) ) {
return false;
}
$statuses = $this->get_valid_statuses();
return tribe( Commerce_Status\Status_Handler::class )->get_by_slug( $statuses[ $paypal_status ] );
}
}