[wp-trac] [WordPress Trac] #63959: WP cron job issue in a custom plugin

WordPress Trac noreply at wordpress.org
Thu Sep 11 13:20:27 UTC 2025


#63959: WP cron job issue in a custom plugin
--------------------------+-----------------------------
 Reporter:  arungiri      |      Owner:  (none)
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  General       |    Version:
 Severity:  normal        |   Keywords:
  Focuses:                |
--------------------------+-----------------------------
 I am working on a class-based plugin. I need a custom cron job that will
 be active when the plugin is active and run the plugin function. Now, I am
 facing an issue where it is not calling the plugin function, but I have
 checked the cron that has already been created. Below is my code. Let me
 know what I am missing here. smcp_cron_do_task() is not triggered by the
 cron job.


 {{{
 <?php
 class ClassName {

     public function __construct() {
         // Ensure custom cron intervals are registered early
         //add_filter( 'cron_schedules', array( $this,
 'add_custom_intervals' ) );

         // Hooks
         register_activation_hook( __FILE__, array( $this,
 'smcp_cron_activate' ));
         register_deactivation_hook( __FILE__, array( $this,
 'smcp_cron_deactivate' ));

         add_action( 'smcp_cron_task_hook', array( $this,
 'smcp_cron_do_task' ) );
     }

     // Schedule on activation
     function smcp_cron_activate() {
         if ( ! wp_next_scheduled( 'smcp_cron_task_hook' ) ) {
             wp_schedule_event( time(), 'every_minute',
 'smcp_cron_task_hook' );
         }
     }

     // Clear scheduled event on deactivation
     function smcp_cron_deactivate() {
         $timestamp = wp_next_scheduled( 'smcp_cron_task_hook' );
         if ( $timestamp ) {
             wp_unschedule_event( $timestamp, 'smcp_cron_task_hook' );
         }
     }

     function smcp_cron_do_task() {
         // Custom Code
         error_log( 'My custom cron job ran at: ' . current_time('mysql')
 );
     }

     public function add_custom_intervals( $schedules ) {
         $schedules['every_minute'] = array(
             'interval' => 60,
             'display'  => __( 'Every Minute' ),
         );
         return $schedules;
     }
 }

 // Initialize plugin
 new Site_Monitor();
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/63959>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list