); } /** * Adds an element after the "deactivate" link on the plugin list table so that it can be targeted by JS to trigger the interview modal. * * The deactivation is deferred to the modal displayed. * * @param array $links The links of the plugin in the plugin list. * @param string $plugin_file The plugin file of the current plugin in the list. * * @since 1.0.0 * * @return array */ public function plugin_action_links($links, $plugin_file) { $stellar_slug = ''; foreach (Config::get_all_stellar_slugs() as $slug => $basename) { if (plugin_basename($plugin_file) === $basename) { $stellar_slug = $slug; continue; } } $passed_deactivate = false; $deactivate_link = ''; $before_deactivate = []; $after_deactivate = []; foreach ($links as $key => $link) { if ('deactivate' === $key) { $deactivate_link = $link; $passed_deactivate = true; continue; } if (!$passed_deactivate) { $before_deactivate[$key] = $link; } else { $after_deactivate[$key] = $link; } } if (!empty($deactivate_link)) { $deactivate_link .= ''; // Append deactivation link. $before_deactivate['deactivate'] = $deactivate_link; } return array_merge($before_deactivate, $after_deactivate); } }