WP-Cron is not a guaranteed time task scheduler. The trigger for WP-Cron is somebody visiting the site itself, so if nobody visits the site at midnight, then the job doesn’t run until somebody does visit the site later.
Similarly, if you use a whole page caching mechanism like WP-Super-Cache, then anonymous users will not really be “visiting” the site since they’re getting cached pages. So that can impact WP-Cron’s ability to run on time as well.
If you need to run timed events precisely, then you need to use a real cron mechanism instead.
Related Posts:
- How do I log plugin (cron) actions?
- Cron firing my function everytime wp-admin is visited
- How Do I Make WordPress Run an Event Every Day?
- get_posts / WP_Query Memory size of 134217728 bytes exhausted
- Hourly WP schedule, do I need at least 1 visitor hourly?
- Change of query var in pre_get_posts not maintained
- Is it possible to load plugin from console with core ?
- Is there any background process that I can run from plugin without depending on page hits on a website without affecting page-load speed?
- WordPress cron running twice
- Will cron job run if page loaded is being served from cache?
- Loading WordPress Admin Environment
- How to schedule a cron job in plugin without waiting for page load request?
- Problems with cron
- How to Trigger WP CRON at Local Timestamp?
- Plugin with functions inside a class & how to trigger WP CRON
- WP Cron as Fast as WordPress AJAX?
- Best place to keep files that are called by cron jobs?
- What is the use of wp_schedule_event hook?
- Running one-off cron jobs when WP_DISABLE_CRON is true: can I hit /wp-cron.php?
- Settings API updated messages won’t show if custom admin page not hooked into add_options_page()
- How can I load a page template from a plugin?
- How to call images from your plugins image folder?
- Why does WordPress have a noop.php file?
- Overwrite theme file from plugin
- Any examples of adding custom fields to the category editor?
- How to pass a parameter to this add_filter example [duplicate]
- How to get Post ID with the Add Filter Function
- Preparing a string in an array for localization
- How to Use WordPress Color Picker API in Custom Post Type Metabox
- Formatting of curly brackets array from WP database to get more readable output
- How to find attachment ID for first image in a post
- set_sale_price in WooCommerce [closed]
- Synchronize custom post type tags with WordPress default post type tags
- Adding extra pages to plugin that shouldn’t appear in the sidebar
- How to create custom field in worpdress default widgets?
- jquery document ready function not being called [closed]
- How do I add a filter to wp_list_categories() to make links nofollow?
- Custom plugin icon not showing up
- How to hook into publish post events in wordpress 4.7.5
- What is the best way to embed an JS App in a WordPress Page?
- add_rewrite_rule works in themes function php but when moved into plugin it stops working
- $reverse_top_level works the opposite way according to Codex?
- How to serve different thumbnails/images depending on users browser/platform
- Show disclaimer with accept button before redirecting to the payment gateway website
- How to export post meta with images in wordpress
- Parse form values before sending to options.php
- My WordPress plugin cannot load my JavaScript file
- Password field is empty when using wp_signon();
- Add Minimum Dimensions Text to Featured Image
- Show error message after exception handled
- What is the proper way to get logged in user id in a plugin?
- Custom WordPress Plugin will install new and not update
- get_option() will not work without access to wp-config.php
- WordPress Plugin Activate / Deactive Failing
- How can I add a simple custom field to my plugin?
- Ajax is not working in a loop
- Custom Plugin – CSS works, JS doesn’t
- Bind a function with its own argument to show something dynamically after every content
- Inserted double quote when prepending to the_content
- unable to wp_enqueue_script(‘suggest’);
- Plugin development – loading Javascript and Flash
- update_post_meta doesnt update template
- Update variable value via add_filter
- Setting global block attribute value
- Plugin custom post template; without overriding all posts
- Run uninstall.php if a checkbox is checked from settings page
- Gravity Forms Anchor only on Front Page?
- How to set a header in wp_safe_remote_get()?
- Multiple page plugin settings
- sanitizing/escaping plugin options
- how to get the top 10 popular blogs
- How to output CSS to the beginning of the stylesheet in a WordPress Plugin
- can’t access some WordPress function from my plugin
- Set page to draft on plugin deactivation
- Can one plugin activate another plugin via script?
- script seem not load with use wp_enqueue_script
- Do I lose translations when I change my Text domain for my plugin on wp.org?
- Transform internationalized plugin into internationalized mu-plugin?
- Override woocommerce loop-start.php from theme using plugin?
- Get value of custom checkbox from Gutenberg sidebar in plugin
- XMLHttpRequest to open PHP file responds with Missing Page
- Pre-populated WooCommerce checkout fields: dropdown fields issue
- jQuery dependent script ignores $in_footer bool and doesn’t work in header
- Hiding class namespace from plugin’s extensions
- Relational / Associate tables using native WordPress functionality
- Pull commentdata for pre_comment_on_post from comment_post_ID
- Woo-commerce: Adding additional page sections using a child theme
- Get the post ID only off single page
- How to get html tag ids from template?
- Bootstrap collapse in custom WordPress widget
- Page reload occurs before request finishes
- PHP Fatal error when using plugin_basename
- How to Rewrite WordPress URL for a Plugin
- What does $_REQUEST[‘redirect_to’] do?
- How to Prove Ownership of plugin [closed]
- how can a plugin return an error message on activation?
- Declaration of mandoe_menu_walker::start_el(&$output, $item, $depth, $args) must be compatible with Walker::start_el(…)
- Reading the inside of
- WordPress, GIT, Renamed Plugin Dir + files – Working Code now Broken [closed]
- get_term_by() returning null on plugin