我正在尝试检查用户是否以成员身份登录,以及 WordPress 自定义帖子类型中的元字段是否包含内容,然后需要根据 4 种可能的结果显示内容。我正在使用 WordPress 会员插件 woomembers
我有这个代码部分工作,但不能让第 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 }
?>
你的循环是错误的。首先检查应该是会员与否。
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] 删除。
我来说两句