Completed
Push — update/eventbrite-pinterest-re... ( 6d5bf6...1b3e2a )
by
unknown
16:59 queued 10:15
created

Jetpack_Site::get_updates()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
use Automattic\Jetpack\Sync\Functions;
4
5
require_once dirname( __FILE__ ) . '/class.json-api-site-jetpack-base.php';
6
require_once dirname( __FILE__ ) . '/class.json-api-post-jetpack.php';
7
8
// this code runs on Jetpack (.org) sites
9
class Jetpack_Site extends Abstract_Jetpack_Site {
10
11
	protected function get_mock_option( $name ) {
12
		return get_option( 'jetpack_'.$name );
13
	}
14
15
	protected function get_constant( $name ) {
16
		if ( defined( $name) ) {
17
			return constant( $name );
18
		}
19
		return null;
20
	}
21
22
	protected function main_network_site() {
23
		return network_site_url();
24
	}
25
26
	protected function wp_version() {
27
		global $wp_version;
28
		return $wp_version;
29
	}
30
31
	protected function max_upload_size() {
32
		return wp_max_upload_size();
33
	}
34
35
	protected function wp_memory_limit() {
36
		return wp_convert_hr_to_bytes( WP_MEMORY_LIMIT );
37
	}
38
39
	protected function wp_max_memory_limit() {
40
		return wp_convert_hr_to_bytes( WP_MAX_MEMORY_LIMIT );
41
	}
42
43
	protected function is_main_network() {
44
		return Jetpack::is_multi_network();
45
	}
46
47
	public function is_multisite() {
48
		return (bool) is_multisite();
49
	}
50
51
	public function is_single_user_site() {
52
		return (bool) Jetpack::is_single_user_site();
53
	}
54
55
	protected function is_version_controlled() {
56
		return Functions::is_version_controlled();
57
	}
58
59
	protected function file_system_write_access() {
60
		return Functions::file_system_write_access();
61
	}
62
63
	protected function current_theme_supports( $feature_name ) {
64
		return current_theme_supports( $feature_name );
65
	}
66
67
	protected function get_theme_support( $feature_name ) {
68
		return get_theme_support( $feature_name );
69
	}
70
71
	public function get_updates() {
72
		return (array) Jetpack::get_updates();
73
	}
74
75
	function get_id() {
76
		return $this->platform->token->blog_id;
77
	}
78
79
	function has_videopress() {
80
		// TODO - this only works on wporg site - need to detect videopress option for remote Jetpack site on WPCOM
81
		$videopress = Jetpack_Options::get_option( 'videopress', array() );
82
		if ( isset( $videopress['blog_id'] ) && $videopress['blog_id'] > 0 ) {
83
			return true;
84
		}
85
86
		return false;
87
	}
88
89
	function upgraded_filetypes_enabled() {
90
		return true;
91
	}
92
93
	function is_mapped_domain() {
94
		return true;
95
	}
96
97
	function get_unmapped_url() {
98
		// Fallback to the home URL since all Jetpack sites don't have an unmapped *.wordpress.com domain.
99
		return $this->get_url();
100
	}
101
102
	function is_redirect() {
103
		return false;
104
	}
105
106
	function is_following() {
107
		return false;
108
	}
109
110
	function has_wordads() {
111
		return Jetpack::is_module_active( 'wordads' );
112
	}
113
114
	function get_frame_nonce() {
115
		return false;
116
	}
117
118
	function get_jetpack_frame_nonce() {
119
		return false;
120
	}
121
122
	function is_headstart_fresh() {
123
		return false;
124
	}
125
126
	function allowed_file_types() {
127
		$allowed_file_types = array();
128
129
		// https://codex.wordpress.org/Uploading_Files
130
		$mime_types = get_allowed_mime_types();
131
		foreach ( $mime_types as $type => $mime_type ) {
132
			$extras = explode( '|', $type );
133
			foreach ( $extras as $extra ) {
134
				$allowed_file_types[] = $extra;
135
			}
136
		}
137
138
		return $allowed_file_types;
139
	}
140
141
	/**
142
	 * Return site's privacy status.
143
	 *
144
	 * @return boolean  Is site private?
145
	 */
146
	function is_private() {
147
		return (int) $this->get_atomic_cloud_site_option( 'blog_public' ) === -1;
148
	}
149
150
	/**
151
	 * Return site's coming soon status.
152
	 *
153
	 * @return boolean  Is site "Coming soon"?
154
	 */
155
	function is_coming_soon() {
156
		return $this->is_private() && (int) $this->get_atomic_cloud_site_option( 'wpcom_coming_soon' ) === 1;
157
	}
158
159
	/**
160
	 * Return site's launch status.
161
	 *
162
	 * @return string|boolean  Launch status ('launched', 'unlaunched', or false).
163
	 */
164
	function get_launch_status() {
165
		return $this->get_atomic_cloud_site_option( 'launch-status' );
166
	}
167
168
	function get_atomic_cloud_site_option( $option ) {
169
		if ( ! jetpack_is_atomic_site() ) {
170
			return false;
171
		}
172
173
		$jetpack = Jetpack::init();
174
		if ( ! method_exists( $jetpack, 'get_cloud_site_options' ) ) {
175
			return false;
176
		}
177
178
		$result = $jetpack->get_cloud_site_options( [ $option ] );
179
		if ( ! array_key_exists( $option, $result ) ) {
180
			return false;
181
		}
182
183
		return $result[ $option ];
184
	}
185
186
	function get_plan() {
187
		return false;
188
	}
189
190
	function get_subscribers_count() {
191
		return 0; // special magic fills this in on the WPCOM side
192
	}
193
194
	function get_capabilities() {
195
		return false;
196
	}
197
198
	function get_locale() {
199
		return get_bloginfo( 'language' );
200
	}
201
202
	function is_jetpack() {
203
		return true;
204
	}
205
206
	public function get_jetpack_version() {
207
		return JETPACK__VERSION;
208
	}
209
210
	function get_ak_vp_bundle_enabled() {}
211
212
	function get_jetpack_seo_front_page_description() {
213
		return Jetpack_SEO_Utils::get_front_page_meta_description();
214
	}
215
216
	function get_jetpack_seo_title_formats() {
217
		return Jetpack_SEO_Titles::get_custom_title_formats();
218
	}
219
220
	function get_verification_services_codes() {
221
		return get_option( 'verification_services_codes', null );
222
	}
223
224
	function get_podcasting_archive() {
225
		return null;
226
	}
227
228
	function is_connected_site() {
229
		return true;
230
	}
231
232
	function is_wpforteams_site() {
233
		return false;
234
	}
235
236
	function current_user_can( $role ) {
237
		return current_user_can( $role );
238
	}
239
240
	/**
241
	 * Check if full site editing should be considered as currently active. Full site editing
242
	 * requires the FSE plugin to be installed and activated, as well the current
243
	 * theme to be FSE compatible. The plugin can also be explicitly disabled via the
244
	 * a8c_disable_full_site_editing filter.
245
	 *
246
	 * @since 7.7.0
247
	 *
248
	 * @return bool true if full site editing is currently active.
249
	 */
250
	function is_fse_active() {
251
		if ( ! Jetpack::is_plugin_active( 'full-site-editing/full-site-editing-plugin.php' ) ) {
252
			return false;
253
		}
254
		return function_exists( '\A8C\FSE\is_full_site_editing_active' ) && \A8C\FSE\is_full_site_editing_active();
255
	}
256
257
	/**
258
	 * Check if site should be considered as eligible for full site editing. Full site editing
259
	 * requires the FSE plugin to be installed and activated. For this method to return true
260
	 * the current theme does not need to be FSE compatible. The plugin can also be explicitly
261
	 * disabled via the a8c_disable_full_site_editing filter.
262
	 *
263
	 * @since 8.1.0
264
	 *
265
	 * @return bool true if site is eligible for full site editing
266
	 */
267
	public function is_fse_eligible() {
268
		if ( ! Jetpack::is_plugin_active( 'full-site-editing/full-site-editing-plugin.php' ) ) {
269
			return false;
270
		}
271
		return function_exists( '\A8C\FSE\is_site_eligible_for_full_site_editing' ) && \A8C\FSE\is_site_eligible_for_full_site_editing();
272
	}
273
274
	/**
275
	 * Return the last engine used for an import on the site.
276
	 *
277
	 * This option is not used in Jetpack.
278
	 */
279
	function get_import_engine() {
280
		return null;
281
	}
282
283
	/**
284
	 * Post functions
285
	 */
286
287
	function wrap_post( $post, $context ) {
288
		return new Jetpack_Post( $this, $post, $context );
289
	}
290
291
}
292