Skip to main content

WordPress Admin Paneline Özel “Admin Bildirimlerini Gizle” Özelliği Ekleme

WordPress, kullanıcılara kapsamlı bir yönetim paneli sunuyor. Ancak, bu panelde bazen çok fazla bildirim olabilir ve bu bildirimler, özellikle yoğun bir iş ortamında dikkat dağıtıcı olabilir. Bu yazımızda, WordPress admin panelinde kullanıcıların bildirimleri gizleyebileceği özel bir özellik nasıl eklenir, adım adım açıklayacağız. Bu özellik, kullanıcı deneyimini artırmak ve yönetim panelini daha verimli hale getirmek için kullanışlı olabilir.

1. Ekran Ayarlarına Checkbox Ekleme

İlk adım olarak, WordPress admin panelinin ekran ayarlarına “Admin Bildirimlerini Gizle” seçeneğini ekleyerek kullanıcıların bildirimleri yönetmesini sağlarız.

  • Ekran Seçenekleri Menüsü: Admin panelinin üst kısmında bulunan “Ekran Seçenekleri” menüsüne bir checkbox ekliyoruz. Bu seçenek, kullanıcıların admin bildirimlerini gizleyip gizlemeyeceklerini belirlemelerine olanak tanır.
  • JavaScript ile Dinamik Ekleme: Checkbox’ı dinamik olarak eklemek için JavaScript kullanıyoruz. Bu, kullanıcıların ekran ayarlarını değiştirdiklerinde hemen geri bildirim almasını sağlar.
  • Kullanıcı Tercihlerini Saklama: Checkbox durumunu kullanıcı bazında saklamak için user_meta veritabanı alanını kullanıyoruz. Böylece, kullanıcı paneli tekrar ziyaret ettiğinde tercihleri korunur.
add_action('admin_head', 'dijitaloop_add_screen_option_checkbox');
function dijitaloop_add_screen_option_checkbox() {
    $user = wp_get_current_user();
    $option = get_user_meta($user->ID, 'dijitaloop_disable_admin_notices', true);
    $checked = $option ? 'checked="checked"' : '';
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            var checkBoxHtml = '<label><input type="checkbox" id="dijitaloop_disable_admin_notices_checkbox" <?php echo $checked; ?> /> Admin Bildirimlerini Gizle</label>';
            $('#screen-options-wrap .metabox-prefs').append(checkBoxHtml);

            $('#dijitaloop_disable_admin_notices_checkbox').change(function() {
                var isChecked = $(this).is(':checked');
                $.post(ajaxurl, {
                    action: 'dijitaloop_save_admin_notice_option',
                    dijitaloop_disable_admin_notices: isChecked ? 1 : 0
                });
            });
        });
    </script>
    <?php
}

2. Checkbox Durumunu Kaydetme

Kullanıcılar checkbox’ı işaretlediklerinde veya işaretini kaldırdıklarında, bu tercihi AJAX kullanarak sunucuya kaydediyoruz. Bu işlem, kullanıcıların tercihlerinin doğru bir şekilde saklanmasını ve geri yüklenmesini sağlar.

  • AJAX Kullanımı: AJAX, sayfa yeniden yüklenmeden sunucuya veri gönderip almak için kullanılır. Bu, kullanıcı deneyimini kesintisiz hale getirir.
  • Veri Güncelleme: Kullanıcı tercihini güncellemek için update_user_meta fonksiyonunu kullanıyoruz. Bu fonksiyon, kullanıcıya ait metadataları günceller.
  • Güvenlik ve Performans: AJAX isteği ile veri gönderimi sırasında güvenliği sağlamak için gerekli önlemleri alıyoruz. Ayrıca, performansı artırmak için gereksiz verilerin gönderimini önlüyoruz.
add_action('wp_ajax_dijitaloop_save_admin_notice_option', 'dijitaloop_save_admin_notice_option');
function dijitaloop_save_admin_notice_option() {
    $user = wp_get_current_user();
    $value = isset($_POST['dijitaloop_disable_admin_notices']) ? intval($_POST['dijitaloop_disable_admin_notices']) : 0;
    update_user_meta($user->ID, 'dijitaloop_disable_admin_notices', $value);
    wp_die(); // İşlem tamamlandığında yanıtı sonlandırır.
}

3. Admin Bildirimlerini Gizleme

Son olarak, kullanıcının tercihlerine göre admin panelindeki bildirimleri gizlemek için gerekli fonksiyonu ekliyoruz. Bu adım, kullanıcıların dikkatlerini sadece önemli işlere odaklamalarını sağlar.

  • Bildirimleri Yönetme: admin_notices ve diğer ilgili hook’lardan gelen bildirimleri kaldırıyoruz. Bu, kullanıcıların giriş yaptıklarında gereksiz bildirimlerle karşılaşmalarını önler.
  • Performans İyileştirmeleri: Bildirimleri gizlemek, admin panelinin performansını artırabilir. Daha temiz bir arayüz, kullanıcıların işlerini daha hızlı yapmalarını sağlar.
  • Kullanıcı Özelleştirmeleri: Her kullanıcının tercihini saklayarak, panelin kişiselleştirilmiş bir deneyim sunmasını sağlıyoruz.
add_action('in_admin_header', 'dijitaloop_disable_admin_notices_based_on_option', 1000);
function dijitaloop_disable_admin_notices_based_on_option() {
    $user = wp_get_current_user();
    $option = get_user_meta($user->ID, 'dijitaloop_disable_admin_notices', true);
    if ($option) {
        remove_all_actions('admin_notices');
        remove_all_actions('all_admin_notices');
        remove_all_actions('network_admin_notices');
    }
}

WordPress admin paneline eklenen “Admin Bildirimlerini Gizle” özelliği, kullanıcı deneyimini önemli ölçüde iyileştirebilir. Kullanıcıların bildirimleri yönetmelerine olanak tanıyarak, daha verimli ve kişiselleştirilmiş bir yönetim paneli sunar. Bu özellik, özellikle yoğun çalışan kullanıcılar için faydalı olabilir ve yönetim panelinin temizliğini korur. Ayrıca, kullanıcı tercihlerinin saklanması ve yönetilmesi ile daha akıcı bir kullanıcı deneyimi sağlanır. Bu tür özelleştirmeler, WordPress sitenizin yönetimini daha etkili ve kullanıcı dostu hale getirebilir.

Duyuru: Daha çok kapsamli bir WordPress admin paneli için bizimle iletişime geçebilirsiniz.

Leave a Reply