Nuestra Complemento de herramientas de desarrollo MemberPress amplía MemberPress para incluir un API REST completa y capacidad completa de eventos Webhook.
Si la documentación de esta página parece ligera para herramientas de desarrollador, es porque toda la documentación para los eventos webhook y las URL de la API REST se puede encontrar en la interfaz del plugin. De hecho, la interfaz te ofrecerá resultados dinámicos con los que trabajar y la posibilidad de probar los webhooks directamente desde tu sitio. También puede consultar la siguiente documentación adicional para obtener más información:
- Herramientas para desarrolladores Acciones
- Herramientas para desarrolladores Disparadores de eventos
- Cómo añadir Usermeta a través de la API REST (Herramientas para desarrolladores)
Empezar no puede ser más fácil... así se hace
- Asegúrese de que su clave de activación MemberPress es para la versión Edición MemberPress Plus o MemberPress Pro.
- Para instalar el complemento MemberPress Developer Tools, vaya a la página MemberPress > Complementos y haga clic en el botón "Instalar complemento".
- Para utilizar la API REST de MemberPress, deberá ejecutar WordPress 4.7+.
- Una vez instalado y activado el complemento Developer Tools, deberías ver un nuevo elemento en tu menú MemberPress:
- Desde el menú Desarrollador, ahora podrás configurar webhooks, ver documentación dinámica sobre eventos webhook y probarlos, y ver documentación dinámica sobre todas las URL de la API REST de MemberPress:
Ejemplo de código PHP cURL
Este ejemplo añade un Miembro, lo asigna a una Afiliación (a través de una transacción) y activa un correo electrónico de bienvenida en el proceso:
'testingboy897@test.com', 'username' => 'testingboy897@test.com', 'first_name' => 'test', 'last_name' => 'test_last_name', 'send_welcome_email' => true, // Enviar un email de bienvenida - esto sólo funciona si se añade una transacción (abajo) 'transaction' => [ 'membership' => 376, // ID de la Membresía 'importe' => '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_POSTFIELDS, $data_string ); $header = array(); $header[] = 'MEMBERPRESS-API-KEY: MgCUGSO5Qg'; // Su API KEY de MemberPress Developer Tools aquí $header[] = 'Content-Type: application/json'; $header[] = 'Content-Length: ' . strlen($data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $response = curl_exec($ch); if(curl_errno($ch)){ throw new Exception(curl_errno($ch)); } echo $response; curl_close($ch);
Clave Webhook
Desde MemberPress Developer Tools Add-on 1.2.5, hemos introducido un ajuste Webhook Key que se puede encontrar en el menú MemberPress > Developers > Webhook tab.
Puede utilizar la clave para autenticar solicitudes POST de webhook. Es generada automáticamente por el complemento MemberPress, pero si crees que tu clave ha sido comprometida, puedes regenerar una nueva clave webhook en cualquier momento.
Para validar la petición webhook, busca memberpress-webhook-key en las cabeceras HTTP. Aquí tienes un ejemplo de una cabecera HTTP con memberpress-webhook-key recibida tras crear una nueva URL Webhook en el menú MemberPress > Desarrolladores > pestaña Webhook y escuchar los eventos de registro:
Solución de problemas de autenticación básica
El método preferido para la autenticación es a través de la Clave API proporcionada por MemberPress Developer Tools. Sin embargo, sabemos que muchos de ustedes también utilizan el método menos seguro - Autenticación Básica - para conectarse a la WP-API. Sin embargo, esto puede presentar algunos desafíos, que la información a continuación le puede ayudar con.
Si tiene problemas para que funcione la autenticación básica, asegúrese de haber instalado el plugin Application Passwords y seguí sus instrucciones.
Una solicitud de autenticación básica típica es la siguiente
Nombre de la cabecera:
Autorización
Valor de cabecera:
Basic base64_encode( wp_admin_user_login_here:application_passwords_password_here )
Su usuario debe tener el eliminar_usuarios o MemberPress Developer Tools devolverá una respuesta 401.
Si sigue sin poder autenticarse, es posible que su servidor de alojamiento tenga algún problema de configuración. Más información sobre la causa más frecuente. El plugin Contraseñas de Aplicación debe tener las variables PHP_AUTH_USER y PHP_AUTH_PW establecidas. Si no están establecidas, Application Passwords fallará al autenticar el usuario, y necesitará trabajar con su proveedor de alojamiento web para corregirlo. Típicamente requiere agregar algo como lo siguiente al archivo .htaccess:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Si todo lo demás falla, lo mejor es utilizar la clave de API en el archivo MEMBERPRESS-API-KEY HTTP en su lugar. A continuación se muestra un código de ejemplo con la clave de API y 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 ); if( curl_errno( $ch ) ) { throw new Exception( curl_errno( $ch ) ); } curl_close($ch); echo $response;
Resolución de problemas con Webhooks
Si sus webhooks de prueba funcionan, pero sus pruebas en vivo no se disparan, lo más probable es que WP Cron esté deshabilitado o no esté funcionando como debería. MemberPress Developer Tools depende de WP Cron para enviar los webhooks.
En este caso, la forma más fácil de verificar es comprobar la tabla wp_mepr_jobs en su base de datos para ver si los trabajos webhook están atrapados allí con un estado de "pendiente".
Cuando sea posible, recomendamos desactivar WP Cron basado en la carga de páginas y en su lugar activarlo desde un cron del lado del servidor que se ejecute cada minuto. SiteGround tiene un gran artículo sobre haciendo esto aquí. Y WordPress.org tiene algunas información adicional. Lamentablemente, no podemos ayudarle con esto, y su proveedor de alojamiento web tendrá que ayudarle a configurarlo.
Si no consigue que WP Cron se ejecute correctamente, incluso después de activar un cron del lado del servidor, puede que (como último recurso) necesite realizar la siguiente consulta:
UPDATE wp_options SET option_value = '' WHERE option_name = 'cron';