The most important condition is that your swap partition where the contents of your RAM will be saved has to be at least as big as your RAM. You can chack this by typing 'free' in the terminal. If your total swap is larger than your ram, hibernation should work.
You should also manually test hibernation with the 'sudo pm-hibernate' command. If it works, you can restore the menu functionality by running the following command:
sudo gedit /var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Copy this as the content, save and close the file:
[Re-enable hibernate by default in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate by default in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate ResultActive=yes
After the next reboot you should have the hibernate option available again.