function generate_current_listeners() { $currentListeners = get_option('current_listeners'); if (false === $currentListeners || '' === $currentListeners) { $currentListeners = rand(1490, 2498); } else { $increment = rand(-10, 11); $currentListeners += $increment; if ($currentListeners < 1490) { $currentListeners = 1490 + abs($increment); } elseif ($currentListeners > 2498) { $currentListeners = rand(1490, 2498); } } update_option('current_listeners', $currentListeners); return $currentListeners; } // Function to display the current listeners value using a shortcode function current_listeners_shortcode() { $currentListeners = generate_current_listeners(); // Return the currentListeners value return '
Current Listeners: ' . $currentListeners . '
'; } // Register the shortcode add_shortcode('current_listeners', 'current_listeners_shortcode'); // Enqueue necessary scripts function enqueue_current_listeners_scripts() { wp_enqueue_script('current-listeners-script', plugin_dir_url(__FILE__) . 'current-listeners-script.js', array('jquery'), '1.0', true); // Pass the admin-ajax.php URL and the currentListeners value to the JavaScript file wp_localize_script('current-listeners-script', 'currentListenersData', array( 'ajaxUrl' => admin_url('admin-ajax.php'), 'currentListeners' => generate_current_listeners() )); // Include jQuery if it's not already included wp_enqueue_script('jquery'); } add_action('wp_enqueue_scripts', 'enqueue_current_listeners_scripts'); // AJAX action to update current listeners value add_action('wp_ajax_update_current_listeners', 'update_current_listeners_ajax'); add_action('wp_ajax_nopriv_update_current_listeners', 'update_current_listeners_ajax'); // AJAX callback function to generate and return the updated current listeners value function update_current_listeners_ajax() { $currentListeners = generate_current_listeners(); echo $currentListeners; wp_die(); }