/** * Creates the Google Drive CDN folder on the google drive * @since 1.0 * * @param null $folder * */ public function create_folder($folder = null) { if (is_null($folder)) { $folder = home_url(); $folder = str_replace('http://', '', $folder); $folder = str_replace('https://', '', $folder); $folder = sanitize_key($folder); } $service = new Google_Service_Drive($this->_google_drive_cdn->get_google_client()); $file = new Google_Service_Drive_DriveFile(); $file->setTitle($folder); $file->setDescription(home_url() . ' to Google Drive CDN Folder'); $file->setMimeType('application/vnd.google-apps.folder'); try { $createdFile = $service->files->insert($file, array('mimeType' => 'application/vnd.google-apps.folder')); } catch (Exception $e) { $this->_google_drive_cdn->set_error($e->getMessage() . '(wpbgdc: create_folder 1)', false); return; } WPB_Google_Drive_Cdn_Settings::set_setting('folder_id', $createdFile->getId(), 'wpbgdc_folders'); // set permissions $permission = new Google_Service_Drive_Permission(); $permission->setValue(''); $permission->setType('anyone'); $permission->setRole('reader'); try { $service->permissions->insert($createdFile->getId(), $permission); } catch (Exception $e) { $this->_google_drive_cdn->set_error($e->getMessage() . '(wpbgdc: create_folder 2)', false); return; } try { $created_file_info = $service->files->get($createdFile->getId()); } catch (Exception $e) { $this->_google_drive_cdn->set_error($e->getMessage() . '(wpbgdc: create_folder 3)', false); return $createdFile->getId(); } WPB_Google_Drive_Cdn_Settings::set_setting('folder_link', $created_file_info->webViewLink, 'wpbgdc_folders'); WPB_Google_Drive_Cdn_Settings::set_setting('folder_name', $folder, 'wpbgdc_folders'); return $createdFile->getId(); }
/** * Disconnects the Google Drive by removing the * @since 1.1 */ public function disconnect() { if (!isset($_REQUEST['action'])) { return; } if ('disconnect' != $_REQUEST['action']) { return; } // Check nonces if (!isset($_REQUEST['wpbgdc_nonce'])) { return; } if (!wp_verify_nonce($_REQUEST['wpbgdc_nonce'], 'wpbgdc_disconnect')) { return; } update_option('wpbgdc_currently_syncing', 0); global $wpdb; if ($wpdb instanceof wpdb) { $wpdb->query('TRUNCATE TABLE `' . $wpdb->prefix . 'wpbgdc_files`'); } WPB_Google_Drive_Cdn_Settings::set_setting('token', '', 'wpbgdc_oauth_token'); wp_redirect(admin_url('options-general.php?page=wpbgdc') . '¬ice=disconnected'); }