How to force acceptance of site terms on first login?

I would use a modal window the same way it’s used on the IBM website: a window without a close button. Without clicking on agree and proceed, the users will not be able to visit the website.

As for a WordPress solution for that, if you use Bootstrap you can create your own model.