0

I've got a gallery on a listing page that I want to only display to logged in users. I'm trying to use the function is_user_logged_in() but I'm failing to work out exactly how to implement it.

I'm a beginner trying to work more in the PHP files rather than plugins/shortcodes.

This is the code, how would I add the is_user_logged_in() so the gallery only displays to logged in users?:

<?php
//get the listing gallery
$photos = listable_get_listing_gallery_ids();
if ( ! empty( $photos ) ) : ?>

<div class="entry-featured-carousel">
    <?php if ( count( $photos ) == 1 ):
        $myphoto = $photos[0];
        $image = wp_get_attachment_image_src( $myphoto, 'listable-featured-image' );
        $src = $image[0]; ?>
        <div class="entry-cover-image" style="background-image: url(<?php echo listable_get_inline_background_image( $src ); ?>);"></div>
    <?php else: ?>
        <div class="entry-featured-gallery">
            <?php foreach ( $photos as $key => $photo_id ):
                $src = wp_get_attachment_image_src( $photo_id, 'listable-carousel-image' ); ?>
                <img class="entry-featured-image" src="<?php echo $src[0]; ?>" itemprop="image" />
            <?php endforeach; ?>
        </div>
    <?php endif; ?>
</div>
<?php endif; ?>
j08691
  • 204,283
  • 31
  • 260
  • 272
Andre
  • 1

2 Answers2

3

Well since you know you only want to find photos when a user is logged in I would use a Ternary Operators. Which looks like this:

$var = test ? true : false;

For your code above I would implement it like this:

$photos = is_user_logged_in() ? listable_get_listing_gallery_ids(): '';

So the check for the is_user_logged_in is completed, if the answer returned is true, the process of listable_get_listing_gallery_ids is completed. If the process of is_user_logged_in returns false, $photos is set to an empty string.

This saves you computational time for not wasting effort on querying the database, when you plan to disregard the information. The link I provided above actually uses an example with the scenario of $user->is_logged_in()

mcv
  • 1,380
  • 3
  • 16
  • 41
0

is_user_logged_in() function returns a boolean ( true or false ): see WordPress Developer documentation here: https://developer.wordpress.org/reference/functions/is_user_logged_in/

In your case you can add the boolean next to your checking of empty photos logic.

if( ! empty( $photos ) && is_user_logged_in() )