AI要約
WPFormsでGoogleスプレッドシート接続を設定する際に、接続されているGoogleスプレッドシートのリストをどのユーザーが表示できるかを制限しますか?デフォルトでは、フォームビルダーにアクセスできるすべてのユーザーが、接続されているGoogleアカウントに関連付けられたすべてのスプレッドシートを表示できますが、これは複数のバックエンドユーザーがいるサイトではプライバシーの問題となる可能性があります。
このチュートリアルでは、カスタムコードスニペットを使用してGoogleスプレッドシートピッカーへのアクセスを制限する方法を説明します。
スニペットの作成
始める前に、カスタムコードスニペットをサイトに追加する方法に関するチュートリアルをご覧ください。
Googleスプレッドシートピッカーは、ユーザーがフォームビルダーでGoogleスプレッドシートプロバイダーを開くと、AJAXエンドポイントを介してデータをロードします。wpforms_providers_settings_builder_ajax_access_token_data_get_google-sheetsフィルターにフックすることで、スプレッドシートリストが返される前に権限チェックを追加できます。
以下に2つの一般的なシナリオを説明します。
管理者にのみアクセスを制限する
以下のスニペットは、manage_options権限を持つユーザーにGoogleスプレッドシートピッカーへのアクセスを制限します。デフォルトでは、これは管理者に限定されています。
/**
* Restrict the Google Sheets picker to administrators only.
*
* @link https://wpforms.com/developers/
*/
add_filter( 'wpforms_providers_settings_builder_ajax_access_token_data_get_google-sheets', 'wpf_restrict_picker_access_admins_only', 9 );
function wpf_restrict_picker_access_admins_only(): void {
// Restrict access to users with manage_options capability (administrators by default).
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( 403 );
}
}
このスニペットをサイトに追加すると、管理者以外のユーザーがGoogleスプレッドシートピッカーを開こうとすると、接続されているスプレッドシートのリストが表示される代わりに403エラーが表示されます。管理者は、これまでどおりピッカーを表示できます。
特定のユーザーへのアクセスを制限する
特定のユーザーにアクセスを制限したい場合は、代わりに特定のユーザーIDに対してチェックできます。これは、チーム内で1人のユーザーのみがGoogleスプレッドシート接続を管理できるようにしたい場合に便利です。
/**
* Restrict the Google Sheets picker to a specific user.
*
* @link https://wpforms.com/developers/
*/
add_filter( 'wpforms_providers_settings_builder_ajax_access_token_data_get_google-sheets', 'wpf_restrict_picker_access_single_user', 9 );
function wpf_restrict_picker_access_single_user(): void {
// Restrict access to a specific user ID. Replace 1 with the desired user ID.
if ( get_current_user_id() !== 1 ) {
wp_send_json_error( 403 );
}
}
許可したいユーザーのIDを1に置き換えてください。ユーザーIDは、WordPress管理画面の**ユーザー**に移動し、ユーザー名にカーソルを合わせると確認できます。編集リンクのURLにIDが表示されます。
これで、WPFormsでGoogleスプレッドシートピッカーへのアクセスを正常に制限できました。Googleスプレッドシート連携の他の部分をカスタマイズしたいですか?WPFormsでGoogleスプレッドシートアドオンを設定する方法に関するチュートリアルをご覧ください。