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();
 | 
						|
} |