/** 
  * Test retrieving the campaign donation data.
  */
 public function test_get_campaign_donation_data()
 {
     $processor = Charitable_Donation_Processor::get_instance();
     $donation_id = $processor->save_donation(array('user_id' => 1, 'campaigns' => array(array('campaign_id' => $this->campaign_1->ID, 'campaign_name' => get_the_title($this->campaign_1), 'amount' => 30), array('campaign_id' => $this->campaign_2->ID, 'campaign_name' => get_the_title($this->campaign_2), 'amount' => 40)), 'status' => 'charitable-completed', 'gateway' => 'manual', 'note' => ''));
     $this->assertCount(2, $processor->get_campaign_donations_data());
     Charitable_Donation_Processor::destroy();
 }
 /**
  * Create a donation. 
  *
  * @param 	array 		$args 				Optional arguments.
  * @return 	int 		$donation_id
  * @access  public
  * @static
  * @since 	1.0.0	 
  */
 public static function create_donation($args = array())
 {
     $defaults = array('user_id' => 1, 'campaigns' => array(), 'status' => 'charitable-completed', 'gateway' => 'manual', 'note' => '');
     $args = array_merge($defaults, $args);
     if (empty($args['campaigns']) || !is_array($args['campaigns'])) {
         wp_die('You must pass an array of campaigns to create a donation.');
     }
     $donation_id = Charitable_Donation_Processor::get_instance()->save_donation($args);
     Charitable_Donation_Processor::destroy();
     return $donation_id;
 }
/**
 * Create a donation.
 *
 * @param   array $args Values for the donation.
 * @return  int
 * @since   1.4.0
 */
function charitable_create_donation(array $args)
{
    $donation_id = Charitable_Donation_Processor::get_instance()->save_donation($args);
    Charitable_Donation_Processor::destroy();
    return $donation_id;
}