Домой Каталог: Дополнения WP-Recall WP Access Ultimate Динамическое скрытие части контента
20ответ(ов) в теме
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
1
21:37
Версия WP-Recall: 16.17.4
Версия дополнения: 1.6.4

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

У меня на сайте (http://dev.storm-bets.com/) используется плагин Advanced Custom Fields, и есть несколько шаблонов рубрик, на которых необходимо скрыть только часть контента в анонсах записей. В частности, колонку с прогнозом, кратким описанием, и комментарии пользователей -

Вы не можете просматривать опубликованные ссылки

Необходимо скрыть эти поля только для тех записей, которые входят в отдельные рубрики (либо просто отдельно отмеченных записей), а для остальных - оставить открытыми (планируется продажа прогнозов только на матчи определенных турниров).

Я пробовала реализовать это так:

<?php 
global $WAU_User;
$account_ids = array(1);//идентификаторы доступа, которыми закрываем контент
$important = 0; //соответствие доступа //1
if($WAU_User->is_branch_access(1, 10)){
    echo '<ul class="list-unstyled"><li class="main-prognos"><?php the_field("prognos"); ?></li><li><span>Коэфф:</span> <?php the_field("koeff"); ?></li></ul>';
}else{
    echo 'Получить доступ';
    echo wau_get_accounts_box(1);//можем вывести карточку доступа
}
?>

Но, в таком случае, колонка скрывается для абсолютно записей, а не только для скрытых подпиской.

Прошу помочь, подсказать, как мне можно реализовать данную задачу.

Заранее благодарю за уделенное время!

Редакции сообщения
26.02.2019 10:23Андрей CSПричина: не указано
0
dm1
не в сети 3 года
На сайте с 07.12.2018
Участник
Тем 55
Сообщения 306
2
22:40

Наталия, про скрытие комментариев пользователей я задавал недавно вопрос. Почитайте тут

Вы не можете просматривать опубликованные ссылки
0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
3
22:59

Спасибо большое! Завтра попробую разобраться с комментариями!

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
4
10:33

nataliikiyan@gmail.com сказал(а)
Я пробовала реализовать это так

Код который пытались применить вы вообще неверный, он работать не будет.
Проверить доступ текущего пользователя в текущей публикации внутри цикла архивной страницы можно так:

global $WAU_User;

$WAU_Post = new WAU_Post(array(
	'post_id' => $post->ID
));

if($WAU_Post->access && $WAU_User->is_branch_access($WAU_Post->get_account_ids())){

	//у пользователя есть доступ к публикации

}

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
5
10:44

Сообщение о деактивации вынесено в отдельную тему

Вы не можете просматривать опубликованные ссылки
0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
6
18:25

Андрей, скажите пожалуйста, Вы можете помочь с настройкой дополнения под мои задачи за доп.плату, либо в рамках поддержки?
В обычных записях контент скрывается, но как скрыть данные произвольных полей в анонсах записей, построенных с ACF? - думаю, что самостоятельно не смогу разобраться.

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
7
19:00

в рамках поддержки могу что то подсказать тут на форуме, если же хотите сделать заказ то публикуйте задание тут

Вы не можете просматривать опубликованные ссылки

, подробно описывайте, что именно требуется, рассмотрю

0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
8
19:32

Мне нужно скрывать содержимое отдельных произвольных полей для записей, построенных с ACF и с отдельным шаблоном записи.В частности мне нужно скрывать содержимое 3-х текстовых полей и комментарии к записям -

Вы не можете просматривать опубликованные ссылки

В некоторых записях полей, которые нужно скрыть, больше 3-х, это прогнозы сразу на несколько матчей -

Вы не можете просматривать опубликованные ссылки

Вы можете подсказать, как это можно реализовать?

И еще вопрос, возможно ли установить карточку подписки на страницах архива (вверху над анонсами), чтобы она выводилась только на страницах скрываемых рубрик, а на обычных - была скрыта?

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
9
19:36

nataliikiyan@gmail.com сказал(а)
мне нужно скрывать содержимое 3-х текстовых полей и комментарии к записям

я вам выше

Вы не можете просматривать опубликованные ссылки

дал код, который позволяет проверить доступ текущего пользователя к публикации, используйте его, а что то подсказать по скринам не выйдет, для меня это лишь картинки, нужен код, который формирует выводимый контент

0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
10
20:48

Я Вам в ЛС выслала доступы к моему сайту. Буду признательна за помощь!

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
11
20:51

Спасибо, но я доступы не просил. Подобные задачи выходят за рамки техподдержки.
Если предоставите сюда какую то информацию, которая может помочь решить задачу, то я подскажу как это сделать.

0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
12
22:05

Извините, думала так будет быстрее.

Вот у меня есть страница рубрики:

Спойлер

<div id="primary" class="content-area">
	   <div class="head-bg"></div>
	    <div class="container">
		<main id="main" class="site-main" role="main">

		<?php if ( have_posts() ) : ?>

			<header class="entry-header">
				<?php
					the_archive_title( '<h1 class="page-title">', '</h1>' );
					the_archive_description( '<div class="taxonomy-description">', '</div>' );
				?>
		<?php
		if ( function_exists('yoast_breadcrumb') ) {
			yoast_breadcrumb( '<p id="breadcrumbs">','</p>' );
		}
		?>
			</header>

			<?php
			while ( have_posts() ) : the_post();
				get_template_part( 'template-parts/content-prognos', get_post_format() );

			endwhile;

			the_posts_pagination( array(
				'prev_text'          => __( 'Previous page', 'twentysixteen' ),
				'next_text'          => __( 'Next page', 'twentysixteen' ),
				'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>',
			) );

		else :
			get_template_part( 'template-parts/content-prognos', 'none' );
			
		endif;
		?>

		</main>
		</div>
	</div>

И шаблон поста, который используется в цикле:

Спойлер

<?php
/**
 * The template part for displaying content
 *
 * @package WordPress
 * @subpackage Twenty_Sixteen
 * @since Twenty Sixteen 1.0
 */
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<div class="article" data-toggle="collapse" data-target="#collapse-<?php the_ID(); ?>">
    <div class="row">
	    <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12">
		    <div class="row">
			<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
		    <div class="gamer-card">
				<div class="gamer-img">
					<?php 
					$image = get_field('logo-1');
					if( !empty($image) ): ?>
					    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
					<?php endif; ?>
				</div>
			    <div class="gamer-name"><?php the_field('gamer-1'); ?></div>
			</div>
			</div>
			<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2">
			<div class="vs"><span>VS</span></div>
			</div>
			<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
		    <div class="gamer-card">
				<div class="gamer-img">
					<?php 
					$image = get_field('logo-2');
					if( !empty($image) ): ?>
					    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
					<?php endif; ?>
				</div>
			    <div class="gamer-name"><?php the_field('gamer-2'); ?></div>
			</div>
			</div>
			</div>
		</div>
		<div class="col-lg-4 col-md-4 col-sm-12 col-xs-12">
		    <div class="match-info">
			    <ul class="list-unstyled">
				    <li><span>Дисциплина:</span> 
					<?php
					$categories = get_the_category(); 
					if($categories[0]){
						echo '<a href="' . get_category_link($categories[0]->term_id ) . '">'. $categories[0]->name . '</a>';
					}					
					?></li>
					<li><span>Турнир:</span> 
					<?php
					foreach((get_the_category()) as $childcat) {
					if (cat_is_ancestor_of(7, $childcat)) {
					echo '<a href="'.get_category_link($childcat->cat_ID).'" class="cat_link">';
					echo $childcat->cat_name . '</a>';
					}}
					?>
					</li>
					<li><?php the_field('data-time'); ?></li>
				</ul>
			</div>
		</div>
		<div class="col-lg-2 col-md-2 col-sm-12 col-xs-12">
		    <div class="prognos-info">
			    <ul class="list-unstyled">
				    <li class="main-prognos"><?php the_field("prognos"); ?></li>
					<li><span>Коэфф:</span> <?php the_field("koeff"); ?></li>
				</ul>
			</div>
		</div>
		<div class="col-lg-2 col-md-2 col-sm-12 col-xs-12">
		    <div class="result">
			    <?php 	$format = get_post_format();
				if ( current_theme_supports( 'post-formats', $format ) ) {
					printf( '<span class="entry-format">%3$s</span>',
					sprintf( '<span class="screen-reader-text">%s </span>', _x( 'Used before post format.', 'twentysixteen' ) ),
					esc_url( get_post_format_link( $format ) ),
					get_post_format_string( $format )
				);	
				}
				?>
			</div>
		</div>
	</div>
</div>

<div id="collapse-<?php the_ID(); ?>" class="collapse">
	<div class="row">
		<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
		    <div class="analitics">
			    <p class="small-title">Аналитика</p>
			    <?php the_field('analitics'); ?>
			</div>
		    <div class="comments" id="comments">
			<p class="small-title">Комментарии пользователей:</p>
			

<ol class="commentlist">
	<?php
		// Получаем комментарии поста 
		$comments = get_comments(array(
			'post_id' => get_the_ID(),
			'status' => 'approve' // комментарии прошедшие модерацию
		));

		// Формируем вывод списка полученных комментариев
		wp_list_comments(array(
			'per_page' => 30, // Пагинация комментариев - по 10 на страницу
			'reverse_top_level' => true // Показываем последние комментарии в начале
		), $comments);
	?>
</ol>
<?php comment_form( $args = array(), $post_id = null ) ?>		
			</div>
		</div>
	</div>
</div>
<?php $value = get_field('express'); if (($value) == 'yes') : ?>
<div class="article" data-toggle="collapse" data-target="#collapse2-<?php the_ID(); ?>">
    <div class="row">
	    <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12">
		    <div class="row">
			<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
		    <div class="gamer-card">
				<div class="gamer-img">
					<?php 
					$image = get_field('logo-ex-1');
					if( !empty($image) ): ?>
					    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
					<?php endif; ?>
				</div>
			    <div class="gamer-name"><?php the_field('gamer-ex-1'); ?></div>
			</div>
			</div>
			<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2">
			<div class="vs"><span>VS</span></div>
			</div>
			<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
		    <div class="gamer-card">
				<div class="gamer-img">
					<?php 
					$image = get_field('logo-ex-2');
					if( !empty($image) ): ?>
					    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
					<?php endif; ?>
				</div>
			    <div class="gamer-name"><?php the_field('gamer-ex-2'); ?></div>
			</div>
			</div>
			</div>
		</div>
		<div class="col-lg-4 col-md-4 col-sm-12 col-xs-12">
		    <div class="match-info">
			    <ul class="list-unstyled">
				    <li><span>Дисциплина:</span> 
					<?php
					$categories = get_the_category(); 
					if($categories[0]){
						echo '<a href="' . get_category_link($categories[0]->term_id ) . '">'. $categories[0]->name . '</a>';
					}					
					?></li>
					<li><span>Турнир:</span> 
					<?php
					foreach((get_the_category()) as $childcat) {
					if (cat_is_ancestor_of(7, $childcat)) {
					echo '<a href="'.get_category_link($childcat->cat_ID).'" class="cat_link">';
					echo $childcat->cat_name . '</a>';
					}}
					?>
					</li>
					<li><?php the_field('data-time-2'); ?></li>
				</ul>
			</div>
		</div>
		<div class="col-lg-2 col-md-2 col-sm-12 col-xs-12">
		    <div class="prognos-info">
			    <ul class="list-unstyled">
				    <li class="main-prognos"><?php the_field("prognos-2"); ?></li>
					<li><span>Коэфф:</span> <?php the_field("koeff-2"); ?></li>
				</ul>
			</div>
		</div>
		<div class="col-lg-2 col-md-2 col-sm-12 col-xs-12">
		    <div class="result">
			    <?php 	$format = get_post_format();
				if ( current_theme_supports( 'post-formats', $format ) ) {
					printf( '<span class="entry-format">%3$s</span>',
					sprintf( '<span class="screen-reader-text">%s </span>', _x( 'Used before post format.', 'twentysixteen' ) ),
					esc_url( get_post_format_link( $format ) ),
					get_post_format_string( $format )
				);	
				}
				?>
			</div>
		</div>
	</div>
</div>
<div id="collapse2-<?php the_ID(); ?>" class="collapse">
	<div class="row">
		<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
		    <div class="analitics">
			    <p class="small-title">Аналитика</p>
			    <?php the_field('analitics-2'); ?>
			</div>
		</div>
	</div>
</div>
	
	<?php endif; ?>
</article>

Мне нужно скрыть из него блоки:

<div class="prognos-info">
	<ul class="list-unstyled">
		<li class="main-prognos"><?php the_field("prognos"); ?></li>
		<li><span>Коэфф:</span> <?php the_field("koeff"); ?></li>
	</ul>
</div>

<div class="analitics">
	<p class="small-title">Аналитика</p>
	<?php the_field('analitics'); ?>
</div>

В некоторых записях эти 2 блока будут дублироваться, меняться будет только название поля.

И блок комментариев:

<ol class="commentlist">
	<?php
		$comments = get_comments(array(
			'post_id' => get_the_ID(),
			'status' => 'approve'
		));

		wp_list_comments(array(
			'per_page' => 30,
			'reverse_top_level' => true
		), $comments);
	?>
</ol>
<?php comment_form( $args = array(), $post_id = null ) ?>	

Как это можно реализовать?

Редакции сообщения
26.02.2019 22:08nataliikiyan@gmail.comПричина: не указано
0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
13
07:14

nataliikiyan@gmail.com сказал(а)
Как это можно реализовать?

Проверяете доступ текущего пользователя к публикации и если доступ есть, то показываете контент, если нет, то не показываете.
Я уже повторяюсь, я дал вам код выше, который и надо применять в вашем случае

Вы не можете просматривать опубликованные ссылки
0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
14
15:07

Добрый день, Андрей! Не получается у меня скрыть с этим кодом, потому что очень туго понимаю php.
Я создала задание на сайте -

Вы не можете просматривать опубликованные ссылки

с подробным описанием задачи. Рассмотрите, пожалуйста. Возьметесь ли помочь?

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
15
16:00

подождите, возможно, кто то откликнется

0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
16
16:53

Уже 2-й специалист, но не доделав до конца, пропал. Пожалуйста, укажите на ошибку!

Сейчас содержимое отдельных полей скрывается следующим кодом:

Спойлер
				<?php 
				
					global $WAU_User;
					
					$categories = get_the_category();
					
					//$account_ids = array(1,3);		
					$account_ids = array();
					
					$access_post = get_post_meta( $post->ID, 'wau-access', false ); 
					//print_r($access_post);
					$array_access = json_decode(json_encode($access_post), true);
					//print_r($array_access);
					
					if (!empty($array_access)) {						
						foreach((get_the_category()) as $childcat) {
							if (cat_is_ancestor_of(7, $childcat)) {
								echo '<a href="'.get_category_link($childcat->cat_ID).'" class="cat_link">Получить доступ</a>';
							}
						}					
					} else {
				?>
			    <ul class="list-unstyled">
				    <li class="small-title"><?php the_field("prognos"); ?></li>
					<li><span>Коэфф:</span> <?php the_field("koeff"); ?></li>
				</ul>				
				<?php
					}					
				?>

И аналогично:

Спойлер
			<?php
				global $WAU_User;
				//$account_ids = array(1);
				$access_post = get_post_meta( $post->ID, 'wau-access', false ); 
				$array_access = json_decode(json_encode($access_post), true);				
				//print_r($array_access);	
				//echo [0]['access'][0];
				foreach ($array_access as $name_access ) {
					$name_access = $name_access[access];
					//print_r($name_access[0]);
					$account_ids = $name_access[0];
				}
				foreach((get_the_category()) as $childcat) {
					if (cat_is_ancestor_of(7, $childcat)) {
						$cat_child = $childcat->cat_name;
					}
				}				
				if (!empty($array_access)) {						
			?>
				<div class="analitics">
					<p class="small-title">Прогнозы на все матчи турнира "<?php echo $cat_child; ?>" станут доступны после покупки подписки.</p>
				</div>
				
			<?php			
					echo wau_get_accounts_box($account_ids);
				} else {			
			?>  
			    <!--Выводим текст аналитики только если поле заполнено-->
				<?php if( get_field("analitics") ): ?>
				<p class="small-title">Аналитика</p>
				<?php the_field( "analitics" ); ?>
				<?php else :?>
				<?php endif; ?>
				
				<?php $value = get_field('ex'); if (($value) == 'yes') : ?>
				
				<div class="comments" id="comments">
				
				<?php if (have_comments()) { ?>
				<p class="small-title">Комментарии пользователей:</p>	
				<?php } else { ?>
				<?php } ?>
					<ol class="commentlist">
						<?php
							// Получаем комментарии поста с ID XXX из базы данных 
							$comments = get_comments(array(
								'post_id' => get_the_ID(),
								'status' => 'approve' // комментарии прошедшие модерацию
							));
							// Формируем вывод списка полученных комментариев
							wp_list_comments(array(
								'per_page' => 30, // Пагинация комментариев - по 10 на страницу
								'reverse_top_level' => true // Показываем последние комментарии в начале
							), $comments);
						?>
					</ol>
					<p class="small-title">Добавить комментарий</p>
					<?php if ( is_user_logged_in() ) {
						echo '';
					}
					else {
						echo '<span class="log-info"><a href="#" class="rcl-login">Войдите</a>, чтобы комментировать просто и быстро!</span>';
					}
					?>
					<?php comment_form( $args = array(), $post_id = null ) ?>		
				</div>
				<?php endif; ?>	
				
			<?php
				}				
			?>

Этот код верно скрывает нужную часть контента, но не открывает ее для пользователей, для которых доступ открыт.

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
17
17:15

ну значит специалисты такие) если честно, я такой бессмысленной мешанины давно не видел.
Я же давал выше код, вот его и используем:

