You are here

function course_uc_init in Course 3.x

Same name and namespace in other branches
  1. 8.3 modules/course_uc/course_uc.module \course_uc_init()
  2. 8.2 modules/course_uc/course_uc.module \course_uc_init()
  3. 6 modules/course_uc/course_uc.module \course_uc_init()
  4. 7.2 modules/course_uc/course_uc.module \course_uc_init()
  5. 7 modules/course_uc/course_uc.module \course_uc_init()

Implements hook_init().

File

modules/course_uc/course_uc.module, line 166

Code

function course_uc_init() {

  // Look at the cart and remove courses where user now does not have access.
  $user = Drupal::currentUser();
  $cart = uc_cart_get_contents();
  foreach ($cart as $node) {
    if (course_node_is_course($node)) {
      $results = course_access_course('enroll', $node, $user, FALSE, TRUE);
      if (count($results) > 1) {

        // There's always going to be one blocker, the purchase blocker.
        unset($results['course_must_purchase']);
        $result = reset($results);
        Drupal::database()
          ->query("DELETE FROM {uc_cart_products} WHERE nid = :nid and cart_id = :uid", array(
          ':nid' => $node
            ->id(),
          ':uid' => $user->uid,
        ));
        uc_cart_get_contents(NULL, 'rebuild');
        \Drupal::messenger()
          ->addWarning(t('The activity "!title" was removed from your cart. !message', array(
          '!title' => l($node->title, "node/{$node->id}()"),
          '!message' => $result['message'],
        )));
      }
    }
  }
}