我正在使用WooCommerce,WooCommerce订阅和WooCommerce会员资格建立一个会员站点。理想情况下,我首先要检查用户是否已登录以及他们是否具有有效的成员资格。然后,我想将活动会员计划的条目添加到页面的正文类中。
下面有我的代码,该代码向页面的body标记添加了几个类,包括检查用户的“ Gold Membership”计划并将其添加到body标记。
/* Add Page Slug to Body Class */
add_filter( 'body_class', 'am_add_slug_body_class' );
function am_add_slug_body_class( $classes ) {
global $post;
if ( isset( $post ) ) {
$classes[] = $post->post_type . '-' . $post->post_name;
}
return $classes;
}
/* Add Logged-Out Body Class */
add_filter('body_class','am_logged_in_filter');
function am_logged_in_filter($classes) {
if( is_user_logged_in() ) {
$classes[] = '';
} else {
$classes[] = 'logged-out';
}
return $classes;
}
/* Add Gold Membership to Body Class */
add_filter('body_class','am_membership_class_filter');
function am_membership_class_filter($classes) {
if( wc_memberships_is_user_member( null, 'gold-membership' ) ) {
$classes = 'gold-membership';
}
return $classes;
}
但是,最后一个“金牌会员”功能会删除我之前添加的所有其他主体类,从而使我的任何“登录”或特定于页面的CSS均不起作用。
答案 0 :(得分:1)
您忘记在最终的if语句中将[]添加到$ classes中。它应该看起来像这样:
$classes[] = 'gold-membership'