| Conditions | 6 | 
| Paths | 5 | 
| Total Lines | 187 | 
| Code Lines | 81 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php  | 
            ||
| 15 | 	function kirki_installer_register( $wp_customize ) { | 
            ||
| 16 | |||
| 17 | // Early exit if Kirki exists.  | 
            ||
| 18 | 		if ( class_exists( 'Kirki' ) ) { | 
            ||
| 19 | return;  | 
            ||
| 20 | }  | 
            ||
| 21 | |||
| 22 | 		if ( class_exists( 'WP_Customize_Section' ) && ! class_exists( 'Kirki_Installer_Section' ) ) { | 
            ||
| 23 | /**  | 
            ||
| 24 | * Recommend the installation of Kirki using a custom section.  | 
            ||
| 25 | *  | 
            ||
| 26 | * @see WP_Customize_Section  | 
            ||
| 27 | */  | 
            ||
| 28 | 			class Kirki_Installer_Section extends WP_Customize_Section { | 
            ||
| 29 | |||
| 30 | /**  | 
            ||
| 31 | * Customize section type.  | 
            ||
| 32 | *  | 
            ||
| 33 | * @access public  | 
            ||
| 34 | * @var string  | 
            ||
| 35 | */  | 
            ||
| 36 | public $type = 'kirki_installer';  | 
            ||
| 37 | |||
| 38 | /**  | 
            ||
| 39 | * Render the section.  | 
            ||
| 40 | *  | 
            ||
| 41 | * @access protected  | 
            ||
| 42 | */  | 
            ||
| 43 | 				protected function render() { | 
            ||
| 44 | |||
| 45 | // Don't proceed any further if the user has dismissed this.  | 
            ||
| 46 | 					if ( $this->is_dismissed() ) { | 
            ||
| 47 | return;  | 
            ||
| 48 | }  | 
            ||
| 49 | |||
| 50 | // Determine if the plugin is not installed, or just inactive.  | 
            ||
| 51 | $plugins = get_plugins();  | 
            ||
| 52 | $installed = false;  | 
            ||
| 53 | 					foreach ( $plugins as $plugin ) { | 
            ||
| 54 | 						if ( 'Kirki' === $plugin['Name'] || 'Kirki Toolkit' === $plugin['Name'] ) { | 
            ||
| 55 | $installed = true;  | 
            ||
| 56 | }  | 
            ||
| 57 | }  | 
            ||
| 58 | // Get the plugin-installation URL.  | 
            ||
| 59 | $plugin_install_url = add_query_arg(  | 
            ||
| 60 | array(  | 
            ||
| 61 | 'action' => 'install-plugin',  | 
            ||
| 62 | 'plugin' => 'kirki',  | 
            ||
| 63 | ),  | 
            ||
| 64 | self_admin_url( 'update.php' )  | 
            ||
| 65 | );  | 
            ||
| 66 | $plugin_install_url = wp_nonce_url( $plugin_install_url, 'install-plugin_kirki' );  | 
            ||
| 67 | $classes = 'cannot-expand accordion-section control-section control-section-themes control-section-' . $this->type;  | 
            ||
| 68 | ?>  | 
            ||
| 69 | <li id="accordion-section-<?php echo esc_attr( $this->id ); ?>" class="<?php echo esc_attr( $classes ); ?>" style="border-top:none;border-bottom:1px solid #ddd;padding:7px 14px 16px 14px;text-align:right;">  | 
            ||
| 70 | <?php if ( ! $installed ) : ?>  | 
            ||
| 71 | <?php $this->install_button(); ?>  | 
            ||
| 72 | <?php else : ?>  | 
            ||
| 73 | <?php $this->activate_button(); ?>  | 
            ||
| 74 | <?php endif; ?>  | 
            ||
| 75 | <?php $this->dismiss_button(); ?>  | 
            ||
| 76 | </li>  | 
            ||
| 77 | <?php  | 
            ||
| 78 | }  | 
            ||
| 79 | |||
| 80 | /**  | 
            ||
| 81 | * Check if the user has chosen to hide this.  | 
            ||
| 82 | *  | 
            ||
| 83 | * @static  | 
            ||
| 84 | * @access public  | 
            ||
| 85 | * @since 1.0.0  | 
            ||
| 86 | * @return bool  | 
            ||
| 87 | */  | 
            ||
| 88 | 				public static function is_dismissed() { | 
            ||
| 89 | // Get the user-meta.  | 
            ||
| 90 | $user_id = get_current_user_id();  | 
            ||
| 91 | // @codingStandardsIgnoreLine WordPress.VIP.RestrictedFunctions.user_meta_get_user_meta)  | 
            ||
| 92 | $user_meta = get_user_meta( $user_id, 'dismiss-kirki-recommendation', true );  | 
            ||
| 93 | |||
| 94 | return ( true === $user_meta || '1' === $user_meta || 1 === $user_meta );  | 
            ||
| 95 | }  | 
            ||
| 96 | |||
| 97 | /**  | 
            ||
| 98 | * Adds the install button.  | 
            ||
| 99 | *  | 
            ||
| 100 | * @since 1.0.0  | 
            ||
| 101 | * @return void  | 
            ||
| 102 | */  | 
            ||
| 103 | 				protected function install_button() { | 
            ||
| 104 | ?>  | 
            ||
| 105 | <p style="text-align:left;margin-top:0;">  | 
            ||
| 106 | <?php esc_attr_e( 'Please install the Kirki plugin to take full advantage of this theme\s customizer capabilities', 'textdomain' ); ?>  | 
            ||
| 107 | </p>  | 
            ||
| 108 | <a class="install-now button-primary button" data-slug="kirki" href="<?php echo esc_url_raw( $plugin_install_url ); ?>" aria-label="<?php esc_attr_e( 'Install Kirki Toolkit now', 'textdomain' ); ?>" data-name="Kirki Toolkit">  | 
            ||
| 109 | <?php esc_html_e( 'Install Now', 'textdomain' ); ?>  | 
            ||
| 110 | </a>  | 
            ||
| 111 | <?php  | 
            ||
| 112 | }  | 
            ||
| 113 | |||
| 114 | /**  | 
            ||
| 115 | * Adds the install button.  | 
            ||
| 116 | *  | 
            ||
| 117 | * @since 1.0.0  | 
            ||
| 118 | * @return void  | 
            ||
| 119 | */  | 
            ||
| 120 | 				protected function activate_button() { | 
            ||
| 121 | ?>  | 
            ||
| 122 | <p style="text-align:left;margin-top:0;">  | 
            ||
| 123 | <?php esc_attr_e( 'You have installed Kirki. Activate it to take advantage of this theme\'s features in the customizer.', 'textdomain' ); ?>  | 
            ||
| 124 | </p>  | 
            ||
| 125 | <a class="activate-now button-primary button" data-slug="kirki" href="<?php echo esc_url_raw( self_admin_url( 'plugins.php' ) ); ?>" aria-label="<?php esc_attr_e( 'Activate Kirki Toolkit now', 'textdomain' ); ?>" data-name="Kirki Toolkit">  | 
            ||
| 126 | <?php esc_html_e( 'Activate Now', 'textdomain' ); ?>  | 
            ||
| 127 | </a>  | 
            ||
| 128 | <?php  | 
            ||
| 129 | }  | 
            ||
| 130 | |||
| 131 | /**  | 
            ||
| 132 | * Adds the dismiss button and script.  | 
            ||
| 133 | *  | 
            ||
| 134 | * @since 1.0.0  | 
            ||
| 135 | * @return void  | 
            ||
| 136 | */  | 
            ||
| 137 | 				protected function dismiss_button() { | 
            ||
| 138 | |||
| 139 | // Create the nonce.  | 
            ||
| 140 | $ajax_nonce = wp_create_nonce( 'dismiss-kirki-recommendation' );  | 
            ||
| 141 | |||
| 142 | // Show confirmation dialog on dismiss?  | 
            ||
| 143 | $show_confirm = true;  | 
            ||
| 144 | ?>  | 
            ||
| 145 | <a class="kirki-installer-dismiss button-secondary button" data-slug="kirki" href="#" aria-label="<?php esc_attr_e( 'Don\'t show this again', 'textdomain' ); ?>" data-name="<?php esc_attr_e( 'Dismiss', 'textdomain' ); ?>">  | 
            ||
| 146 | <?php esc_attr_e( 'Don\'t show this again', 'textdomain' ); ?>  | 
            ||
| 147 | </a>  | 
            ||
| 148 | |||
| 149 | <script type="text/javascript">  | 
            ||
| 150 | 					jQuery( document ).ready( function() { | 
            ||
| 151 | 						jQuery( '.kirki-installer-dismiss' ).on( 'click', function( event ) { | 
            ||
| 152 | |||
| 153 | event.preventDefault();  | 
            ||
| 154 | |||
| 155 | <?php if ( $show_confirm ) : ?>  | 
            ||
| 156 | 								if ( ! confirm( '<?php esc_attr_e( 'Are you sure? Dismissing this message will hide the installation recommendation and you will have to manually install and activate the plugin in the future.' ); ?>' ) ) { | 
            ||
| 157 | return;  | 
            ||
| 158 | }  | 
            ||
| 159 | <?php endif; ?>  | 
            ||
| 160 | |||
| 161 | 							jQuery.post( ajaxurl, { | 
            ||
| 162 | action: 'kirki_installer_dismiss',  | 
            ||
| 163 | security: '<?php echo esc_attr( $ajax_nonce ); ?>',  | 
            ||
| 164 | 							}, function( response ) { | 
            ||
| 165 | jQuery( '#accordion-section-kirki_installer' ).remove();  | 
            ||
| 166 | } );  | 
            ||
| 167 | } );  | 
            ||
| 168 | } );  | 
            ||
| 169 | </script>  | 
            ||
| 170 | <?php  | 
            ||
| 171 | }  | 
            ||
| 172 | }  | 
            ||
| 173 | }  | 
            ||
| 174 | |||
| 175 | // Early exit if the user has dismissed the notice.  | 
            ||
| 176 | 		if ( is_callable( array( 'Kirki_Installer_Section', 'is_dismissed' ) ) && Kirki_Installer_Section::is_dismissed() ) { | 
            ||
| 177 | return;  | 
            ||
| 178 | }  | 
            ||
| 179 | |||
| 180 | $wp_customize->add_section(  | 
            ||
| 181 | new Kirki_Installer_Section(  | 
            ||
| 182 | $wp_customize, 'kirki_installer', array(  | 
            ||
| 183 | 'title' => '',  | 
            ||
| 184 | 'capability' => 'install_plugins',  | 
            ||
| 185 | 'priority' => 0,  | 
            ||
| 186 | )  | 
            ||
| 187 | )  | 
            ||
| 188 | );  | 
            ||
| 189 | $wp_customize->add_setting(  | 
            ||
| 190 | 'kirki_installer_setting', array(  | 
            ||
| 191 | 'sanitize_callback' => '__return_true',  | 
            ||
| 192 | )  | 
            ||
| 193 | );  | 
            ||
| 194 | $wp_customize->add_control(  | 
            ||
| 195 | 'kirki_installer_control', array(  | 
            ||
| 196 | 'section' => 'kirki_installer',  | 
            ||
| 197 | 'settings' => 'kirki_installer_setting',  | 
            ||
| 198 | )  | 
            ||
| 199 | );  | 
            ||
| 200 | |||
| 201 | }  | 
            ||
| 202 | }  | 
            ||
| 226 |