This class is for retrieving payments data. Payments can be retrieved for date ranges and pre-defined periods.
Since: 1.0
Inheritance: extends Give_Stats
Exemple #1
0
/**
 * Gets the next available order number
 *
 * This is used when inserting a new payment
 *
 * @since 1.0
 * @return string $number The next available payment number
 */
function give_get_next_payment_number()
{
    if (!give_get_option('enable_sequential')) {
        return false;
    }
    $number = get_option('give_last_payment_number');
    $start = give_get_option('sequential_start', 1);
    $increment_number = true;
    if (false !== $number) {
        if (empty($number)) {
            $number = $start;
            $increment_number = false;
        }
    } else {
        // This case handles the first addition of the new option, as well as if it get's deleted for any reason
        $payments = new Give_Payments_Query(array('number' => 1, 'order' => 'DESC', 'orderby' => 'ID', 'output' => 'posts', 'fields' => 'ids'));
        $last_payment = $payments->get_payments();
        if (!empty($last_payment)) {
            $number = give_get_payment_number($last_payment[0]);
        }
        if (!empty($number) && $number !== (int) $last_payment[0]) {
            $number = give_remove_payment_prefix_postfix($number);
        } else {
            $number = $start;
            $increment_number = false;
        }
    }
    $increment_number = apply_filters('give_increment_payment_number', $increment_number, $number);
    if ($increment_number) {
        $number++;
    }
    return apply_filters('give_get_next_payment_number', $number);
}
 /**
  * Retrieve all the data for all the payments
  *
  * @access public
  * @since  1.0
  * @return array $payment_data Array of all the data for the payments
  */
 public function payments_data()
 {
     $per_page = $this->per_page;
     $orderby = isset($_GET['orderby']) ? urldecode($_GET['orderby']) : 'ID';
     $order = isset($_GET['order']) ? $_GET['order'] : 'DESC';
     $user = isset($_GET['user']) ? $_GET['user'] : null;
     $status = isset($_GET['status']) ? $_GET['status'] : give_get_payment_status_keys();
     $meta_key = isset($_GET['meta_key']) ? $_GET['meta_key'] : null;
     $year = isset($_GET['year']) ? $_GET['year'] : null;
     $month = isset($_GET['m']) ? $_GET['m'] : null;
     $day = isset($_GET['day']) ? $_GET['day'] : null;
     $search = isset($_GET['s']) ? sanitize_text_field($_GET['s']) : null;
     $start_date = isset($_GET['start-date']) ? sanitize_text_field($_GET['start-date']) : null;
     $end_date = isset($_GET['end-date']) ? sanitize_text_field($_GET['end-date']) : $start_date;
     if (!empty($search)) {
         $status = 'any';
         // Force all payment statuses when searching
     }
     $args = array('output' => 'payments', 'number' => $per_page, 'page' => isset($_GET['paged']) ? $_GET['paged'] : null, 'orderby' => $orderby, 'order' => $order, 'user' => $user, 'status' => $status, 'meta_key' => $meta_key, 'year' => $year, 'month' => $month, 'day' => $day, 's' => $search, 'start_date' => $start_date, 'end_date' => $end_date);
     if (is_string($search) && false !== strpos($search, 'txn:')) {
         $args['search_in_notes'] = true;
         $args['s'] = trim(str_replace('txn:', '', $args['s']));
     }
     $p_query = new Give_Payments_Query($args);
     return $p_query->get_payments();
 }
Exemple #3
0
/**
 * Gets the next available order number
 *
 * This is used when inserting a new payment
 *
 * @since 1.0
 * @return string $number The next available payment number
 */
function give_get_next_payment_number()
{
    if (!give_get_option('enable_sequential')) {
        return false;
    }
    $prefix = give_get_option('sequential_prefix');
    $postfix = give_get_option('sequential_postfix');
    $start = give_get_option('sequential_start', 1);
    $payments = new Give_Payments_Query(array('number' => 1, 'order' => 'DESC', 'orderby' => 'ID', 'output' => 'posts', 'fields' => 'ids'));
    $last_payment = $payments->get_payments();
    if ($last_payment) {
        $number = give_get_payment_number($last_payment[0]);
        if (empty($number)) {
            $number = $prefix . $start . $postfix;
        } else {
            // Remove prefix and postfix
            $number = str_replace($prefix, '', $number);
            $number = str_replace($postfix, '', $number);
            // Ensure it's a whole number
            $number = intval($number);
            // Increment the payment number
            $number++;
            // Re-add the prefix and postfix
            $number = $prefix . $number . $postfix;
        }
    } else {
        $number = $prefix . $start . $postfix;
    }
    return apply_filters('give_get_next_payment_number', $number);
}