Tanggungan Akademik Kelas 8

function cek_tanggungan_akademik_shortcode() {
    // 1. PASTE LINK URL CSV GOOGLE SPREADSHEET ANDA DI SINI
    $spreadsheet_url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vRy16foUiBqirOqH9cEyQthYke_wHGSkdJZBzpGTRyhRu9cVb2go1q8MSwXibFnekrnyTb7ThXQ6VTF/pub?output=csv';

    ob_start();
    ?>
    <div class="cek-tanggungan-container" style="max-width: 600px; margin: 20px auto; padding: 20px; border: 1px solid #ddd; border-radius: 8px; background: #f9f9f9; font-family: Arial, sans-serif;">
        <h3 style="text-align: center; margin-bottom: 20px;">Cek Tanggungan Akademik Siswa</h3>
        
        <form method="POST" action="">
            <div style="margin-bottom: 15px;">
                <label for="nisn" style="display: block; margin-bottom: 5px; font-weight: bold;">Masukkan NISN Anda:</label>
                <input type="text" id="nisn" name="nisn" required placeholder="Contoh: 0012345678" style="width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box;">
            </div>
            <button type="submit" name="submit_cek" style="width: 100%; padding: 10px; background-color: #0073aa; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px;">Cari Data</button>
        </form>

        <?php
        if (isset($_POST['submit_cek'])) {
            $input_nisn = sanitize_text_field($_POST['nisn']);
            
            // Mengambil data dari Google Spreadsheet CSV
            $response = wp_remote_get($spreadsheet_url);

            if (is_wp_error($response)) {
                echo '<p style="color: red; margin-top: 15px;">Gagal mengambil data dari server. Silakan coba lagi nanti.</p>';
                return ob_get_clean();
            }

            $data_body = wp_remote_retrieve_body($response);
            $rows = explode("\n", $data_body);
            $header = str_getcsv(array_shift($rows)); // Ambil baris pertama sebagai header
            
            $student_data = null;

            // Pencarian berdasarkan NISN
            foreach ($rows as $row) {
                $current_row = str_getcsv($row);
                if (empty($current_row[0])) continue; // Skip jika baris kosong

                // Asumsi NISN berada di kolom pertama (index 0)
                if (trim($current_row[0]) === trim($input_nisn)) {
                    $student_data = array_combine($header, $current_row);
                    break;
                }
            }

            // Menampilkan Hasil Pencarian
            if ($student_data) {
                echo '<div style="margin-top: 25px; border-top: 2px solid #0073aa; padding-top: 15px;">';
                echo '<h4 style="color: #0073aa; margin-bottom: 15px;">Hasil Pencarian untuk NISN: <strong>' . esc_html($student_data['NISN']) . '</strong></h4>';
                echo '<table style="width: 100%; border-collapse: collapse; margin-top: 10px;">';
                
                foreach ($student_data as $key => $value) {
                    // Berikan warna berbeda untuk nama siswa agar terlihat jelas
                    $bg_color = ($key === 'Nama') ? '#e7f3ff' : '#ffffff';
                    
                    echo '<tr style="background-color: ' . $bg_color . ';">';
                    echo '<td style="padding: 8px; border-bottom: 1px solid #eee; font-weight: bold; width: 50%;">' . esc_html($key) . '</td>';
                    echo '<td style="padding: 8px; border-bottom: 1px solid #eee;">: ' . esc_html($value) . '</td>';
                    echo '</tr>';
                }
                
                echo '</table>';
                echo '</div>';
            } else {
                echo '<div style="margin-top: 20px; padding: 10px; background-color: #ffebe8; border: 1px solid #cc0000; color: #cc0000; border-radius: 4px; text-align: center;">';
                echo 'Data NISN <strong>' . esc_html($input_nisn) . '</strong> tidak ditemukan. Periksa kembali nomor yang Anda masukkan.';
                echo '</div>';
            }
        }
        ?>
    </div>
    <?php
    return ob_get_clean();
}
add_shortcode('cek_tanggungan', 'cek_tanggungan_akademik_shortcode');

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *