PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.1
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 13.7.2 13.8.3 13.9.2 14.0.1 All 504 releases
← All changes | extensions/blocks/tock/tock.php +9 -35 12.5.2 → 16.3-a.1 View file →
@@ -9,12 +9,12 @@
9 9
10 10 namespace Automattic\Jetpack\Extensions\Tock;
11 11
12 12 use Automattic\Jetpack\Blocks;
13 -use Jetpack_Gutenberg;
14 13
15 -const FEATURE_NAME = 'tock';
16 -const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
14 +if ( ! defined( 'ABSPATH' ) ) {
15 + exit( 0 );
16 +}
17 17
18 18 /**
19 19 * Registers the block for use in Gutenberg
20 20 * This is done via an action so that we can disable
@@ -21,9 +21,9 @@
21 21 * registration if we need to.
22 22 */
23 23 function register_block() {
24 24 Blocks::jetpack_register_block(
25 - BLOCK_NAME,
25 + __DIR__,
26 26 array( 'render_callback' => __NAMESPACE__ . '\render_block' )
27 27 );
28 28 }
29 29 add_action( 'init', __NAMESPACE__ . '\register_block' );
@@ -30,39 +30,13 @@
30 30
31 31 /**
32 32 * Render the widget and associated JS
33 33 *
34 + * The render implementation lives in render.php and is only loaded when the
35 + * block is actually rendered, keeping it out of the eager front-end path.
36 + *
34 37 * @param array $attr The block attributes.
35 38 */
36 39 function render_block( $attr ) {
37 - $content = '<div id="Tock_widget_container" data-tock-display-mode="Button" data-tock-color-mode="Blue" data-tock-locale="en-us" data-tock-timezone="America/New_York"></div>';
38 - if ( empty( $attr['url'] ) ) {
39 - if ( ! current_user_can( 'edit_posts' ) ) {
40 - return;
41 - }
42 -
43 - return Jetpack_Gutenberg::notice(
44 - __( 'The block will not be shown to your site visitors until a Tock business name is set.', 'jetpack' ),
45 - 'warning',
46 - Blocks::classes( FEATURE_NAME, $attr )
47 - );
48 - }
49 -
50 - wp_enqueue_script( 'tock-widget', 'https://www.exploretock.com/tock.js', array(), JETPACK__VERSION, true );
51 -
52 - // Add CSS to hide direct link.
53 - Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
54 -
55 - wp_add_inline_script(
56 - 'tock-widget',
57 - "!function(t,o){if(!t.tock){var e=t.tock=function(){e.callMethod?
58 - e.callMethod.apply(e,arguments):e.queue.push(arguments)};t._tock||(t._tock=e),
59 - e.push=e,e.loaded=!0,e.version='1.0',e.queue=[];}}(window,document);
60 - tock('init', '" . esc_js( $attr['url'] ) . "');",
61 - 'before'
62 - );
63 - return sprintf(
64 - '<div class="%1$s">%2$s</div>',
65 - esc_attr( Blocks::classes( FEATURE_NAME, $attr ) ),
66 - $content
67 - );
40 + require_once __DIR__ . '/render.php';
41 + return render_block_implementation( $attr );
68 42 }