Error Warning: Invalid argument supplied for foreach()

It sounds like something (theme or plugin) has called a wordpress function and passed the wrong type of variable. In the first few notices WordPress is expecting an object and has been passed something else. In the warning it is expecting an array and has been passed something else.
Debug what is causing it, then tell the providers of theme / plugin. To debug one usually deactivates all (or suspected plugins) and maybe even swop to standard wp theme. Repeat action that causes messages. No message? good. Then switch back to theme. Repeat action, Activate one plugin, repeat action until you get the message back. The last reactivated is probably what caused it. Tell the developer.

It may be that they had not anticipated a certain situation, so until fixed, you may be able to work around the warning by avoiding the situation, changing the data etc.