93 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Functions to handle the checkout related pages.
 | 
						|
 *
 | 
						|
 * @package EDD
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Retrieves the Success page URI.
 | 
						|
 *
 | 
						|
 * @since 1.6
 | 
						|
 * @since 3.1 Updated to check for the new confirmation page if no query string is provided.
 | 
						|
 * @return      string
 | 
						|
*/
 | 
						|
function edd_get_success_page_uri( $query_string = null ) {
 | 
						|
	$page_id = edd_get_option( 'success_page', 0 );
 | 
						|
	if ( empty( $query_string ) ) {
 | 
						|
		$page_id = edd_get_option( 'confirmation_page', $page_id );
 | 
						|
	}
 | 
						|
	$page_id      = absint( $page_id );
 | 
						|
	$success_page = get_permalink( $page_id );
 | 
						|
 | 
						|
	if ( $query_string ) {
 | 
						|
		$success_page .= $query_string;
 | 
						|
	}
 | 
						|
 | 
						|
	return apply_filters( 'edd_get_success_page_uri', $success_page );
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Determines if we're currently on the Success page.
 | 
						|
 *
 | 
						|
 * @since 1.9.9
 | 
						|
 * @return bool True if on the Success page, false otherwise.
 | 
						|
 */
 | 
						|
function edd_is_success_page() {
 | 
						|
	$is_success_page = edd_get_option( 'success_page', false );
 | 
						|
	$is_success_page = isset( $is_success_page ) ? is_page( $is_success_page ) : false;
 | 
						|
 | 
						|
	return (bool) apply_filters( 'edd_is_success_page', $is_success_page );
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Send To Success Page
 | 
						|
 *
 | 
						|
 * Sends the user to the succes page.
 | 
						|
 *
 | 
						|
 * @param string $query_string
 | 
						|
 * @since       1.0
 | 
						|
 * @return      void
 | 
						|
*/
 | 
						|
function edd_send_to_success_page( $query_string = null ) {
 | 
						|
	$redirect = edd_get_success_page_uri( $query_string );
 | 
						|
	$gateway  = isset( $_REQUEST['edd-gateway'] ) ? $_REQUEST['edd-gateway'] : '';
 | 
						|
 | 
						|
	edd_redirect( apply_filters( 'edd_success_page_redirect', $redirect, $gateway, $query_string ) );
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Gets the confirmation page URI.
 | 
						|
 * If a confirmation page is not set, returns the success page URI with no parameters.
 | 
						|
 *
 | 
						|
 * @since 3.1
 | 
						|
 * @return string
 | 
						|
 */
 | 
						|
function edd_get_confirmation_page_uri() {
 | 
						|
	$confirmation_page_id = edd_get_option( 'confirmation_page', false );
 | 
						|
	if ( empty( $confirmation_page_id ) ) {
 | 
						|
		return edd_get_success_page_uri();
 | 
						|
	}
 | 
						|
 | 
						|
	return get_permalink( $confirmation_page_id );
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Gets the receipt page URI.
 | 
						|
 *
 | 
						|
 * @since 3.1
 | 
						|
 * @param int $order_id
 | 
						|
 * @return string
 | 
						|
 */
 | 
						|
function edd_get_receipt_page_uri( $order_id ) {
 | 
						|
	$page_id    = absint( edd_get_option( 'success_page', 0 ) );
 | 
						|
	$order      = edd_get_order( $order_id );
 | 
						|
	$query_args = array(
 | 
						|
		'id'    => $order_id,
 | 
						|
		'order' => urlencode( md5( $order_id . $order->payment_key . $order->email ) ),
 | 
						|
	);
 | 
						|
 | 
						|
	return add_query_arg( $query_args, get_permalink( $page_id ) );
 | 
						|
}
 |