I want to block a directory to everyone but WordPress’s internal upgrade feature (I am trying to get WordPress to do auto-updates of my premium plugin). I have it updating, but I really would like to block the directory for everyone but WordPress. Anyone know what WP’s internal User Agent is?

1 Answer
1

The WordPress user agent is set in the class WP_Http as

'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )

You can set it to a (secret) fixed value per filter:

add_filter( 'http_headers_useragent', 'wpse_59788_user_agent' );
function wpse_59788_user_agent()
{
    // to remove this filter immediately uncomment the following line
    // remove_filter( current_filter(), __FUNCTION__ );
    return 'alfgjlkgjlkgjsldkjhrkjh';
}

To change the user agent for a plugin upgrade only try something like this (not tested):

add_filter( 'upgrader_pre_install', 'wpse_59788_register' );
function wpse_59788_register( $dummy )
{
    add_filter( 'http_headers_useragent', 'wpse_59788_user_agent' );
    return $dummy;
}

And uncomment the self deactivation line in the first function.

Leave a Reply

Your email address will not be published. Required fields are marked *