<?php 
				
	global $WAU_User, $post;
	
	$WAU_Post = new WAU_Post(array(
		'post_id' => $post->ID
	));

	if($WAU_Post->access && $WAU_User->is_branch_access($WAU_Post->get_account_ids())){						
			foreach((get_the_category()) as $childcat) {
				if (cat_is_ancestor_of(7, $childcat)) {
					echo '<a href="'.get_category_link($childcat->cat_ID).'" class="cat_link">Получить доступ</a>';
				}
			}
	} else {
		?>
		<ul class="list-unstyled">
			<li class="small-title"><?php the_field("prognos"); ?></li>
			<li><span>Коэфф:</span> <?php the_field("koeff"); ?></li>
		</ul>				
		<?php
	}					
?>

и второй блок
<?php
	global $WAU_User, $post;
	
	$WAU_Post = new WAU_Post(array(
		'post_id' => $post->ID
	));

	if($WAU_Post->access && $WAU_User->is_branch_access($WAU_Post->get_account_ids())){						
?>
	<div class="analitics">
		<p class="small-title">Прогнозы на все матчи турнира "<?php echo $cat_child; ?>" станут доступны после покупки подписки.</p>
	</div>
	
<?php			
		echo wau_get_accounts_box($account_ids);
	} else {			
?>  
	<!--Выводим текст аналитики только если поле заполнено-->
	<?php if( get_field("analitics") ): ?>
	<p class="small-title">Аналитика</p>
	<?php the_field( "analitics" ); ?>
	<?php else :?>
	<?php endif; ?>
	
	<?php $value = get_field('ex'); if (($value) == 'yes') : ?>
	
	<div class="comments" id="comments">
	
	<?php if (have_comments()) { ?>
	<p class="small-title">Комментарии пользователей:</p>	
	<?php } else { ?>
	<?php } ?>
		<ol class="commentlist">
			<?php
				// Получаем комментарии поста с ID XXX из базы данных 
				$comments = get_comments(array(
					'post_id' => get_the_ID(),
					'status' => 'approve' // комментарии прошедшие модерацию
				));
				// Формируем вывод списка полученных комментариев
				wp_list_comments(array(
					'per_page' => 30, // Пагинация комментариев - по 10 на страницу
					'reverse_top_level' => true // Показываем последние комментарии в начале
				), $comments);
			?>
		</ol>
		<p class="small-title">Добавить комментарий</p>
		<?php if ( is_user_logged_in() ) {
			echo '';
		}
		else {
			echo '<span class="log-info"><a href="#" class="rcl-login">Войдите</a>, чтобы комментировать просто и быстро!</span>';
		}
		?>
		<?php comment_form( $args = array(), $post_id = null ) ?>		
	</div>
	<?php endif; ?>	
	
<?php
	}				
?>

0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
18
17:41

Большое Вам спасибо за ответ!

Заменила код на Ваш. Теперь контент полностью открывается для пользователя без доступа, а для пользователя с доступом - скрывается

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
19
18:25

точно, в обоих случаях измените строчку так:

if($WAU_Post->access && !$WAU_User->is_branch_access($WAU_Post->get_account_ids())){

0
nataliikiyan@gmail.com
не в сети 6 лет
На сайте с 20.02.2019
Участник
Тем 3
Сообщения 15
20
21:39

Большое Вам спасибо! Помогло!

1
Тема закрыта. Публикация новых сообщений запрещена.