クラス
OrderMeta
ソース ソース
ファイル: src/Models/OrderMeta.php
class OrderMeta
{
const META_KEY = 'line_order_meta';
const TRANSACTION_STATE_KEY = 'linepay_trans_state';
/**
* Welcart order ID
*
* @var int
*/
private $orderid;
/**
* LINE Pay transaction ID
*
* @var string
*/
private $transactionId;
/**
* Array of order meta data
*
* @var array
*/
private $meta;
/**
* LINE Pay transaction state
*
* Default: `null`
*
* @var TransactionState|null
*/
private $transactionState = null;
/**
* Constructs a LINE Pay order meta object from an existing Welcart transaction
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @param int $orderid
* @return void
*/
public function __construct($orderid) {
global $usces;
$this->orderid = (int)$orderid;
$this->meta = unserialize($usces->get_order_meta_value(self::META_KEY, $orderid));
$this->transactionId = $this->meta['transactionId'];
$transactionState = $usces->get_order_meta_value(self::TRANSACTION_STATE_KEY, $orderid);
if (!empty($transactionState)) {
$transactionState = json_decode($transactionState, true);
$this->transactionState = new TransactionState($this->transactionId, $transactionState['state']);
}
}
/**
* Saves LINE Pay order meta data on a successful Welcart order
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @global \usc_e_shop $usces
* @param TransactionState $state
* @param array $meta
* @param int $orderid
* @return void
*/
public static function registerOrderMeta(TransactionState $state, array $meta, $orderid) {
global $usces;
$usces->set_order_meta_value('wc_trans_id', $state->getTransactionId(), $orderid);
$usces->set_order_meta_value(self::META_KEY, serialize($meta), $orderid);
$usces->set_order_meta_value(self::TRANSACTION_STATE_KEY, wp_json_encode($state), $orderid);
}
/**
* Saves LINE Pay order meta data on a successful Welcart order
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @global \usc_e_shop $usces
* @param TransactionState $state
* @return OrderMeta
*/
public function setTransactionState(TransactionState $state) {
global $usces;
$usces->set_order_meta_value(self::TRANSACTION_STATE_KEY, wp_json_encode($state), $this->orderid);
return $this;
}
/**
* Getter for `orderid`
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return int
*/
public function getOrderId() {
return $this->orderid;
}
/**
* Getter for `transactionId`
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return string
*/
public function getTransactionId() {
return $this->transactionId;
}
/**
* Getter for `meta`
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return array
*/
public function getMeta() {
return $this->meta;
}
/**
* Getter for `transactionState`
*
* @author Evan D Shaw <evandanielshaw@gmail.com>
* @return TransactionState|null
*/
public function getTransactionState() {
return $this->transactionState;
}
}
- __construct — Constructs a LINE Pay order meta object from an existing Welcart transaction
- getMeta — Getter for `meta`
- getOrderId — Getter for `orderid`
- getTransactionId — Getter for `transactionId`
- getTransactionState — Getter for `transactionState`
- registerOrderMeta — Saves LINE Pay order meta data on a successful Welcart order
- setTransactionState — Saves LINE Pay order meta data on a successful Welcart order