PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 13.6.2
Jetpack – WP Security, Backup, Speed, & Growth v13.6.2
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 All 500 releases
jetpack / extensions / blocks / repeat-visitor / repeat-visitor.php
repeat-visitor.php
55 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Repeat Visitor Block
4 *
5 * @since 7.2.0
6 *
7 * @package automattic/jetpack
8 */
9
10 namespace Automattic\Jetpack\Extensions\Repeat_Visitor;
11
12 use Automattic\Jetpack\Blocks;
13 use Jetpack_Gutenberg;
14
15 /**
16 * Registers the block for use in Gutenberg
17 * This is done via an action so that we can disable
18 * registration if we need to.
19 */
20 function register_block() {
21 Blocks::jetpack_register_block(
22 __DIR__,
23 array( 'render_callback' => __NAMESPACE__ . '\render_block' )
24 );
25 }
26 add_action( 'init', __NAMESPACE__ . '\register_block' );
27
28 /**
29 * Repeat Visitor block dependency declaration.
30 *
31 * @param array $attributes Array containing the block attributes.
32 * @param string $content String containing the block content.
33 *
34 * @return string
35 */
36 function render_block( $attributes, $content ) {
37 Jetpack_Gutenberg::load_assets_as_required( __DIR__ );
38
39 $classes = Blocks::classes( Blocks::get_block_feature( __DIR__ ), $attributes );
40
41 $count = isset( $_COOKIE['jp-visit-counter'] ) ? (int) $_COOKIE['jp-visit-counter'] : 0;
42 $criteria = isset( $attributes['criteria'] ) ? $attributes['criteria'] : 'after-visits';
43 $threshold = isset( $attributes['threshold'] ) ? (int) $attributes['threshold'] : 3;
44
45 if (
46 ( 'after-visits' === $criteria && $count >= $threshold ) ||
47 ( 'before-visits' === $criteria && $count < $threshold )
48 ) {
49 return $content;
50 }
51
52 // return an empty div so that view script increments the visit counter in the cookie.
53 return '<div class="' . esc_attr( $classes ) . '"></div>';
54 }
55