/**
  * Return the campaigns donated to.
  *
  * @return  string
  * @access  public
  * @since   1.4.2
  */
 public function get_campaigns_for_donation($value)
 {
     if (!$this->has_valid_donation()) {
         return $value;
     }
     return $this->donation->get_campaigns_donated_to();
 }
 /**
  * Process the donation with PayPal.
  *   
  * @param   int $donation_id
  * @param   Charitable_Donation_Processor $processor
  * @return  void
  * @access  public
  * @static
  * @since   1.0.0
  */
 public static function process_donation($donation_id, $processor)
 {
     $gateway = new Charitable_Gateway_Paypal();
     $user_data = $processor->get_donation_data_value('user');
     $donation = new Charitable_Donation($donation_id);
     $transaction_mode = $gateway->get_value('transaction_mode');
     $paypal_args = apply_filters('charitable_paypal_redirect_args', array('business' => $gateway->get_value('paypal_email'), 'email' => $user_data['email'], 'first_name' => $user_data['first_name'], 'last_name' => $user_data['last_name'], 'address1' => $user_data['address'], 'address2' => $user_data['address_2'], 'city' => $user_data['city'], 'country' => $user_data['country'], 'zip' => $user_data['postcode'], 'invoice' => $processor->get_donation_data_value('donation_key'), 'amount' => $donation->get_total_donation_amount(), 'item_name' => html_entity_decode($donation->get_campaigns_donated_to(), ENT_COMPAT, 'UTF-8'), 'no_shipping' => '1', 'shipping' => '0', 'no_note' => '1', 'currency_code' => charitable_get_currency(), 'charset' => get_bloginfo('charset'), 'custom' => $donation_id, 'rm' => '2', 'return' => charitable_get_permalink('donation_receipt_page', array('donation_id' => $donation_id)), 'cancel_return' => home_url(), 'notify_url' => $processor->get_ipn_url(self::ID), 'cbt' => get_bloginfo('name'), 'bn' => 'Charitable_SP', 'cmd' => $transaction_mode == 'donations' ? '_donations' : '_xclick'), $donation_id, $processor);
     /**
      * Set up the PayPal redirect URL
      */
     $paypal_redirect = trailingslashit($gateway->get_redirect_url()) . '?';
     $paypal_redirect .= http_build_query($paypal_args);
     $paypal_redirect = str_replace('&', '&', $paypal_redirect);
     /**
      * Redirect to PayPal
      */
     wp_redirect($paypal_redirect);
     exit;
 }
Example #3
0
 public function test_get_campaigns_donated_to()
 {
     $donation_id = Charitable_Donation_Helper::create_donation(array('campaigns' => array(array('campaign_id' => $this->campaign_1->ID, 'campaign_name' => 'Test Campaign 1', 'amount' => 10), array('campaign_id' => $this->campaign_2->ID, 'campaign_name' => 'Test Campaign 2', 'amount' => 10)), 'status' => 'charitable-pending'));
     $donation = new Charitable_Donation($donation_id);
     $this->assertEquals('Test Campaign 1, Test Campaign 2', $donation->get_campaigns_donated_to());
 }