PluginProbe ʕ •ᴥ•ʔ
Hustle – Email Marketing, Lead Generation, Optins, Popups / trunk
Hustle – Email Marketing, Lead Generation, Optins, Popups vtrunk
7.8.13 7.8.13.1 trunk 3.0 3.1 3.1.1 3.1.2 3.1.3 3.1.4 4.3.2 4.4.4 4.4.5 4.4.5.1 4.4.5.4 4.6 4.6.1.1 4.6.1.4 4.7.0.2 4.7.0.3 4.7.0.7 4.7.0.9 4.7.1.0 4.7.1.1 4.8.0.0 5.0.0 5.0.1 5.0.1.1 5.0.1.2 5.1 5.1.1 5.1.2 5.1.3 5.1.3.1 5.1.3.2 5.1.4 5.1.5 6.0 6.0.1 6.0.2 6.0.3 6.0.4.2 6.0.5 6.0.6.1 6.0.7 6.0.8.1 6.0.9 7.0.0.1 7.0.2 7.0.3 7.0.4 7.1.0 7.1.1 7.2.0 7.2.1 7.3.0 7.3.1 7.3.3 7.3.5 7.3.6 7.3.7 7.4.0 7.4.1 7.4.11 7.4.13 7.4.13.1 7.4.2 7.4.3 7.4.4 7.4.5 7.4.5.1 7.4.5.2 7.4.6 7.4.7 7.5.0 7.6.0 7.6.1 7.6.3 7.6.4 7.6.6 7.7.0 7.7.1 7.8.0 7.8.1 7.8.10 7.8.10.1 7.8.10.2 7.8.11 7.8.12 7.8.12.1 7.8.2 7.8.3 7.8.4 7.8.5 7.8.6 7.8.7 7.8.8 7.8.9 7.8.9.1 7.8.9.2 7.8.9.3
wordpress-popup / inc / front / hustle-module-inline-style-queue.php
wordpress-popup / inc / front Last commit date
non-sshare-styles 1 month ago class-hustle-decorator-non-sshare.php 3 months ago class-hustle-decorator-sshare.php 3 months ago class-hustle-decorator_abstract.php 3 years ago class-hustle-module-preview.php 1 year ago hustle-module-front-ajax.php 1 month ago hustle-module-front.php 1 month ago hustle-module-inline-style-queue.php 3 months ago hustle-module-renderer.php 1 month ago hustle-renderer-abstract.php 3 months ago hustle-renderer-sshare.php 5 months ago
hustle-module-inline-style-queue.php
114 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * Hustle_Module_Inline_Style_Queue
4 *
5 * @package Hustle
6 */
7 class Hustle_Module_Inline_Style_Queue {
8
9 /**
10 * A queue of inline styles to be printed.
11 *
12 * @var array
13 */
14 private static $inline_styles = array();
15
16 /**
17 * Initialize the class
18 */
19 public static function init() {
20 add_action( 'wp_enqueue_scripts', array( __CLASS__, 'late_enqueue_bundle_inline_styles' ), 100 );
21 }
22
23 /**
24 * Enqueue inline style
25 *
26 * @param string $style_id Style ID.
27 * @param string $style Style.
28 */
29 public static function enqueue_inline_style( $style_id, $style ) {
30 $style = str_replace( array( "\r", "\n" ), '', $style );
31
32 if ( ! did_action( 'wp_enqueue_scripts' ) ) {
33 // Not yet enqueued, add to the bundle.
34 self::$inline_styles[ $style_id ] = $style;
35 } else {
36 self::$inline_styles[ $style_id ] = true;
37 // Already enqueued, add it immediately.
38 self::late_enqueue_single_style( $style_id, $style );
39 }
40 }
41
42 /**
43 * Late enqueue single inline style
44 *
45 * @param string $style_id Style ID.
46 * @param string $style Style.
47 */
48 public static function late_enqueue_single_style( $style_id, $style ) {
49 wp_register_style(
50 $style_id,
51 false,
52 array(),
53 '1.0.0'
54 );
55 wp_enqueue_style( $style_id );
56
57 wp_add_inline_style(
58 $style_id,
59 $style
60 );
61 }
62
63 /**
64 * Has inline style
65 *
66 * @param string $style_id Style ID.
67 * @return bool
68 */
69 public static function has_inline_style( $style_id ) {
70 return isset( self::$inline_styles[ $style_id ] );
71 }
72
73 /**
74 * Late enqueue bundle inline styles
75 *
76 * @return void
77 */
78 public static function late_enqueue_bundle_inline_styles() {
79 $all_styles = '';
80
81 foreach ( self::$inline_styles as $style ) {
82 if ( ! is_string( $style ) ) {
83 continue;
84 }
85
86 $all_styles .= $style;
87 }
88
89 if ( $all_styles ) {
90
91 if ( ! wp_style_is( 'hustle_inline_styles_front', 'enqueued' ) ) {
92 // Enqueue the bundle if not already enqueued.
93 wp_register_style(
94 'hustle_inline_styles_front',
95 false,
96 array(),
97 '1.0.0'
98 );
99 wp_enqueue_style( 'hustle_inline_styles_front' );
100 }
101
102 wp_add_inline_style(
103 'hustle_inline_styles_front',
104 $all_styles
105 );
106 }
107
108 /**
109 * Fires after enqueueing inline styles.
110 */
111 do_action( 'hustle_after_enqueue_inline_styles' );
112 }
113 }
114