1. Можно кроном.
2. Можно записывать активации и проверить период при каждом запросе. То есть, вы указали когда он купил доступ и каждый раз, когда юзер обновит сайт, скрипт проверяет, не прошло ли 15 дней с момента активации. Если уже прошло 15 дней, то очищаем в таблице активацию и оповещаем, что доступ закрыт. Смысл в том, что вам не надо крон юзать и пользовать сам и будет кроном)) Он при каждом обновлении страницы, будет запускать скрипт.
3. Можно указать дату окончанию в БД и каждый раз проверять, не наступила ли эта дата.
Это самые оптимальные решения.