PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-stats / src / class-xmlrpc-provider.php
jetpack / jetpack_vendor / automattic / jetpack-stats / src Last commit date
abilities 1 week ago class-main.php 3 days ago class-options.php 3 weeks ago class-package-version.php 3 days ago class-rest-provider.php 2 years ago class-tracking-pixel.php 3 weeks ago class-transient-cleanup.php 1 week ago class-wpcom-stats.php 3 days ago class-xmlrpc-provider.php 3 days ago
class-xmlrpc-provider.php
126 lines
1 <?php
2 /**
3 * The Stats XMLRPC Provider class
4 *
5 * @package automattic/jetpack-stats
6 */
7
8 namespace Automattic\Jetpack\Stats;
9
10 use Automattic\Jetpack\Connection\Manager as Connection_Manager;
11 use Automattic\Jetpack\Modules;
12
13 /**
14 * Stats XMLRPC Provider.
15 *
16 * Adds additional methods to the WordPress XML-RPC API for handling Stats specific features.
17 *
18 * @since 0.1.0
19 */
20 class XMLRPC_Provider {
21
22 /**
23 * Singleton XMLRPC_Provider instance.
24 *
25 * @var XMLRPC_Provider
26 **/
27 private static $instance = null;
28
29 /**
30 * Private XMLRPC_Provider constructor.
31 *
32 * Use the XMLRPC_Provider::init() method to get an instance.
33 */
34 private function __construct() {
35 add_filter( 'jetpack_xmlrpc_unauthenticated_methods', array( $this, 'xmlrpc_methods' ), 10, 3 );
36 }
37
38 /**
39 * Initialize class and get back a singleton instance.
40 *
41 * @param bool $new_instance Force create new instance.
42 *
43 * @return XMLRPC_Provider
44 */
45 public static function init( $new_instance = false ) {
46 if ( null === self::$instance || $new_instance ) {
47 self::$instance = new XMLRPC_Provider();
48 }
49
50 return self::$instance;
51 }
52
53 /**
54 * Adds additional methods to the WordPress xmlrpc API for handling Stats specific features.
55 *
56 * @param array $methods The Jetpack API methods.
57 *
58 * @return array
59 */
60 public function xmlrpc_methods( $methods ) {
61 if ( ! ( new Connection_Manager() )->is_connected() ) {
62 return $methods;
63 }
64
65 if ( ! ( new Modules() )->is_active( 'stats' ) ) {
66 return $methods;
67 }
68
69 $methods['jetpack.getBlog'] = array( $this, 'get_blog' );
70
71 return $methods;
72 }
73
74 /**
75 * Stats Get Blog.
76 *
77 * @return array
78 */
79 public function get_blog() {
80 $home = wp_parse_url( trailingslashit( get_option( 'home' ) ) );
81 $blog = array(
82 'host' => $home['host'],
83 'path' => $home['path'],
84 'blogname' => get_option( 'blogname' ),
85 'blogdescription' => get_option( 'blogdescription' ),
86 'siteurl' => get_option( 'siteurl' ),
87 'gmt_offset' => get_option( 'gmt_offset' ),
88 'timezone_string' => get_option( 'timezone_string' ),
89 'stats_version' => Main::STATS_VERSION,
90 'stats_api' => 'jetpack',
91 'page_on_front' => get_option( 'page_on_front' ),
92 'permalink_structure' => get_option( 'permalink_structure' ),
93 'category_base' => get_option( 'category_base' ),
94 'tag_base' => get_option( 'tag_base' ),
95 );
96 $blog = array_merge( Options::get_options(), $blog );
97 unset( $blog['roles'], $blog['blog_id'] );
98
99 $blog = map_deep(
100 $blog,
101 function ( $value ) {
102 return is_string( $value ) ? esc_html( $value ) : $value;
103 }
104 );
105
106 return $blog;
107 }
108
109 /**
110 * Make sure we are only escaping html if the input is a string.
111 * Used for `esc_html` filter-hook.
112 *
113 * @deprecated since 0.20.3
114 * @param string $safe_text The output after esc_html has been applied.
115 * @param mixed $text The initial input.
116 * @return mixed
117 */
118 public function filter_esc_html_check_if_string( $safe_text, $text ) {
119 if ( is_string( $text ) ) {
120 return $safe_text;
121 }
122
123 return $text;
124 }
125 }
126