MedStream.global حالياً في النسخة التجريبية لأغراض التطوير والشراكات.

احجز موعدك

ابحث باسم الطبيب أو التخصص للعثور على مقدم الرعاية الصحية المناسب لك.

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 درهم إماراتي
WhatsApp
×

خصم 15%

استخدم الكوبون للحصول على خصم خاص

medstream15
×

خصم 15%

استخدم الكوبون للحصول على خصم خاص

medstream15
تم النسخ بنجاح!
MedStream Logo