How can I fix this shower drain and eliminate its odor?
Here is what i did to remove the odor from my drain. 
1)Use a screwdriver to remove the trap.
2) Put 1/4 cup of baking soda down the drain.
3)Follow it with one cup of white vinegar into the   drain.
4)Let that sit for 1-2 hours with the bathroom door closed.
5)Slowly pour a gallon of hot (just-off-the-stove-boiling) water down the drain.
6*)After fifteen minutes, run cold water for ten minutes to thoroughly rinse the vinegar down. This step (#6)is very important so don't skip it!
7)Pour 1/2 cup chlorine bleach into the drain and let it sit for another 1-2 hours.
8)Rinse with another gallon of boiling water poured slowly.
9)Turn on the shower’s water faucet, and let the water run for ten minutes. By now, ample water should be standing in the “U” curve of the p-trap.
10)The last step is to pour four ounces of mineral oil (plain cooking oil will work in a pinch) into the drain. The oil floats on the water in the trap and slows evaporation.
11)Replace the trap
     FYI** NEVER  mix BLEACH  and VINEGAR , or you will create toxic chlorine and chloramine gas. Step #6 is crucial to avoid this danger!.