How Can We Help?

< All Topics
Print

Developer Hooks

Filter Hooks

All filter hooks are renamed for Git Updater v10. There will be deprecations. A new setting in Git Updater Settings tab will log these errors to the debug.log.

There are 2 added filter hooks specifically for developers wanting to distribute private themes/plugins to clients without the client having to interact with the Settings page.

The first allows the developer to set any option(s) including access tokens for a specific plugin or theme. The anonymous function must return key/value pairs where the key is the option name or plugin/theme repo slug and the value is the token. You could set the GitHub Access Token in a similar fashion where the key is github_access_token. The filter hook github_updater_token_distribution has been deprecated. Please use the following hook.

add_filter( 'gu_set_options',
    function () {
        return array( 
            'my-private-theme'    => 'kjasdp984298asdvhaljsg984aljhgosrpfiu',
            'github_access_token' => 'iorgoaihrg[89930ews8dchujnasgp',
        );
    } );

The following keys are available for the 'gu_set_options' hook.

array(
    'bitbucket_username'         => 'my_bitbucket_username',
    'bitbucket_password'         => 'my_bitbucket_read_only_password',
    'bitbucket_server_username'  => 'my_bitbucket_server_username',
    'bitbucket_server_password'  => 'my_bitbucket_server_password',
    'branch_switch'              => '1',
    'github_access_token'        => 'my_github_access_token',
    'github_enterprise_token'    => 'my_github_enterprise_access_token',
    'gitlab_access_token'        => 'my_gitlab_access_token',
    'gitlab_enterprise_token'    => 'my_gitlab_enterprise_access_token',
    'gitea_access_token'         => 'my_gitea_access_token',

    'my-repo-slug'               => 'my-repo-slug_access_token', //for private GitHub or any GitLab repositories
    'my-other-repo-slug'         => 'my-repo-slug_pseudo_token', //for private Bitbucket repositories 
    'current_branch_my-repo-slug => 'master',
);

The filter hook gu_hide_settings will simply make the Settings page unavailable.

add_filter( 'gu_hide_settings', '__return_true' );

There is a hook to bypass the WP-Cron API calls and return to the traditional method of sequentially polling APIs during the page load. It is also useful to help debug API calls or if your WP-Cron is having problems. Add the following hook to enable.

add_filter( 'gu_disable_wpcron', '__return_true' );

A filter hook into API::exit_no_update() so that the user can always check for a new update via the following hook.

add_filter( 'gu_always_fetch_update', '__return_true' );

There is a hook to bypass the wp_remote_get calls for repo meta, readme.txt, and changelogs. These data provide for a richer experience in View details. If you are running Git Updater at scale you will certain get more performance by omitting these API calls. Add the following hook to enable. This is likely less relevant with the transition to using WP-Cron for API calls.

add_filter( 'gu_run_at_scale', '__return_true' );

A filter hook github_updater_add_admin_pages to add additional pages to where Git Updater runs.

This filters the parameter $admin_pages whose default is the following and should return a merged array.

This filter was deprecated in v9.1.0.

$admin_pages = [
            'plugins.php',
            'plugin-install.php',
            'themes.php',
            'theme-install.php',
            'update-core.php',
            'update.php',
            'options-general.php',
            'options.php',
            'settings.php',
            'edit.php',
        ];

The filter hook gu_add_settings_tabs filters the main parameter $tabs and allows the addition of other tabs to the Git Updater Settings page. This is how the Install Plugin, Install Theme, and Remote Management tabs are added. It should return a merged array.

The filter hook gu_add_settings_subtabs filters the main Git Updater subtab to allow for API subtabs. It should return a merged array.

The filter hook gu_add_repo_setting_field provides a hook to add in specific settings for each supported API. It should return an array.

The filter hook gu_number_rollbacks provides a hook to add the minimum number of tags for rollback in branch switching. Default is 1. This value is not modifiable when using release assets. It should return an integer.

The filter hook gu_save_redirect provides for a way to redirect back to the calling subtab during a save event. It should return a merged array.

The filter hook gu_override_dot_org provides a method of returning an array of plugin/theme data to override dot org. It should return an array.

add_filter( 'gu_override_dot_org', function( $overrides ) {
    return array_merge( $overrides, [ 
        'the-events-calendar-category-colors/the-events-calendar-category-colors.php', //plugin format
        'my-popular-theme' // theme slug
    ] );
});

The filter hook gu_post_construct_download_link allows the developer to specify a ZipFile URL to be used as a rollback package. It passes the $repo and rollback tag, which is a branch name or tag, and returns a download link.

The filter hook gu_remote_is_newer allows the developer to utilize their own version comparison. It passes the $newer variable, a boolean, and the $repo which is an object containing the repository data. You must return a boolean.

add_filter( 'gu_remote_is_newer', function( $newer, $repo ) {
    return $newer;
}, 10, 2 );

The filter hook gu_repo_cache_timeout allows for a per repository override of the default cache timeout of 12 hours. It passes $timeout (a Unix timestamp), $id (the data identifier), $response (the data to be stored), and $repo (the repo name or null). The filter should return the $timeout.

Action Hooks

The action hook gu_refresh_transients is used to enter into the Refresh Cache path. It would be used in the following manner.

add_action( 'gu_refresh_transients', 'my_function_when_transients_are_deleted' );

The action hook gu_install_settings_fields provides for a hook to add fields for the Install Plugins and Install Themes API specific dropdown menu.

The action hook gu_pre_rest_process_request allows for an action to occur within Rest_Update::process_request().

The action hook gu_post_rest_process_request allows for an action to occur just before the termination of Rest_Update::process_request().

The action hook gu_add_admin_page adds data to a designated Settings page.

The action hook gu_add_settings adds data to API specific settings pages.

The action hook gu_update_settings adds ability to save options in add-in classes.

Next How to ignore repositories in Git Updater
Table of Contents