<?php
// Hook into the plugin update check
add_filter('site_transient_update_plugins', 'bongdako_check_for_updates');
function bongdako_check_for_updates($transient)
{
    if (empty($transient->checked)) {
        return $transient;
    }

    // Plugin slug and file
    $plugin_slug = 'sport-plugin';
    $plugin_file = 'sport-plugin/index.php';
    $update_url = 'https://dnkmg74tc9ukn.cloudfront.net/plugin.json'; // URL to plugin.json

    // Fetch update data
    $response = wp_remote_get($update_url, [
        'headers' => [
            'Referer' => home_url(),
        ],
    ]);
    if (is_wp_error($response)) {
        return $transient;
    }

    $remote_data = json_decode(wp_remote_retrieve_body($response), true);
    if (empty($remote_data)) {
        return $transient;
    }
    $version1 = (string)$remote_data['version'];
    $version2 = $transient->checked[$plugin_file] ?? '0.0.0';
    // Compare versions
    if (version_compare($version1, (string)$version2, '>')) {
        $transient->response[$plugin_file] = (object)[
            'slug' => $plugin_slug,
            'new_version' => $remote_data['version'],
            'package' => $remote_data['download_url'],
            'tested' => $remote_data['tested'],
            'requires' => $remote_data['requires'],
        ];
    }

    return $transient;
}

// Add plugin information for the WordPress admin
add_filter('plugins_api', 'bongdako_plugin_info', 20, 3);
function bongdako_plugin_info($res, $action, $args)
{
    if ($action !== 'plugin_information' || $args->slug !== 'bongdako-plugin') {
        return $res;
    }

    $update_url = 'https://dnkmg74tc9ukn.cloudfront.net/plugin.json';
    $response = wp_remote_get($update_url, [
        'headers' => [
            'Referer' => home_url(),
        ],
    ]);
    if (is_wp_error($response)) {
        return $res;
    }

    $remote_data = json_decode(wp_remote_retrieve_body($response), true);
    if (empty($remote_data)) {
        return $res;
    }

    $res = (object)[
        'name' => $remote_data['name'],
        'slug' => $remote_data['slug'],
        'version' => $remote_data['version'],
        'author' => $remote_data['author'],
        'download_link' => $remote_data['download_url'],
        'requires' => $remote_data['requires'],
        'tested' => $remote_data['tested'],
        'requires_php' => $remote_data['requires_php'],
        'last_updated' => $remote_data['last_updated'],
        'sections' => [
            'description' => __('Update description for Sport Plugin.', 'bongdako'),
        ],
    ];

    return $res;
}

// Hook để hiển thị thông báo ở Admin Dashboard
add_action('admin_notices', 'my_plugin_update_notice');

function my_plugin_update_notice()
{
    // Chỉ hiện thông báo cho admin
    if (!current_user_can('update_plugins')) {
        return;
    }

    // Lấy phiên bản hiện tại từ header file index.php
    require_once(ABSPATH . 'wp-admin/includes/plugin.php');
    $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/sport-plugin/index.php');
    $current_version = $plugin_data['Version'];

    // API hoặc file JSON chứa thông tin phiên bản mới
    $remote_version = my_plugin_get_remote_version();

    if (version_compare($current_version, $remote_version, '<')) {
        ?>
        <div class="notice notice-warning is-dismissible sport-update-notice">
            <p style="font-size:18px; font-weight:bold; margin-bottom:8px; margin-top: -5px">
                🚀 Sport Plugin - Đã có phiên bản mới!
            </p>
            <p style="margin-bottom:8px;">
                Phiên bản hiện tại của bạn:
                <strong><?php echo esc_html($current_version); ?></strong> &nbsp; | &nbsp;
                Phiên bản mới nhất:
                <strong style="color:#333;"><?php echo esc_html($remote_version); ?></strong>
            </p>
            <p style="margin-bottom:8px;">
                Bản cập nhật mới giúp cải thiện hiệu suất, sửa lỗi bảo mật và bổ sung tính năng mới.
                Việc cập nhật ngay sẽ đảm bảo plugin hoạt động ổn định và an toàn hơn.
            </p>
            <p>
                <a href="<?php echo esc_url(admin_url('plugins.php')); ?>" class="update-btn">
                    🔄 Cập nhật ngay
                </a>
                <a style="display: none" href="https://example.com/changelog" target="_blank" class="changelog-btn">
                    📜 Xem chi tiết thay đổi
                </a>
            </p>
        </div>

        <style>
            .sport-update-notice {
                background-color: #ffcc51 !important;
                padding: 20px 25px !important;
                border: 2px solid #e0a800 !important;
                border-radius: 10px;
                font-size: 15px;
                font-weight: 500;
                box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
                line-height: 1.5;
            }

            .sport-update-notice .update-btn {
                font-weight: bold;
                color: #fff !important;
                background: #d63638;
                padding: 8px 15px;
                border-radius: 5px;
                text-decoration: none;
                margin-right: 10px;
                transition: background 0.2s ease;
            }

            .sport-update-notice .update-btn:hover {
                background: #b52b2d;
            }

            .sport-update-notice .changelog-btn {
                font-weight: bold;
                color: #333 !important;
                background: #ffffff;
                border: 1px solid #ccc;
                padding: 8px 15px;
                border-radius: 5px;
                text-decoration: none;
                transition: background 0.2s ease;
            }

            .sport-update-notice .changelog-btn:hover {
                background: #f0f0f0;
            }
        </style>

        <?php
    }
}

// Hàm lấy phiên bản mới nhất từ server
function my_plugin_get_remote_version()
{
    $update_url = 'https://dnkmg74tc9ukn.cloudfront.net/plugin.json'; // URL to plugin.json
    $response = wp_remote_get($update_url, [
        'headers' => [
            'Referer' => home_url(),
        ],
    ]);

    if (is_wp_error($response)) {
        return false;
    }

    $data = json_decode(wp_remote_retrieve_body($response), true);

    return isset($data['version']) ? $data['version'] : false;
}


add_filter('auto_update_plugin', function ($update, $item) {
    $checkUpdate = (int)(true == get_option('auto_update_sp', false));
    if ($item->slug === 'sport-plugin' && $checkUpdate) {
        return true;
    }
    return $update;
}, 10, 2);

