The fs_ftp_connection_types WordPress PHP filter allows you to modify the connection types available for the filesystem credentials form.
Usage
add_filter('fs_ftp_connection_types', 'your_custom_function', 10, 5); function your_custom_function($types, $credentials, $type, $error, $context) { // your custom code here return $types; }
Parameters
- $types (string[]): Types of connections available.
- $credentials (array): Credentials to connect with.
- $type (string): Chosen filesystem method.
- $error (bool|WP_Error): Whether the current request has failed to connect, or an error object.
- $context (string): Full path to the directory that is tested for being writable.
More information
See WordPress Developer Resources: fs_ftp_connection_types
Examples
Add a new connection type
Add a custom connection type to the list of available connection types.
add_filter('fs_ftp_connection_types', 'add_custom_connection_type', 10, 5); function add_custom_connection_type($types, $credentials, $type, $error, $context) { $types['custom'] = __('Custom Connection Type'); return $types; }
Remove a connection type
Remove the FTP connection type from the list of available connection types.
add_filter('fs_ftp_connection_types', 'remove_ftp_connection_type', 10, 5); function remove_ftp_connection_type($types, $credentials, $type, $error, $context) { unset($types['ftp']); return $types; }
Change the order of connection types
Change the order of connection types in the list.
add_filter('fs_ftp_connection_types', 'change_connection_type_order', 10, 5); function change_connection_type_order($types, $credentials, $type, $error, $context) { $new_order = array('ssh2' => $types['ssh2'], 'ftpext' => $types['ftpext'], 'ftpsockets' => $types['ftpsockets']); return $new_order; }
Customize connection types based on user role
Show different connection types for different user roles.
add_filter('fs_ftp_connection_types', 'customize_connection_types_based_on_role', 10, 5); function customize_connection_types_based_on_role($types, $credentials, $type, $error, $context) { if (current_user_can('administrator')) { return $types; } else { unset($types['ssh2']); return $types; } }
Modify connection types based on the error
Modify the connection types based on whether the current request has failed to connect.
add_filter('fs_ftp_connection_types', 'modify_connection_types_based_on_error', 10, 5); function modify_connection_types_based_on_error($types, $credentials, $type, $error, $context) { if ($error) { unset($types['ftp']); } return $types; }