PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-beta.2
Jetpack – WP Security, Backup, Speed, & Growth v16.1-beta.2
16.2-a.3 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 2 months ago class-main.php 2 months ago class-options.php 4 weeks ago class-package-version.php 4 weeks ago class-rest-provider.php 2 years ago class-tracking-pixel.php 4 weeks ago class-transient-cleanup.php 6 months ago class-wpcom-stats.php 8 months ago class-xmlrpc-provider.php 2 years ago
class-xmlrpc-provider.php
122 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 add_filter( 'esc_html', array( $this, 'filter_esc_html_check_if_string' ), 10, 2 );
100 $blog = map_deep( $blog, 'esc_html' );
101 remove_filter( 'esc_html', array( $this, 'filter_esc_html_check_if_string' ) );
102
103 return $blog;
104 }
105
106 /**
107 * Make sure we are only escaping html if the input is a string.
108 * Used for `esc_html` filter-hook.
109 *
110 * @param string $safe_text The output after esc_html has been applied.
111 * @param mixed $text The initial input.
112 * @return mixed
113 */
114 public function filter_esc_html_check_if_string( $safe_text, $text ) {
115 if ( is_string( $text ) ) {
116 return $safe_text;
117 }
118
119 return $text;
120 }
121 }
122