Restringindo o Acesso ao Seletor do Google Sheets no WPForms

Gostaria de limitar quais usuários podem ver a lista de Planilhas Google conectadas ao configurar uma conexão do Google Sheets no WPForms? Por padrão, qualquer usuário com acesso ao construtor de formulários pode ver todas as planilhas associadas à conta Google conectada, o que pode ser uma preocupação de privacidade em sites com vários usuários de backend.

Este tutorial mostrará como restringir o acesso ao seletor do Google Sheets usando um trecho de código personalizado.


Criando o Trecho

Antes de começarmos, confira nosso tutorial sobre como adicionar trechos de código personalizados ao seu site.

O seletor do Google Sheets carrega seus dados por meio de um endpoint AJAX quando um usuário abre o provedor do Google Sheets no construtor de formulários. Ao usar o filtro wpforms_providers_settings_builder_ajax_access_token_data_get_google-sheets, você pode adicionar uma verificação de permissão antes que a lista de planilhas seja retornada.

Abordaremos dois cenários comuns abaixo.

Restringindo o Acesso Apenas a Administradores

O trecho abaixo limita o acesso ao seletor do Google Sheets a usuários com a capacidade manage_options. Por padrão, isso é restrito a administradores.

/**
 * 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 );
    }
}

Depois que este trecho for adicionado ao seu site, qualquer não administrador que tentar abrir o seletor do Google Sheets receberá um erro 403 em vez de ver a lista de planilhas conectadas. Administradores continuarão a ver o seletor exatamente como antes.

Restringindo o Acesso a um Usuário Específico

Se preferir restringir o acesso a um único usuário, você pode verificar um ID de usuário específico. Isso é útil quando apenas uma pessoa em sua equipe deve ter permissão para gerenciar conexões do Google Sheets.

/**
 * 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 );
    }
}

Certifique-se de substituir 1 pelo ID do usuário que você deseja permitir. Você pode encontrar o ID de um usuário indo em Usuários em seu administrador do WordPress e passando o mouse sobre o nome do usuário. O ID aparece na URL do link de edição.

É isso! Você restringiu com sucesso o acesso ao seletor do Google Sheets no WPForms. Gostaria de personalizar outras partes da integração do Google Sheets? Dê uma olhada em nosso tutorial sobre como configurar o addon Google Sheets com WPForms.