WordPress cronjob已排定,但函数未运行

时间:2018-08-24 作者:Abdullah Khan

我正在尝试安排wordpress cron作业具有动态挂钩。我正在开发一个插件,cron作业将被动态调度。我需要一种方法来命名与登录用户直接对应的挂钩。所以我将用户登录名附加为钩子名。这是我正在使用的一段代码。

class Easy_Editor_Settings {
public $script="";
public $default_email="";
public $default_name="";
public $hook="";
public function __construct() {


    global $current_user;
    wp_get_current_user();

    $current_username=$current_user->user_login;

    $this->hook="easy_user".$current_username;
    add_action ($this->hook, [$this,\'run_service\'], 1, 10 );

    add_action( \'wp_ajax_easy_email_settings_call_back\', [$this,\'easy_email_settings_call_back\'] );
    add_filter(\'cron_schedules\',[$this,\'my_cron_schedules\']);



}
公共函数运行服务只打印错误日志,但接收10个参数,这些参数我以后必须使用。我可以看到正在使用WP控制插件安排作业。问题是,当我通过在末尾附加$current\\u username变量来使用hook name时,run\\u服务函数不会运行。但是Wp控件向所需函数显示操作以及参数和钩子名称。但是,当我将get\\u current\\u user()附加为

$this->hook="easy_user".get_current_user();
run\\u service函数可以工作,但是,get\\u current\\u user返回我的操作系统用户名,而不是wp username。我不确定是什么导致了这个问题,我需要一些方法在hook name中附加当前登录的用户。

1 个回复
SO网友:Rick Hellewell

我认为您需要使用wp\\u get\\u current\\u user()(请参阅https://codex.wordpress.org/Function_Reference/wp_get_current_user ), 将返回当前WP 用户信息作为对象。

从那里,您可以获得用户名(或其他参数)。从该页开始,您应该开始学习以下示例:

$current_user = wp_get_current_user();
    /**
     * @example Safe usage: $current_user = wp_get_current_user();
     * if ( !($current_user instanceof WP_User) )
     *     return;
     */
    echo \'Username: \' . $current_user->user_login . \'<br />\';
    echo \'User email: \' . $current_user->user_email . \'<br />\';
    echo \'User first name: \' . $current_user->user_firstname . \'<br />\';
    echo \'User last name: \' . $current_user->user_lastname . \'<br />\';
    echo \'User display name: \' . $current_user->display_name . \'<br />\';
    echo \'User ID: \' . $current_user->ID . \'<br />\';
您使用的get\\u current\\u user()函数是一个PHP命令,而不是WP命令。它将返回正在运行脚本的用户。看见http://php.net/manual/en/function.get-current-user.php

结束

相关推荐

常量WP_CRON_LOCK_TIMEOUT已在/htdocs/wp-config.php中定义

我遇到以下PHP错误:注意:常量WP_CRON_LOCK_TIMEOUT 已在/htdocs/wp config中定义。php在线195我不明白,因为当我用这个词在wordpress项目中搜索时WP_CRON_LOCK_TIMEOUT 我得到的结果是:PHP如何说WP_CRON_LOCK_TIMEOUT 如果中的第二个代码行default-constants.php 被如下条件包裹:if ( !defined( \'WP_CRON_LOCK_TIMEOUT\' ) ) define(\'W