check_plugin_state( $slug );
if ( empty( $slug ) ) {
return '';
}
$additional = '';
if ( 'deactivate' === $state ) {
$additional = ' action_button active';
}
$button .= '
';
$plugin_link_suffix = self::get_plugin_path( $slug );
$nonce = add_query_arg(
array(
'action' => 'activate',
'plugin' => rawurlencode( $plugin_link_suffix ),
'plugin_status' => 'all',
'paged' => '1',
'_wpnonce' => wp_create_nonce( 'activate-plugin_' . $plugin_link_suffix ),
), network_admin_url( 'plugins.php' )
);
switch ( $state ) {
case 'install':
$button .= '
' . __( 'Install and Activate', 'zakra' ) . '';
break;
case 'activate':
$button .= '
' . esc_html__( 'Activate', 'zakra' ) . '';
break;
case 'deactivate':
$nonce = add_query_arg(
array(
'action' => 'deactivate',
'plugin' => rawurlencode( $plugin_link_suffix ),
'plugin_status' => 'all',
'paged' => '1',
'_wpnonce' => wp_create_nonce( 'deactivate-plugin_' . $plugin_link_suffix ),
), network_admin_url( 'plugins.php' )
);
break;
}// End switch().
$button .= '
';
return $button;
}
/**
* Check plugin state.
*
* @param string $slug plugin slug.
*
* @return bool
*/
private function check_plugin_state( $slug ) {
$plugin_link_suffix = self::get_plugin_path( $slug );
if ( file_exists( ABSPATH . 'wp-content/plugins/' . $plugin_link_suffix ) ) {
$needs = is_plugin_active( $plugin_link_suffix ) ? 'deactivate' : 'activate';
return $needs;
} else {
return 'install';
}
}
/**
* Get plugin state
*
* @param string $slug Plugin slug.
*
* @return string
*/
public function get_plugin_state( $slug ) {
return $this->check_plugin_state( $slug );
}
/**
* Enqueue Function.
*/
public function enqueue_scripts() {
wp_enqueue_script( 'plugin-install' );
wp_enqueue_script( 'updates' );
wp_enqueue_script( 'zakra-plugin-install-helper', ZAKRA_PARENT_INC_URI . '/admin/js/plugin-handle.js', array( 'jquery' ), ZAKRA_THEME_VERSION, true );
wp_localize_script(
'zakra-plugin-install-helper', 'zakra_plugin_helper',
array(
'activating' => esc_html__( 'Activating ', 'zakra' ),
)
);
}
}