/** * 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

Category: wispet

Wispet Sequin Table Design and Occasion Backdrop Collection

Posted by Jami VromanwispetPosted on December 25, 2025Leave a Comment on Wispet Sequin Table Design and Occasion Backdrop Collection

The Wispet brand name concentrates on decorative textile options utilized for occasion designing, table design, and visual presentation areas. The …

Continue Reading

Wispet– Sequin Table Runners, Backdrops, Tablecloths and Event Design

Posted by Jami VromanwispetPosted on November 28, 2025Leave a Comment on Wispet– Sequin Table Runners, Backdrops, Tablecloths and Event Design

The wispet brand name supplies a thorough range of sequin-based decorative fabrics engineered for occasions, digital photography configurations, and hospitality …

Continue Reading

Wispet Decorative Concepts for Modern Event and Inside Styling

Posted by Jami VromanwispetPosted on September 18, 2025Leave a Comment on Wispet Decorative Concepts for Modern Event and Inside Styling

The wispet brand focuses on structured decorative services developed for event styling, indoor accents, and thematic aesthetic configurations. Within the …

Continue Reading

Wispet Decorative Concepts for Modern Occasion and Interior Designing

Posted by Jami VromanwispetPosted on July 29, 2025Leave a Comment on Wispet Decorative Concepts for Modern Occasion and Interior Designing

The wispet brand focuses on structured attractive options created for event styling, interior accents, and thematic aesthetic setups. Within the …

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