SubscribeController.php

PHOTO EMBED

Thu Dec 16 2021 14:51:34 GMT+0000 (Coordinated Universal Time)

Saved by @igor #drupal #php

<?php

namespace Drupal\bacademy_core\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Entity\EntityTypeManager;
use Drupal\Core\Url;
use Drupal\user\Entity\User;

class SubscribeController extends ControllerBase {

  public function __construct(EntityTypeManager $entityTypeManager) {
    $this->entityTypeManager = $entityTypeManager;
  }

  public function subscribe(int $id) {
    $user = $this->entityTypeManager->getStorage('user')->load($id);
    /** @var User $user */
    $subscribed = $user->get('field_mailchimp_subscription')[0]->get('subscribe')->getValue();
    if ($subscribed != "1") {
      $user->set('field_mailchimp_subscription', ['subscribe' => "1"] );
      $user->save();
      return Url::fromRoute('entity.user.canonical', ['user' => $user->id()])->toString();
    } else {
      return Url::fromRoute('entity.user.canonical', ['user' => $user->id()])->toString();
    }
  }
}
content_copyCOPY