Consider $U_n=O_P(1)$ and $X_n=o_P(1)$. Show that $U_nX_n=o_P(1)$.
Since $o_P(1)$ is equivalent to convergence in probability, it suffices to show that $P(|U_nX_n|>\varepsilon) \to 0$. However, I am not quite sure if my proof is right:
$$P(|U_nX_n|>\varepsilon) = P(|U_nX_n|>\varepsilon, |U_n| \leq M) + P(|U_nX_n|>\varepsilon, |U_n|>M).$$
For the first term on the right-hand side it holds:
$$P(|U_nX_n|>\varepsilon, |U_n| \leq M) \leq P(|U_n| \leq M) < \epsilon.$$
From the definition of $O_P(1)$ we know that for each $\epsilon$ such an $M$ exists.
For the second term, it holds that:
$$P(|U_nX_n|>\varepsilon, |U_n| > M) \leq P(|MX_n|> \varepsilon) = P\left(|X_n|> \frac \varepsilon M\right) \to 0.$$
Hence,
$P(|U_nX_n|>\varepsilon) < \epsilon$.
Is this correct?
It seems that you reversed the $\leq$ and $\gt$: it should be $$ P(|U_nX_n|>\varepsilon, |U_n| \color{red}{\gt} M) \leq P(|U_n| \color{red}{\gt} M) < \epsilon $$ and $$P(|U_nX_n|>\varepsilon, |U_n|\color{red}{\leq} M) \leq P(|MX_n|> \varepsilon) = P\left(|X_n|> \frac \varepsilon M\right) \to 0.$$