Opening this back up as it was the top thread in Google when I searched how to achieve this. While it got me most of the way there, below is my solution for anyone else looking to control who sees the popup and when.
I achieved this using the Local Storage & Cookies Plugin mentioned in previous comments.
First I set up 2 LocalStorage elements - signedup & expiry
In the workflows, you want to create a Custom Workflow to Show the Popup when the user isn’t logged in, then write the LocalStorage expiry values.
The values here set the expiry key as 7 days from when the Popup shows and the view key to yes.
Expiry date is formatted as ddmmyyyyHHMMss so that we can convert to a number for a calculation in another workflow.
The only relevant action in this workflow is once the user signs up to our Newsletter, we set the signedup key to yes
Pulling this together, we do the following workflow once the page is loaded:
Get LocalStorage signedup value
Get LocalStorage expiry value - We’re getting both keys here
Delete Values in LocalStorage expiry
The expression here is checking for the first value, which is expiry. If the popup has shown before, then this value was set in the Custom workflow above as that day’s date (ddmmyyyyHHMMss).
This is converted to a number and checked if it is Less Than today’s date, formatted the same. If this is true, both values in LocalStorage expiry are deleted.
Show Popup
The last action in the workflow will schedule the Custom Event “Show Popup” after 10 seconds, only when the 2 LocalStorage Values are not Yes
That’s pretty much it and it functions for me, but any questions just shout!