Capture form data in one function and use it in another function (same file)

You could use WordPress Transients to temporarily set a variable in the WP database with one function, and get that variable with another function.

function setPrice(){
    $myPrice = $_POST['price'];
    set_transient( 'ex1_temp_price', $myPrice, 28800 ); // Site Transient
}

// this function can be kicked off the shortcoe, within the transient timeout
function use_price(){
    $price = get_transient('ex1_temp_price')*1;
    echo "<p>Your price is <input type=\"text\" name=\"price\" value=\"$price\" />.</p>";
}

Transients are only good for as many seconds as you designate. This example presents an 8hr expiry. If you need to get that value any later than 8hrs, you should create a custom meta_value and store that value to the post_meta table.

If, at some point, you decide to look into php sessions, W3Schools has a very nice example that would probably fit your need. Just remember to destroy your session when it is no longer needed.

Hope this gives you the answer you needed!