PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.5
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.5
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 All 506 releases
jetpack / jetpack_vendor / automattic / jetpack-connection / src / class-xmlrpc-connector.php

class-xmlrpc-connector.php in Jetpack – WP Security, Backup, Speed, & Growth 16.3-a.5, at jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php

88 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Sets up the Connection XML-RPC methods.
4 *
5 * @package automattic/jetpack-connection
6 */
7
8 namespace Automattic\Jetpack\Connection;
9
10 use IXR_Error;
11
12 /**
13 * Registers the XML-RPC methods for Connections.
14 *
15 * @phan-constructor-used-for-side-effects
16 */
17 class XMLRPC_Connector {
18 /**
19 * The Connection Manager.
20 *
21 * @var Manager
22 */
23 private $connection;
24
25 /**
26 * Constructor.
27 *
28 * @param Manager $connection The Connection Manager.
29 */
30 public function __construct( Manager $connection ) {
31 $this->connection = $connection;
32
33 // Adding the filter late to avoid being overwritten by Jetpack's XMLRPC server.
34 add_filter( 'xmlrpc_methods', array( $this, 'xmlrpc_methods' ), 20 );
35 }
36
37 /**
38 * Attached to the `xmlrpc_methods` filter.
39 *
40 * @param array $methods The already registered XML-RPC methods.
41 * @return array
42 */
43 public function xmlrpc_methods( $methods ) {
44 return array_merge(
45 $methods,
46 array(
47 'jetpack.verifyRegistration' => array( $this, 'verify_registration' ),
48 )
49 );
50 }
51
52 /**
53 * Handles verification that a site is registered.
54 *
55 * @param array $registration_data The data sent by the XML-RPC client:
56 * [ $secret_1, $user_id ].
57 *
58 * @return string|IXR_Error
59 */
60 public function verify_registration( $registration_data ) {
61 return $this->output( $this->connection->handle_registration( $registration_data ) );
62 }
63
64 /**
65 * Normalizes output for XML-RPC.
66 *
67 * @param mixed $data The data to output.
68 */
69 private function output( $data ) {
70 if ( is_wp_error( $data ) ) {
71 $code = $data->get_error_data();
72 if ( ! $code ) {
73 $code = -10520;
74 }
75
76 if ( ! class_exists( IXR_Error::class ) ) {
77 require_once ABSPATH . WPINC . '/class-IXR.php';
78 }
79 return new IXR_Error(
80 $code,
81 sprintf( 'Jetpack: [%s] %s', $data->get_error_code(), $data->get_error_message() )
82 );
83 }
84
85 return $data;
86 }
87 }
88