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