What is the correct way to check if WP_Filesystem can write to a directory without aking for username / password?

I’m trying to implement caching using the filesystem so i need to check if i can write in a directory. I’ve read Otto’s article, but i’ve failed to understand how should i implement a check where the user doesn’t input any kind of password. So basically i need to use the direct method, what’s the correct way to do it?

Related posts

Leave a Reply

1 comment

  1. This is what i ended up using

    /**
     * check if the path is writable. To make the check .
     *
     * @param string $path
     * @return boolean
     */
    public static function is_writable( $path ) {
        global $wp_filesystem;
        include_once ABSPATH . 'wp-admin/includes/file.php';
        // If for some reason the include doesn't work as expected just return false.
        if( ! function_exists( 'WP_Filesystem' ) ) {
            return false;
        }
        $writable = WP_Filesystem( false, $path );
        // We consider the directory as writable if it uses the direct transport,
        // otherwise credentials would be needed
        return $writable && $wp_filesystem->method === 'direct';
    }