/**
  * Get the Export Data.
  *
  * @access public
  * @since 1.5
  * @global object $wpdb Used to query the database using the WordPress database API.
  * @return array $data The data for the CSV file.
  */
 public function get_data()
 {
     global $wpdb;
     $data = array();
     $args = array('number' => 30, 'page' => $this->step, 'status' => $this->status);
     if (!empty($this->start) || !empty($this->end)) {
         $args['date_query'] = array(array('after' => date('Y-n-d 00:00:00', strtotime($this->start)), 'before' => date('Y-n-d 23:59:59', strtotime($this->end)), 'inclusive' => true));
     }
     //echo json_encode($args ); exit;
     $payments = give_get_payments($args);
     if ($payments) {
         foreach ($payments as $payment) {
             $payment_meta = give_get_payment_meta($payment->ID);
             $user_info = give_get_payment_meta_user_info($payment->ID);
             $total = give_get_payment_amount($payment->ID);
             $user_id = isset($user_info['id']) && $user_info['id'] != -1 ? $user_info['id'] : $user_info['email'];
             $products = '';
             $skus = '';
             if (is_numeric($user_id)) {
                 $user = get_userdata($user_id);
             } else {
                 $user = false;
             }
             $data[] = array('id' => $payment->ID, 'seq_id' => give_get_payment_number($payment->ID), 'email' => $payment_meta['email'], 'first' => $user_info['first_name'], 'last' => $user_info['last_name'], 'address1' => isset($user_info['address']['line1']) ? $user_info['address']['line1'] : '', 'address2' => isset($user_info['address']['line2']) ? $user_info['address']['line2'] : '', 'city' => isset($user_info['address']['city']) ? $user_info['address']['city'] : '', 'state' => isset($user_info['address']['state']) ? $user_info['address']['state'] : '', 'country' => isset($user_info['address']['country']) ? $user_info['address']['country'] : '', 'zip' => isset($user_info['address']['zip']) ? $user_info['address']['zip'] : '', 'form_id' => isset($payment_meta['form_id']) ? $payment_meta['form_id'] : '', 'form_name' => isset($payment_meta['form_title']) ? $payment_meta['form_title'] : '', 'skus' => $skus, 'amount' => html_entity_decode(give_format_amount($total)), 'gateway' => give_get_gateway_admin_label(get_post_meta($payment->ID, '_give_payment_gateway', true)), 'trans_id' => give_get_payment_transaction_id($payment->ID), 'key' => $payment_meta['key'], 'date' => $payment->post_date, 'user' => $user ? $user->display_name : __('guest', 'give'), 'status' => give_get_payment_status($payment, true));
         }
         $data = apply_filters('give_export_get_data', $data);
         $data = apply_filters('give_export_get_data_' . $this->export_type, $data);
         return $data;
     }
     return false;
 }
 /**
  * This function renders most of the columns in the list table.
  *
  * @access public
  * @since  1.0
  *
  * @param array $item Contains all the data of the discount code
  * @param string $column_name The name of the column
  *
  * @return string Column Name
  */
 public function column_default($item, $column_name)
 {
     $payment = give_get_payment_by('id', $item['payment_id']);
     switch ($column_name) {
         case 'form':
             return '<a href="' . esc_url(add_query_arg('form', $item[$column_name])) . '" >' . get_the_title($item[$column_name]) . '</a>';
         case 'user_id':
             return '<a href="' . admin_url('edit.php?post_type=give_forms&page=give-payment-history&user='******'user_id']) ? urlencode($item['user_id']) : give_get_payment_user_email($item['payment_id']))) . '">' . $item['user_name'] . '</a>';
         case 'amount':
             return give_currency_filter(give_format_amount($item['amount']));
         case 'status':
             $value = '<div class="give-donation-status status-' . sanitize_title(give_get_payment_status($payment, true)) . '"><span class="give-donation-status-icon"></span> ' . give_get_payment_status($payment, true) . '</div>';
             if ($payment->mode == 'test') {
                 $value .= ' <span class="give-item-label give-item-label-orange give-test-mode-transactions-label" data-tooltip="' . esc_attr__('This payment was made in test mode', 'give') . '">' . esc_html__('Test', 'give') . '</span>';
             }
             return $value;
         case 'payment_id':
             return '<a href="' . admin_url('edit.php?post_type=give_forms&page=give-payment-history&view=view-order-details&id=' . $item['payment_id']) . '">' . give_get_payment_number($item['payment_id']) . '</a>';
         default:
             return $item[$column_name];
     }
 }
