Как добавить Active Soog плана членства в WooCommerce в Body Class? - PullRequest
0 голосов
/ 06 января 2019

Я настраиваю сайт членства с использованием 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 неработоспособным.

1 Ответ

0 голосов
/ 17 февраля 2019

Вы забыли добавить [] к $ классам в вашем последнем операторе if. Это должно выглядеть так:

$classes[] = 'gold-membership'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...