<?php $event_guid = (int) get_input("event"); $registration_guid = (int) get_input("registration"); $code = get_input("code"); $forward_url = REFERER; if (!empty($registration_guid) && !empty($event_guid) && !empty($code)) { if (($registration = get_entity($registration_guid)) && elgg_instanceof($registration, "object", EventRegistration::SUBTYPE)) { if (($event = get_entity($event_guid)) && elgg_instanceof($event, "object", Event::SUBTYPE)) { $verify_code = event_manager_create_unsubscribe_code($registration, $event); if ($code === $verify_code) { if ($event->rsvp(EVENT_MANAGER_RELATION_UNDO, $registration->getGUID())) { $forward_url = $event->getURL(); system_message(elgg_echo("event_manager:action:unsubscribe_confirm:success")); } else { register_error(elgg_echo("event_manager:action:unsubscribe_confirm:error")); } } else { register_error(elgg_echo("event_manager:unsubscribe_confirm:error:code")); } } else { register_error(elgg_echo("ClassException:ClassnameNotClass", array($event_guid, elgg_echo("item:object:" . Event::SUBTYPE)))); } } else { register_error(elgg_echo("ClassException:ClassnameNotClass", array($registration_guid, elgg_echo("item:object:" . EventRegistration::SUBTYPE)))); } } else { register_error(elgg_echo("InvalidParameterException:MissingParameter")); } forward($forward_url);
$email = get_input('email'); elgg_entity_gatekeeper($guid, 'object', Event::SUBTYPE); $entity = get_entity($guid); if (!empty($email) && !is_email_address($email)) { register_error(elgg_echo('registration:notemail')); forward(REFERER); } // try to find a registration $registrations = elgg_get_entities_from_metadata(['type' => 'object', 'subtype' => EventRegistration::SUBTYPE, 'owner_guid' => $entity->getGUID(), 'limit' => 1, 'metadata_name_value_pairs' => ['name' => 'email', 'value' => $email, 'case_sensitive' => false]]); if (empty($registrations)) { register_error(elgg_echo('event_manager:action:unsubscribe:error:no_registration')); forward(REFERER); } $registration = $registrations[0]; // generate unsubscribe code $unsubscribe_code = event_manager_create_unsubscribe_code($registration, $entity); $unsubscribe_link = elgg_normalize_url("events/unsubscribe/confirm/{$registration->getGUID()}/" . $unsubscribe_code); // make a message with further instructions $subject = elgg_echo('event_manager:unsubscribe:confirm:subject', [$entity->title]); $message = elgg_echo('event_manager:unsubscribe:confirm:message', [$registration->name, $entity->title, $entity->getURL(), $unsubscribe_link]); // nice e-mail addresses $site = elgg_get_site_entity(); if ($site->email) { $from = $site->name . " <{$site->email}>"; } else { $from = $site->name . " <noreply@{$site->getDomain()}>"; } $to = $registration->name . " <{$registration->email}>"; if (!elgg_send_email($from, $to, $subject, $message)) { register_error(elgg_echo('event_manager:action:unsubscribe:error:mail')); forward(REFERER);