首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP --如何检查wordpress多站点中的任何用户博客中的db变量是否为真

PHP --如何检查wordpress多站点中的任何用户博客中的db变量是否为真
EN

Stack Overflow用户
提问于 2016-09-30 15:49:14
回答 1查看 29关注 0票数 0

我有一个wordpress多站点安装与100+用户与博客。有些用户有不止一个博客。

用户可以为他们的博客付费(把它看作一种捐赠场景),或者他们可以选择拥有一个免费的博客。如果他们有一个免费的博客,那么wp_ blog -ID_options中有一个名为is_free_site的变量,它被设置为1 (Blog-ID与用户博客相关)

如果用户正在为他们的站点付费,is_free_site将被设置为0,或者--变量在数据库中的所有中都不存在。见截图:

http://www.awesomescreenshot.com/image/1657353/0238f2bf2d49f0b165170be6c64ba3a3

我正在尝试编写一个名为does_user_pay的函数,它将查看当前登录的用户是否为他们的任何站点付费,如果他们这样做,则返回true。这样我就可以为那些选择付费的人提供优质的内容。

例如,用户A可能有两个站点,一个是他们付费的,另一个是他们不付费的-所以does_user_pay()应该是真的

用户B可能有一个他们不付费的站点,so does_user_pay()将是假的

用户C可能有一个他们付费的网站,所以does_user_pay()将是真的。

我正在将它编码到一个自定义插件中,下面是我到目前为止所拥有的:

代码语言:javascript
复制
function does_user_pay() {
    global $current_user;
    $user_id = get_current_user_id();
    $user_blogs = get_blogs_of_user($user_id);

    // Need to write a function here that checks if any of the user blogs are paid for

    if(is_user_logged_in() && USER_HAS_PAID_SITE) {
        return true;
    } else {
        return false;
    }
}

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2016-09-30 16:20:07

您可以以这种方式进行此检查(假设用户被记录并且他的id存储在$user_id中):

代码语言:javascript
复制
$blogs = get_blogs_of_user($user_id); // array with all user blogs
foreach($blogs as $blog){
    switch_to_blog($blog->userblog_id); // switch the blog
    $is_free_site = get_option('is_free_site', 0); // get the option value (if not exists, so the user paid, we'll get 0)           
    restore_current_blog(); // it's important to restore after a switch blog

    if($is_free_site == 0) return true;  // found a paid blog
}

return false; // not found a paid blog
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39795391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档