Test Failed
Pull Request — master (#3324)
by Devin
07:59
created

Give_Settings_License::remove_license_tab()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 11
rs 9.4285
c 0
b 0
f 0
1
<?php
2
/**
3
 * Give Settings Page/Tab
4
 *
5
 * @package     Give
6
 * @subpackage  Classes/Give_Settings_License
7
 * @copyright   Copyright (c) 2016, WordImpress
8
 * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
 * @since       1.8
10
 */
11
12
if ( ! defined( 'ABSPATH' ) ) {
13
	exit; // Exit if accessed directly.
14
}
15
16
if ( ! class_exists( 'Give_Settings_License' ) ) :
17
18
	/**
19
	 * Give_Settings_License.
20
	 *
21
	 * @sine 1.8
22
	 */
23
	class Give_Settings_License extends Give_Settings_Page {
24
25
		/**
26
		 * Constructor.
27
		 */
28
		public function __construct() {
29
			$this->id    = 'licenses';
30
			$this->label = esc_html__( 'Licenses', 'give' );
31
32
			parent::__construct();
33
34
			// Filter to remove the license tab.
35
			add_filter( 'give-settings_tabs_array', array( $this, 'remove_license_tab' ), 9999999, 1 );
36
37
		}
38
39
		/**
40
		 * Get settings array.
41
		 *
42
		 * @since  1.8
43
		 * @return array
44
		 */
45
		public function get_settings() {
46
			$settings = array();
47
48
			/**
49
			 * Filter the licenses settings.
50
			 * Backward compatibility: Please do not use this filter. This filter is deprecated in 1.8
51
			 */
52
			$settings = apply_filters( 'give_settings_licenses', $settings );
53
54
			/**
55
			 * Filter the settings.
56
			 *
57
			 * @since  1.8
58
			 *
59
			 * @param  array $settings
60
			 */
61
			$settings = apply_filters( 'give_get_settings_' . $this->id, $settings );
62
63
			// Output.
64
			return $settings;
65
		}
66
67
		/**
68
		 * Remove the license tab if no Give addon
69
		 * is activated.
70
		 *
71
		 * @param array $tabs Give Settings Tabs.
72
		 *
73
		 * @since 2.1.4
74
		 *
75
		 * @return array
76
		 */
77
		public function remove_license_tab( $tabs ) {
78
			/**
79
			 * Remove the license tab if no Give licensed addon
80
			 * is activated.
81
			 */
82
			if ( ! $this->is_show_setting_page() ) {
83
				unset( $tabs['licenses'] );
84
			}
85
86
			return $tabs;
87
		}
88
89
		/**
90
		 * Returns if at least one Give addon is activated.
91
		 * Note: note only for internal logic
92
		 *
93
		 * @since 2.1.4
94
		 * @access private
95
		 *
96
		 * @return bool
97
		 */
98
		private function is_show_setting_page() {
99
			$licensed_addons   = Give_License::get_licensed_addons();
100
			$activated_plugins = get_option( 'active_plugins', array() );
101
102
			return (bool) count( array_intersect( $activated_plugins, $licensed_addons ) );
103
		}
104
	}
105
106
endif;
107
108
return new Give_Settings_License();
109