使用多个 if else 检查内容和成员状态

团队 G 蒂姆

我正在尝试检查用户是否以成员身份登录,以及 WordPress 自定义帖子类型中的元字段是否包含内容,然后需要根据 4 种可能的结果显示内容。我正在使用 WordPress 会员插件 woomembers

  1. 用户以会员身份登录并且内容存在 - 显示内容
  2. 用户以成员身份登录并且内容字段为空 - 不显示任何内容
  3. 用户不是会员并且内容存在 - 显示一些内容并注册
  4. 用户不是会员且不存在任何内容 - 显示注册

我有这个代码部分工作,但不能让第 3 项工作?

我的代码是:

<?php $meta_content_field = get_post_meta($post->ID, "meta-content-field", 
$single = true);

   if (wc_memberships_get_user_active_memberships() && 
   $meta_lighting_diagram != '') { 

       // Active member and has content- do something here

       ?>
       html content here

   <?php
   } elseif (wc_memberships_get_user_active_memberships() && 
   empty($meta_content_field) ) {

        // No content but active member - do something here
        echo "No content but active member";

   } elseif ( ! empty( wc_memberships_get_user_active_memberships() ) && 
   ($meta_content_field) ) {

       // content but non-member - do something here - this is not working? 
       echo "Has content but NOT active member";    

   } else {  

        // Non-member - do something here ?>
        html content here                                       

  <?php }
  ?>
RST

你的循环是错误的。首先检查应该是会员与否。

if ( $member) {
 // do something for the member
} else {
 // do something for the non-member
}

然后你要检查是否有内容。在 if 循环中执行此操作

if ( $member ) {
 // do something for the member
  if ( $content ) {
   // member and content
  } else {
   // member no content
  }
} else {
 // do something for the non-member
  if ( $content ) {
   // non-member and content
  } else {
   // non-member no content
  }
}

一个可能更好的方法是使用switch(). 看起来像这样:

$status = '';    
if ( $member ) $status = 'member';
  else $status = 'nonmember';
if ( $content ) $status .= 'content';
  else $status .= 'nocontent';

switch ( $status ) {
   case 'membercontent':
        // do something
        break;
   case 'membernocontent':
        // do something
        break;
   case 'nonmembercontent':
        // do something
        break;
   case 'nonmembernocontent':
        // do something
        break;
}

这可以与 结合简化(缩短)default:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用if / else语句检查多个答案?

来自分类Dev

多个if和else语句

来自分类Dev

多个if和else语句

来自分类Dev

使用 IF..ELSE 和多个 INSERT INTO 使用子查询

来自分类Dev

使用多个else if语句

来自分类Dev

使用多个if else语句

来自分类Dev

使用多个if else语句

来自分类Dev

存储过程使用where与多个if else和不同的表

来自分类Dev

使用列表在if,elif和else语句中定义多个答案

来自分类Dev

使用 for 循环和多个 if else 语句重构函数

来自分类Dev

使用if和else陈述

来自分类Dev

对多个条件使用if else语句

来自分类Dev

使用数组的多个if else语句

来自分类Dev

在使用python的嵌套for循环中使用“和”逻辑时,如何使用多个if else条件

来自分类Dev

使用多个if-else和split()简化特定字符串模式的提取

来自分类Dev

mvc替代使用if-else用于多个视图和控制器

来自分类Dev

vba:如何基于动态标准使用多个 If、Else 条件和公式为每个循环?

来自分类Dev

在跨多个列的数据框上使用if else

来自分类Dev

使用if / else语句的多个事件onChange

来自分类Dev

使用空检查简化If / Else语句

来自分类Dev

使用IF ELSE检查DIV是否隐藏

来自分类Dev

在PHP中使用if / else检查SQL查询

来自分类Dev

使用空检查简化If / Else语句

来自分类Dev

如何检查文件夹是否为空并在 if-then-else-statement 中使用其内容?

来自分类Dev

使用If / Else和awk调用bash命令

来自分类Dev

使用Where和if else的存储过程

来自分类Dev

if else语句使用&&和||一行

来自分类Dev

使用if和else任务进行循环

来自分类Dev

if else语句使用&&和||一行