Skip to content

Instantly share code, notes, and snippets.

@leoloso
Created November 5, 2019 05:47
Show Gist options
  • Save leoloso/6588f6c1bdcce82fc317052616d3dfb4 to your computer and use it in GitHub Desktop.
Save leoloso/6588f6c1bdcce82fc317052616d3dfb4 to your computer and use it in GitHub Desktop.
Create a REST endpoint for WordPress, providing a list of user newsletter subscriptions (email and language for each)
<?php
/*
Plugin Name: Helper Plugin - Newsletter Subscription REST endpoints for WP PoP API
Version: 0.1
Description: It creates a REST endpoint to demonstrate the PoP API
Plugin URI: https://gist.github.com/leoloso/c14f74ca26eced8bc6e71ba161d672c4
Author: Leonardo Losoviz
*/
if (function_exists('add_action')) {
add_action('rest_api_init', 'register_newsletter_subscriptions_endpoint');
}
function register_newsletter_subscriptions_endpoint()
{
register_rest_route('newsletter/v1', 'subscriptions/', [
'methods' => 'GET',
'callback' => 'get_newsletter_subscriptions'
]);
}
function get_newsletter_subscriptions($request)
{
$langs = ['en', 'es', 'fr', 'de'];
$users = get_users(['number' => 12, 'role' => 'subscriber']);
$userdata = [];
foreach ($users as $user) {
$userdata[] = [
'email' => $user->user_email,
'lang' => $langs[$user->ID % 4],
];
}
$response = new WP_REST_Response($userdata);
$response->set_status(200);
return $response;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment