/**
 * Purchase Form Validate Fields
 *
 * @access      private
 * @since       1.0.8.1
 * @return      bool|array
 */
function edd_purchase_form_validate_fields()
{
    // Check if there is $_POST
    if (empty($_POST)) {
        return false;
    }
    // Start an array to collect valid data
    $valid_data = array('gateway' => edd_purchase_form_validate_gateway(), 'discount' => edd_purchase_form_validate_discounts(), 'need_new_user' => false, 'need_user_login' => false, 'logged_user_data' => array(), 'new_user_data' => array(), 'login_user_data' => array(), 'guest_user_data' => array(), 'cc_info' => edd_purchase_form_validate_cc());
    // Validate agree to terms
    if (edd_get_option('show_agree_to_terms', false)) {
        edd_purchase_form_validate_agree_to_terms();
    }
    if (is_user_logged_in()) {
        // Collect logged in user data
        $valid_data['logged_in_user'] = edd_purchase_form_validate_logged_in_user();
    } else {
        if (isset($_POST['edd-purchase-var']) && $_POST['edd-purchase-var'] == 'needs-to-register') {
            // Set new user registration as required
            $valid_data['need_new_user'] = true;
            // Validate new user data
            $valid_data['new_user_data'] = edd_purchase_form_validate_new_user();
            // Check if login validation is needed
        } else {
            if (isset($_POST['edd-purchase-var']) && $_POST['edd-purchase-var'] == 'needs-to-login') {
                // Set user login as required
                $valid_data['need_user_login'] = true;
                // Validate users login info
                $valid_data['login_user_data'] = edd_purchase_form_validate_user_login();
            } else {
                // Not registering or logging in, so setup guest user data
                $valid_data['guest_user_data'] = edd_purchase_form_validate_guest_user();
            }
        }
    }
    // Return collected data
    return $valid_data;
}
/**
 * Purchase Form Validate Fields
 *
 * @access      private
 * @since       1.0.8.1
 * @return      bool|array
*/
function edd_purchase_form_validate_fields()
{
    global $edd_options;
    // check if there is $_POST
    if (empty($_POST)) {
        return false;
    }
    // start an array to collect valid data
    $valid_data = array('gateway' => '', 'discount' => 'none', 'need_new_user' => false, 'need_user_login' => false, 'logged_user_data' => array(), 'new_user_data' => array(), 'login_user_data' => array(), 'guest_user_data' => array(), 'cc_info' => array());
    // validate the gateway
    $valid_data['gateway'] = edd_purchase_form_validate_gateway();
    // validate discounts
    $valid_data['discount'] = edd_purchase_form_validate_discounts();
    // collect credit card info
    $valid_data['cc_info'] = edd_get_purchase_cc_info();
    // validate agree to terms
    if (isset($edd_options['show_agree_to_terms'])) {
        edd_purchase_form_validate_agree_to_terms();
    }
    // check if user is logged in
    if (is_user_logged_in()) {
        // collect logged in user data
        $valid_data['logged_in_user'] = edd_purchase_form_validate_logged_in_user();
    } else {
        if (isset($_POST['edd-purchase-var']) && $_POST['edd-purchase-var'] == 'needs-to-register') {
            // set new user registrarion as required
            $valid_data['need_new_user'] = true;
            // validate new user data
            $valid_data['new_user_data'] = edd_purchase_form_validate_new_user();
            // check if login validation is needed
        } else {
            if (isset($_POST['edd-purchase-var']) && $_POST['edd-purchase-var'] == 'needs-to-login') {
                // set user login as required
                $valid_data['need_user_login'] = true;
                // validate users login info
                $valid_data['login_user_data'] = edd_purchase_form_validate_user_login();
            } else {
                // not registering or logging in, so setup guest user data
                $valid_data['guest_user_data'] = edd_purchase_form_validate_guest_user();
            }
        }
    }
    // return collected data
    return $valid_data;
}