クラス
OrderEditPage
ソース ソース
ファイル: src/Admin/Views/OrderEditPage/OrderEditPage.php
class OrderEditPage extends OrderEditPageDI { const SCRIPT_SLUG = 'wcex_linepay_order_edit_page'; /** * Settlement module * * @var LinePay */ protected $module; /** * Parses /v3/payments response and returns the transaction status * * @author Evan D Shaw <evandanielshaw@gmail.com> * @param OrderMeta $ometa * @param array $info * @return array */ public function getStatusFromPaymentsRes(OrderMeta $ometa, $info) { if (isset($info['refundList'])) { $isod = $info['refundList'][0]['refundTransactionDate']; $date = new \DateTime($isod); $amount = $info['refundList'][0]['refundAmount']; // translators: date the transaction was refunded $refunddate = sprintf(__('Refund date: %s', 'wcex_linepay'), $date->format('Y-m-d')); // translators: amount the transaction was refunded for $refundamount = sprintf(__('Refunded amount: %d', 'wcex_linepay'), (int)$amount); $message = __('This order has been refunded.', 'wcex_linepay'); $status = TransactionState::REFUNDED; if ($info['payStatus'] === 'VOIDED_AUTHORIZATION') { $message = __('This order has been canceled.', 'wcex_linepay'); $status = TransactionState::CANCELED; } if ($info['payStatus'] === 'EXPIRED_AUTHORIZATION') { $message = __('This order has expired. Transactions can no longer be processed.', 'wcex_linepay'); $status = TransactionState::EXPIRED; } $ometa->setTransactionState(new TransactionState($ometa->getTransactionId(), $status)); return [ 'status' => $status, 'message' => $message, 'details' => [$refunddate, $refundamount], ]; } if ($info['payStatus'] === 'CAPTURE') { $status = TransactionState::CAPTURED; $ometa->setTransactionState(new TransactionState($ometa->getTransactionId(), $status)); return [ 'status' => $status, 'message' => '', 'details' => [], ]; } $status = TransactionState::AUTHORIZED; $ometa->setTransactionState(new TransactionState($ometa->getTransactionId(), $status)); return [ 'status' => $status, 'message' => '', 'details' => [], ]; } /** * Load React script for LINE Pay order status updates * * @author Evan D Shaw <evandanielshaw@gmail.com> * @inheritDoc * @param array $data * @param array $cscs_meta * @param array $action_args * @return void */ protected function enqueueAssets($data, $cscs_meta, $action_args) { $orderId = (int)$data['ID']; $ometa = new OrderMeta($orderId); $statusres = $this->module->api->payments(['transactionId' => $ometa->getTransactionId()]); $stateMeta = ['status' => 'error']; if ($statusres instanceof GenericError) { $stateMeta['message'] = $statusres->message; } else { $stateMeta = $this->getStatusFromPaymentsRes($ometa, $statusres['info'][0]); } Utils::loadTransactionStatesCss(); $assetsmap = include(WCEX_LINEPAY_PLUGIN_DIR . '/dist/js/Admin/Views/OrderEditPage/App.asset.php'); wp_enqueue_script( self::SCRIPT_SLUG, WCEX_LINEPAY_PLUGIN_URL . '/dist/js/Admin/Views/OrderEditPage/App.js', $assetsmap['dependencies'], $assetsmap['version'], true ); wp_localize_script( self::SCRIPT_SLUG, Config\Constants::SCRIPTS_GLOBAL_VAR_NAME, array_merge( $this->module->getScriptInjectionVars(), [ 'orderId' => $data['ID'], 'paymentName' => $this->module->getPaymentName(), 'stateMeta' => $stateMeta, 'actingStatusRowId' => $this->module->getActing() . '-acting-status', 'transactionStates' => [ 'capture' => [ 'successMessage' => __('Capture successful', 'wcex_linepay'), 'message' => __('Capture successful', 'wcex_linepay'), 'buttonText' => __('Capture', 'wcex_linepay'), 'completedState' => new TransactionState( $ometa->getTransactionId(), TransactionState::CAPTURED ), ], 'void' => [ 'successMessage' => __('Cancel successful', 'wcex_linepay'), 'message' => __('This order has been canceled.', 'wcex_linepay'), 'buttonText' => __('Cancel', 'wcex_linepay'), 'completedState' => new TransactionState( $ometa->getTransactionId(), TransactionState::CANCELED ), ], 'refund' => [ 'successMessage' => __('Refund successful', 'wcex_linepay'), 'message' => __('This order has been refunded.', 'wcex_linepay'), 'buttonText' => __('Refund', 'wcex_linepay'), 'completedState' => new TransactionState( $ometa->getTransactionId(), TransactionState::REFUNDED ), ], ], ] ) ); } /** * Action for extra rows in status block form table * * @author Evan D Shaw <evandanielshaw@gmail.com> * @inheritDoc * @param array $data * @param array $cscs_meta * @param array $action_args * @return void */ protected function orderEditFormStatusBlockMiddle($data, $cscs_meta, $action_args) { $ometa = new OrderMeta((int)$action_args['order_id']); $tstate = $ometa->getTransactionState(); if ($tstate !== null) { $this->displayTransactionState($ometa->getTransactionState()); } ?> <tr id="<?php echo Config\Constants::REACT_DOM_NODE ?>"></tr> <?php } }
- enqueueAssets — Load React script for LINE Pay order status updates
- getStatusFromPaymentsRes — Parses /v3/payments response and returns the transaction status
- orderEditFormStatusBlockMiddle — Action for extra rows in status block form table