Domanda

I searched and found some html, jquery or javascript redirect counters, but I don't know can I use it with wordpress. I want to make visitors wait 20 seconds before opening the post (shortcode), and logged in will see post (shortcode).

Like this:

function restrict( $atts, $content = null ) {
if ( is_user_logged_in() ) {
    return '<p>I am logged and I can see this</p>';
} else {
    echo HERE SHOULD BE THAT COUNTER;
}}
add_shortcode( 'restrict', 'restrict' );

Update: Using given answer I tried:

function restrict( $atts, $content = null ) {
$cnt = "http://www.youtube.com/embed/HESJgpYYUyM";
if ( is_user_logged_in() ) {
?>
<div class="video" style="display:none;"><iframe width="100%" height="400" src="<?php echo $cnt; ?>?autoplay=1" frameborder="0" scrolling="no" allowfullscreen style="visibility:hidden;" onload="this.style.visibility=\'visible\';"></iframe><br><br></div>
<div class="wait">Please wait 20 seconds.</div>
<script type="text/javascript">
$(document).ready(function() {
    $(".wait").delay(10000).hide(0, function() {
        $(".video").show();
    });
});
</script>
        <?php
}}
add_shortcode( 'restrict', 'restrict' );

*

Uncaught TypeError: Property '$' of object [object Object] is not a function 
Refused to display 'http://www.youtube.com/embed/HESJgpYYUyM' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
Uncaught SyntaxError: Unexpected token ILLEGAL 

*

So far:

function restrict( $atts, $content = null ) {
$cnt = "http://www.youtube.com/embed/HESJgpYYUyM";
if ( is_user_logged_in() ) {
?>
<div class="video" style="display:none;"><iframe width="100%" height="400" src="<?php echo $cnt; ?>?autoplay=1" frameborder="0" scrolling="no" allowfullscreen style="visibility:hidden;" onload="this.style.visibility=\'visible\';"></iframe><br><br></div>
<div class="wait">Please wait 20 seconds.</div>
<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery(".wait").delay(10000).hide(0, function() {
        jQuery(".video").show();
    });
});
</script>
        <?php
}}
add_shortcode( 'restrict', 'restrict' );

Uncaught SyntaxError: Unexpected token ILLEGAL

È stato utile?

Soluzione

Your code is pretty much correct. Here I've highlighted where you have to place your code. You need to place this code in your functions.php.

function restrict_func() {
    if ( is_user_logged_in() ) {
        return '<p>I am logged and I can see this</p>';
    } else {
        ?>
        <script>
            jQuery(document).ready(function() {
                // script code here.
            }
        </script>
        <!-- And HTML HERE, I've added sample HTML below -->
        <p class="hide_after_20_sec"></p>
        <p class="show_after_20_sec"></p>
        <?php
    }
}
add_shortcode( 'restrict', 'restrict_func' );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top