Example #1
0
 public function __set($field, $value)
 {
     switch ($field) {
         case 'title':
         case 'payment_title':
         case 'purpose_text':
             if ($value != $this->_post_object->post_title) {
                 wp_update_post(array('ID' => $this->_id, 'post_title' => $value));
                 $this->_post_object->post_title = $value;
             }
             break;
         case 'status':
             if (!array_key_exists($value, leyka_get_donation_status_list()) || $value == $this->status) {
                 return false;
             }
             $res = wp_update_post(array('ID' => $this->_id, 'post_status' => $value));
             $status_log = get_post_meta($this->_id, '_status_log', true);
             $status_log[] = array('date' => time(), 'status' => $value);
             update_post_meta($this->_id, '_status_log', $status_log);
             $this->_donation_meta['status_log'] = $status_log;
             break;
         case 'date':
             wp_update_post(array('ID' => $this->_id, 'post_date' => $value));
             break;
         case 'date_timestamp':
             wp_update_post(array('ID' => $this->_id, 'post_date' => date('Y-m-d H:i:s', $value)));
             break;
         case 'donor_name':
             update_post_meta($this->_id, 'leyka_donor_name', $value);
             $this->_donation_meta['donor_name'] = $value;
             break;
         case 'donor_email':
             update_post_meta($this->_id, 'leyka_donor_email', $value);
             $this->_donation_meta['donor_email'] = $value;
             break;
         case 'sum':
         case 'amount':
         case 'donation_amount':
             update_post_meta($this->_id, 'leyka_donation_amount', $value);
             $this->_donation_meta['amount'] = $value;
             break;
         case 'currency':
         case 'donation_currency':
             update_post_meta($this->_id, 'leyka_donation_currency', $value);
             $this->_donation_meta['currency'] = $value;
             break;
         case 'gw_id':
         case 'gateway_id':
             update_post_meta($this->_id, 'leyka_gateway', $value);
             $this->_donation_meta['gateway'] = $value;
             break;
         case 'pm':
         case 'pm_id':
         case 'payment_method_id':
             update_post_meta($this->_id, 'leyka_payment_method', $value);
             $this->_donation_meta['payment_method'] = $value;
             break;
         case 'type':
         case 'payment_type':
             $value = in_array($value, array_keys(leyka_get_payment_types_list())) ? $value : 'single';
             update_post_meta($this->_id, 'leyka_payment_type', $value);
             $this->_donation_meta['payment_type'] = $value;
             break;
         case 'campaign':
         case 'campaign_id':
             $value = (int) $value > 0 ? (int) $value : $this->campaign_id;
             update_post_meta($this->_id, 'leyka_campaign_id', $value);
             $this->_donation_meta['campaign_id'] = $value;
             break;
         case 'init_recurring_payment':
         case 'init_recurring_payment_id':
         case 'init_recurring_donation':
         case 'init_recurring_donation_id':
             $value = (int) $value;
             if ($value > 0 && $value != $this->_post_object->post_parent) {
                 wp_update_post(array('ID' => $this->_id, 'post_parent' => $value));
                 $this->_post_object->post_parent = $value;
             }
             break;
         case 'recurrents_cancelled':
             $value = !!$value;
             update_post_meta($this->_id, 'leyka_recurrents_cancelled', $value);
             update_post_meta($this->_id, 'leyka_recurrents_cancel_date', $value ? time() : 0);
             $this->_donation_meta['recurrents_cancelled'] = $value;
             $this->_donation_meta['recurrents_cancel_date'] = $value;
             break;
         default:
             do_action('leyka_set_unknown_donation_field', $field, $value, $this);
     }
     return true;
 }
function leyka_get_payment_type_label($type)
{
    if (empty($type)) {
        return false;
    }
    $types = leyka_get_payment_types_list();
    return in_array($type, array_keys($types)) ? $types[$type] : false;
}