I amde some simple door code but it doesnt work?

Im making a simple door but it just doesnt work heres the code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Doorcode : MonoBehaviour
{
    public GameObject player;
    public float radius;
    public bool IsOpen;
    public BoxCollider Collider;
    public MeshRenderer rend;

    private void Start()
    {
        IsOpen = false;
        Collider.GetComponent<BoxCollider>();
    }
    void Update()
    {
        if (Vector3.Distance(transform.position, player.transform.position) <= radius)
        {
            if(Input.GetKeyDown(KeyCode.E))
            {
                IsOpen = true;
                gameObject.GetComponentInChildren<MeshRenderer>().enabled = false;
                Collider.GetComponent<BoxCollider>().enabled = false;
                rend.GetComponent<MeshRenderer>().enabled = false;
            }
        }
        if (IsOpen = true)
        {
            if (Vector3.Distance(transform.position, player.transform.position) <= radius)
            {
                if (Input.GetKeyDown(KeyCode.E))
                {
                    IsOpen = false;
                    gameObject.GetComponentInChildren<MeshRenderer>().enabled = true;
                    Collider.GetComponent<BoxCollider>().enabled = true;
                    rend.GetComponent<MeshRenderer>().enabled = true;
                }
            }
        }

    }
}

It also always has IsOpen set to true even if i dont do anything.

You used an assignment operator [=] instead of an equality comparison operator [==].

if (IsOpen = true)
// should be...
if(IsOpen == true)
// or, since it's *already* a boolean...
if(IsOpen)