/**
 * Return the selectbox to choose type for the Rendez Vous.
 *
 * @since Rendez Vous (1.2.0)
 */
function rendez_vous_single_edit_get_the_type()
{
    $rdv = rendez_vous();
    if (empty($rdv->types)) {
        $types = rendez_vous_get_terms(array('hide_empty' => false));
        $rdv->types = $types;
    } else {
        $types = $rdv->types;
    }
    $output = '<select name="_rendez_vous_edit[type]"><option value="">---</option>';
    $selected_type = 0;
    if (!empty(rendez_vous()->item->type)) {
        $selected_types = wp_list_pluck(rendez_vous()->item->type, 'term_id');
        $selected_type = array_pop($selected_types);
    }
    foreach ($types as $type) {
        $output .= '<option value="' . intval($type->term_id) . '" ' . selected($type->term_id, $selected_type, false) . '>' . esc_attr($type->name) . '</option>';
    }
    $output .= '</select>';
    return apply_filters('rendez_vous_single_edit_get_the_type', $output, $selected_type, $types, rendez_vous()->item);
}
/**
 * Get all rendez-vous types
 *
 * @package Rendez Vous
 * @subpackage Ajax
 *
 * @since Rendez Vous (1.2.0)
 *
 * @uses  rendez_vous_taxonomy_exists
 * @uses  rendez_vous_get_terms()
 */
function rendez_vous_ajax_get_terms()
{
    check_ajax_referer('rendez-vous-admin', 'nonce');
    if (!current_user_can('manage_options')) {
        wp_send_json_error();
    }
    if (!rendez_vous_taxonomy_exists('rendez_vous_type')) {
        wp_send_json_error();
    }
    $terms = rendez_vous_get_terms(array('hide_empty' => false));
    $terms = array_map('rendez_vous_prepare_term_for_js', array_values($terms));
    $terms = array_filter($terms);
    wp_send_json_success($terms);
}
/**
 * Check whether types have been created.
 *
 * @package Rendez Vous
 * @subpackage Functions
 *
 * @since Rendez Vous (1.2.0)
 *
 * @param int|Rendez_Vous_Item $rendez_vous_id ID or object for the rendez-vous
 * @uses rendez_vous_get_terms()
 * @return bool Whether the taxonomy exists.
 */
function rendez_vous_has_types($rendez_vous = null)
{
    $rdv = rendez_vous();
    if (empty($rdv->types)) {
        $types = rendez_vous_get_terms(array('hide_empty' => false));
        $rdv->types = $types;
    } else {
        $types = $rdv->types;
    }
    if (empty($types)) {
        return false;
    }
    $retval = true;
    if (!empty($rendez_vous)) {
        if (!is_a($rendez_vous, 'Rendez_Vous_Item')) {
            $rendez_vous = rendez_vous_get_item($rendez_vous);
        }
        $retval = !empty($rendez_vous->type);
    }
    return $retval;
}