ID) ->findOne(); switch(current_filter()) { case 'delete_user': case 'deleted_user': case 'remove_user_from_blog': if($subscriber !== false && $subscriber->id()) { $subscriber->delete(); } break; case 'user_register': $new_user = (!$subscriber) ? true : false; case 'added_existing_user': case 'profile_update': default: // get first name & last name $first_name = $wp_user->first_name; $last_name = $wp_user->last_name; if(empty($wp_user->first_name) && empty($wp_user->last_name)) { $first_name = $wp_user->display_name; } // subscriber data $data = array( 'wp_user_id' => $wp_user->ID, 'email' => $wp_user->user_email, 'first_name' => $first_name, 'last_name' => $last_name, 'status' => 'subscribed' ); if($subscriber !== false) { $data['id'] = $subscriber->id(); } $subscriber = Subscriber::createOrUpdate($data); if($subscriber->getErrors() === false && $subscriber->id > 0) { if($segment !== false) { $segment->addSubscriber($subscriber->id); } if(isset($new_user) && $new_user === true) { Scheduler::welcomeForNewWordpressUserRegistration( $subscriber->asArray(), (array) $wp_user ); } } break; } } static function synchronizeUsers() { // get wordpress users list $segment = Segment::getWPUsers(); // count WP users $users_count = \count_users(); $linked_subscribers_count = $segment->subscribers()->count(); if($users_count['total_users'] !== $linked_subscribers_count) { $linked_subscribers = Subscriber::select('wp_user_id') ->whereNotNull('wp_user_id') ->findArray(); $exclude_ids = array(); if(!empty($linked_subscribers)) { $exclude_ids = array_map(function($subscriber) { return $subscriber['wp_user_id']; }, $linked_subscribers); } $users = \get_users(array( 'count_total' => false, 'fields' => 'ID', 'exclude' => $exclude_ids )); foreach($users as $user) { static::synchronizeUser($user); } } return true; } }