/** * 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; }
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()); }