get( 'schedule' ); $recipient = array(); // First go through unregistered recipients (that were added by email). if ( ! empty( $schedule['emailrecipients'] ) ) { $recipient = array_filter( $schedule['emailrecipients'], function ( $recipient_data ) use ( $recipient_key, $hashed_email ) { return isset( $recipient_data['key'] ) && $recipient_data['key'] === $recipient_key && $hashed_email === md5( $recipient_data['email'] ); } ); } // If token does not belong to unregistered recipient we need to check in the recipients that are actual users. if ( empty( $recipient ) ) { if ( ! empty( $schedule['registered_recipients_data'] ) ) { foreach ( $schedule['registered_recipients_data'] as $user_id => $user_data ) { $user = null; if ( md5( $user_data['email'] ) === $hashed_email ) { $user = get_user_by( 'email', sanitize_email( $user_data['email'] ) ); } if ( $user instanceof \WP_User ) { $recipient = array( 'key' => $user_data['key'], 'name' => $user->display_name, 'email' => $user->user_email, 'user_id' => $user->ID, ); break; } } } if ( empty( $recipient ) ) { $user_key_parts = explode( '|', $recipient_key ); $user = ! empty( $user_key_parts[1] ) ? get_userdata( intval( $user_key_parts[1] ) ) : null; if ( $user instanceof \WP_User && md5( $user->user_email ) === $hashed_email ) { $recipient = array( 'key' => $recipient_key, 'name' => $user->display_name, 'email' => $user->user_email, 'user_id' => $user->ID, ); } } } else { $recipient = array_values( $recipient )[0]; } return $recipient; } }