1. What you ask
Ok you already know jacobian is need to map end-effector cartesian velocity into joint angular velocity.
And I assume, you know how to control the position. For orientation control it similiar to position control but the computation of error it bit tricky. First you need to define what is representation of your end-effector orientation. There are 4 main representation of end-effector orientation which is axis angle, rpy (expanded into 6 types), euler angle (expanded into 6 types) and unit quarternion. Normal jacobian is for axis angle representation. You can take a look example of axis angle orientation error computation on my other answer here.
If you wanna use other representation such euler angle, you need analytical jacobian Ja.
$$ J_a = T*J$$
where T is transformation matrix.For more detail you can look at "Robotics motion, planning and control" by B. Siciliano sect 3.7.3 for orientation error and sect 3.6 for analytical jacobian. Or code implementation by Peter Corke on his github here
2. The simple approach
You can see that joint 4 value which control orientation are affected by joint 2 and 3.If you wanna make your system simpler, you can set that joint 4 is not there on forward kinematic & jacobian computation( so you make joint 4 as end-effector not as joint).
In this graph, with A are joint 2 value, B joint 3 value, C joint 4 value and brown line is imaginary line, then
$$360^o = 90^o + A + B + C$$
$$ C = 270^o - A - B $$
with that you could avoid orientation computation while still control the position of end-effector and keep end-effector point down (or anywhere, you just need to redraw and recompute my graph for your desired orientation)