PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.2
Jetpack – WP Security, Backup, Speed, & Growth v16.2
16.3-a.1 16.2 16.2-beta 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 All 503 releases
jetpack / extensions / blocks / repeat-visitor / render.php

render.php in Jetpack – WP Security, Backup, Speed, & Growth 16.2, at extensions/blocks/repeat-visitor/render.php

47 lines 1.3 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 render implementation.
4 *
5 * Loaded lazily from repeat-visitor.php only when the block is rendered, to keep
6 * the render body out of the eager front-end PHP/opcache footprint.
7 *
8 * @package automattic/jetpack
9 */
10
11 namespace Automattic\Jetpack\Extensions\Repeat_Visitor;
12
13 use Automattic\Jetpack\Blocks;
14 use Jetpack_Gutenberg;
15
16 if ( ! defined( 'ABSPATH' ) ) {
17 exit( 0 );
18 }
19
20 /**
21 * Repeat Visitor block dependency declaration.
22 *
23 * @param array $attributes Array containing the block attributes.
24 * @param string $content String containing the block content.
25 *
26 * @return string
27 */
28 function render_block_implementation( $attributes, $content ) {
29 Jetpack_Gutenberg::load_assets_as_required( __DIR__ );
30
31 $classes = Blocks::classes( Blocks::get_block_feature( __DIR__ ), $attributes );
32
33 $count = isset( $_COOKIE['jp-visit-counter'] ) ? (int) $_COOKIE['jp-visit-counter'] : 0;
34 $criteria = $attributes['criteria'] ?? 'after-visits';
35 $threshold = isset( $attributes['threshold'] ) ? (int) $attributes['threshold'] : 3;
36
37 if (
38 ( 'after-visits' === $criteria && $count >= $threshold ) ||
39 ( 'before-visits' === $criteria && $count < $threshold )
40 ) {
41 return $content;
42 }
43
44 // return an empty div so that view script increments the visit counter in the cookie.
45 return '<div class="' . esc_attr( $classes ) . '"></div>';
46 }
47