Is there a way to natively return the full filesystem path when using $wp_styles?
No because the style engine is never given the filesystem path, it is only given the source URL of the style to be registered/enqueued via wp_enqueue_style
:
wp_enqueue_style( string $handle, string $src=””, string[] $deps = array(), string|bool|null $ver = false, string $media=”all” )
https://developer.wordpress.org/reference/functions/wp_enqueue_style/
Only the code that called it would know that information, and it’s usually handled in such a way that you’d need to speak with the developer to know with 100% certainty.
For this reason there is no WordPress API or filter you can use to get the path of an enqueued file. The best you can do is apply a heuristic.
The Closest You Can Get
You can check if the URL is for your own site and contains wp-content
, then swap the domain out for a file path and see if a file exists at that location, and if a file is found do what you needed to do.
This won’t always work though as the URL could be for a dynamic page rather than a static file, which is the case for concatenated admin scripts, or assets that have been minified by plugins. I expect any system would be broken by plugins like W3 Total Cache or Autoptimise, and CDN plugins may break this by rewriting the URLs to 3rd party servers.