/**
 * Gmw Function - Covert object to array
 * 
 * @since  2.5
 * @param  object
 * @return Array/multidimensional array
 */
function gmw_object_to_array($data)
{
    if (is_array($data) || is_object($data)) {
        $result = array();
        foreach ($data as $key => $value) {
            $result[$key] = gmw_object_to_array($value);
        }
        return $result;
    }
    return $data;
}
/**
 * Import data from a json file
 *
 * @since 2.5
 * @return void
 */
function gmw_import_data()
{
    //make sure at least one checkbox is checked
    if (empty($_POST['import_item'])) {
        wp_die(__("You must check at least on checkbox of an item that you'd like to import", 'GMW'));
    }
    //look for nonce
    if (empty($_POST['gmw_import_nonce'])) {
        return;
    }
    //varify nonce
    if (!wp_verify_nonce($_POST['gmw_import_nonce'], 'gmw_import_nonce')) {
        return;
    }
    //get file
    $import_file = $_FILES['import_file']['tmp_name'];
    //abort if not file uploaded
    if (empty($import_file)) {
        wp_die(__('Please upload a file to import', 'GMW'));
    }
    // Retrieve the data from the file and convert the json object to an array
    $import_data = gmw_object_to_array(json_decode(file_get_contents($import_file)));
    //import add-ons
    if (isset($import_data['addons'])) {
        update_option('gmw_addons', $import_data['addons']);
    }
    //import settings
    if (in_array('settings', $_POST['import_item']) && isset($import_data['options'])) {
        update_option('gmw_options', $import_data['options']);
    }
    //import forms
    if (in_array('forms', $_POST['import_item']) && isset($import_data['forms'])) {
        update_option('gmw_forms', $import_data['forms']);
    }
    //import licenses
    if (in_array('licenses', $_POST['import_item'])) {
        if (isset($import_data['license_keys'])) {
            update_option('gmw_license_keys', $import_data['license_keys']);
        }
        if (isset($import_data['statuses'])) {
            update_option('gmw_premium_plugin_status', $import_data['statuses']);
        }
    }
    wp_safe_redirect(admin_url('admin.php?page=gmw-tools&tab=import_export&gmw_notice=data_imported&gmw_notice_status=updated'));
    exit;
}