That was my fault!
The problem is copy_dir
isn’t a WP_Filesystem
method, so it cannot be called as an instance of WP_Filesystem
like this: $wp_filesystem->copy_dir()
, but independently like this: copy_dir("source", "destination")
after the WP_Filesystem() has already been called and setup.
Reference copy_dir