관리-도구
편집 파일: class-kkart-order-refund.php
<?php /** * Order refund. Refunds are based on orders (essentially negative orders) and * contain much of the same data. * * @version 3.0.0 * @package Kkart\Classes */ defined( 'ABSPATH' ) || exit; /** * Order refund class. */ class KKART_Order_Refund extends KKART_Abstract_Order { /** * Which data store to load. * * @var string */ protected $data_store_name = 'order-refund'; /** * This is the name of this object type. * * @var string */ protected $object_type = 'order_refund'; /** * Stores product data. * * @var array */ protected $extra_data = array( 'amount' => '', 'reason' => '', 'refunded_by' => 0, 'refunded_payment' => false, ); /** * Get internal type (post type.) * * @return string */ public function get_type() { return 'shop_order_refund'; } /** * Get status - always completed for refunds. * * @param string $context What the value is for. Valid values are view and edit. * @return string */ public function get_status( $context = 'view' ) { return 'completed'; } /** * Get a title for the new post type. */ public function get_post_title() { // @codingStandardsIgnoreStart return sprintf( __( 'Refund – %s', 'kkart' ), strftime( _x( '%b %d, %Y @ %I:%M %p', 'Order date parsed by strftime', 'kkart' ) ) ); // @codingStandardsIgnoreEnd } /** * Get refunded amount. * * @param string $context What the value is for. Valid values are view and edit. * @return int|float */ public function get_amount( $context = 'view' ) { return $this->get_prop( 'amount', $context ); } /** * Get refund reason. * * @since 2.2 * @param string $context What the value is for. Valid values are view and edit. * @return int|float */ public function get_reason( $context = 'view' ) { return $this->get_prop( 'reason', $context ); } /** * Get ID of user who did the refund. * * @since 3.0 * @param string $context What the value is for. Valid values are view and edit. * @return int */ public function get_refunded_by( $context = 'view' ) { return $this->get_prop( 'refunded_by', $context ); } /** * Return if the payment was refunded via API. * * @since 3.3 * @param string $context What the value is for. Valid values are view and edit. * @return bool */ public function get_refunded_payment( $context = 'view' ) { return $this->get_prop( 'refunded_payment', $context ); } /** * Get formatted refunded amount. * * @since 2.4 * @return string */ public function get_formatted_refund_amount() { return apply_filters( 'kkart_formatted_refund_amount', kkart_price( $this->get_amount(), array( 'currency' => $this->get_currency() ) ), $this ); } /** * Set refunded amount. * * @param string $value Value to set. * @throws KKART_Data_Exception Exception if the amount is invalid. */ public function set_amount( $value ) { $this->set_prop( 'amount', kkart_format_decimal( $value ) ); } /** * Set refund reason. * * @param string $value Value to set. * @throws KKART_Data_Exception Exception if the amount is invalid. */ public function set_reason( $value ) { $this->set_prop( 'reason', $value ); } /** * Set refunded by. * * @param int $value Value to set. * @throws KKART_Data_Exception Exception if the amount is invalid. */ public function set_refunded_by( $value ) { $this->set_prop( 'refunded_by', absint( $value ) ); } /** * Set if the payment was refunded via API. * * @since 3.3 * @param bool $value Value to set. */ public function set_refunded_payment( $value ) { $this->set_prop( 'refunded_payment', (bool) $value ); } /** * Magic __get method for backwards compatibility. * * @param string $key Value to get. * @return mixed */ public function __get( $key ) { kkart_doing_it_wrong( $key, 'Refund properties should not be accessed directly.', '3.0' ); /** * Maps legacy vars to new getters. */ if ( 'reason' === $key ) { return $this->get_reason(); } elseif ( 'refund_amount' === $key ) { return $this->get_amount(); } return parent::__get( $key ); } /** * Gets an refund from the database. * * @deprecated 3.0 * @param int $id (default: 0). * @return bool */ public function get_refund( $id = 0 ) { kkart_deprecated_function( 'get_refund', '3.0', 'read' ); if ( ! $id ) { return false; } $result = get_post( $id ); if ( $result ) { $this->populate( $result ); return true; } return false; } /** * Get refund amount. * * @deprecated 3.0 * @return int|float */ public function get_refund_amount() { kkart_deprecated_function( 'get_refund_amount', '3.0', 'get_amount' ); return $this->get_amount(); } /** * Get refund reason. * * @deprecated 3.0 * @return int|float */ public function get_refund_reason() { kkart_deprecated_function( 'get_refund_reason', '3.0', 'get_reason' ); return $this->get_reason(); } }