Make WordPress Core

Opened 5 months ago

Last modified 5 months ago

#63959 new defect (bug)

WP cron job issue in a custom plugin

Reported by: arungiri's profile arungiri Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: General Keywords: close
Focuses: Cc:

Description

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();

Change History (1)

#1 @sabernhardt
5 months ago

  • Keywords close added

Hi and welcome to WordPress Core Trac!

This seems to be a support request, which would be more appropriate on the support forums.
https://wordpress.org/support/forum/wp-advanced/

However, I noticed you already have a post on Stack Overflow:
https://stackoverflow.com/questions/79761974/wp-cron-job-issue-in-a-custom-plugin

Note: See TracTickets for help on using tickets.