登录的用户 id 没有进入 wordpress cron 作业
Posted
技术标签:
【中文标题】登录的用户 id 没有进入 wordpress cron 作业【英文标题】:logged in user id not getting in wordpress cron job 【发布时间】:2018-07-09 13:47:25 【问题描述】:每当我尝试在 wordpress cron 作业中获取当前用户 ID 时,它都会返回 0。有什么方法可以在 wordpress cron 作业中获取当前登录的用户 ID。
这里是示例代码。
add_filter( 'cron_schedules', 'isa_add_every_three_minutes' );
function isa_add_every_three_minutes( $schedules )
$schedules['every_three_minutes'] = array(
'interval' => 180,
'display' => __( 'Every 3 Minutes', 'textdomain' )
);
return $schedules;
// Schedule an action if it's not already scheduled
if ( ! wp_next_scheduled( 'isa_add_every_three_minutes' ) )
wp_schedule_event( time(), 'every_three_minutes', 'isa_add_every_three_minutes' );
// Hook into that action that'll fire every three minutes
add_action( 'isa_add_every_three_minutes', 'every_three_minutes_event_func');
function every_three_minutes_event_func()
$user_id = get_current_user_id();
$user_points = get_user_meta( $user_id, 'remaing_points', true);
// send mail
//wp_mail();
方法#1
$user_id = get_current_user_id();
方法#2
$current_user = wp_get_current_user();
$current_user->ID;
我已经尝试了这两种方法来获取用户 ID,但没有运气。
【问题讨论】:
你能试试这个吗 -global $current_user; $current_user->ID
。希望这应该可行。
@PreP 感谢您的回复,但这并不奏效。
Cron 是由系统运行的,所以它没有登录用户..
@TurtleTread 所以这意味着没有办法在 wp cron 作业中获取用户 ID?或者有什么替代解决方案?
【参考方案1】:
如果您通过运行 wp-cron.php 手动调用 cron,则没有用户。
如果您依赖 WordPress 的 cron 来触发用户操作请求,如果用户已登录,您可能会获得一个非零用户 ID。如果用户是访客/未登录用户,您将获得用户 id 为 0。
【讨论】:
以上是关于登录的用户 id 没有进入 wordpress cron 作业的主要内容,如果未能解决你的问题,请参考以下文章
如果管理员登录,则在 WordPress 中加载不同的样式表
Wordpress登录页面重定向到普通用户的Woocommerce我的帐户页面