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; }