Example #3
0
/**
 * View a customer
 *
 * @since  1.0
 *
 * @param  $customer The Customer object being displayed
 *
 * @return void
 */
function give_customers_view($customer)
{
    $customer_edit_role = apply_filters('give_edit_customers_role', 'edit_give_payments');
    ?>

	<?php 
    do_action('give_donor_card_top', $customer);
    ?>

	<div id="donor-summary" class="info-wrapper customer-section postbox">

		<form id="edit-customer-info" method="post" action="<?php 
    echo admin_url('edit.php?post_type=give_forms&page=give-donors&view=overview&id=' . $customer->id);
    ?>
">

			<div class="customer-info">


				<div class="donor-bio-header clearfix">

					<div class="avatar-wrap left" id="customer-avatar">
						<?php 
    echo get_avatar($customer->email);
    ?>
					</div>

					<div class="customer-id" class="left">
						#<?php 
    echo $customer->id;
    ?>
					</div>
					<div id="customer-name-wrap" class="left">
						<span class="customer-name info-item edit-item"><input size="15" data-key="name" name="customerinfo[name]" type="text" value="<?php 
    echo esc_attr($customer->name);
    ?>
" placeholder="<?php 
    _e('Donor Name', 'give');
    ?>
" /></span>
						<span class="customer-name info-item editable"><span data-key="name"><?php 
    echo $customer->name;
    ?>
</span></span>
					</div>
					<p class="customer-since info-item">
						<?php 
    _e('Donor since', 'give');
    ?>
						<?php 
    echo date_i18n(get_option('date_format'), strtotime($customer->date_created));
    ?>
					</p>
					<?php 
    if (current_user_can($customer_edit_role)) {
        ?>
						<a title="<?php 
        _e('Edit Donor', 'give');
        ?>
" href="#" id="edit-customer" class="button info-item editable customer-edit-link"><?php 
        _e('Edit Donor', 'give');
        ?>
</a>
					<?php 
    }
    ?>
				</div>
				<!-- /donor-bio-header -->

				<div class="customer-main-wrapper">

					<table class="widefat">
						<tbody>
						<tr>
							<td><label for="tablecell"><?php 
    esc_attr_e('Email', 'give');
    ?>
</label></td>
							<td class="row-title">
								<span class="customer-name info-item edit-item"><input size="20" data-key="email" name="customerinfo[email]" type="text" value="<?php 
    echo $customer->email;
    ?>
" placeholder="<?php 
    _e('Donor Email', 'give');
    ?>
" /></span>
								<span class="customer-email info-item editable" data-key="email"><?php 
    echo $customer->email;
    ?>
</span>
							</td>
						</tr>
						<tr class="alternate">
							<td><label for="tablecell"><?php 
    esc_attr_e('User ID', 'give');
    ?>
</label></td>
							<td class="row-title">
								<span class="customer-user-id info-item edit-item">
									<?php 
    $user_id = $customer->user_id > 0 ? $customer->user_id : '';
    $data_atts = array('key' => 'user_login', 'exclude' => $user_id);
    $user_args = array('name' => 'customerinfo[user_login]', 'class' => 'give-user-dropdown', 'data' => $data_atts);
    if (!empty($user_id)) {
        $userdata = get_userdata($user_id);
        $user_args['value'] = $userdata->user_login;
    }
    echo Give()->html->ajax_user_search($user_args);
    ?>
									<input type="hidden" name="customerinfo[user_id]" data-key="user_id" value="<?php 
    echo $customer->user_id;
    ?>
" />
								</span>
			
								<span class="customer-user-id info-item editable">
									<?php 
    if (intval($customer->user_id) > 0) {
        ?>
										<span data-key="user_id"><?php 
        echo $customer->user_id;
        ?>
</span>
									<?php 
    } else {
        ?>
										<span data-key="user_id"><?php 
        _e('none', 'give');
        ?>
</span>
									<?php 
    }
    ?>
									<?php 
    if (current_user_can($customer_edit_role) && intval($customer->user_id) > 0) {
        ?>
										<span class="disconnect-user"> - <a id="disconnect-customer" href="#disconnect" title="<?php 
        _e('Disconnects the current user ID from this customer record', 'give');
        ?>
"><?php 
        _e('Disconnect User', 'give');
        ?>
</a></span>
									<?php 
    }
    ?>
								</span>
							</td>
						</tr>
						<tr>
							<td><?php 
    esc_attr_e('Address', 'give');
    ?>
</td>
							<td class="row-title">

								<div class="customer-address-wrapper">

									<?php 
    if (isset($customer->user_id) && $customer->user_id > 0) {
        ?>

										<?php 
        $address = get_user_meta($customer->user_id, '_give_user_address', true);
        $defaults = array('line1' => '', 'line2' => '', 'city' => '', 'state' => '', 'country' => '', 'zip' => '');
        $address = wp_parse_args($address, $defaults);
        ?>

										<?php 
        if (!empty($address)) {
            ?>
											<span class="customer-address info-item editable">
												<span class="info-item" data-key="line1"><?php 
            echo $address['line1'];
            ?>
</span><br>
												<span class="info-item" data-key="line2"><?php 
            echo $address['line2'];
            ?>
</span><br>
												<span class="info-item" data-key="city">City: <?php 
            echo $address['city'];
            ?>
</span><br>
												<span class="info-item" data-key="state">State: <?php 
            echo $address['state'];
            ?>
</span><br>
												<span class="info-item" data-key="country">Country: <?php 
            echo $address['country'];
            ?>
</span><br>
												<span class="info-item" data-key="zip">Zip: <?php 
            echo $address['zip'];
            ?>
</span><br>
											</span>
										<?php 
        }
        ?>
										<span class="customer-address info-item edit-item">
											<input class="info-item" type="text" data-key="line1" name="customerinfo[line1]" placeholder="<?php 
        _e('Address 1', 'give');
        ?>
" value="<?php 
        echo $address['line1'];
        ?>
" />
											<input class="info-item" type="text" data-key="line2" name="customerinfo[line2]" placeholder="<?php 
        _e('Address 2', 'give');
        ?>
" value="<?php 
        echo $address['line2'];
        ?>
" />
											<input class="info-item" type="text" data-key="city" name="customerinfo[city]" placeholder="<?php 
        _e('City', 'give');
        ?>
" value="<?php 
        echo $address['city'];
        ?>
" />
											<select data-key="country" name="customerinfo[country]" id="billing_country" class="billing_country give-select edit-item">
												<?php 
        $selected_country = $address['country'];
        $countries = give_get_country_list();
        foreach ($countries as $country_code => $country) {
            echo '<option value="' . esc_attr($country_code) . '"' . selected($country_code, $selected_country, false) . '>' . $country . '</option>';
        }
        ?>
											</select>
											<?php 
        $selected_state = give_get_state();
        $states = give_get_states($selected_country);
        $selected_state = isset($address['state']) ? $address['state'] : $selected_state;
        if (!empty($states)) {
            ?>
												<select data-key="state" name="customerinfo[state]" id="card_state" class="card_state give-select info-item">
													<?php 
            foreach ($states as $state_code => $state) {
                echo '<option value="' . $state_code . '"' . selected($state_code, $selected_state, false) . '>' . $state . '</option>';
            }
            ?>
												</select>
											<?php 
        } else {
            ?>
												<input type="text" size="6" data-key="state" name="customerinfo[state]" id="card_state" class="card_state give-input info-item" placeholder="<?php 
            _e('State / Province', 'give');
            ?>
" />
											<?php 
        }
        ?>
											<input class="info-item" type="text" data-key="zip" name="customerinfo[zip]" placeholder="<?php 
        _e('Postal', 'give');
        ?>
" value="<?php 
        echo $address['zip'];
        ?>
" />
													</span>
									<?php 
    } else {
        echo "none";
    }
    ?>
								</div>


							</td>
						</tr>
						</tbody>
					</table>


				</div>


			</div>

			<span id="customer-edit-actions" class="edit-item">
				<input type="hidden" data-key="id" name="customerinfo[id]" value="<?php 
    echo $customer->id;
    ?>
" />
				<?php 
    wp_nonce_field('edit-customer', '_wpnonce', false, true);
    ?>
				<input type="hidden" name="give_action" value="edit-customer" />
				<input type="submit" id="give-edit-customer-save" class="button-secondary" value="<?php 
    _e('Update Donor', 'give');
    ?>
" />
				<a id="give-edit-customer-cancel" href="" class="delete"><?php 
    _e('Cancel', 'give');
    ?>
</a>
			</span>

		</form>
	</div>

	<?php 
    do_action('give_donor_before_stats', $customer);
    ?>

	<div id="customer-stats-wrapper" class="customer-section postbox clear">
		<ul>
			<li>
				<a title="<?php 
    _e('View All Purchases', 'give');
    ?>
" href="<?php 
    echo admin_url('edit.php?post_type=give_forms&page=give-payment-history&user='******'%d Completed Donation', '%d Completed Donations', $customer->purchase_count, 'give'), $customer->purchase_count);
    ?>
				</a>
			</li>
			<li>
				<span class="dashicons dashicons-chart-area"></span>
				<?php 
    echo give_currency_filter(give_format_amount($customer->purchase_value));
    ?>
 <?php 
    _e('Lifetime Donations', 'give');
    ?>
			</li>
			<?php 
    do_action('give_donor_stats_list', $customer);
    ?>
		</ul>
	</div>

	<?php 
    do_action('give_donor_before_tables_wrapper', $customer);
    ?>

	<div id="customer-tables-wrapper" class="customer-section">

		<?php 
    do_action('give_donor_before_tables', $customer);
    ?>

		<h3><?php 
    _e('Recent Donations', 'give');
    ?>
