One option is to register your own shortcode to act as a wrapper for the plugin’s shortcode. In the wrapper callback you would then retrieve the current user’s ID and pass it to the actual shortcode.
Simplified example,
add_shortcode( 'my_user_profile_avatar', 'my_user_profile_avatar_callback' );
function my_user_profile_avatar_callback( $atts, $content = null ) {
// (int) The current user's ID, or 0 if no user is logged in.
return do_shortcode(
'[user_profile_avatar size="original" user_id="' . get_current_user_id() . '"]'
);
}
N.B. not tested, but should work.
This would then be used as [my_user_profile_avatar] wherever shortcodes are accepted.
If you can find out the name of the actual shortcode’s callback, then using it directly instead of do_shortcode()
inside your shortcode’s callback would be more efficient. Something along these lines,
function my_user_profile_avatar_callback( $atts ) {
// (int) The current user's ID, or 0 if no user is logged in.
$atts['user_id'] = get_current_user_id();
// dig into the plugin's source code to find the callback's name
return original_shortcode_callback_function($atts); // might require more parameters
}
The custom shortcode registration can be done in your (child) theme’s functions.php
file or with a custom plugin.