the simple answer is that using bare (unquoted) names, is for interactive programming; and when you want to do metaprogramming (constructing programs from programs, or data driven) you will need to adapt, and the easiest way is to alter your function to take strings; as you can easily do that interactively anway. whereas to go the other way and get strings converted to 'symbols' will require using things like tidyeval / rlang.
so if we are talking about ggplot2 and your wanting to change a variable, I assume in your aes(); use aes_string() instead.
Thanks, this gave me atleast something to grab to work with. Finally managed to do what I needed. Holy smokes, people should talk more about this. I went through all the guidelines I could find and nothing worked