Passed
Push — master ( 68b705...2274aa )
by Warwick
02:03
created

LSX_Optimisation::pum_remove_admin_bar_tools()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
if ( ! defined( 'ABSPATH' ) ) {
4
	exit;
5
}
6
7
/**
8
 * Holds the speed optimization functions for LSX.
9
 *
10
 * @author   LightSpeed
11
 * @category Widgets
12
 * @package  LSX
13
 * @return   LSX_Optimisation
14
 */
15
class LSX_Optimisation {
16
17
	/**
18
	 * Holds class instance
19
	 *
20
	 * @since 1.0.0
21
	 * @var      object
22
	 */
23
	protected static $instance = null;
24
25
	/**
26
	 * Constructor.
27
	 */
28
	public function __construct() {
29
		add_filter( 'style_loader_tag', array( $this, 'preload_css' ), 100, 4 );
30
		add_filter( 'script_loader_tag', array( $this, 'defer_parsing_of_js' ), 100, 3 );
31
		add_action( 'init', array( $this, 'pum_remove_admin_bar_tools' ), 100 );
32
	}
33
	/**
34
	 * Return an instance of this class.
35
	 *
36
	 * @since 1.0.0
37
	 * @return    object    A single instance of this class.
38
	 */
39
	public static function get_instance() {
40
		// If the single instance hasn't been set, set it now.
41
		if ( null === self::$instance ) {
42
			self::$instance = new self;
43
		}
44
		return self::$instance;
45
	}
46
47
	/**
48
	 * Defers the JS loading till Last
49
	 *
50
	 * @param  string $url The url to check and defer.
0 ignored issues
show
Bug introduced by
There is no parameter named $url. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
51
	 * @return string
52
	 */
53
	public function preload_css( $tag, $handle, $href, $media ) {
0 ignored issues
show
Unused Code introduced by
The parameter $href is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $media is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
54
		if ( 'lsx_fonts' === $handle || 'fontawesome' === $handle ) {
55
			$tag = str_replace( 'href', ' preload href', $tag );
56
		}
57
		return $tag;
58
	}
59
60
	/**
61
	 * Defers the JS loading till Last
62
	 *
63
	 * @param  string $url The url to check and defer.
0 ignored issues
show
Bug introduced by
There is no parameter named $url. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
64
	 * @return string
65
	 */
66
	public function defer_parsing_of_js( $tag, $handle, $href ) {
67
		if ( ! is_admin() && false !== stripos( $href, '.js' ) ) {
68
			$tag = str_replace( 'src=', ' defer src=', $tag );
69
		}
70
		return $tag;
71
	}
72
73
	public function pum_remove_admin_bar_tools() {
74
		remove_action( 'admin_bar_menu', array( 'PUM_Modules_Admin_Bar', 'toolbar_links' ), 999 );
75
		remove_action( 'wp_footer', array( 'PUM_Modules_Admin_Bar', 'admin_bar_styles' ), 999 );
76
		remove_action( 'init', array( 'PUM_Modules_Admin_Bar', 'show_debug_bar' ) );
77
	}
78
}
79
LSX_Optimisation::get_instance();
80