PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 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 All 508 releases
← All changes | extensions/blocks/repeat-visitor/render.php +46 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,46 @@
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 +}