Skip to main content
2 of 3
deleted 13 characters in body

Convert a string into a decimal number for use in query

I have a meta box where a 'Case Result' CPT can be assigned a monetary value (e.g. $60 Million). I need to convert this into a decimal number for use as the meta_key in WP_Query.

I understand how to do the reverse (https://www.php.net/manual/en/function.number-format.php#89888), but want to know if there's a reasonable approach to taking a '$60 Million' string and converting it to '60000000'.

My current query is below, which is re-run across multiple 'Attorney' pages (hence the $attorney_name for terms) to show the only cases they were responsible for. I'd like to order these posts by their monetary value in descending order, but I'm aware the current config (meta_type etc) won't work with the value in it's current string state. Any advice would be massively appreciated.

// Configure query
$query = new WP_Query( array(
    'posts_per_page' => -1,
    'post_type' => 'case-result',
    'tax_query' => array(
        array (
            // Filter CPT's to display by taxonomy
            'field' => 'name',
            'taxonomy' => 'case-result-attorney',
            'terms' => $case_result_attorney,
            // Sort CPT's by meta
            'meta_key' => 'case_claim_value',
            'meta_type' => 'NUMERIC',
            'order' => 'DESC',
            'orderby' => 'meta_value_num',
        )
    ),
) );