'donorEmail', 'user_info' => 'donorInfo', 'post_data' => 'formEntry', 'donation_id' => 'id', 'price' => 'totalAmount', 'gateway' => 'paymentGateway', 'date' => 'createdAt', ]; /** * Map array keys to class properties * * @since 2.7.0 * * @param array $data * * @return DonationObject */ protected function convertToObject($data) { if ( ! $data) { return null; } // Cast date string to DateTime object. $data['date'] = DateTime::createFromFormat('Y-m-d H:i:s', $data['date']); // Rename key if property name exist for them. foreach ($data as $key => $value) { if (array_key_exists($key, $this->renameTo)) { $data[$this->renameTo[$key]] = $value; unset($data[$key]); } } // Rename unknown keys. $data = $this->renameArrayKeysToPropertyNames($data); return DonationObject::fromArray($data); } /** * Get donation id. * * @since 2.7.0 * @return int * */ public function getDonationId() { if ($donationId = $this->getByKey('id')) { return absint($donationId); } return null; } /** * Get donation id. * * @since 2.7.0 * @return int * */ public function getFormId() { /* @var FormEntry $data */ if ($data = $this->getByKey('formEntry')) { return absint($data->formId); } return null; } }