</h3>
		<?php 
    $payment_ids = explode(',', $customer->payment_ids);
    $payments = give_get_payments(array('post__in' => $payment_ids));
    $payments = array_slice($payments, 0, 10);
    ?>
		<table class="wp-list-table widefat striped payments">
			<thead>
			<tr>
				<th><?php 
    _e('ID', 'give');
    ?>
</th>
				<th><?php 
    _e('Amount', 'give');
    ?>
</th>
				<th><?php 
    _e('Date', 'give');
    ?>
</th>
				<th><?php 
    _e('Status', 'give');
    ?>
</th>
				<th><?php 
    _e('Actions', 'give');
    ?>
</th>
			</tr>
			</thead>
			<tbody>
			<?php 
    if (!empty($payments)) {
        ?>
				<?php 
        foreach ($payments as $payment) {
            ?>
					<tr>
						<td><?php 
            echo $payment->ID;
            ?>
</td>
						<td><?php 
            echo give_payment_amount($payment->ID);
            ?>
</td>
						<td><?php 
            echo date_i18n(get_option('date_format'), strtotime($payment->post_date));
            ?>
</td>
						<td><?php 
            echo give_get_payment_status($payment, true);
            ?>
</td>
						<td>
							<a title="<?php 
            _e('View Details for Donation', 'give');
            echo ' ' . $payment->ID;
            ?>
" href="<?php 
            echo admin_url('edit.php?post_type=give_forms&page=give-payment-history&view=view-order-details&id=' . $payment->ID);
            ?>
">
								<?php 
            _e('View Details', 'give');
            ?>
							</a>
							<?php 
            do_action('give_donor_recent_purchases_actions', $customer, $payment);
            ?>
						</td>
					</tr>
				<?php 
        }
        ?>
			<?php 
    } else {
        ?>
				<tr>
					<td colspan="5"><?php 
        _e('No Donations Found', 'give');
        ?>
</td>
				</tr>
			<?php 
    }
    ?>
			</tbody>
		</table>

		<h3><?php 
    _e('Completed Donations', 'give');
    ?>
