\WP_REST_Server::ALLMETHODS, 'callback' => [$this, 'sendEmail'], 'permission_callback' => '__return_true', )); }); } public function sendEmail($request) { if (!wp_verify_nonce($request->get_header('X-WP-Nonce'), 'wp_rest')) { return [ 'status' => 'fail', 'message' => ['Nonce mismatch.'] ]; } if (!is_user_logged_in() || !current_user_can('publish_posts')) { return [ 'status' => 'fail', 'message' => ['Access denied.'] ]; } $from = get_option('admin_email'); $to = $request->get_param('email'); $subject = $request->get_param('subject'); $message = $request->get_param('message'); $headers = [ 'From: ' . $from . "\r\n", 'Reply-To: ' . $from . "\r\n", 'Content-Type: text/html; charset=UTF-8', ]; $sent = wp_mail($to, $subject, $message, $headers); if ($sent) { return [ 'status' => 'success', 'message' => ['Test email sent successfully.'], ]; } else { return [ 'status' => 'fail', 'message' => ['Failed to send the test email.'], ]; } } }