Как добавить активный ярлык плана членства WooCommerce в Body Class?

Я настраиваю сайт членства с помощью 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 нефункциональными.


person Jesse Messenger    schedule 05.01.2019    source источник


Ответы (1)


Вы забыли добавить [] к $ classes в свой последний оператор if. Должно получиться так:

$classes[] = 'gold-membership'

person Carol    schedule 17.02.2019