</h3>
		<?php 
    $donations = give_get_users_completed_donations($customer->email);
    ?>
		<table class="wp-list-table widefat striped downloads">
			<thead>
			<tr>
				<th><?php 
    echo give_get_forms_label_singular();
    ?>
</th>
				<th width="120px"><?php 
    _e('Actions', 'give');
    ?>
</th>
			</tr>
			</thead>
			<tbody>
			<?php 
    if (!empty($donations)) {
        ?>
				<?php 
        foreach ($donations as $donation) {
            ?>
					<tr>
						<td><?php 
            echo $donation->post_title;
            ?>
</td>
						<td>
							<a title="<?php 
            echo esc_attr(sprintf(__('View %s', 'give'), $donation->post_title));
            ?>
" href="<?php 
            echo esc_url(admin_url('post.php?action=edit&post=' . $donation->ID));
            ?>
">
								<?php 
            printf(__('View %s', 'give'), give_get_forms_label_singular());
            ?>
							</a>
						</td>
					</tr>
				<?php 
        }
        ?>
			<?php 
    } else {
        ?>
				<tr>
					<td colspan="2"><?php 
        _e('No Completed Donations Found', 'give');
        ?>
</td>
				</tr>
			<?php 
    }
    ?>
			</tbody>
		</table>

		<?php 
    do_action('give_donor_after_tables', $customer);
    ?>

	</div>

	<?php 
    do_action('give_donor_card_bottom', $customer);
    ?>

