Force Cron to run only on one server

I would create a constant in the wp_config.php defining which Server you are on. So far so good, not really magic. The tricky part, as you mentioned is to get the cron running for sure, and not aborting if it’s accidentally the wrong server. Try the function like this: function my_cron_callback() { if ( MY_SERVER_SETUP … Read more

Schedule cron event from widget

wp_schedule_event takes a hook as parameter, not a function. Try: wp_schedule_event(time(), ‘daily’, ‘my_daily_event’); add_action(‘my_daily_event’, array(&$this, ‘my_widget_cron’)); if ( !wp_next_scheduled( ‘my_daily_event’ ) ) { wp_schedule_event(time(), ‘hourly’, ‘my_daily_event’) } If you remove the widget from the sidebar, the cron will still continue to run. You can run the following code (outside of the widget class) to clear … Read more

Use Cron to modify posts via sql

Creating your own schedules is a little messy (because they need to be persistent and stored in database), but it is quite easy to hop on one of the native schedules that run twice a day. add_action( ‘wp_version_check’, ‘my_function’ ); function my_function() { //stuff } As for running actual queries you should use $wpdb for … Read more

cron job to auto delete posts of a specific post type older than x days

// add the schedule event if it has been removed if( ! wp_next_scheduled( ‘mg_remove_old_entries’ ) ) { wp_schedule_event( time(), ‘daily’, ‘mg_remove_old_entries’ ); //run the event daily } // action hooked to fired with wordpress cron job add_action( ‘mg_remove_old_entries’, ‘mg_remove_old_entries’ ); function mg_remove_old_entries() { $posts = get_posts( [ ‘numberposts’ => -1, ‘post_type’ => ‘vfb_entry’, ‘date_query’ => … Read more

How do I get a Function in my functions.php to execute with a cron job?

When you use *nix cron to run a PHP file like that it won’t have WordPress loaded. You can load it manually, but a better method is to use WordPress’ own cron API. Schedule the event in your functions.php: if ( ! wp_next_scheduled( ‘expire_posts’ ) ) { wp_schedule_event( time(), ‘hourly’, ‘expire_posts’ ); } I’ve used … Read more

How do i schedule cron in wordpress for each second?

I do not think it is useful to have a cron running every second, but the function itself is quite simple. You add a filter to the cron_schedules: function f711_add_seconds( $schedules ) { $schedules[‘everysecond’] = array( ‘interval’ => 1, ‘display’ => __(‘Every Second’) ); return $schedules; } add_filter( ‘cron_schedules’, ‘f711_add_seconds’ ); You can now use … Read more

Sending out scheduled emails

You cannot rely on wp-cron for consistent results so you have to look to the server level. Most enterprise-level WordPress installations need some sort of consistent automation. This is how I automate WordPress in this type of situation. You will need to add a crontab to the server itself. If you’re running Linux, you can … Read more