public function setDefaultValues() { $this->loadCart(); $defaults = array(); foreach ($this->cart->get_main_event_participants() as $participant) { $form = $participant->get_form(); if (empty($participant->email) && !CRM_Event_Cart_Form_Cart::is_administrator() && $participant->get_participant_index() == 1 && $this->cid != 0) { $defaults = array(); $params = array('id' => $this->cid); $contact = CRM_Contact_BAO_Contact::retrieve($params, $defaults); $participant->contact_id = $this->cid; $participant->save(); $participant->email = self::primary_email_from_contact($contact); } elseif ($this->cid == 0 && $participant->contact_id == self::getContactID()) { $participant->email = NULL; $participant->contact_id = self::find_or_create_contact($this->getContactID()); } $defaults += $form->setDefaultValues(); } return $defaults; }
/** * Set default values. * * @return array */ public function setDefaultValues() { $this->loadCart(); $defaults = array(); foreach ($this->cart->get_main_event_participants() as $participant) { $form = $participant->get_form(); if (empty($participant->email) && !CRM_Event_Cart_Form_Cart::is_administrator() && $participant->get_participant_index() == 1 && $this->cid != 0) { $defaults = array(); $params = array('id' => $this->cid); $contact = CRM_Contact_BAO_Contact::retrieve($params, $defaults); $participant->contact_id = $this->cid; $participant->save(); $participant->email = self::primary_email_from_contact($contact); } elseif ($this->cid == 0 && $participant->contact_id == self::getContactID()) { $participant->email = NULL; $participant->contact_id = self::find_or_create_contact($this->getContactID()); } $defaults += $form->setDefaultValues(); //Set price defaults if any foreach ($this->cart->get_main_events_in_carts() as $event_in_cart) { $event_id = $event_in_cart->event_id; $price_set_id = CRM_Event_BAO_Event::usesPriceSet($event_in_cart->event_id); if ($price_set_id) { $price_sets = CRM_Price_BAO_PriceSet::getSetDetail($price_set_id, TRUE, TRUE); $price_set = $price_sets[$price_set_id]; foreach ($price_set['fields'] as $field) { $options = CRM_Utils_Array::value('options', $field); if (!is_array($options)) { continue; } $field_name = "event_{$event_id}_price_{$field['id']}"; foreach ($options as $value) { if ($value['is_default']) { if ($field['html_type'] == 'Checkbox') { $defaults[$field_name] = 1; } else { $defaults[$field_name] = $value['id']; } } } } } } } return $defaults; }