/**
  *@singleton method used to instantiate class object
  *@access public
  *@return EE_Registration_Processor instance
  */
 public static function instance()
 {
     // check if class object is instantiated
     if (!self::$_instance instanceof EE_Registration_Processor) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * used by factory to create registration object.
  *
  * @since 4.3.0
  *
  * @param array $args Incoming field values to set on the new object
  *
  * @return EE_Registration|false
  */
 public function create_object($args)
 {
     static $att_nmbr = 0;
     //timezone?
     if (isset($args['timezone'])) {
         $timezone = $args['timezone'];
         unset($args['timezone']);
     } else {
         $timezone = null;
     }
     //date_formats?
     if (isset($args['formats']) && is_array($args['formats'])) {
         $formats = $args['formats'];
         unset($args['formats']);
     } else {
         $formats = array();
     }
     $registration = EE_Registration::new_instance($args, $timezone, $formats);
     //some things have to be set after the registration has been instantiated.
     $registration->set('REG_session', uniqid());
     $registrationID = $registration->save();
     $registration = $this->_maybe_chained($registration, $args);
     //only run finalize if $chained because it requires EE_Transaction
     if ($this->_chained) {
         $p = EE_Registration_Processor::instance();
         $att_nmbr++;
         $registration->set_reg_url_link($p->generate_reg_url_link($att_nmbr, md5('ticket' . $registrationID . time())));
         $registration->set_reg_code($p->generate_reg_code($registration));
         $registration->save();
     }
     return $registrationID ? $registration : false;
 }
 /**
  * used by factory to create registration object.
  *
  * @since 4.3.0
  *
  * @param array  $args Incoming field values to set on the new object
  *
  * @return EE_Registration|false
  */
 public function create_object($args)
 {
     static $att_nmbr = 0;
     $registration = EE_Registration::new_instance($args);
     //some things have to be set after the registration has been instantiated.
     $registration->set('REG_session', uniqid());
     $registrationID = $registration->save();
     $registration = $this->_maybe_chained($registration, $args);
     //only run finalize if $chained because it requires EE_Transaction
     if ($this->_chained) {
         $p = EE_Registration_Processor::instance();
         $att_nmbr++;
         $registration->set_reg_url_link($p->generate_reg_url_link($att_nmbr, md5('ticket' . $registrationID . time())));
         $registration->set_reg_code($p->generate_reg_code($registration));
         $registration->save();
     }
     return $registrationID ? $registration : false;
 }