/** * 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 }
public function test_give_get_users_completed_donations() { $out2 = give_get_users_completed_donations($this->_user_id); $this->assertInternalType('array', $out2); $this->assertEquals(1, count($out2)); $this->assertInternalType('object', $out2[0]); $this->assertEquals($out2[0]->post_type, 'give_forms'); }