Nosso MemberPress Developer Tools Add-on estende o MemberPress para incluir um API REST completa e recurso de evento Webhook completo.
Se a documentação nesta página parecer leve para ferramentas de desenvolvedor, isso se deve ao fato de que toda a documentação dos eventos de webhook e dos URLs da API REST pode ser encontrada na interface do plug-in. Na verdade, a interface lhe fornecerá resultados dinâmicos para trabalhar e a capacidade de testar webhooks diretamente do seu site. Você também pode consultar os seguintes documentos adicionais para obter mais informações:
- Ações das ferramentas do desenvolvedor
- Ferramentas do desenvolvedor Acionadores de eventos
- Como adicionar Usermeta via API REST (ferramentas de desenvolvedor)
Começar não poderia ser mais fácil... veja como
- Certifique-se de que sua chave de ativação do MemberPress seja para a versão Edição MemberPress Plus ou MemberPress Pro.
- Para instalar o complemento MemberPress Developer Tools, vá para a página MemberPress > Add-ons e clique no botão "Install Add-on" (Instalar complemento).
- Para usar a API REST do MemberPress, você precisará executar o WordPress 4.7+
- Quando o complemento Developer Tools estiver instalado e ativado, você verá um novo item no menu do MemberPress:
- No Developer Menu, agora você poderá configurar webhooks, visualizar a documentação dinâmica e testar eventos de webhook e visualizar a documentação dinâmica de todos os URLs da API REST do MemberPress:
Exemplo de código PHP cURL
Este exemplo adiciona um membro, atribui-o a uma associação (por meio de uma transação) e aciona um e-mail de boas-vindas no processo:
'testingboy897@test.com', 'username' => 'testingboy897@test.com', 'first_name' => 'test', 'last_name' => 'test_last_name', 'send_welcome_email' => true, // Aciona um e-mail de boas-vindas - isso só funciona se for adicionada uma transação (abaixo) 'transaction' => [ 'membership' => 376, // ID da associação 'amount' => '0.00', 'total' => '0.00', 'tax_amount' => '0.00', 'tax_rate' => '0.000', 'trans_num' => 'mp-txn-' . uniqid(), 'status' => 'complete', 'gateway' => 'free', 'created_at' => gmdate( 'c' ), 'expires_at' => '0000-00-00 00:00:00' ] ] ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "POST" ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "POST" ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $data_string ); $header = array(); $header[] = 'MEMBERPRESS-API-KEY: MgCUGSO5Qg'; // Sua chave de API das ferramentas de desenvolvedor do MemberPress aqui $header[] = 'Content-Type: application/json'; $header[] = 'Content-Length: ' . strlen($data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $response = curl_exec($ch); se(curl_errno($ch)){ throw new Exception(curl_error($ch)); } echo $response; curl_close($ch);
Chave do webhook
Desde o MemberPress Developer Tools Add-on 1.2.5, introduzimos uma configuração de chave de webhook que pode ser encontrada no menu MemberPress > Developers > guia Webhook.
Você pode usar a chave para autenticar solicitações POST de webhook. Ela é gerada automaticamente pelo complemento MemberPress, mas se você achar que sua chave foi comprometida, poderá gerar novamente uma nova chave de webhook a qualquer momento.
Para validar a solicitação do webhook, busque os cabeçalhos HTTP e procure por memberpress-webhook-key. Aqui está um exemplo de um cabeçalho HTTP com memberpress-webhook-key recebido após a criação de uma nova URL de webhook no menu MemberPress > Developers > guia Webhook e a escuta de eventos de inscrição:
Solução de problemas de autenticação básica
O método preferencial de autenticação é por meio da chave de API fornecida pelo MemberPress Developer Tools. No entanto, sabemos que muitos de vocês também usam o método menos seguro - Autenticação básica - para se conectar à WP-API. No entanto, isso pode apresentar alguns desafios, com os quais as informações abaixo podem ajudá-lo.
Se estiver com dificuldades para fazer a autenticação básica funcionar, verifique se você instalou o plug-in Application Passwords e seguiu suas instruções.
Uma solicitação típica de autenticação básica é a seguinte:
Nome do cabeçalho:
Autorização
Valor do cabeçalho:
Basic base64_encode( wp_admin_user_login_here:application_passwords_password_here )
Seu usuário deve ter o remove_users ou o MemberPress Developer Tools retornará uma resposta 401.
Se você ainda não conseguir se autenticar, seu servidor de hospedagem pode ter alguns problemas de configuração. Leia mais sobre a causa mais comum aqui. O plug-in Application Passwords deve ter as variáveis PHP_AUTH_USER e PHP_AUTH_PW definidas. Se elas não estiverem definidas, o Application Passwords não conseguirá autenticar o usuário, e você precisará trabalhar com o seu provedor de serviços de Internet para corrigir isso. Normalmente, é necessário adicionar algo como o seguinte ao arquivo .htaccess:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Se tudo o mais falhar, é melhor usar apenas a chave da API no MEMBERPRESS-API-KEY cabeçalho de solicitação HTTP. Abaixo está um exemplo de código com a chave de API e PHP cURL:
<?php $url = 'http://testsite.com/wp-json/mp/v1/me'; $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $headers = [ 'MEMBERPRESS-API-KEY: MdCUPSO5Qr', 'Content-Type: application/json' ]; curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); $response = curl_exec( $ch ); se( curl_errno( $ch ) ) { throw new Exception( curl_error( $ch ) ); } curl_close($ch); echo $response;
Solução de problemas com webhooks
Se os webhooks de teste estiverem funcionando, mas os testes ao vivo não estiverem sendo disparados, o WP Cron provavelmente está desativado ou não está funcionando como deveria. As ferramentas de desenvolvedor do MemberPress dependem do WP Cron para enviar os webhooks.
Nesse caso, a maneira mais fácil de verificar é verificar a tabela wp_mepr_jobs em seu banco de dados para ver se os trabalhos de webhook estão presos lá com um status de "pendente".
Quando possível, recomendamos desativar o WP Cron baseado no carregamento da página e, em vez disso, acioná-lo a partir de um cron do lado do servidor que seja executado a cada minuto. A SiteGround tem um ótimo artigo sobre fazendo isso aqui. E o WordPress.org tem alguns informações adicionais aqui. Infelizmente, não podemos ajudá-lo com isso, e seu webhost precisará ajudá-lo a configurar.
Se você não conseguir fazer com que o WP Cron seja acionado corretamente, mesmo depois de ativar um cron no lado do servidor, talvez seja necessário (como último recurso) emitir a seguinte consulta:
UPDATE wp_options SET option_value = '' WHERE option_name = 'cron';