Adding data to options table

时间:2013-10-04 作者:mantis

我目前正在调整一个插件,以便所有“贡献者”(这里称为“玩家”)自动订阅论坛。我基本上想订阅每个人的贡献者和以上的角色(我使用user\\u级别,因为插件的其余部分是这样的,我认为我应该保持一致。)

function forum_subscribe_member_player()
{
    $players= get_users();

    foreach($players as $player){

        $playeremail = get_userdata($player->ID, \'user_email\');
        if(!empty($playeremail) && $player->user_level >= 1)
        {                   
            $list = get_option("mf_forum_subscribers_1", array());


            if( is_player_subscribed($player->ID)) //remove user if already exists (user clicked unsubscribe)
            {
                $key = array_search($playeremail, $list);
                unset($list[$key]);
            }
            else
                $list[] = $playeremail;
            update_option("mf_forum_subscribers_1", $list);
        }
    }       
}
它不起作用,我猜这是一个问题$player->is_player_subscribed() 这里是:

 function is_player_subscribed($user_ID)
{
      if($user_ID)
      {
        $useremail = get_userdata($user_ID, \'user_email\');
        $list = get_option("mf_forum_subscribers_1", array());
        if(in_array($useremail, $list)){
          return true;
        }
        return false;
      }
}
使用global $user_ID 而不是get_users() 我希望在这方面能得到一些帮助,甚至能指出正确的方向。

编辑:基于@murdaugh的评论

1 个回复
最合适的回答,由SO网友:murdaugh 整理而成

这是我对OP评论的扩展:

function is_forum_subscribed($user_ID) {
  if($user_ID)
  {
    $useremail = $this->get_userdata($user_ID, \'user_email\');
    $list = get_option("mf_forum_subscribers_".$this->current_forum, array());
    if(in_array($useremail, $list))
      return true;
    }
    return false;
  }
}
您可以这样调用此函数:

is_forum_subscribed($player->ID);

结束

相关推荐

使用jQuery删除存储在wp_Options中的数据

我想知道是否有人能就我的问题给我进一步的建议。我的插件的一部分存储了用于调试的日志文件。我已经使用jquery和wp\\u localise\\u脚本在我的管理页面的(div#log)中成功地显示了它们。我有一个删除这些日志的按钮,但我不确定如何处理。我觉得ajax可能会在这里派上用场,但不确定从哪里开始。以下是我的代码的相关部分:admin_enqueue_scripts (action) $args = array(get_option(\'wow_tweets_log\'));//log files