Group and user invitations for Elgg
Other plugins may centralize off-site invitations and attach custom behavior to the invites.
For example, to invite non-registered users to an event by their email:
$invite = users_invite_create_user_invite($email);
add_entity_relationship($invite->guid, 'invited_to', $event->guid);
add_entity_relationship($invite->guid, 'invited_by', $inviter->guid);
// generate a registration link to include in the notification
$registration_link = users_invite_get_registration_link($email, $inviter->guid);
// implement a custom handler
elgg_register_plugin_hook_handler('accept', 'invite', function($hook, $type, $return, $params) {
$invite = $params['invite'];
$user = $params['user'];
$events = elgg_get_entities_from_relationship([
'types' => 'object',
'subtypes' => 'event',
'relationship' => 'invited_to',
'relationship_guid' => $invite->guid,
'limit' => 0,
]);
if (!$events) {
return;
}
foreach ($events as $event) {
add_entity_relationship($user->guid, 'attending', $event->guid);
}
});