Example #1
0
 /**
  * Requests filesystem credentials if necessary.
  *
  * The key files and certificates need to be stored on disk.
  * If the directories aren't writeable by WordPress, the user needs to manually enter
  * access keys (FTP, SSH, ...).
  *
  * @since 1.0.0
  * @access protected
  *
  * @param bool $network_wide Whether filesystem access is needed for a network-wide request.
  * @return bool Whether the filesystem was successfully set up.
  */
 protected function maybe_request_filesystem_credentials($network_wide = false)
 {
     if (defined('DOING_AJAX') && DOING_AJAX) {
         $credentials = array();
         $fields = array('hostname', 'port', 'username', 'password', 'public_key', 'private_key', 'connection_type');
         foreach ($fields as $field) {
             if (isset($_REQUEST[$field])) {
                 $credentials[$field] = $_REQUEST[$field];
             }
         }
         if (CoreUtil::needs_filesystem_credentials($credentials)) {
             return false;
         }
         return true;
     }
     $url = App::get_admin_action_url($network_wide ? 'network' : 'site');
     $extra_fields = array('action', '_wpnonce');
     return CoreUtil::setup_filesystem($url, $extra_fields);
 }