<?php 
}
Example #4
0
														<option value="<?php 
    echo esc_attr($key);
    ?>
"<?php 
    selected(give_get_payment_status($item, true), $status);
    ?>
><?php 
    echo esc_html($status);
    ?>
</option>
													<?php 
}
?>
												</select>
												<span class="give-donation-status status-<?php 
echo sanitize_title(give_get_payment_status($item, true));
?>
"><span class="give-donation-status-icon"></span></span>
											</p>
										</div>

										<div class="give-admin-box-inside">
											<p>
												<span class="label"><?php 
_e('Date:', 'give');
?>
</span>&nbsp;
												<input type="text" name="give-payment-date" value="<?php 
echo esc_attr(date('m/d/Y', $payment_date));
?>
" class="medium-text give_datepicker" />
Example #5
0
 /**
  * Get the Export Data
  *
  * @access public
  * @since  1.0
  * @global object $wpdb Used to query the database using the WordPress
  *                      Database API
  * @return array $data The data for the CSV file
  */
 public function get_data()
 {
     global $wpdb, $give_options;
     $data = array();
     $payments = give_get_payments(array('offset' => 0, 'number' => -1, 'mode' => give_is_test_mode() ? 'test' : 'live', 'status' => isset($_POST['give_export_payment_status']) ? $_POST['give_export_payment_status'] : 'any', 'month' => isset($_POST['month']) ? absint($_POST['month']) : date('n'), 'year' => isset($_POST['year']) ? absint($_POST['year']) : date('Y')));
     foreach ($payments as $payment) {
         $payment_meta = give_get_payment_meta($payment->ID);
         $user_info = give_get_payment_meta_user_info($payment->ID);
         $total = give_get_payment_amount($payment->ID);
         $user_id = isset($user_info['id']) && $user_info['id'] != -1 ? $user_info['id'] : $user_info['email'];
         $form_id = isset($payment_meta['form_id']) ? $payment_meta['form_id'] : '';
         $form_title = isset($payment_meta['form_title']) ? $payment_meta['form_title'] : '';
         if (is_numeric($user_id)) {
             $user = get_userdata($user_id);
         } else {
             $user = false;
         }
         $data[] = array('id' => $payment->ID, 'seq_id' => give_get_payment_number($payment->ID), 'email' => $payment_meta['email'], 'first' => $user_info['first_name'], 'last' => $user_info['last_name'], 'address1' => isset($user_info['address']['line1']) ? $user_info['address']['line1'] : '', 'address2' => isset($user_info['address']['line2']) ? $user_info['address']['line2'] : '', 'city' => isset($user_info['address']['city']) ? $user_info['address']['city'] : '', 'state' => isset($user_info['address']['state']) ? $user_info['address']['state'] : '', 'country' => isset($user_info['address']['country']) ? $user_info['address']['country'] : '', 'zip' => isset($user_info['address']['zip']) ? $user_info['address']['zip'] : '', 'amount' => html_entity_decode(give_format_amount($total)), 'form_id' => $form_id, 'form' => $form_title, 'gateway' => give_get_gateway_admin_label(get_post_meta($payment->ID, '_give_payment_gateway', true)), 'trans_id' => give_get_payment_transaction_id($payment->ID), 'key' => $payment_meta['key'], 'date' => $payment->post_date, 'user' => $user ? $user->display_name : __('guest', 'give'), 'status' => give_get_payment_status($payment, true));
     }
     $data = apply_filters('give_export_get_data', $data);
     $data = apply_filters('give_export_get_data_' . $this->export_type, $data);
     return $data;
 }
 /**
  * This function renders most of the columns in the list table.
  *
  * @access public
  * @since  1.0
  *
  * @param array  $item        Contains all the data of the discount code
  * @param string $column_name The name of the column
  *
  * @return string Column Name
  */
 public function column_default($payment, $column_name)
 {
     switch ($column_name) {
         case 'amount':
             $amount = !empty($payment->total) ? $payment->total : 0;
             $value = give_currency_filter(give_format_amount($amount), give_get_payment_currency_code($payment->ID));
             break;
         case 'date':
             $date = strtotime($payment->date);
             $value = date_i18n(get_option('date_format'), $date);
             break;
         case 'status':
             $payment = get_post($payment->ID);
             $value = '<div class="give-donation-status status-' . sanitize_title(give_get_payment_status($payment, true)) . '"><span class="give-donation-status-icon"></span> ' . give_get_payment_status($payment, true) . '</div>';
             break;
         case 'details':
             $value = '<div class="give-payment-details-link-wrap"><a href="' . esc_url(add_query_arg('id', $payment->ID, admin_url('edit.php?post_type=give_forms&page=give-payment-history&view=view-order-details'))) . '" class="give-payment-details-link button button-small">' . __('View Donation Details', 'give') . '</a></div>';
             break;
         default:
             $value = isset($payment->{$column_name}) ? $payment->{$column_name} : '';
             break;
     }
     return apply_filters('give_payments_table_column', $value, $payment->ID, $column_name);
 }
 */
