64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Refund Functions
 | |
|  *
 | |
|  * This file contains functions related to refunds.
 | |
|  *
 | |
|  * @package     EDD
 | |
|  * @subpackage  Functions
 | |
|  * @copyright   Copyright (c) 2018, Easy Digital Downloads, LLC
 | |
|  * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
 | |
|  * @since       3.0
 | |
|  */
 | |
| 
 | |
| // Exit if accessed directly
 | |
| defined( 'ABSPATH' ) || exit;
 | |
| 
 | |
| /**
 | |
|  * Return array of refundability types.
 | |
|  *
 | |
|  * @since 3.0
 | |
|  *
 | |
|  * @return array
 | |
|  */
 | |
| function edd_get_refundability_types() {
 | |
| 	return array(
 | |
| 		'refundable'    => __( 'Refundable',     'easy-digital-downloads' ),
 | |
| 		'nonrefundable' => __( 'Non-Refundable', 'easy-digital-downloads' )
 | |
| 	);
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Calculate refund date.
 | |
|  *
 | |
|  * @since 3.0
 | |
|  *
 | |
|  * @param string $date        Date order was completed (Accepts UTC).
 | |
|  * @param int    $download_id Download ID.
 | |
|  *
 | |
|  * @return string|false Date refundable (in UTC), false otherwise.
 | |
|  */
 | |
| function edd_get_refund_date( $date = '', $download_id = 0 ) {
 | |
| 
 | |
| 	// Bail if no date was passed.
 | |
| 	if ( empty( $date ) ) {
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	$refund_window = absint( edd_get_option( 'refund_window', 30 ) );
 | |
| 
 | |
| 	// Refund window is infinite.
 | |
| 	if ( 0 === $refund_window ) {
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	if ( ! empty( $download_id ) ) {
 | |
| 		$refund_window = edd_get_download_refund_window( $download_id );
 | |
| 
 | |
| 		$date_refundable = \Carbon\Carbon::parse( $date, 'UTC' )->addDays( $refund_window );
 | |
| 	} else {
 | |
| 		$date_refundable = \Carbon\Carbon::parse( $date, 'UTC' )->addDays( $refund_window );
 | |
| 	}
 | |
| 
 | |
| 	return $date_refundable->toDateTimeString();
 | |
| } |