public function get_api_user_to_id($ucm_user_data) { //print_r($ucm_user_data);exit; $comment_user = new SupportHubUser_ucm(); if (!empty($ucm_user_data['email'])) { $comment_user->load_by('user_email', trim(strtolower($ucm_user_data['email']))); } if (!$comment_user->get('shub_user_id')) { // didn't find one yet. // find by envato username? if (isset($ucm_user_data['envato']['user'])) { $first = current($ucm_user_data['envato']['user']); if ($first && !empty($first['envato_username'])) { if ($comment_user->load_by_meta('envato_username', strtolower($first['envato_username']))) { // found! yay! SupportHub::getInstance()->log_data(_SUPPORT_HUB_LOG_INFO, 'ucm', 'Found a user based on envato username.', array('username' => $first['envato_username'], 'found_user_id' => $comment_user->get('shub_user_id'))); } } } } if (isset($ucm_user_data['envato']['purchases']) && is_array($ucm_user_data['envato']['purchases'])) { // find a matching user account with these purchases. foreach ($ucm_user_data['envato']['purchases'] as $purchase) { if (!empty($purchase['license_code'])) { // pull in the license code using the envato module if it's enabled. if (isset(SupportHub::getInstance()->message_managers['envato'])) { $result = SupportHub::getInstance()->message_managers['envato']->pull_purchase_code(false, $purchase['license_code'], array(), $comment_user->get('shub_user_id')); if ($result && !empty($result['shub_user_id'])) { $comment_user->load($result['shub_user_id']); SupportHub::getInstance()->log_data(_SUPPORT_HUB_LOG_INFO, 'ucm', 'Found a user based on license code.', array('license_code' => $purchase['license_code'], 'found_user_id' => $comment_user->get('shub_user_id'))); break; } } } } } if (!$comment_user->get('shub_user_id')) { // find a match based on email. if (!empty($ucm_user_data['email'])) { $comment_user->load_by('user_email', trim(strtolower($ucm_user_data['email']))); } } if (!$comment_user->get('shub_user_id')) { // no existing matches yet, create a new user with the above meta values so that we can find them again in the future. $comment_user->create_new(); } // now we add/update various meta/values of the user if anything is missing. if (!empty($ucm_user_data['email']) && !$comment_user->get('user_email')) { $comment_user->update('user_email', trim(strtolower($ucm_user_data['email']))); } if (isset($ucm_user_data['envato']['user'])) { $first = current($ucm_user_data['envato']['user']); if ($first && !empty($first['envato_username']) && !$comment_user->get_meta('envato_username', strtolower($first['envato_username']))) { $comment_user->add_meta('envato_username', strtolower($first['envato_username'])); if (!$comment_user->get('user_username')) { $comment_user->update('user_username', strtolower($first['envato_username'])); } } } if (isset($ucm_user_data['envato']['purchases'])) { foreach ($ucm_user_data['envato']['purchases'] as $purchase) { if (!empty($purchase['license_code']) && !$comment_user->get_meta('envato_license_code', strtolower($purchase['license_code']))) { $comment_user->add_meta('envato_license_code', strtolower($purchase['license_code'])); } } } if (!empty($ucm_user_data['name'])) { if (empty($ucm_user_data['last_name'])) { $bits = explode(" ", $ucm_user_data['name']); $ucm_user_data['name'] = array_shift($bits); $ucm_user_data['last_name'] = implode(" ", $bits); } } if (!$comment_user->get('user_fname') && !empty($ucm_user_data['name'])) { $comment_user->update('user_fname', $ucm_user_data['name']); } if (!$comment_user->get('user_lname') && !empty($ucm_user_data['last_name'])) { $comment_user->update('user_lname', $ucm_user_data['last_name']); } $comment_user->update_user_data($ucm_user_data); return $comment_user->get('shub_user_id'); }