{"id":68123,"date":"2025-04-06T15:51:28","date_gmt":"2025-04-06T11:51:28","guid":{"rendered":"https:\/\/medstream.global\/termin\/"},"modified":"2026-02-23T12:56:26","modified_gmt":"2026-02-23T08:56:26","slug":"termin","status":"publish","type":"page","link":"https:\/\/medstream.global\/de\/termin\/","title":{"rendered":"Termin"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"68123\" class=\"elementor elementor-68123 elementor-9\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-787a76c e-flex e-con-boxed e-con e-parent\" data-id=\"787a76c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"hf-elementor-layout elementor-element elementor-element-d8a1e35 elementor-widget elementor-widget-html\" data-id=\"d8a1e35\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"booking-form-header\" style=\"text-align:center; margin-bottom:20px;\">\r\n  <h2 style=\"color:#2D4F41; font-size:28px; font-weight:700;\">\r\n Buchen Sie Ihren Termin\r\n  <\/h2>\r\n  <p style=\"color:#555; font-size:16px; margin-top:5px;\">\r\n Suchen Sie nach dem Namen oder Fachgebiet eines Arztes, um den f\u00fcr Sie passenden Gesundheitsdienstleister zu finden.\r\n  <\/p>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"hf-elementor-layout elementor-element elementor-element-93c2fd7 elementor-widget elementor-widget-shortcode\" data-id=\"93c2fd7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><link rel='stylesheet' id='kc_book_appointment-css' href='https:\/\/medstream.global\/wp-content\/plugins\/kivicare-clinic-management-system\/assets\/css\/book-appointment.css?ver=3.6.16' media='' \/>\nfunction custom_kivicare_doctors_list($atts) {\r\n\r\n    ob_start();\r\n\r\n    $current_locale = get_locale();\r\n    $is_arabic = (strpos($current_locale, 'ar') === 0);\r\n    $is_german = (strpos($current_locale, 'de') === 0);\r\n\r\n    $strings = array(\r\n        'search_label'       => $is_arabic ? '\u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0637\u0628\u064a\u0628' : ($is_german ? 'Arzt suchen' : 'Search Doctors'),\r\n        'spec_label'         => $is_arabic ? '\u0627\u0644\u062a\u062e\u0635\u0635' : ($is_german ? 'Fachbereich' : 'Specialization'),\r\n        'all_specs'          => $is_arabic ? '\u062c\u0645\u064a\u0639 \u0627\u0644\u062a\u062e\u0635\u0635\u0627\u062a' : ($is_german ? 'Alle Fachbereiche' : 'All Specializations'),\r\n        'filter_btn'         => $is_arabic ? '\u062a\u0635\u0641\u064a\u0629' : ($is_german ? 'Filtern' : 'Filter'),\r\n        'reset_btn'          => $is_arabic ? '\u0625\u0644\u063a\u0627\u0621' : ($is_german ? 'Zur\u00fccksetzen' : 'Reset'),\r\n        'search_placeholder' => $is_arabic ? '\u0627\u0644\u0627\u0633\u0645...' : ($is_german ? 'Name...' : 'Name...'),\r\n        'view_profile'       => $is_arabic ? '\u0639\u0631\u0636 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062e\u0635\u064a' : ($is_german ? 'Profil anzeigen' : 'View Profile'),\r\n        'experience_label'   => $is_arabic ? '\u0627\u0644\u062e\u0628\u0631\u0629:' : ($is_german ? 'Erfahrung:' : 'Experience:'),\r\n        'years_label'        => $is_arabic ? '\u0633\u0646\u0648\u0627\u062a' : ($is_german ? 'Jahre' : 'Years'),\r\n        'qual_label'         => $is_arabic ? '\u0627\u0644\u0645\u0624\u0647\u0644:' : ($is_german ? 'Qualifikation:' : 'Qualification:'),\r\n        'not_available'      => $is_arabic ? '\u063a\u064a\u0631 \u0645\u062a\u0627\u062d' : ($is_german ? 'Nicht verf\u00fcgbar' : 'Not Available'),\r\n        'dr_prefix'          => $is_arabic ? '\u062f. ' : 'Dr. ',\r\n        'no_docs_title'      => $is_arabic ? '\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0623\u0637\u0628\u0627\u0621' : ($is_german ? 'Keine \u00c4rzte gefunden' : 'No Doctors Found'),\r\n        'no_docs_gen'        => $is_arabic ? '\u062d\u0627\u0644\u064a\u0627\u064b \u0644\u0627 \u064a\u0648\u062c\u062f \u0623\u0637\u0628\u0627\u0621 \u0645\u062a\u0627\u062d\u064a\u0646.' : ($is_german ? 'Keine \u00c4rzte verf\u00fcgbar.' : 'No doctors available.')\r\n    );\r\n\r\n    $atts = shortcode_atts(array(\r\n        'specialization' => 'all'\r\n    ), $atts);\r\n\r\n    $search_term = isset($_GET['doctor_search'])\r\n        ? sanitize_text_field(wp_unslash($_GET['doctor_search']))\r\n        : '';\r\n\r\n    $specialization_filter = isset($_GET['doctor_specialization'])\r\n        ? sanitize_text_field(wp_unslash($_GET['doctor_specialization']))\r\n        : 'all';\r\n\r\n    if ($atts['specialization'] !== 'all') {\r\n        $specialization_filter = $atts['specialization'];\r\n    }\r\n\r\n    $query_args = array(\r\n        'role'    => 'kivicare_doctor',\r\n        'orderby' => 'display_name',\r\n        'order'   => 'ASC',\r\n        'number'  => -1\r\n    );\r\n\r\n    if (!empty($search_term)) {\r\n        $query_args['search'] = '*' . esc_attr($search_term) . '*';\r\n        $query_args['search_columns'] = array(\r\n            'display_name',\r\n            'user_login',\r\n            'user_email'\r\n        );\r\n    }\r\n\r\n    $user_query = new WP_User_Query($query_args);\r\n\r\n    $raw_users = $user_query->get_results();\r\n\r\n    $filtered_users = array();\r\n    $all_specializations = array();\r\n\r\n    foreach ($raw_users as $doctor) {\r\n\r\n        $doctor_id = $doctor->ID;\r\n\r\n        \/*\r\n        |--------------------------------------------------------------------------\r\n        | HIDE INACTIVE DOCTORS\r\n        |--------------------------------------------------------------------------\r\n        *\/\r\n\r\n        $user_data = get_userdata($doctor_id);\r\n\r\n        $status = get_user_meta($doctor_id, 'kivicare_doctor_status', true);\r\n\r\n        \/\/ DEBUG (temporary)\r\n        \/\/ echo '<pre>';\r\n        \/\/ print_r($status);\r\n        \/\/ echo '<\/pre>';\r\n\r\n        if (\r\n            !$user_data ||\r\n            !empty($user_data->user_status) ||\r\n            $status == '0' ||\r\n            $status == 0 ||\r\n            $status === false\r\n        ) {\r\n            continue;\r\n        }\r\n\r\n        \/*\r\n        |--------------------------------------------------------------------------\r\n        | BASIC DATA\r\n        |--------------------------------------------------------------------------\r\n        *\/\r\n\r\n        $basic_data_json = get_user_meta($doctor_id, 'basic_data', true);\r\n\r\n        $basic_data = json_decode($basic_data_json, true);\r\n\r\n        \/*\r\n        |--------------------------------------------------------------------------\r\n        | SPECIALIZATION FILTER\r\n        |--------------------------------------------------------------------------\r\n        *\/\r\n\r\n        $doctor_has_specialization = false;\r\n\r\n        if (!empty($basic_data['specialties']) && is_array($basic_data['specialties'])) {\r\n\r\n            foreach ($basic_data['specialties'] as $spec) {\r\n\r\n                if (!empty($spec['label'])) {\r\n\r\n                    if (!in_array($spec['label'], $all_specializations)) {\r\n                        $all_specializations[] = $spec['label'];\r\n                    }\r\n\r\n                    if (\r\n                        $specialization_filter === 'all' ||\r\n                        $specialization_filter === $spec['label']\r\n                    ) {\r\n                        $doctor_has_specialization = true;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        if (!$doctor_has_specialization && $specialization_filter !== 'all') {\r\n            continue;\r\n        }\r\n\r\n        $filtered_users[] = $doctor;\r\n    }\r\n\r\n    sort($all_specializations);\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | PAGINATION\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    $page = isset($_GET['doctor_page'])\r\n        ? absint($_GET['doctor_page'])\r\n        : 1;\r\n\r\n    $per_page = 6;\r\n\r\n    $offset = ($page - 1) * $per_page;\r\n\r\n    $total_users = count($filtered_users);\r\n\r\n    $total_pages = ceil($total_users \/ $per_page);\r\n\r\n    $users_to_display = array_slice(\r\n        $filtered_users,\r\n        $offset,\r\n        $per_page\r\n    );\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | FILTER FORM\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    echo '<div class=\"kivicare-doctors-filter-wrapper\">';\r\n\r\n    echo '<form method=\"get\" class=\"kivicare-doctors-filter-form\">';\r\n\r\n    echo '<input type=\"text\"\r\n            name=\"doctor_search\"\r\n            value=\"' . esc_attr($search_term) . '\"\r\n            placeholder=\"' . esc_attr($strings['search_placeholder']) . '\">';\r\n\r\n    echo '<select name=\"doctor_specialization\">';\r\n\r\n    echo '<option value=\"all\">' .\r\n        esc_html($strings['all_specs']) .\r\n        '<\/option>';\r\n\r\n    foreach ($all_specializations as $spec) {\r\n\r\n        echo '<option value=\"' . esc_attr($spec) . '\" ' .\r\n            selected($specialization_filter, $spec, false) .\r\n            '>' . esc_html($spec) . '<\/option>';\r\n    }\r\n\r\n    echo '<\/select>';\r\n\r\n    echo '<button type=\"submit\">' .\r\n        esc_html($strings['filter_btn']) .\r\n        '<\/button>';\r\n\r\n    echo '<\/form>';\r\n\r\n    echo '<\/div>';\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | DOCTOR GRID\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    if (!empty($users_to_display)) {\r\n\r\n        echo '<div class=\"kivicare-doctor-grid\">';\r\n\r\n        foreach ($users_to_display as $doctor) {\r\n\r\n            $doctor_id = $doctor->ID;\r\n\r\n            $doctor_display_name = $doctor->display_name;\r\n\r\n            $doctor_name =\r\n                (strpos($doctor_display_name, 'Dr.') === 0 ||\r\n                strpos($doctor_display_name, '\u062f.') === 0)\r\n                ? $doctor_display_name\r\n                : $strings['dr_prefix'] . $doctor_display_name;\r\n\r\n            $basic_data_json = get_user_meta($doctor_id, 'basic_data', true);\r\n\r\n            $basic_data = json_decode($basic_data_json, true);\r\n\r\n            $avatar_id = get_user_meta(\r\n                $doctor_id,\r\n                'doctor_profile_image',\r\n                true\r\n            );\r\n\r\n            $avatar_url = $avatar_id\r\n                ? wp_get_attachment_url($avatar_id)\r\n                : get_avatar_url($doctor_id);\r\n\r\n            \/*\r\n            |--------------------------------------------------------------------------\r\n            | QUALIFICATION\r\n            |--------------------------------------------------------------------------\r\n            *\/\r\n\r\n            $qualification = $strings['not_available'];\r\n\r\n            if (!empty($basic_data['qualifications'][0])) {\r\n\r\n                $q = $basic_data['qualifications'][0];\r\n\r\n                $qualification =\r\n                    ($q['degree'] ?? '') .\r\n                    (!empty($q['university'])\r\n                        ? ' - ' . $q['university']\r\n                        : '');\r\n            }\r\n\r\n            \/*\r\n            |--------------------------------------------------------------------------\r\n            | SPECIALTIES\r\n            |--------------------------------------------------------------------------\r\n            *\/\r\n\r\n            $specializations_output = '';\r\n\r\n            if (!empty($basic_data['specialties'])) {\r\n\r\n                foreach ($basic_data['specialties'] as $spec) {\r\n\r\n                    if (!empty($spec['label'])) {\r\n\r\n                        $specializations_output .=\r\n                            '<span class=\"specialization-badge\">' .\r\n                            esc_html($spec['label']) .\r\n                            '<\/span> ';\r\n                    }\r\n                }\r\n            }\r\n\r\n            \/*\r\n            |--------------------------------------------------------------------------\r\n            | EXPERIENCE\r\n            |--------------------------------------------------------------------------\r\n            *\/\r\n\r\n            $experience = !empty($basic_data['no_of_experience'])\r\n                ? $basic_data['no_of_experience']\r\n                : '';\r\n\r\n            \/*\r\n            |--------------------------------------------------------------------------\r\n            | PROFILE URL\r\n            |--------------------------------------------------------------------------\r\n            *\/\r\n\r\n            $profile_url = add_query_arg(\r\n                'id',\r\n                $doctor_id,\r\n                home_url('\/doctor-profile\/')\r\n            );\r\n\r\n            \/*\r\n            |--------------------------------------------------------------------------\r\n            | CARD\r\n            |--------------------------------------------------------------------------\r\n            *\/\r\n\r\n            echo '<div class=\"doctor-card-wrapper\">';\r\n\r\n            echo '<div class=\"doctor-card\">';\r\n\r\n            echo '<a href=\"' . esc_url($profile_url) . '\">';\r\n\r\n            echo '<img decoding=\"async\"\r\n                    src=\"' . esc_url($avatar_url) . '\"\r\n                    class=\"doctor-avatar-img\"\r\n                    alt=\"' . esc_attr($doctor_name) . '\">';\r\n\r\n            echo '<\/a>';\r\n\r\n            echo '<h3 class=\"doctor-name\">';\r\n\r\n            echo '<a href=\"' . esc_url($profile_url) . '\">';\r\n\r\n            echo esc_html($doctor_name);\r\n\r\n            echo '<\/a>';\r\n\r\n            echo '<\/h3>';\r\n\r\n            echo '<div class=\"doctor-specializations\">';\r\n            echo $specializations_output;\r\n            echo '<\/div>';\r\n\r\n            if (!empty($experience)) {\r\n\r\n                echo '<p>';\r\n\r\n                echo '<strong>' .\r\n                    esc_html($strings['experience_label']) .\r\n                    '<\/strong> ';\r\n\r\n                echo esc_html($experience) . ' ' .\r\n                    esc_html($strings['years_label']);\r\n\r\n                echo '<\/p>';\r\n            }\r\n\r\n            echo '<p>';\r\n\r\n            echo '<strong>' .\r\n                esc_html($strings['qual_label']) .\r\n                '<\/strong> ';\r\n\r\n            echo esc_html($qualification);\r\n\r\n            echo '<\/p>';\r\n\r\n            echo '<a\r\n                    href=\"' . esc_url($profile_url) . '\"\r\n                    class=\"doctor-profile-link\">';\r\n\r\n            echo esc_html($strings['view_profile']);\r\n\r\n            echo '<\/a>';\r\n\r\n            echo '<\/div>';\r\n\r\n            echo '<\/div>';\r\n        }\r\n\r\n        echo '<\/div>';\r\n\r\n    } else {\r\n\r\n        echo '<div class=\"kivicare-no-doctors\">';\r\n\r\n        echo '<h3>' .\r\n            esc_html($strings['no_docs_title']) .\r\n            '<\/h3>';\r\n\r\n        echo '<p>' .\r\n            esc_html($strings['no_docs_gen']) .\r\n            '<\/p>';\r\n\r\n        echo '<\/div>';\r\n    }\r\n\r\n    return ob_get_clean();\r\n}\r\n\r\nadd_shortcode(\r\n    'kivicare_doctors_grid',\r\n    'custom_kivicare_doctors_list'\r\n);<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Buchen Sie Ihren Termin Suchen Sie nach dem Namen oder Fachgebiet eines Arztes, um den f\u00fcr Sie passenden Gesundheitsdienstleister zu finden.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-68123","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/medstream.global\/de\/wp-json\/wp\/v2\/pages\/68123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/medstream.global\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/medstream.global\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/medstream.global\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/medstream.global\/de\/wp-json\/wp\/v2\/comments?post=68123"}],"version-history":[{"count":0,"href":"https:\/\/medstream.global\/de\/wp-json\/wp\/v2\/pages\/68123\/revisions"}],"wp:attachment":[{"href":"https:\/\/medstream.global\/de\/wp-json\/wp\/v2\/media?parent=68123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}