BEGINNER: why is my main menu not loading level 1 when I press play?

Hello! need help my play button was working just fine and loading level 1 but now when I click it it does nothing please help :frowning: :

using UnityEngine.SceneManagement;
using UnityEngine;
using System.Collections;


public class MainMenu : MonoBehaviour {
    public GUISkin skin;

    void OnGUI()
    {
        GUI.skin = skin;
        GUI.Label (new Rect (10,10, 400,45), "Go Home");
		if (PlayerPrefs.GetInt("Level Completed") > 0)
		{
			if (GUI.Button(new Rect(10, 60, 100, 45), "Play"))
			{
				SceneManager.LoadScene(PlayerPrefs.GetInt("Level Completed"));
				SceneManager.LoadScene(0);
			}
		}
		if (GUI.Button(new Rect(10, 60, 100, 45), "Play"))
		    {
			    PlayerPrefs.SetInt("Level Completed", 0);
			    SceneManager.LoadScene(0);
		    }

        if (GUI.Button (new Rect (10, 210, 100, 45), "Quit"))
            {
                Application.Quit();
            }
    }
}

and this is my GAME MANAGER:

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour
{
	// Count
	public int currentScore;
	public int highscore;
	public int token;
	public int tokenCount;
	private int totalTokenCount;
	public int currentLevel = 0;
	public int unlockedLevel;

    //Timer Variables
	public Rect timerRect;
	public Color warningColorTimer;
	public Color defaultColorTimer;
    public float startTime;
	private string currentTime;

	//References
	public GameObject tokenParent;

	void Update()
	{
		startTime -= Time.deltaTime;
		currentTime = string.Format("{0:0.0}", startTime);
		if (startTime <= 0)
		{
			startTime = 0;
			Destroy(gameObject);
			SceneManager.LoadScene(0);
		}

	}

	void Start()
	{
		totalTokenCount = tokenParent.transform.childCount;
	    if (PlayerPrefs.GetInt("Level Completed") > 0)
	    {
		    currentLevel = PlayerPrefs.GetInt("Level Completed");
	    } else {
		    currentLevel = 0;
	    }
		//DontDestroyOnLoad(gameObject);
	}


	public void CompleteLevel()
	{
		if (currentLevel < 3)

		{
			currentLevel += 3;
			PlayerPrefs.SetInt("Level Completed", currentLevel);
			PlayerPrefs.SetInt("Level " + currentLevel.ToString() + " score ", currentScore);
			SceneManager.LoadScene(currentLevel);
		} else {

			print("You Win!");
		}
	}

    public void AddToken()
	{
		tokenCount += 1;
	}
    
	//GUI SKI
	public GUISkin skin;

	private void OnGUI()
	{
		GUI.skin = skin;
		if (startTime < 5f)
		{
			skin.GetStyle("Timer").normal.textColor = warningColorTimer;
		} else {
			skin.GetStyle("Timer").normal.textColor = defaultColorTimer;
		}

		GUI.Label(timerRect, currentTime, skin.GetStyle ("Timer"));
		GUI.Label(new Rect(45, 100, 200, 200), tokenCount.ToString() + "/" + totalTokenCount.ToString()); 
                 
	}
}

Feel free to use the following ScenesManager.cs
To use it just call the following function: ScenesManager.Instance.loadScene(“scene_name”); (also you can use an int number instead of string name)

Let me know if you have any problems with the script.

using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;

/// <summary>
/// Use it to load a new scene
/// </summary>
public class ScenesManager : MonoBehaviour
{
	public static ScenesManager Instance { get; private set; }
	AsyncOperation ao;
	string scene_name;

	void Awake()
	{
		Instance = this;
	}

	void OnEnable()
	{
        SceneManager.sceneLoaded += OnSceneLoaded;
	}

	void OnDisable()
	{
        SceneManager.sceneLoaded -= OnSceneLoaded;
	}

	/// <summary>
	/// It's called each time once scene is loaded
	/// </summary>
	void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
       //feel free to add here any logic once a scene is loaded
    }

    /// <summary>
    /// Current Scene. Use it to get the Scene Index
    /// </summary>
    public static int CurrentScene
    {
        get
        {
            return SceneManager.GetActiveScene().buildIndex;
        }
    }

    public static string CurrentSceneName
    {
        get
        {
            return SceneManager.GetActiveScene().name;
        }
    }

    /// <summary>
	/// Load a specific scene
	/// </summary>
	/// <param name="scene">A string name of the scene</param>
    public void loadScene(string scene)
    {
          SceneManager.LoadScene(scene, LoadSceneMode.Single);
    }

    /// <summary>
	/// Load a specific scene
	/// </summary>
	/// <param name="sceneIndex">A buildIndex of the scene</param>
    public void loadScene(int sceneIndex)
    {
          SceneManager.LoadScene(sceneIndex, LoadSceneMode.Single);
    }

	/// <summary>
	/// Load a specific scene in Async
	/// </summary>
	/// <param name="scene">A name of the scene</param>
	public void loadSceneAsync(string scene)
	{
		scene_name = scene;
		Invoke("StartLoad", 0.5f);
	}

    void StartLoad()
	{
		StartCoroutine(AsynchronousLoad());
		Invoke("ActivateScene", 1f);
	}

	IEnumerator AsynchronousLoad()
	{
		ao = SceneManager.LoadSceneAsync(scene_name);
        ao.allowSceneActivation = false;
		yield return ao;
	}

    void ActivateScene()
    {
        ao.allowSceneActivation = true;
    }
}