$modelData['reg_request']
)
);
+ $data = array(
+ 'reg_request' => $modelData['reg_request'],
+ 'reg_event' => $modelData['reg_event'],
+ 'event_name' => $modelData['event_name'],
+ 'reg_time' => $modelData['reg_time'],
+ 'event_datetime' => $modelData['event_datetime'],
+ );
+ $dataFormat = array(
+ '%d', // reg_request
+ '%d', // reg_event
+ '%s', // event_name
+ '%d', // reg_time
+ '%s', // event_datetime
+ );
if ( !$regRegquestEventId ) {
$this->wpdb->insert(
GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_event',
- array(
- 'account' => 0,
- 'reg_request' => $modelData['reg_request'],
- 'reg_event' => $modelData['reg_event'],
- 'event_name' => $modelData['event_name'],
- 'reg_time' => $modelData['reg_time'],
- 'event_datetime' => $modelData['event_datetime'],
- ),
- array(
- '%d', // account
- '%d', // reg_request
- '%d', // reg_event
- '%s', // event_name
- '%d', // reg_time
- '%s', // event_datetime
- )
+ $data,
+ $dataFormat
+ );
+ $regRegquestEventId = $this->wpdb->insert_id;
+ } else {
+ $this->wpdb->update(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_event',
+ $data,
+ array( 'id' => $regRegquestEventId ),
+ $dataFormat,
+ array( '%d' )
);
- $regRequestEvent = $this->wpdb->insert_id;
}
// Check for or create reg_request_class
$regRequestClassId = $this->wpdb->get_var(
$modelData['reg_request']
)
);
+ $data = array(
+ 'reg_event' => $modelData['reg_event'],
+ 'event_name' => $modelData['event_name'],
+ 'reg_time' => $modelData['reg_time'],
+ 'event_datetime' => $modelData['event_datetime'],
+ 'reg_request' => $modelData['reg_request'],
+ 'reg_request_event' => $regRegquestEventId,
+ 'class' => $modelData['reg_class'],
+ );
+ $dataFormat = array(
+ '%d', // reg_event
+ '%s', // event_name
+ '%d', // reg_time
+ '%s', // event_datetime
+ '%d', // reg_request
+ '%d', // reg_request_event
+ '%d', // class
+ );
if ( !$regRequestClassId ) {
$this->wpdb->insert(
GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_class',
- array(
- 'account' => 0,
- 'reg_event' => $modelData['reg_event'],
- 'event_name' => $modelData['event_name'],
- 'reg_time' => $modelData['reg_time'],
- 'event_datetime' => $modelData['event_datetime'],
- 'reg_request' => $modelData['reg_request'],
- 'reg_request_event' => $regRegquestEventId,
- 'class' => $modelData['reg_class'],
- ),
- array(
- '%d', // account
- '%d', // reg_event
- '%s', // event_name
- '%d', // reg_time
- '%s', // event_datetime
- '%d', // reg_request
- '%d', // reg_request_event
- '%d', // class
- )
+ $data,
+ $dataFormat
);
$regRequestClassId = $this->wpdb->insert_id;
+ } else {
+ $this->wpdb->update(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_class',
+ $data,
+ array( 'id' => $regRequestClassId ),
+ $dataFormat,
+ array( '%d' )
+ );
}
// Check for or create reg_request_rate
$regRequestRate = $this->wpdb->get_var(
$modelData['reg_request']
)
);
+ // At this point we need to get the rate data
+ $rate = $this->wpdb->get_row(
+ $this->wpdb->prepare(
+ "SELECT *
+ FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_rate
+ WHERE id = %d",
+ $modelData['reg_rate']
+ ),
+ ARRAY_A
+ );
+ $data = array(
+ 'reg_event' => $modelData['reg_event'],
+ 'event_name' => $modelData['event_name'],
+ 'reg_time' => $modelData['reg_time'],
+ 'event_datetime' => $modelData['event_datetime'],
+ 'reg_request' => $modelData['reg_request'],
+ 'reg_request_event' => $regRegquestEventId,
+ 'reg_request_class' => $regRequestClassId,
+ 'rate' => $modelData['reg_rate'],
+ 'rate_name' => $rate['name'],
+ 'base_rate' => $rate['base_rate'],
+ 'per_registrant' => $rate['per_registrant'],
+ 'registrant_credits' => $rate['registrant_credits'],
+ ) ;
+ $dataFormat = array(
+ '%d', // reg_event
+ '%s', // event_name
+ '%s', // reg_time
+ '%s', // event_datetime
+ '%d', // reg_request
+ '%d', // reg_request_event
+ '%d', // reg_request_class
+ '%d', // rate
+ '%d', // rate_name
+ '%s', // base_rate
+ '%s', // per_registrant
+ '%d', // registrant_credits
+ );
if ( !$regRequestRate ) {
- // At this point we need to get the rate data
- $rate = $this->wpdb->get_row(
- $this->wpdb->prepare(
- "SELECT *
- FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "reg_rate
- WHERE id = %d",
- $modelData['reg_rate']
- ),
- ARRAY_A
- );
// Now with the previous data we can create reg_request_rate
$this->wpdb->insert(
GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_rate',
+ $data,
+ $dataFormat
+ );
+ $regRequestRate = $this->wpdb->insert_id;
+ } else {
+ // Now with the previous data we can create reg_request_rate
+ $this->wpdb->update(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_rate',
+ $data,
+ array( 'id' => $regRequestRate ),
+ $dataFormat,
+ array( '%d' )
+ );
+ }
+
+ // If we have the email address then look up the account for it
+ if ( isset( $modelData['email'] ) && $email = filter_var( $modelData['email'], FILTER_VALIDATE_EMAIL ) ) {
+ $accountId = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT id
+ FROM " . GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . "account
+ WHERE email = %s",
+ $email
+ )
+ );
+ }
+ if ( !isset( $accountId ) ) {
+ // We need to create an account for this one
+ $this->insert(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'account',
array(
- 'account' => 0,
- 'reg_event' => $modelData['reg_event'],
- 'event_name' => $modelData['event_name'],
- 'reg_time' => $modelData['reg_time'],
- 'event_datetime' => $modelData['event_datetime'],
- 'reg_request' => $modelData['reg_request'],
- 'reg_request_event' => $regRegquestEventId,
- 'reg_request_class' => $regRequestClassId,
- 'rate' => $modelData['reg_rate'],
- 'rate_name' => $rate['name'],
- 'base_rate' => $rate['base_rate'],
- 'per_registrant' => $rate['per_registrant'],
- 'registrant_credits' => $rate['registrant_credits'],
+ 'fname' => $modelData['fname'],
+ 'lname' => $modelData['lname'],
+ 'email' => $modelData['email']
),
- array(
- '%d', // account
- '%d', // reg_event
- '%s', // event_name
- '%s', // reg_time
- '%s', // event_datetime
- '%d', // reg_request
- '%d', // reg_request_event
- '%d', // reg_request_class
- '%d', // rate
- '%d', // rate_name
- '%s', // base_rate
- '%s', // per_registrant
- '%d', // registrant_credits
- )
+ '%s'
);
- $regRequestRate = $this->wpdb->insert_id;
+ $accountId = $this->wpdb->insert_id;
}
// Check for or create reg_request_registrant
$regRequestClassId
)
);
+ $data = array(
+ 'account' => $accountId,
+ 'reg_event' => $modelData['reg_event'],
+ 'event_name' => $modelData['event_name'],
+ 'reg_time' => $modelData['reg_time'],
+ 'event_datetime' => $modelData['event_datetime'],
+ 'reg_request' => $modelData['reg_request'],
+ 'reg_request_event' => $regRegquestEventId,
+ 'reg_request_class' => $regRequestClassId,
+ 'reg_request_rate' => $regRequestRate,
+ 'fname' => $modelData['fname'],
+ 'lname' => $modelData['lname'],
+ );
+ $dataFormat = array(
+ '%d', // account
+ '%d', // reg_event
+ '%s', // event_name
+ '%s', // reg_time
+ '%s', // event_datetime
+ '%d', // reg_request
+ '%d', // reg_request_event
+ '%d', // reg_request_class
+ '%d', // reg_request_rate
+ '%s', // fname
+ '%s', // lname
+ );
if ( !$regRequestRegistrantId ) {
$this->wpdb->insert(
GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_registrant',
- array(
- 'account' => $modelData['account'],
- 'reg_event' => $modelData['reg_event'],
- 'event_name' => $modelData['event_name'],
- 'reg_time' => $modelData['reg_time'],
- 'event_datetime' => $modelData['event_datetime'],
- 'reg_request' => $modelData['reg_request'],
- 'reg_request_event' => $regRegquestEventId,
- 'reg_request_class' => $regRequestClassId,
- 'reg_request_rate' => $regRequestRate,
- 'fname' => $modelData['fname'],
- 'lname' => $modelData['lname'],
- ),
- array(
- '%d', // account
- '%d', // reg_event
- '%s', // event_name
- '%s', // reg_time
- '%s', // event_datetime
- '%d', // reg_request
- '%d', // reg_request_event
- '%d', // reg_request_class
- '%d', // reg_request_rate
- '%d', // fname
- '%s', // lname
- )
+ $data,
+ $dataFormat
);
$regRequestRegistrantId = $this->wpdb->insert_id;
+ } else {
+ $this->wpdb->update(
+ GLM_MEMBERS_REGISTRATIONS_PLUGIN_DB_PREFIX . 'reg_request_registrant',
+ $data,
+ array( 'id' => $regRequestRegistrantId ),
+ $dataFormat,
+ array( '%d' )
+ );
}
$regRequstRegistrant = $this->getEntry( $regRequestRegistrantId );
echo json_encode( $regRequstRegistrant, JSON_NUMERIC_CHECK );