1

我正在使用 WooCommerce、WooCommerce 订阅和 WooCommerce 会员资格建立会员网站。理想情况下,我首先想检查用户是否已登录以及他们是否拥有活跃的会员资格。然后,我想将活动会员计划的 slug 添加到页面的正文类中。

我有下面的代码,它向页面的正文标记添加了几个类,包括检查用户的“黄金会员”计划并将其添加到正文标记。

/* 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 都无法使用。

4

1 回答 1

1

您忘记在最后的 if 语句中将 [] 添加到 $classes 中。它应该如下所示:

$classes[] = 'gold-membership'

于 2019-02-17T17:48:18.367 回答