cp_price is actually read as a string and not an integer, so that means that something like $100 is a lower value than $20 (as 1 is lower than 2)... so you should use meta_value_num instead of...