/** * Return the donors to display in the widget. * * @param mixed[] $instance * @return array * @access protected * @since 1.0.0 */ protected function get_widget_donors($instance) { $query_args = array('number' => $instance['number'], 'output' => 'donors'); if ('amount' == $instance['order']) { $query_args['orderby'] = 'amount'; } if ('current' == $instance['campaign_id']) { $query_args['campaign'] = charitable_get_current_campaign_id(); } elseif ('all' != $instance['campaign_id']) { $query_args['campaign'] = intval($instance['campaign_id']); } $query_args['distinct_donors'] = $instance['show_distinct']; $query_args = apply_filters('charitable_donors_widget_donor_query_args', $query_args, $instance); return new Charitable_Donor_Query($query_args); }
/** * Save the submitted donation. * * @return int|false If successful, this returns the donation ID. If unsuccessful, returns false. * @access public * @since 1.0.0 */ public function save_donation() { $campaign_id = charitable_get_current_campaign_id(); if (!$campaign_id) { return 0; } if (!$this->validate_nonce()) { return 0; } /* Set the donation amount */ $campaign_id = $this->get_campaign()->ID; $amount = parent::get_donation_amount(); if (0 == $amount && !apply_filters('charitable_permit_empty_donations', false)) { charitable_get_notices()->add_error(__('No donation amount was set.', 'charitable')); return false; } /* Create or update the donation object in the session, with the current campaign ID. */ charitable_get_session()->add_donation($campaign_id, $amount); do_action('charitable_donation_amount_form_submit', $campaign_id, $amount); return true; }
/** * Returns whether the current user is the creator of the given campaign. * * @param int $campaign_id * @return boolean * @since 1.0.0 */ function charitable_is_current_campaign_creator($campaign_id = null) { if (is_null($campaign_id)) { $campaign_id = charitable_get_current_campaign_id(); } return get_post_field('post_author', $campaign_id) == get_current_user_id(); }