global $give_receipt_args, $give_options, $payment;
//Validation: Ensure $payment var is set
if (empty($payment) && isset($give_receipt_args['id'])) {
    $payment = get_post($give_receipt_args['id']);
}
//Double-Validation: Check for $payment global
if (empty($payment)) {
    give_output_error(__('The specified receipt ID appears to be invalid', 'give'));
    return;
}
$meta = give_get_payment_meta($payment->ID);
$donation = $meta['form_title'];
$user = give_get_payment_meta_user_info($payment->ID);
$email = give_get_payment_user_email($payment->ID);
$status = give_get_payment_status($payment, true);
?>

<?php 
do_action('give_payment_receipt_before_table', $payment, $give_receipt_args);
?>

	<table id="give_donation_receipt" class="give-table">
		<thead>
		<?php 
do_action('give_payment_receipt_before', $payment, $give_receipt_args);
?>

		<?php 
if (filter_var($give_receipt_args['payment_id'], FILTER_VALIDATE_BOOLEAN)) {
    ?>
 /**
  *  Get payment status html.
  *
  * @access public
  * @since  1.0
  *
  * @param  Give_Payment $payment Contains all the data of the payment
  *
  * @return string                Data shown in the Email column
  */
 function get_payment_status($payment)
 {
     $value = '<div class="give-donation-status status-' . sanitize_title(give_get_payment_status($payment, true)) . '"><span class="give-donation-status-icon"></span> ' . give_get_payment_status($payment, true) . '</div>';
     if ($payment->mode == 'test') {
         $value .= ' <span class="give-item-label give-item-label-orange give-test-mode-transactions-label" data-tooltip="' . esc_attr__('This payment was made in test mode', 'give') . '">' . esc_html__('Test', 'give') . '</span>';
     }
     return $value;
 }
</td>
				<td class="give_purchase_amount">
					<span class="give_purchase_amount"><?php 
        echo give_currency_filter(give_format_amount(give_get_payment_amount($post->ID)));
        ?>
</span>
				</td>
				<td class="give_purchase_details">
					<?php 
        if ($post->post_status != 'publish') {
            ?>
						<span class="give_purchase_status <?php 
            echo $post->post_status;
            ?>
"><?php 
            echo give_get_payment_status($post, true);
            ?>
</span>
						<a href="<?php 
            echo esc_url(add_query_arg('payment_key', give_get_payment_key($post->ID), give_get_success_page_uri()));
            ?>
">&raquo;</a>
					<?php 
        } else {
            ?>
						<a href="<?php 
            echo esc_url(add_query_arg('payment_key', give_get_payment_key($post->ID), give_get_success_page_uri()));
            ?>
"><?php 
            _e('View Details', 'give');
            ?>