Current File : /home/kelaby89/jrncommunityhousing.charity/wp-content/plugins/give/templates/shortcode-receipt.php |
<?php
/**
* This template is used to display the donation summary with [give_receipt]
*/
use Give\Helpers\Frontend\Shortcode as ShortcodeUtils;
global $give_receipt_args, $donation;
// Validation: Ensure $donation var is set.
if ( empty( $donation ) ) {
$donation = ! empty( $give_receipt_args['id'] ) ? get_post( $give_receipt_args['id'] ) : 0;
}
/**
* Double-Validation: Check for $donation global.
*
* @since 3.4.0 Add additional validations to check if the form is valid and has the 'published' status.
*/
if ( ! is_object($donation) || ! ShortcodeUtils::isValidDonation($donation->ID)) {
Give_Notices::print_frontend_notice( __( 'The specified receipt ID appears to be invalid.', 'give' ) );
return;
}
$donation_id = $donation->ID;
$donation_number = Give()->seq_donation_number->get_serial_code( $donation_id );
$form_id = give_get_payment_meta( $donation_id, '_give_payment_form_id', true );
$form_name = give_get_donation_form_title( $donation_id );
$user = give_get_payment_meta_user_info( $donation_id );
$email = give_get_payment_user_email( $donation_id );
$status = $donation->post_status;
$status_label = give_get_payment_status( $donation_id, true );
$company_name = give_get_payment_meta( $donation_id, '_give_donation_company', true );
// Update donor name, if title prefix is set.
$full_name = give_get_donor_name_with_title_prefixes( $user['title'], "{$user['first_name']} {$user['last_name']}" );
/**
* Generate Donation Receipt Arguments.
*
* Added donation receipt array to global variable $give_receipt_args to
* manage it from single variable
*
* @since 1.8.8
*/
$give_receipt_args['donation_receipt']['donor'] = [
'name' => __( 'Donor', 'give' ),
'value' => $full_name,
'display' => $give_receipt_args['donor'],
];
/**
* Show Company name on Donation receipt Page
*
* @since 2.0.7
*
* @param bool show/hide company name in donation receipt page.
*
* @return bool show/hide company name in donation receipt page.
*/
$give_receipt_args['donation_receipt']['company_name'] = [
'name' => __( 'Company Name', 'give' ),
'value' => esc_attr( $company_name ),
// Do not show company field if empty
'display' => empty( $company_name ) ? false : $give_receipt_args['company_name'],
];
$give_receipt_args['donation_receipt']['date'] = [
'name' => __( 'Date', 'give' ),
'value' => date_i18n( give_date_format(), strtotime( give_get_payment_completed_date( $donation_id ) ) ),
'display' => $give_receipt_args['date'],
];
$give_receipt_args['donation_receipt']['total_donation'] = [
'name' => __( 'Total Donation', 'give' ),
'value' => give_donation_amount(
$donation_id,
[
'currency' => true,
'amount' => true,
'type' => 'receipt',
]
),
'display' => $give_receipt_args['price'],
];
$give_receipt_args['donation_receipt']['donation'] = [
'name' => __( 'Donation', 'give' ),
'value' => $form_name,
'display' => true,
];
$give_receipt_args['donation_receipt']['donation_status'] = [
'name' => __( 'Donation Status', 'give' ),
'value' => esc_attr( $status_label ),
'display' => $give_receipt_args['payment_status'],
];
$give_receipt_args['donation_receipt']['donation_id'] = [
'name' => __( 'Donation ID', 'give' ),
'value' => $donation_number,
'display' => $give_receipt_args['payment_id'],
];
$give_receipt_args['donation_receipt']['payment_method'] = [
'name' => __( 'Payment Method', 'give' ),
'value' => give_get_gateway_checkout_label( give_get_payment_gateway( $donation_id ) ),
'display' => $give_receipt_args['payment_method'],
];
/**
* Extend Give Donation Receipt
*
* You can easily extend the donation receipt argument using the filter give_donation_receipt_args
*
* @params array $give_receipt_args['donation_receipt'] Array of arguments for Donation Receipt.
* @params int $donation_id Donation ID.
* @params int $form_id Donation Form ID.
*
* @since 1.8.8
*/
$give_receipt_args['donation_receipt'] = apply_filters( 'give_donation_receipt_args', $give_receipt_args['donation_receipt'], $donation_id, $form_id );
// When the donation were made through offline donation, We won't show receipt and payment status though.
if ( 'offline' === give_get_payment_gateway( $donation_id ) && 'pending' === $status ) {
/**
* Before the offline donation receipt content starts.
*
* @since 1.8.14
*
* @param Give_Payment $donation Donation object.
* @param array $give_receipt_args Receipt Arguments.
*/
do_action( 'give_receipt_before_offline_payment', $donation, $give_receipt_args );
?>
<h2><?php echo apply_filters( 'give_receipt_offline_payment_heading', __( 'Your Donation is Almost Complete!', 'give' ) ); ?></h2>
<div id="give_donation_receipt" class="<?php echo esc_attr( apply_filters( 'give_receipt_offline_payment_classes', 'give_receipt_offline_payment' ) ); ?>">
<?php
// Instruction for offline donation.
$offline_instruction = give_get_offline_payment_instruction( $form_id, true );
/**
* Instruction for the offline donation.
*
* @since 1.8.14
*
* @param string $offline_instruction Offline instruction content.
* @param Give_Payment $donation Donation object.
* @param integer $form_id Donation form id.
*/
echo apply_filters( 'give_receipt_offline_payment_instruction', $offline_instruction, $donation, $form_id );
?>
</div>
<?php
/**
* After the offline donation content ends.
*
* @since 1.8.14
*
* @param Give_Payment $donation Donation object.
* @param array $give_receipt_args Receipt Arguments.
*/
do_action( 'give_receipt_after_offline_payment', $donation, $give_receipt_args );
return;
}
// Show payment status notice based on shortcode attribute.
if ( filter_var( $give_receipt_args['status_notice'], FILTER_VALIDATE_BOOLEAN ) ) {
$notice_message = '';
$notice_type = 'warning';
switch ( $status ) {
case 'publish':
$notice_message = __( 'Payment Complete: Thank you for your donation.', 'give' );
$notice_type = 'success';
break;
case 'pending':
$notice_message = __( 'Payment Pending: Your donation is currently processing.', 'give' );
$notice_type = 'warning';
break;
case 'refunded':
$notice_message = __( 'Payment Refunded: Your donation has been refunded.', 'give' );
$notice_type = 'warning';
break;
case 'preapproval':
$notice_message = __( 'Payment Preapproved: Thank you for your donation.', 'give' );
$notice_type = 'warning';
break;
case 'failed':
$notice_message = __( 'Payment Failed: Please contact the site owner for assistance.', 'give' );
$notice_type = 'error';
break;
case 'cancelled':
$notice_message = __( 'Payment Cancelled: Your donation has been cancelled.', 'give' );
$notice_type = 'error';
break;
case 'abandoned':
$notice_message = __( 'Payment Abandoned: This donation has not been completed.', 'give' );
$notice_type = 'error';
break;
case 'revoked':
$notice_message = __( 'Payment Revoked: Please contact the site owner for assistance.', 'give' );
$notice_type = 'error';
break;
}
/**
* Filters payment status notice for receipts.
*
* By default, a success, warning, or error notice appears on the receipt
* with payment status. This filter allows the HTML markup
* and messaging for that notice to be customized.
*
* @since 1.0
*
* @param string $notice HTML markup for the default notice.
* @param int $id Post ID where the notice is displayed.
* @param string $status Payment status.
* @param int $donation_id Donation ID.
*/
echo apply_filters( 'give_receipt_status_notice', Give_Notices::print_frontend_notice( $notice_message, false, $notice_type ), $id, $status, $donation_id );
}// End if().
/**
* Fires in the donation receipt shortcode, before the receipt main table.
*
* Allows you to add elements before the table.
*
* @since 1.0
*
* @param object $donation Donation object.
* @param array $give_receipt_args Receipt_argument.
*/
do_action( 'give_payment_receipt_before_table', $donation, $give_receipt_args );
?>
<table id="give_donation_receipt" class="give-table">
<thead>
<?php
/**
* Fires in the donation receipt shortcode, before the receipt first header item.
*
* Allows you to add new <th> elements before the receipt first header item.
*
* @since 1.7
*
* @param object $donation Donation object.
* @param array $give_receipt_args Receipt_argument.
*/
do_action( 'give_payment_receipt_header_before', $donation, $give_receipt_args );
?>
<tr>
<th scope="colgroup" colspan="2">
<span class="give-receipt-thead-text"><?php esc_html_e( 'Donation Receipt', 'give' ); ?></span>
</th>
</tr>
<?php
/**
* Fires in the donation receipt shortcode, after the receipt last header item.
*
* Allows you to add new <th> elements after the receipt last header item.
*
* @since 1.7
*
* @param object $donation Donation object.
* @param array $give_receipt_args Receipt_argument.
*/
do_action( 'give_payment_receipt_header_after', $donation, $give_receipt_args );
?>
</thead>
<tbody>
<?php
/**
* Fires in the donation receipt shortcode, before the receipt first item.
*
* Allows you to add new <td> elements before the receipt first item.
*
* @since 1.7
*
* @param object $donation Donation object.
* @param array $give_receipt_args Receipt_argument.
*/
do_action( 'give_payment_receipt_before', $donation, $give_receipt_args );
?>
<?php foreach ( $give_receipt_args['donation_receipt'] as $receipt_item ) { ?>
<?php if ( filter_var( $receipt_item['display'], FILTER_VALIDATE_BOOLEAN ) ) : ?>
<tr>
<td scope="row"><strong><?php echo $receipt_item['name']; ?></strong></td>
<td><?php echo $receipt_item['value']; ?></td>
</tr>
<?php endif; ?>
<?php } ?>
<?php
/**
* Fires in the donation receipt shortcode, after the receipt last item.
*
* Allows you to add new <td> elements after the receipt last item.
*
* @since 1.7
*
* @param object $donation Donation object.
* @param array $give_receipt_args Receipt_argument.
*/
do_action( 'give_payment_receipt_after', $donation, $give_receipt_args );
?>
</tbody>
</table>
<?php
/**
* Fires in the donation receipt shortcode, after the receipt main table.
*
* Allows you to add elements after the table.
*
* @since 1.7
*
* @param object $donation Donation object.
* @param array $give_receipt_args Receipt_argument.
*/
do_action( 'give_payment_receipt_after_table', $donation, $give_receipt_args );
?>