Buenas,
En el perfil puedes añadir dos campos, borrado (true|false) y fecha de solicitud.
También se puede en una tabla aparte, id_usuario y fecha_de_solicitud.
Cuando solicita la eliminación, lo guardas en la tabla o en sus campos, según decidas (yo optaría por la tabla).
Mediante un cron, puedes comprobar quien ha solicitado la eliminación y si está en fecha. También puedes hacerlo mediante un falso cron, se activa cuando algún usuario hace alguna actividad pasada una determinada fecha u hora.
Solo quedaría hacer que el cron haga las comprobaciones oportunas, y quien coincida, pues eliminado queda.
El sistema de logeo debería comprobar si el usuario tiene peticiones de eliminación, y en caso de tenerla y no haber cumplido los 15 días (lógico, no podría loguearse
) cambia el estado o elimina el registro de la tabla de eliminados.
Creo que no me dejo nada atrás.
Saludos,