$slug, 'fields' => array( 'downloaded' => false, 'rating' => false, 'description' => false, 'short_description' => true, 'donate_link' => false, 'tags' => false, 'sections' => true, 'homepage' => true, 'added' => false, 'last_updated' => false, 'compatibility' => false, 'tested' => false, 'requires' => false, 'downloadlink' => false, 'icons' => true, 'banners' => true, ), ) ); set_transient( 'ti_plugin_info_' . $slug, $call_api, 1 * DAY_IN_SECONDS ); } return $call_api; } /** * Get plugin icon. * * @param array $arr Icon sizes. * * @return string */ public function check_for_icon( $arr ) { if ( ! empty( $arr['svg'] ) ) { $plugin_icon_url = $arr['svg']; } elseif ( ! empty( $arr['2x'] ) ) { $plugin_icon_url = $arr['2x']; } elseif ( ! empty( $arr['1x'] ) ) { $plugin_icon_url = $arr['1x']; } else { $plugin_icon_url = $arr['default']; } return $plugin_icon_url; } /** * 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 ) ) { return is_plugin_active( $plugin_link_suffix ) ? 'deactivate' : 'activate'; } return 'install'; } /** * Get plugin path based on plugin slug. * * @param string $slug Plugin slug. * * @return string */ public static function get_plugin_path( $slug ) { switch ( $slug ) { case 'wpforms-lite': return $slug . '/wpforms.php'; break; case 'translatepress-multilingual': return $slug . '/index.php'; break; case 'feedzy-rss-feeds': return $slug . '/feedzy-rss-feed.php'; break; case 'wordpress-seo': return $slug . '/wp-seo.php'; 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 .= '