Need to restrain rotation to the z axis

Hello, I need to restrain the rotation of the bar to act as foosball table this code is for the bars to be moved and rotated by mouse pointer.

ublic class Mouse_rotate : MonoBehaviour
{
//Rotation Speed of the object
public float speed;

// Update is called once per frame
void FixedUpdate () 
{
	//Generate a plane the intersects the transform's position with an upwards normal
	Plane playerPlane= new Plane(-Vector3.forward, transform.position);
	
	//Generate a ray from the mouse cursor position
	Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
	
	/*Determine the point where  the cursor ray intersects the plane
	 * this will be the point  that the object will look towards the mouse cursor
	 * Raycasting to a plane object only gives us the distance, so we will have to take the distance
	 * then find the point along that ray that meets the distance. This will be the point to look at*/
	float hitDist = 0.0f;
	
	//If the ray is parallel to the plane, Raycast will return false
	if(playerPlane.Raycast (ray, out hitDist))
	{
		//Get the point along the ray that hits the calculated distance.
		Vector3 targetPoint = ray.GetPoint(hitDist);
		
		//Determine the target rotation. This is  the rotation if the transform looks  at the target point .
		Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
		
		//Smoothly rotate towards the target point.
		transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime);
	}
}

}

You mean global Z? Try this:

  //Determine the target rotation. This is  the rotation if the transform looks  at the target point .
  Vector3 lookdir = targetPoint - transform.position;
  lookdir.z = 0.0f;
  Quaternion targetRotation = Quaternion.LookRotation( lookdir );

By zeroing the z component, the target facing is constrained to the XY plane.