HEX
Server: Apache
System: Linux outside 5.4.8_Algonet_ZeroMAC_0.9.4.8 #6 SMP Mon Feb 3 20:36:07 CET 2020 x86_64
User: server (1002)
PHP: 8.3.20
Disabled: exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
Upload Files
File: /home/muoapartman/www/wp-content/plugins/motopress-hotel-booking-lite/includes/entities/payment.php
<?php

namespace MPHB\Entities;

class Payment {

	/**
	 *
	 * @var int
	 */
	private $id;

	/**
	 *
	 * @var string
	 */
	private $status;

	/**
	 *
	 * @var DateTime
	 */
	private $date;

	/**
	 *
	 * @var DateTime
	 */
	private $modifiedDate;

	/**
	 *
	 * @var float
	 */
	private $amount;

	/**
	 *
	 * @var string
	 */
	private $currency;

	/**
	 *
	 * @var int
	 */
	private $bookingId;

	/**
	 *
	 * @var string "test", "cash", "paypal" etc.
	 */
	private $gatewayId;

	/**
	 *
	 * @var string live|sandbox
	 */
	private $gatewayMode;

	/**
	 *
	 * @var string
	 */
	private $transactionId;

	/**
	 *
	 * @var string
	 */
	private $email;

	/**
	 *
	 * @param array $atts
	 */
	function __construct( $atts ){

		if ( isset( $atts['id'] ) ) {
			$this->id = $atts['id'];
		}

		$this->date			 = isset( $atts['date'] ) ? $atts['date'] : new \DateTime( current_time( 'mysql' ) );
		$this->modifiedDate	 = isset( $atts['modifiedDate'] ) ? $atts['modifiedDate'] : new \DateTime( current_time( 'mysql' ) );
		$this->status		 = isset( $atts['status'] ) ? $atts['status'] : \MPHB\PostTypes\PaymentCPT\Statuses::STATUS_PENDING;

		// Gateway Info
		$this->gatewayId	 = $atts['gatewayId'];
		$this->gatewayMode	 = $atts['gatewayMode'];
		$this->transactionId = isset( $atts['transactionId'] ) ? $atts['transactionId'] : '';

		// Payment Info
		$this->amount	 = $atts['amount'];
		$this->currency	 = $atts['currency'];
		$this->bookingId = $atts['bookingId'];

		// Billing Fields
		$this->email = !empty( $atts['email'] ) ? $atts['email'] : '';
	}

	/**
	 *
	 * @return int
	 */
	public function getId(){
		return $this->id;
	}

	/**
	 *
	 * @return string
	 */
	public function getKey(){
		return get_post_meta( $this->id, '_mphb_key', true );
	}

	/**
	 *
	 * @return string
	 */
	public function generateKey(){
		$key = uniqid( "payment_{$this->id}_", true );
		update_post_meta( $this->id, '_mphb_key', $key );
		return $key;
	}

	/**
	 *
	 * @return \DateTime
	 */
	public function getDate(){
		return $this->date;
	}

	/**
	 *
	 * @return string
	 */
	public function getStatus(){
		return $this->status;
	}

	/**
	 *
	 * @return float
	 */
	public function getAmount(){
		return $this->amount;
	}

	/**
	 *
	 * @return string
	 */
	public function getGatewayId(){
		return $this->gatewayId;
	}

	/**
	 *
	 * @return DateTime
	 */
	function getModifiedDate(){
		return $this->modifiedDate;
	}

	/**
	 *
	 * @return string
	 */
	function getCurrency(){
		return $this->currency;
	}

	/**
	 *
	 * @return int
	 */
	function getBookingId(){
		return $this->bookingId;
	}

	/**
	 *
	 * @return string
	 */
	function getGatewayMode(){
		return $this->gatewayMode;
	}

	/**
	 *
	 * @return string
	 */
	function getTransactionId(){
		return $this->transactionId;
	}

	/**
	 *
	 * @param int $id
	 */
	public function setId( $id ){
		$this->id = $id;
	}

	/**
	 *
	 * @param string $status
	 */
	public function setStatus( $status ){
		$this->status = $status;
	}

	/**
	 *
	 * @param string $id
	 */
	public function setTransactionId( $id ){
		$this->transactionId = $id;
	}

	/**
	 *
	 * @param array $paymentData
	 * @return Payment
	 */
	public static function create( $paymentData ){
		return new self( $paymentData );
	}

	/**
	 * Set expiration time of pending confirmation for payment
	 *
	 * @param int $expirationTime
	 */
	public function updateExpiration( $expirationTime ){
		update_post_meta( $this->id, '_mphb_pending_expired', $expirationTime );
	}

	/**
	 * Retrieve expiration time of pending confirmation for payment in UTC
	 *
	 * @return int
	 */
	public function retrieveExpiration(){
		return intval( get_post_meta( $this->id, '_mphb_pending_expired', true ) );
	}

	/**
	 * Delete expiration time of pending confirmation for payment
	 *
	 */
	public function deleteExpiration(){
		delete_post_meta( $this->id, '_mphb_pending_expired' );
	}

	/**
	 *
	 * @param string $message
	 */
	public function addLog( $message ){
		$logs	 = $this->getLogs();
		$logs[]	 = array(
			'date'		 => mphb_current_time( 'mysql' ),
			'message'	 => $message
		);
		update_post_meta( $this->id, '_mphb_logs', $logs );
	}

	/**
	 *
	 * @return array
	 */
	public function getLogs(){
		$logs = get_post_meta( $this->id, '_mphb_logs', true );
		return is_array( $logs ) ? $logs : array();
	}

	/**
	 *
	 * @return string
	 */
	public function getEmail(){
		return $this->email;
	}

}