Exemplo n.º 1
0
 * Display a widget with a link to donate to a campaign.
 *
 * Override this template by copying it to yourtheme/charitable/widgets/donate.php
 *
 * @author  Studio 164a
 * @since   1.0.0
 */
if (!defined('ABSPATH')) {
    exit;
}
// Exit if accessed directly
if (!charitable_is_campaign_page() && 'current' == $view_args['campaign_id']) {
    return;
}
$widget_title = apply_filters('widget_title', $view_args['title']);
$campaign_id = 'current' == $view_args['campaign_id'] ? get_the_ID() : $view_args['campaign_id'];
$campaign = charitable_get_campaign($campaign_id);
if ($campaign->has_ended()) {
    return;
}
$suggested_donations = $campaign->get_suggested_donations();
if (empty($suggested_donations) && !$campaign->get('allow_custom_donations')) {
    return;
}
echo $view_args['before_widget'];
if (!empty($widget_title)) {
    echo $view_args['before_title'] . $widget_title . $view_args['after_title'];
}
$form = new Charitable_Donation_Amount_Form($campaign);
$form->render();
echo $view_args['after_widget'];
 /**
  * Save a donation.
  *
  * @return  void
  * @access  public
  * @static
  * @since   1.0.0
  */
 public static function make_donation_streamlined()
 {
     $processor = self::get_instance();
     $campaign = $processor->get_campaign();
     if (!$campaign) {
         return;
     }
     /**
      * @hook charitable_before_process_donation_amount_form
      */
     do_action('charitable_before_process_donation_amount_form', $processor);
     /* Validate the form submission and retrieve the values. */
     $form = new Charitable_Donation_Amount_Form($campaign);
     if (!$form->validate_submission()) {
         return;
     }
     $submitted = $form->get_donation_values();
     charitable_get_session()->add_donation($submitted['campaign_id'], $submitted['amount']);
     /**
      * @hook charitable_after_process_donation_amount_form
      */
     do_action('charitable_after_process_donation_amount_form', $processor, $submitted);
     /**
      * If we get this far, forward the user through to the donation page.
      */
     wp_safe_redirect(charitable_get_permalink('campaign_donation_page', array('campaign_id' => $submitted['campaign_id'])));
     die;
 }