Well for the opt-outs, you can set a “yes/no” field called for example “notifications” in the “User” data type and as long as the value of this field is “yes”, then you send the email to the user otherwise, don’t send. Also in your conditions you should include “user_is_active = yes” so only active users are included.
About the workflow triggering, this workflow should schedule itself for next week. You will only need to schedule it initially to run on next Friday for the 1st time and then it should be fine scheduling itself after that automatically.