通过cPanel在WordPress上运行更改角色Cron作业

时间:2018-08-06 作者:gromey

有人能给我指出正确的方向吗?

我正在尝试设置一个插件,该插件在激活时设置cron作业,以在用户的user\\u注册日期3个月后更改用户的user\\u角色。当插件被停用时,cron作业也应该被删除。

目前,以下代码不起作用。cron作业将运行,但用户角色不会更新。

The plugin code so far is:

<?php
/*
Plugin Name: Cron Job
*/

add_filter( \'cron_schedules\', \'example_add_cron_interval\' );

function example_add_cron_interval( $schedules ) {
    $schedules[\'five_seconds\'] = array(
        \'interval\' => 5,
        \'display\'  => esc_html__( \'Every Five Seconds\' ),
    );

    return $schedules;
}

function cron_hook(){
    $users = get_users(
        array(
            \'fields\' => array( \'ID\', \'user_registered\' ),
            \'role\'   => \'coaching\',
        )
    );

    foreach ( $users as $user ) {

        $time = $user->user_registered;

        if(strtotime($time) < strtotime(\'-3 months\')) {
            $u = new WP_User( $user->ID );
            // Remove role
            print_r($u);

            $u->remove_role( \'coaching\' );

            // Add role
            $u->add_role( \'platinum\' );
        }
    }
}

//echo \'<pre>\'; print_r( _get_cron_array() ); echo \'</pre>\';

public static function activate() {
    wp_schedule_event( time(), \'five_seconds\', \'cron_job\' );
}

public static function deactivate() {
    wp_clear_scheduled_hook(\'cron_job\');
}
我正在运行wp cron。php到cPanel(当前测试设置为5\\u秒)。

1 个回复
SO网友:gromey

设法找到了解决方案。

我完成的代码是:

register_activation_hook ( __FILE__, \'cron_job\' );

function cron_job() 
{
wp_schedule_event( time(), \'hourly\', \'hourly_job\' );
}

add_action( \'hourly_job\', \'cron_job_task\' );

function cron_job_task () 
{
    $users = get_users(
        array(
            \'fields\' => array( \'ID\', \'user_registered\' ),
            \'role\'   => \'coaching\',
        )
    );

    foreach ( $users as $user ) {
        $time = $user->user_registered;
        if(strtotime($time) < strtotime(\'-3 months\')) {
            $u = new WP_User( $user->ID );
            $u->remove_role( \'coaching\' );
            $u->add_role( \'platinum\' );
        }
    }
}
?>
每小时设置一个cPanel cron作业。

结束

相关推荐

重写子函数中的父主题配置。php

希望有人能提供帮助,我正在寻找一些关于如何重写/替换父主题中加载的某些函数并将其移动到子主题中的建议,以便我们可以在子主题中对文件本身进行更改。我们将把结构和文件“复制”到子主题中,但还无法找到方法“卸载”原始父主题文件,然后加载我们想要更改的子主题文件。本质上,我们将在子主题中复制和更改下面列出的所有“require”文件,但需要找到某种方法来覆盖父函数。php。我们已经尝试了多种方法来做到这一点,但到目前为止似乎还没有成功。这是当前的父函数。PHP:<?php /** * mo