/** * Plugin install helper. * * @package Construction_Landing_Page */ /** * Class Construction_Landing_Page_Getting_Started_Page_Plugin_Helper * * @package Construction_Landing_Page_Getting_Started_Page */ class Construction_Landing_Page_Getting_Started_Page_Plugin_Helper { /** * Instance of class. * * @var bool $instance instance variable. */ private static $instance; /** * Check if instance already exists. * * @return Construction_Landing_Page_Getting_Started_Page_Plugin_Helper; */ public static function instance(){ if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Construction_Landing_Page_Getting_Started_Page_Plugin_Helper ) ) { self::$instance = new Construction_Landing_Page_Getting_Started_Page_Plugin_Helper(); } return self::$instance; } /** * Get plugin path based on plugin slug. * * @param string $slug - plugin slug. * * @return string */ public static function get_plugin_path( $slug, $filename ){ return $slug . '/' . $filename; } /** * Generate action button html. * * @param string $slug plugin slug. * @param array $settings button settings. * * @return string */ public function get_button_html( $slug, $filename, $settings = array() ) { $button = ''; $redirect = ''; if ( ! empty( $settings ) && array_key_exists( 'redirect', $settings ) ) { $redirect = $settings['redirect']; } $state = $this->check_plugin_state( $slug, $filename ); if ( empty( $slug ) ) { return ''; } $additional = ''; if ( $state === 'deactivate' ) { $additional = ' action_button active'; } $button .= '
'; $plugin_link_suffix = self::get_plugin_path( $slug, $filename ); $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', 'construction-landing-page' ) . ''; break; case 'activate': $button .= '' . esc_html__( 'Activate', 'construction-landing-page' ) . ''; 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' ) ); $button .= '' . esc_html__( 'Deactivate', 'construction-landing-page' ) . ''; break; case 'enable_cpt': $url = admin_url( 'admin.php?page=jetpack#/settings' ); $button .= '' . esc_html__( 'Activate', 'construction-landing-page' ) . ' ' . esc_html__( 'Jetpack Portfolio', 'construction-landing-page' ) . ''; break; }// End switch(). $button .= '
'; return $button; } /** * Check plugin state. * * @param string $slug - plugin slug. * * @return bool */ public function check_plugin_state( $slug, $filename ){ $plugin_link_suffix = self::get_plugin_path( $slug, $filename ); 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'; } } }
Skip to content (Press Enter)
DC Excavation Inc

DC Excavation Inc

25 years industry experience

  • Home
  • Services
  • Projects
  • Meet the Team
  • 5412865271
DC Excavation Inc

DC Excavation Inc

25 years industry experience

  • Home
  • Services
  • Projects
  • Meet the Team
  • 5412865271

Tag: casino ecuabet

Disfruta de la emoción del casino en línea con la app de Ecuabet

Posted by Jami VromanТекстаcasino ecuabetPosted on April 6, 2026Leave a Comment on Disfruta de la emoción del casino en línea con la app de Ecuabet

Introducción En la actualidad, los casinos en línea se han convertido en una opción popular para aquellos que buscan disfrutar …

Continue Reading
© Copyright 2026 DC Excavation Inc
Construction Landing Page | Developed By Rara Theme Powered by WordPress