(.+)<\/div>/', $form, $matches ) ) {
$error = $matches[2];
$form = str_replace( $matches[0], '', $form );
}
if ( ! $success ) {
throw new Util_WpFile_FilesystemOperationException( $error, $form );
}
}
/**
* Retrieves the filesystem credentials form for user input.
*
* This method generates the HTML form required for users to provide filesystem credentials (e.g., FTP or SSH) when automatic
* access is unavailable. It ensures the necessary WordPress files are loaded, processes any existing error messages, and
* customizes the form for compatibility with W3 Total Cache.
*
* @param string $method Optional. Filesystem access method (e.g., 'ftp', 'ssh2'). Default is an empty string.
* @param string $url Optional. The URL to redirect to after credentials are entered. Defaults to the current request URI.
* @param string $context Optional. The directory for which credentials are required. Default is false.
*
* @return string The generated HTML form for filesystem credentials input.
*
* @uses request_filesystem_credentials()
*/
private static function get_filesystem_credentials_form( $method = '', $url = '', $context = false ) {
// Ensure request_filesystem_credentials() is available.
require_once ABSPATH . 'wp-admin/includes/file.php';
require_once ABSPATH . 'wp-admin/includes/template.php';
ob_start();
// If first check failed try again and show error message.
request_filesystem_credentials( $url, $method, true, false, array() );
$success = false;
$form = ob_get_contents();
ob_end_clean();
$error = '';
if ( preg_match( '/
(.+)<\/div>/', $form, $matches ) ) {
$form = str_replace( $matches[0], '', $form );
}
$form = str_replace( '