Current Path : /home/church/public_html/wp-content/themes/neve/inc/admin/plugin_install/ |
Current File : /home/church/public_html/wp-content/themes/neve/inc/admin/plugin_install/main.php |
<?php /** * Plugin install helper. * * @package Neve\Admin\Plugin_Install */ namespace Neve\Admin\Plugin_Install; /** * Class Main for plugin install helper. * * @package Neve\Admin\Plugin_Install */ class Main { /** * Instance of class. * * @var bool $instance instance variable. */ private static $instance; /** * Check if instance already exists. * * @return Main; */ public static function instance() { if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Main ) ) { self::$instance = new Main(); } return self::$instance; } /** * Get plugin path based on plugin slug. * * @param string $slug Plugin slug. * * @return string */ public static function get_plugin_path( $slug ) { switch ( $slug ) { case 'mailin': return $slug . '/sendinblue.php'; break; case 'wpforms-lite': return $slug . '/wpforms.php'; break; case 'intergeo-maps': case 'visualizer': case 'translatepress-multilingual': return $slug . '/index.php'; break; case 'beaver-builder-lite-version': return $slug . '/fl-builder.php'; break; case 'adblock-notify-by-bweb': return $slug . '/adblock-notify.php'; break; default: return $slug . '/' . $slug . '.php'; } } /** * Generate action button html. * * @param string $slug plugin slug. * @param array $settings button settings. * * @return string */ public function get_button_html( $slug, $settings = array() ) { $button = ''; $redirect = ''; if ( ! empty( $settings ) && array_key_exists( 'redirect', $settings ) ) { $redirect = $settings['redirect']; } $state = $this->check_plugin_state( $slug ); if ( empty( $slug ) ) { return ''; } $additional = ''; if ( $state === 'deactivate' ) { $additional = ' action_button active'; } $button .= '<div class=" plugin-card-' . esc_attr( $slug ) . esc_attr( $additional ) . '" style="padding: 8px 0 5px;">'; $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 ), ), esc_url( network_admin_url( 'plugins.php' ) ) ); switch ( $state ) { case 'install': $button .= '<a data-redirect="' . esc_url( $redirect ) . '" data-slug="' . esc_attr( $slug ) . '" class="install-now neve-install-plugin button " href="' . esc_url( $nonce ) . '" data-name="' . esc_attr( $slug ) . '" aria-label="Install ' . esc_attr( $slug ) . '">' . __( 'Install and activate', 'neve' ) . '</a>'; break; case 'activate': $button .= '<a data-redirect="' . esc_url( $redirect ) . '" data-slug="' . esc_attr( $slug ) . '" class="activate-now button button-primary" href="' . esc_url( $nonce ) . '" aria-label="Activate ' . esc_attr( $slug ) . '">' . esc_html__( 'Activate', 'neve' ) . '</a>'; 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 ), ), esc_url( network_admin_url( 'plugins.php' ) ) ); $button .= '<a data-redirect="' . esc_url( $redirect ) . '" data-slug="' . esc_attr( $slug ) . '" class="deactivate-now button" href="' . esc_url( $nonce ) . '" data-name="' . esc_attr( $slug ) . '" aria-label="Deactivate ' . esc_attr( $slug ) . '">' . esc_html__( 'Deactivate', 'neve' ) . '</a>'; break; case 'enable_cpt': $url = esc_url( admin_url( 'admin.php?page=jetpack#/settings' ) ); $button .= '<a data-redirect="' . esc_url( $redirect ) . '" class="button" href="' . esc_url( $url ) . '">' . esc_html__( 'Activate', 'neve' ) . ' ' . esc_html__( 'Jetpack Portfolio', 'neve' ) . '</a>'; break; default: break; }// End switch(). $button .= '</div>'; return $button; } /** * Check plugin state. * * @param string $slug plugin slug. * * @return bool */ public 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'; if ( $needs === 'deactivate' && ! post_type_exists( 'portfolio' ) && $slug === 'jetpack' ) { return 'enable_cpt'; } return $needs; } else { return 'install'; } } /** * Enqueue Function. */ public function enqueue_scripts() { wp_register_script( 'neve-plugin-install', get_template_directory_uri() . '/inc/admin/plugin_install/plugin-install.js', array( 'jquery' ), NEVE_VERSION, true ); wp_localize_script( 'neve-plugin-install', 'nevePluginInstall', array( 'activating' => esc_html__( 'Activating ', 'neve' ), ) ); wp_enqueue_script( 'plugin-install' ); wp_enqueue_script( 'updates' ); wp_enqueue_script( 'neve-plugin-install' ); } }