Locking applications to wifi only data connections So I've switched to a tiered data plan. Is there a way to lock certain applications from using 3g/4g and instead only use connected wifi.
Assuming you've got Android 4.0 or higher, you can do the following:

Go to Settings→Data Usage
Activate the limit by marking the checkbox, and moving the red and orange bars for &quot;Deactivation&quot; and &quot;Warning&quot; (hint: you can set them imaginary high to not have any effect -- but they must be enabled)
Now scroll the list below the graph and tap the apps you want to limit. At the end of their resp. pages, you'll find another checkbox to limit their background data -- mark it.


Limiting data usage
Now those apps can no longer use mobile data without your consent: only actions you triggered yourself (&quot;foreground data&quot;) will be performed by them, no sync in the background or other background activity.
(Almost) Independent of the Android version used, but root available:
You can use a firewall app such as e.g. DroidWall - Android Firewall or its successor AFWall+ (Android Firewall) to explicitly permit/forbid apps to use either mobile data or WiFi or both. Whitelists (forbid all except...) or blacklists (permit all but...) are possible.
 
DroidWall and AFWall+ (source: Google Play; click images for larger variant)
Else
Worth a try: NoRoot Firewall. Not sure if and how this works without root -- but it's free, so nothing to lose :)

NoRoot Firewall (source: Google Play; click image to enlarge)