eklenti plugin yaptım işine yazarsa kullanabilirsin
admin panelinde WhatsApp numarasını ve widget'ın sayfa üzerindeki konumunu değiştirebilirsiniz. Konum seçeneği, kullanıcıya farklı görünüm seçenekleri sunacak şekilde çalışacaktır.
Başka özellikler veya daha fazla özelleştirme isterseniz, eklentiyi geliştirebiliriz. tamaman ücretsiz. teşekür yeter


<?php
/*
Plugin Name: WhatsApp Widget
Plugin URI: https://www.turkiyeajans.com
Description: Web sitenize WhatsApp logosu ekler ve sağ altta görüntüler. Admin paneli üzerinden numara, konum ve görünürlük ayarları yapılabilir.
Version: 1.3
Author: Mustafa
Author URI: https://www.turkiyeajans.com
License: GPL2
*/

// Admin menüsü ekleme
function whatsapp_widget_menu() {
    add_menu_page(
        'WhatsApp Widget Ayarları', // Sayfa başlığı
        'WhatsApp Widget',          // Menü adı
        'manage_options',           // Kullanıcı yetkisi
        'whatsapp_widget',          // Menü slug
        'whatsapp_widget_settings', // Ayarları yönetecek fonksiyon
        'dashicons-format-chat'     // Menü ikonu
    );
}
add_action('admin_menu', 'whatsapp_widget_menu');

// Ayarları gösterecek admin sayfası
function whatsapp_widget_settings() {
    ?>
    <div class="wrap">
        <h1>WhatsApp Widget Ayarları</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('whatsapp_widget_options_group'); // Ayar grubunu tanımlıyoruz
            do_settings_sections('whatsapp_widget');          // Formu buraya yerleştiriyoruz
            ?>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">WhatsApp Telefon Numarası</th>
                    <td>
                        <input type="text" name="whatsapp_widget_phone" value="<?php echo esc_attr(get_option('whatsapp_widget_phone')); ?>" placeholder="+90xxxxxxxxxx" />
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row">Widget Konumu</th>
                    <td>
                        <select name="whatsapp_widget_position">
                            <option value="bottom-right" <?php selected(get_option('whatsapp_widget_position'), 'bottom-right'); ?>>Sağ Alt</option>
                            <option value="bottom-left" <?php selected(get_option('whatsapp_widget_position'), 'bottom-left'); ?>>Sol Alt</option>
                            <option value="top-right" <?php selected(get_option('whatsapp_widget_position'), 'top-right'); ?>>Sağ Üst</option>
                            <option value="top-left" <?php selected(get_option('whatsapp_widget_position'), 'top-left'); ?>>Sol Üst</option>
                        </select>
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row">Widget Görünürlük</th>
                    <td>
                        <label>
                            <input type="checkbox" name="whatsapp_widget_homepage" value="1" <?php checked(get_option('whatsapp_widget_homepage'), '1'); ?> />
                            Ana Sayfada Görünsün
                        </label><br />
                        <label>
                            <input type="checkbox" name="whatsapp_widget_pages" value="1" <?php checked(get_option('whatsapp_widget_pages'), '1'); ?> />
                            Belirli Sayfalarda Görünsün
                        </label><br />
                        <label for="whatsapp_widget_page_ids">Belirli Sayfalar:</label><br />
                        <select name="whatsapp_widget_page_ids[]" multiple style="width: 300px;">
                            <?php
                            $pages = get_pages();
                            $selected_pages = get_option('whatsapp_widget_page_ids', array());
                            if (!is_array($selected_pages)) {
                                $selected_pages = array(); // Varsayılan olarak boş dizi
                            }
                            foreach ($pages as $page) {
                                $selected = in_array($page->ID, $selected_pages) ? 'selected' : '';
                                echo '<option value="' . esc_attr($page->ID) . '" ' . $selected . '>' . esc_html($page->post_title) . '</option>';
                            }
                            ?>
                        </select>
                        <p class="description">CTRL (veya CMD) tuşunu kullanarak birden fazla sayfa seçebilirsiniz.</p>
                    </td>
                </tr>
            </table>
            <?php submit_button(); ?>
        </form>
    </div>
    <?php
}

// Eklenti ayarlarını başlatma
function whatsapp_widget_register_settings() {
    register_setting('whatsapp_widget_options_group', 'whatsapp_widget_phone');
    register_setting('whatsapp_widget_options_group', 'whatsapp_widget_position');
    register_setting('whatsapp_widget_options_group', 'whatsapp_widget_homepage');
    register_setting('whatsapp_widget_options_group', 'whatsapp_widget_pages');
    register_setting('whatsapp_widget_options_group', 'whatsapp_widget_page_ids');
}
add_action('admin_init', 'whatsapp_widget_register_settings');

// WhatsApp widget'ını sayfada gösterecek fonksiyon
function whatsapp_widget_script() {
    $phone = get_option('whatsapp_widget_phone', '+905xxxxxxxxx');
    $position = get_option('whatsapp_widget_position', 'bottom-right');
    $show_on_homepage = get_option('whatsapp_widget_homepage');
    $show_on_pages = get_option('whatsapp_widget_pages');
    $current_page_id = get_queried_object_id();
    $selected_pages = get_option('whatsapp_widget_page_ids', array());

    // Sayfa görünürlüğü kontrolü
    $show_widget = false;
    if ($show_on_homepage == '1' && is_front_page()) {
        $show_widget = true;
    } elseif ($show_on_pages == '1' && in_array($current_page_id, $selected_pages)) {
        $show_widget = true;
    }

    if ($show_widget) {
        // CSS konumlandırması
        $position_styles = array(
            'bottom-right' => 'bottom: 20px; right: 20px;',
            'bottom-left'  => 'bottom: 20px; left: 20px;',
            'top-right'    => 'top: 20px; right: 20px;',
            'top-left'     => 'top: 20px; left: 20px;',
        );

        $style = isset($position_styles[$position]) ? $position_styles[$position] : $position_styles['bottom-right'];

        ?>
        <style>
            #whatsapp-widget {
                position: fixed;
                <?php echo $style; ?>
                z-index: 9999;
            }

            #whatsapp-widget img {
                width: 60px;
                height: 60px;
            }
        </style>

        <div id="whatsapp-widget">
            <a href="https://wa.me/<?php echo esc_attr($phone); ?>" target="_blank" title="WhatsApp ile iletişime geçin">
                <img src="/wp-content/plugins/whatsapp-widget/whatsapp.png" alt="WhatsApp">
            </a>
        </div>
        <?php
    }
}
add_action('wp_footer', 'whatsapp_widget_script');
Demo: Türkiye Ajans

Download link

https://drive.google.com/file/d/1Rbn...ew?usp=sharing