/**
 * wpmlm_obtain_the_title function, for replaacing the page title with the category or product
 * @return string - the new page title
 */
function wpmlm_obtain_the_title()
{
    global $wpdb, $wp_query, $wpmlm_title_data;
    $output = null;
    $category_id = null;
    if (!isset($wp_query->query_vars['wpmlm_product_category']) && !isset($wp_query->query_vars['wpmlm-product'])) {
        return;
    }
    if (!isset($wp_query->query_vars['wpmlm_product_category']) && isset($wp_query->query_vars['wpmlm-product'])) {
        $wp_query->query_vars['wpmlm_product_category'] = 0;
    }
    if (isset($wp_query->query_vars['taxonomy']) && 'wpmlm_product_category' == $wp_query->query_vars['taxonomy'] || isset($wp_query->query_vars['wpmlm_product_category'])) {
        $category_id = wpmlm_get_the_category_id($wp_query->query_vars['wpmlm_product_category'], 'slug');
    }
    if ($category_id > 0) {
        if (isset($wpmlm_title_data['category'][$category_id])) {
            $output = $wpmlm_title_data['category'][$category_id];
        } else {
            $term = get_term($category_id, 'wpmlm_product_category');
            $output = $term->name;
            $wpmlm_title_data['category'][$category_id] = $output;
        }
    }
    if (!isset($_GET['wpmlm-product'])) {
        $_GET['wpmlm-product'] = 0;
    }
    if (!isset($wp_query->query_vars['wpmlm-product'])) {
        $wp_query->query_vars['wpmlm-product'] = '';
    }
    if (isset($wp_query->query_vars['wpmlm-product']) || is_string($_GET['wpmlm-product'])) {
        $product_name = $wp_query->query_vars['wpmlm-product'];
        if (isset($wpmlm_title_data['product'][$product_name])) {
            $product_list = array();
            $full_product_name = $wpmlm_title_data['product'][$product_name];
        } else {
            if ($product_name != '') {
                $product_id = $wp_query->post->ID;
                $full_product_name = $wpdb->get_var($wpdb->prepare("SELECT `post_title` FROM `{$wpdb->posts}` WHERE `ID`= %d LIMIT 1", $product_id));
                $wpmlm_title_data['product'][$product_name] = $full_product_name;
            } else {
                if (isset($_REQUEST['product_id'])) {
                    $product_id = absint($_REQUEST['product_id']);
                    $product_name = $wpdb->get_var($wpdb->prepare("SELECT `post_title` FROM `{$wpdb->posts}` WHERE `ID`= %d LIMIT 1", $product_id));
                    $full_product_name = $wpdb->get_var($wpdb->prepare("SELECT `post_title` FROM `{$wpdb->posts}` WHERE `ID`= %d LIMIT 1", $product_id));
                    $wpmlm_title_data['product'][$product_name] = $full_product_name;
                } else {
                    //This has to exist, otherwise we would have bailed earlier.
                    $category = $wp_query->query_vars['wpmlm_product_category'];
                    $cat_term = get_term_by('slug', $wp_query->query_vars['wpmlm_product_category'], 'wpmlm_product_category');
                    $full_product_name = $cat_term->name;
                }
            }
        }
        $output = $full_product_name;
    }
    if (isset($full_product_name) && $full_product_name != null) {
        $output = htmlentities(stripslashes($full_product_name), ENT_QUOTES, 'UTF-8');
    }
    $seperator = ' | ';
    $seperator = apply_filters('wpmlm_the_wp_title_seperator', $seperator);
    return $output . $seperator;
}
/**
 * Checks the category slug for a display type, if none set returns default
 * << May need reworking to be more specific to the taxonomy type >>
 * @access public
 *
 * @since 3.8
 * @param $slug(string)
 * @return $slug either from db or 'default' if none set
 */
function wpmlm_get_the_category_display($slug)
{
    global $wpdb;
    $default_display_type = get_option('product_view');
    if (!empty($slug) && is_string($slug)) {
        $category_id = wpmlm_get_the_category_id($slug, 'slug');
        $display_type = wpmlm_get_categorymeta($category_id, 'display_type');
    }
    if (!empty($display_type)) {
        return $display_type;
    } else {
        return $default_display_type;
    }
}