插件中的WP Cron

时间:2016-08-28 11:16:48

标签: php wordpress cron

我已经使用this WP plugin boilerplate一段时间了,现在我遇到了一个我似乎无法解决的问题,所以我将不胜感激。

包括名为 class-plugin-name-activator.php 的sa文件,其中有一个名为 Plugin_Name_Activator 的类和一个公共静态功能称为激活。

我已添加wp_schedule_event,如下所示:

wp_schedule_event( time(), 'daily', 'rs_license_daily_event' );

...在激活功能中。另外,我在激活函数后添加了两个公共静态函数,第一个是调用另一个。让我们说第一个函数名是rs_license_do_daily_event。

现在,我需要像这样使用add_action:

add_action( 'rs_license_daily_event', 'rs_license_do_daily_event' );

我怎么能这样做呢?

另外,我使用一个名为WP Crontrol的插件来测试手动运行cron,以便查看它是否有效。

1 个答案:

答案 0 :(得分:2)

在公共静态函数内激活add:

public static function activate() {

        $timestamp = wp_next_scheduled( 'rs_license_daily_event' );

        if($timestamp == false) {
            wp_schedule_event( time(), 'daily', 'rs_license_daily_event' );
        }
}

然后在管理员或公共部分添加:(公共部分示例)

private function define_public_hooks() {

        $plugin_public = new Plugin_Name_Public( $this->get_plugin_name(), $this->get_version() );
        $this->loader->add_action( 'rs_license_daily_event', $plugin_public, 'rs_license' );

    }

最后在公共课中添加该方法:

public function rs_license() {
  // do stuff
}

多数民众赞成。