MedStream.global is currently in Beta version for development and partnership purposes.

Buchen Sie Ihren Termin

Suchen Sie nach dem Namen oder Fachgebiet eines Arztes, um den für Sie passenden Gesundheitsdienstleister zu finden.

function custom_kivicare_doctors_list($atts) { ob_start(); $current_locale = get_locale(); $is_arabic = (strpos($current_locale, 'ar') === 0); $is_german = (strpos($current_locale, 'de') === 0); $strings = array( 'search_label' => $is_arabic ? 'البحث عن طبيب' : ($is_german ? 'Arzt suchen' : 'Search Doctors'), 'spec_label' => $is_arabic ? 'التخصص' : ($is_german ? 'Fachbereich' : 'Specialization'), 'all_specs' => $is_arabic ? 'جميع التخصصات' : ($is_german ? 'Alle Fachbereiche' : 'All Specializations'), 'filter_btn' => $is_arabic ? 'تصفية' : ($is_german ? 'Filtern' : 'Filter'), 'reset_btn' => $is_arabic ? 'إلغاء' : ($is_german ? 'Zurücksetzen' : 'Reset'), 'search_placeholder' => $is_arabic ? 'الاسم...' : ($is_german ? 'Name...' : 'Name...'), 'view_profile' => $is_arabic ? 'عرض الملف الشخصي' : ($is_german ? 'Profil anzeigen' : 'View Profile'), 'experience_label' => $is_arabic ? 'الخبرة:' : ($is_german ? 'Erfahrung:' : 'Experience:'), 'years_label' => $is_arabic ? 'سنوات' : ($is_german ? 'Jahre' : 'Years'), 'qual_label' => $is_arabic ? 'المؤهل:' : ($is_german ? 'Qualifikation:' : 'Qualification:'), 'not_available' => $is_arabic ? 'غير متاح' : ($is_german ? 'Nicht verfügbar' : 'Not Available'), 'dr_prefix' => $is_arabic ? 'د. ' : 'Dr. ', 'no_docs_title' => $is_arabic ? 'لم يتم العثور على أطباء' : ($is_german ? 'Keine Ärzte gefunden' : 'No Doctors Found'), 'no_docs_gen' => $is_arabic ? 'حالياً لا يوجد أطباء متاحين.' : ($is_german ? 'Keine Ärzte verfügbar.' : 'No doctors available.') ); $atts = shortcode_atts(array( 'specialization' => 'all' ), $atts); $search_term = isset($_GET['doctor_search']) ? sanitize_text_field(wp_unslash($_GET['doctor_search'])) : ''; $specialization_filter = isset($_GET['doctor_specialization']) ? sanitize_text_field(wp_unslash($_GET['doctor_specialization'])) : 'all'; if ($atts['specialization'] !== 'all') { $specialization_filter = $atts['specialization']; } $query_args = array( 'role' => 'kivicare_doctor', 'orderby' => 'display_name', 'order' => 'ASC', 'number' => -1 ); if (!empty($search_term)) { $query_args['search'] = '*' . esc_attr($search_term) . '*'; $query_args['search_columns'] = array( 'display_name', 'user_login', 'user_email' ); } $user_query = new WP_User_Query($query_args); $raw_users = $user_query->get_results(); $filtered_users = array(); $all_specializations = array(); foreach ($raw_users as $doctor) { $doctor_id = $doctor->ID; /* |-------------------------------------------------------------------------- | HIDE INACTIVE DOCTORS |-------------------------------------------------------------------------- */ $user_data = get_userdata($doctor_id); $status = get_user_meta($doctor_id, 'kivicare_doctor_status', true); // DEBUG (temporary) // echo '
';
        // print_r($status);
        // echo '
'; if ( !$user_data || !empty($user_data->user_status) || $status == '0' || $status == 0 || $status === false ) { continue; } /* |-------------------------------------------------------------------------- | BASIC DATA |-------------------------------------------------------------------------- */ $basic_data_json = get_user_meta($doctor_id, 'basic_data', true); $basic_data = json_decode($basic_data_json, true); /* |-------------------------------------------------------------------------- | SPECIALIZATION FILTER |-------------------------------------------------------------------------- */ $doctor_has_specialization = false; if (!empty($basic_data['specialties']) && is_array($basic_data['specialties'])) { foreach ($basic_data['specialties'] as $spec) { if (!empty($spec['label'])) { if (!in_array($spec['label'], $all_specializations)) { $all_specializations[] = $spec['label']; } if ( $specialization_filter === 'all' || $specialization_filter === $spec['label'] ) { $doctor_has_specialization = true; } } } } if (!$doctor_has_specialization && $specialization_filter !== 'all') { continue; } $filtered_users[] = $doctor; } sort($all_specializations); /* |-------------------------------------------------------------------------- | PAGINATION |-------------------------------------------------------------------------- */ $page = isset($_GET['doctor_page']) ? absint($_GET['doctor_page']) : 1; $per_page = 6; $offset = ($page - 1) * $per_page; $total_users = count($filtered_users); $total_pages = ceil($total_users / $per_page); $users_to_display = array_slice( $filtered_users, $offset, $per_page ); /* |-------------------------------------------------------------------------- | FILTER FORM |-------------------------------------------------------------------------- */ echo '
'; echo '
'; echo ''; echo ''; echo ''; echo '
'; echo '
'; /* |-------------------------------------------------------------------------- | DOCTOR GRID |-------------------------------------------------------------------------- */ if (!empty($users_to_display)) { echo '
'; foreach ($users_to_display as $doctor) { $doctor_id = $doctor->ID; $doctor_display_name = $doctor->display_name; $doctor_name = (strpos($doctor_display_name, 'Dr.') === 0 || strpos($doctor_display_name, 'د.') === 0) ? $doctor_display_name : $strings['dr_prefix'] . $doctor_display_name; $basic_data_json = get_user_meta($doctor_id, 'basic_data', true); $basic_data = json_decode($basic_data_json, true); $avatar_id = get_user_meta( $doctor_id, 'doctor_profile_image', true ); $avatar_url = $avatar_id ? wp_get_attachment_url($avatar_id) : get_avatar_url($doctor_id); /* |-------------------------------------------------------------------------- | QUALIFICATION |-------------------------------------------------------------------------- */ $qualification = $strings['not_available']; if (!empty($basic_data['qualifications'][0])) { $q = $basic_data['qualifications'][0]; $qualification = ($q['degree'] ?? '') . (!empty($q['university']) ? ' - ' . $q['university'] : ''); } /* |-------------------------------------------------------------------------- | SPECIALTIES |-------------------------------------------------------------------------- */ $specializations_output = ''; if (!empty($basic_data['specialties'])) { foreach ($basic_data['specialties'] as $spec) { if (!empty($spec['label'])) { $specializations_output .= '' . esc_html($spec['label']) . ' '; } } } /* |-------------------------------------------------------------------------- | EXPERIENCE |-------------------------------------------------------------------------- */ $experience = !empty($basic_data['no_of_experience']) ? $basic_data['no_of_experience'] : ''; /* |-------------------------------------------------------------------------- | PROFILE URL |-------------------------------------------------------------------------- */ $profile_url = add_query_arg( 'id', $doctor_id, home_url('/doctor-profile/') ); /* |-------------------------------------------------------------------------- | CARD |-------------------------------------------------------------------------- */ echo '
'; echo '
'; echo ''; echo '' . esc_attr($doctor_name) . ''; echo ''; echo '

'; echo ''; echo esc_html($doctor_name); echo ''; echo '

'; echo '
'; echo $specializations_output; echo '
'; if (!empty($experience)) { echo '

'; echo '' . esc_html($strings['experience_label']) . ' '; echo esc_html($experience) . ' ' . esc_html($strings['years_label']); echo '

'; } echo '

'; echo '' . esc_html($strings['qual_label']) . ' '; echo esc_html($qualification); echo '

'; echo ''; echo esc_html($strings['view_profile']); echo ''; echo '
'; echo '
'; } echo '
'; } else { echo '
'; echo '

' . esc_html($strings['no_docs_title']) . '

'; echo '

' . esc_html($strings['no_docs_gen']) . '

'; echo '
'; } return ob_get_clean(); } add_shortcode( 'kivicare_doctors_grid', 'custom_kivicare_doctors_list' );
Select your currency
AED VAE-Dirham
WhatsApp
×

15% OFF

Use this coupon for a special discount

medstream15
×

15% RABATT

Nutzen Sie diesen Gutschein für einen Sonderrabatt

medstream15
Code erfolgreich kopiert!
MedStream Logo