apply_filters( ‘plugin_action_links’, string[] $actions, string $plugin_file, array $plugin_data, string $context )

Filters the action links displayed for each plugin in the Plugins list table.

Parameters

$actionsstring[]
An array of plugin action links. By default this can include 'activate', 'deactivate', and 'delete'. With Multisite active this can also include 'network_active' and 'network_only' items.
$plugin_filestring
Path to the plugin file relative to the plugins directory.
$plugin_dataarray
An array of plugin data. See get_plugin_data() and the 'plugin_row_meta' filter for the list of possible values.
$contextstring
The plugin context. By default this can include 'all', 'active', 'inactive', 'recently_activated', 'upgrade', 'mustuse', 'dropins', and 'search'.

Source

$actions = apply_filters( 'plugin_action_links', $actions, $plugin_file, $plugin_data, $context );

Changelog

VersionDescription
4.9.0The 'Edit' link was removed from the list of action links.
2.6.0The $context parameter was added.
2.5.0Introduced.

User Contributed Notes

  1. Skip to note 3 content
    /**
     * Add settings link to plugin actions
     *
     * @param  array  $plugin_actions
     * @param  string $plugin_file
     * @since  1.0
     * @return array
     */
    function add_plugin_link( $plugin_actions, $plugin_file ) {
    
        $new_actions = array();
    
        if ( basename( plugin_dir_path( __FILE__ ) ) . 'comment-limiter.php' === $plugin_file ) {
            $new_actions['cl_settings'] = sprintf( __( '<a href="%s">Settings</a>', 'comment-limiter' ), esc_url( admin_url( 'options-general.php?page=comment-limiter' ) ) );
        }
    
        return array_merge( $new_actions, $plugin_actions );
    }
    add_filter( 'plugin_action_links', 'add_plugin_link', 10, 2 );

    Here is a very simple and easy way of how to append a new settings link in your plugin links on the plugins panel of your WordPress

  2. Skip to note 4 content

    Remove Delete Plugin Action Link
    Removes plugin Deletion action from the Plugin list.

    Replace ‘plugin-folder-name/plugin.php’ with the plugin name you want to remove action for.
    For Ex. 'plugin-folder-name/plugin.php' => 'akismet/akismet.php'

    add_filter( 'plugin_action_links', 'disable_plugin_deletion', 10, 4 );
    function disable_plugin_deletion( $actions, $plugin_file, $plugin_data, $context ) {
    
        // Remove delete action link for plugins
        if ( array_key_exists( 'delete', $actions ) && in_array( $plugin_file, array(
            'akismet/akismet.php',
            'plugin-folder-name/plugin.php'
        ) ) )
            unset( $actions['delete'] );
    
        return $actions;
    }

You must log in before being able to contribute a note or feedback.