Ejemplo n.º 1
0
 /** Save donation data metabox */
 public function save_donation_data($donation_id)
 {
     // Maybe donation is inserted trough API:
     if (empty($_POST['post_type']) || $_POST['post_type'] != Leyka_Donation_Management::$post_type) {
         return false;
     }
     if (empty($_POST['_donation_edit_nonce']) || !wp_verify_nonce($_POST['_donation_edit_nonce'], 'donation_status_metabox')) {
         return $donation_id;
     }
     if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
         return $donation_id;
     }
     if (!current_user_can('edit_donation', $donation_id)) {
         return $donation_id;
     }
     remove_action('save_post', array($this, 'save_donation_data'));
     $donation = new Leyka_Donation($donation_id);
     if ($donation->status != $_POST['donation_status']) {
         $donation->status = $_POST['donation_status'];
     }
     if (isset($_POST['campaign-id']) && $donation->campaign_id != (int) $_POST['campaign-id']) {
         $old_campaign = new Leyka_Campaign($donation->campaign_id);
         $new_campaign = new Leyka_Campaign((int) $_POST['campaign-id']);
         $donation->campaign_id = (int) $_POST['campaign-id'];
         $old_campaign->update_total_funded_amount($donation)->refresh_target_state();
         $new_campaign->update_total_funded_amount($donation)->refresh_target_state();
     }
     // It's a new correction donation, set a title from it's campaign:
     $campaign = new Leyka_Campaign($donation->campaign_id);
     $donation_title = $campaign->payment_title ? $campaign->payment_title : ($campaign->title ? $campaign->title : sprintf(__('Donation #%s', 'leyka'), $donation_id));
     if ($donation->title != $donation_title) {
         $donation->title = $donation_title;
     }
     if (isset($_POST['donor-name']) && $donation->donor_name != $_POST['donor-name']) {
         $donation->donor_name = $_POST['donor-name'];
     }
     if (isset($_POST['donor-email']) && $donation->donor_email != $_POST['donor-email']) {
         $donation->donor_email = $_POST['donor-email'];
     }
     if (isset($_POST['donation-amount']) && (double) $donation->amount != (double) $_POST['donation-amount']) {
         $donation->amount = (double) $_POST['donation-amount'];
     }
     if (!$donation->currency) {
         $donation->currency = 'rur';
     }
     if (isset($_POST['donation-pm']) && ($donation->pm != $_POST['donation-pm'] || $_POST['donation-pm'] == 'custom')) {
         if ($_POST['donation-pm'] == 'custom') {
             $donation->gateway_id = '';
             if ($donation->pm_id != $_POST['custom-payment-info']) {
                 $donation->pm_id = $_POST['custom-payment-info'];
             }
         } else {
             $parts = explode('-', $_POST['donation-pm']);
             $donation->gateway_id = $parts[0];
             $donation->pm = $parts[1];
         }
     }
     if (isset($_POST['donation_date']) && $donation->date_timestamp != strtotime($_POST['donation_date'])) {
         $donation->date = $_POST['donation_date'];
     }
     if (isset($_POST['payment-type']) && $donation->payment_type != $_POST['payment-type']) {
         $donation->payment_type = $_POST['payment-type'];
     }
     do_action("leyka_{$donation->gateway_id}_save_donation_data", $donation);
     add_action('save_post', array($this, 'save_donation_data'));
     return true;
 }
Ejemplo n.º 2
0
function leyka_recalculate_total_funded_action()
{
    if (!wp_verify_nonce($_GET['nonce'], 'leyka_recalculate_total_funded_amount')) {
        wp_die(__('Error: incorrect request parameters', 'leyka'));
    }
    if (empty($_GET['campaign_id'])) {
        wp_die(__('Error: campaign ID is missing', 'leyka'));
    }
    $campaign = new Leyka_Campaign((int) $_GET['campaign_id']);
    $campaign->update_total_funded_amount();
    wp_die($campaign->total_funded);
}
Ejemplo n.º 3
0
 function leyka_update_campaigns_total_funded()
 {
     set_time_limit(3600);
     wp_suspend_cache_addition(true);
     $campaigns = get_posts(array('post_type' => Leyka_Campaign_Management::$post_type, 'nopaging' => true, 'post_status' => 'any'));
     foreach ($campaigns as $campaign) {
         $campaign = new Leyka_Campaign($campaign);
         $campaign->update_total_funded_amount();
     }
     wp_suspend_cache_addition(false);
 }