public function Subscriber::unsubscribe in Simplenews 8.2
Same name and namespace in other branches
- 8 src/Entity/Subscriber.php \Drupal\simplenews\Entity\Subscriber::unsubscribe()
- 3.x src/Entity/Subscriber.php \Drupal\simplenews\Entity\Subscriber::unsubscribe()
Delete a subscription to a certain newsletter of the subscriber.
Parameters
string $newsletter_id: The ID of a newsletter.
string $source: The source where the subscription comes from.
int $timestamp: The timestamp of when the subscription was added.
Overrides SubscriberInterface::unsubscribe
File
- src/
Entity/ Subscriber.php, line 265
Class
- Subscriber
- Defines the simplenews subscriber entity.
Namespace
Drupal\simplenews\EntityCode
public function unsubscribe($newsletter_id, $source = 'unknown', $timestamp = REQUEST_TIME) {
if ($subscription = $this
->getSubscription($newsletter_id)) {
$subscription->status = SIMPLENEWS_SUBSCRIPTION_STATUS_UNSUBSCRIBED;
}
else {
$data = [
'target_id' => $newsletter_id,
'status' => SIMPLENEWS_SUBSCRIPTION_STATUS_UNSUBSCRIBED,
'source' => $source,
'timestamp' => $timestamp,
];
$this->subscriptions
->appendItem($data);
}
// Clear eventually existing mail spool rows for this subscriber.
\Drupal::service('simplenews.spool_storage')
->deleteMails([
'snid' => $this
->id(),
'newsletter_id' => $newsletter_id,
]);
\Drupal::moduleHandler()
->invokeAll('simplenews_unsubscribe', [
$this,
$newsletter_id,
]);
}