Counter Code

Category: | Tag:

Shortcode

[live_counter]
// Initialize counter on first run
function init_live_counter() {
    if (get_option('live_counter_value') === false) {
        add_option('live_counter_value', 135033333);
        add_option('live_counter_last_update', time());
    }
}
add_action('init', 'init_live_counter');


function get_live_counter_value() {
    $value = (int) get_option('live_counter_value');
    $last_update = (int) get_option('live_counter_last_update');

    $now = time();
    $elapsed = floor(($now - $last_update) / 5);

    if ($elapsed > 0) {
        $value += $elapsed;
        update_option('live_counter_value', $value);
        update_option('live_counter_last_update', $now);
    }

    wp_send_json_success($value);
}

add_action('wp_ajax_get_live_counter', 'get_live_counter_value');
add_action('wp_ajax_nopriv_get_live_counter', 'get_live_counter_value');


function live_counter_shortcode() {
    ob_start();
    ?>
    <div id="live-counter">Loading...</div>

    <script>
        document.addEventListener("DOMContentLoaded", function () {
            const counterEl = document.getElementById("live-counter");

            function updateCounter() {
                fetch("<?php echo admin_url('admin-ajax.php?action=get_live_counter'); ?>")
                    .then(res => res.json())
                    .then(data => {
                        if (data.success) {
                            counterEl.textContent = Number(data.data).toLocaleString();
                        }
                    });
            }

            // Initial load
            updateCounter();

            // Update every 5 seconds
            setInterval(updateCounter, 5000);
        });
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('live_counter', 'live_counter_shortcode');
Copyright © 2026 Siam Naulak.
magnifiercrossmenu