public function setUp()
 {
     parent::setUp();
     /* Campaign 1: $40,000 goal, 300 days till end */
     $campaign_1_id = Charitable_Campaign_Helper::create_campaign(array('post_title' => 'Test Campaign 1', '_campaign_goal' => 40000.0, '_campaign_end_date' => date('Y-m-d H:i:s', strtotime('+300 days'))));
     $this->campaign_1 = new Charitable_Campaign(get_post($campaign_1_id));
     /* Campaign 2: $40,000 goal, 300 days till end */
     $campaign_2_id = Charitable_Campaign_Helper::create_campaign(array('post_title' => 'Test Campaign 2', '_campaign_goal' => 10000.0));
     $this->campaign_2 = new Charitable_Campaign(get_post($campaign_2_id));
     /* Create a couple donations */
     $this->user_id = $this->factory->user->create(array('display_name' => 'John Henry'));
     $user = new Charitable_User($this->user_id);
     $this->donor_id = $user->add_donor();
 }
 /**
  * Returns the donor_id for the current donation. 
  *
  * @return  int
  * @access  public
  * @since   1.0.0
  */
 public function get_donor_id()
 {
     if (!isset($this->donor_id)) {
         $this->donor_id = $this->get_donation_data_value('donor_id', 0);
         if ($this->donor_id) {
             return $this->donor_id;
         }
         $user_id = $this->get_donation_data_value('user_id', get_current_user_id());
         $user_data = $this->get_donation_data_value('user', array());
         if ($user_id) {
             $this->donor_id = charitable_get_table('donors')->get_donor_id($user_id);
         } elseif (isset($user_data['email'])) {
             $this->donor_id = charitable_get_table('donors')->get_donor_id_by_email($user_data['email']);
         }
         /* If we still do not have a donor ID, it means that this is a first-time donor */
         if (0 == $this->donor_id) {
             $user = new Charitable_User($user_id);
             $this->donor_id = $user->add_donor($user_data);
         }
     }
     return $this->donor_id;
 }