/** * update registration REG_paid field after successful payment and link registration with payment * * @param EE_Registration $registration * @param EE_Payment $payment * @param float $payment_amount * @return float * @throws \EE_Error */ protected function _apply_registration_payment(EE_Registration $registration, EE_Payment $payment, $payment_amount = 0.0) { // find any existing reg payment records for this registration and payment $existing_reg_payment = EEM_Registration_Payment::instance()->get_one(array(array('REG_ID' => $registration->ID(), 'PAY_ID' => $payment->ID()))); // if existing registration payment exists if ($existing_reg_payment instanceof EE_Registration_Payment) { // then update that record $existing_reg_payment->set_amount($payment_amount); $existing_reg_payment->save(); } else { // or add new relation between registration and payment and set amount $registration->_add_relation_to($payment, 'Payment', array('RPY_amount' => $payment_amount)); // make it stick $registration->save(); } }
/** * _associate_attendee_with_registration * * @param EE_Registration $registration * @param EE_Attendee $attendee * @return void */ private function _associate_attendee_with_registration(EE_Registration $registration, EE_Attendee $attendee) { // add relation to attendee $registration->_add_relation_to($attendee, 'Attendee'); $registration->set_attendee_id($attendee->ID()); $registration->update_cache_after_object_save('Attendee', $attendee); }
/** * This handles connecting a registration to related items when the chained flag is true. * * @since 4.3.0 * * @param EE_Registration $registration * @param array $args incoming arguments from caller for specifying overrides. * * @return EE_Registration */ private function _maybe_chained(EE_Registration $registration, $args) { if ($this->_chained) { if (empty($this->_transaction) || empty($this->_ticket) || empty($this->_attendee) || empty($this->_status)) { $this->_set_new_relations($args); } //add relation to transaction $registration->_add_relation_to($this->_transaction, 'Transaction'); //add relation to ticket $registration->_add_relation_to($this->_ticket, 'Ticket'); //add relation to event $event = $this->_ticket->get_first_related('Datetime')->get_first_related('Event'); $registration->_add_relation_to($event, 'Event'); //add relation to attendee $registration->_add_relation_to($this->_attendee, 'Attendee'); //add relation to status $registration->_add_relation_to($this->_status, 'Status'); $registration->save(); return $registration; } return $registration; }