I subscribe to the notion that experience is the best teacher. Some things in life you have to go through before you can really understand it's implication(s).
'Rule of life' a book by Richard Templar states that one should not give advice, rather than should ask leading questions. This will ensure that the person you're trying to help arrive at an answer and make the decision on their own. The problem with giving advice is that it might backfire. You do not want to be the reason why someone's life failed. Like they say: 'the best advice is no advice.'
It's almost impossible not to try to correct someone you love and put them aright but what you would be doing is denying that person their opportunity to learn, and part of learn it is also making mistake. You cannot insulate anyone from the world around them. They will have to experience it one way or the other, so the sooner the better. I see many patents raise their children like lab rats, controlling every aspect of their lives. And when these kids are finally free, they cannot make decisions on their own.
For someone who isn't willing to take your advice, the best you can do is let them be. You cannot force anything on everyone. Even if you do, it is only a matter of time before they are out of your reach, so what will happen then? You will eventually have to see them make the said mistake you've been preventing.
Children have to fail to be successful. Most kids don't listen to an adult's advice because their brains aren't mature enough. Making mistakes and learning from those mistakes helps to grow the brain and experiences.
Children are self centered and are not mature enough to always think though the problem or situation and maturely think about the consequences or outcomes. This is why guidance is so important, however, there isn't a way to make kids listen or follow advice.
The thing I would do if a child doesn't listen to my advice is to be available when the mistake is made. I would be available to talk though the problem, the child's choice, and ways to either fix the problem or discuss what they would do the next time the problem arises. Too many parents don't let their kids fail or feel unsuccessful and that impacts their learning and problem solving.
Giving advice is easy, making sure your child follows it is tough. Be there for your child to talk though their problems and allow them to decided the choice they are going to make. Be there to talk though the problem if their don't make the right choice.
You change the way of communicating with your Child. Maybe he didn't get the message and told that he did just so that you let him be. There are books that helps communicate with your children so that they listen to you. If your child does not feel that you understand HIS point of view he will never be able to listen to your advice even if it's a viable solution. So to show that you understand him and then present a solution is always a better way to convince people to do the right thing.