PluginProbe ʕ •ᴥ•ʔ
Smash Balloon Social Post Feed – Simple Social Feeds for WordPress / 4.10.0
Smash Balloon Social Post Feed – Simple Social Feeds for WordPress v4.10.0
4.12.0 4.10.0 4.9.0 4.8.1 trunk 1.0 1.1 1.12.1 1.2.3 1.2.4 1.2.5 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5 1.5.1 1.5.2 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.5.1 1.6.6 1.6.6.1 1.6.6.2 1.6.6.3 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.9.0 1.9.1 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.8.1 1.9.9 1.9.9.1 1.9.9.2 1.9.9.3 2.0 2.0.1 2.1 2.1.1 2.1.2 2.1.3 2.10 2.11 2.11.1 2.12 2.12.1 2.12.2 2.12.3 2.12.4 2.13 2.14 2.14.1 2.15 2.15.1 2.16 2.16.1 2.17 2.17.1 2.18 2.18.1 2.18.2 2.18.3 2.19 2.19.1 2.19.2 2.19.3 2.2 2.2.1 2.3 2.3.1 2.3.10 2.3.2 2.3.3 2.3.4 2.3.6 2.3.7 2.3.8 2.3.9 2.4 2.4.1 2.4.1.1 2.4.1.2 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.7 2.7.1 2.7.2 2.8 2.9 2.9.1 4.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3.0 4.3.1 4.3.2 4.3.3 4.3.4 4.7.5 4.7.6 4.7.7
custom-facebook-feed / inc / UsageTracking / Core / RegisterSite.php
custom-facebook-feed / inc / UsageTracking / Core Last commit date
PayloadBuilder.php 3 weeks ago RegisterSite.php 3 weeks ago Scheduler.php 3 weeks ago Sender.php 3 weeks ago
RegisterSite.php
77 lines
1 <?php
2 /**
3 * Register-site API client. Fetches site_token from the API and stores it.
4 *
5 * @package CustomFacebookFeed\UsageTracking\Core
6 * @since 4.0
7 */
8
9 namespace CustomFacebookFeed\UsageTracking\Core;
10
11 use CustomFacebookFeed\UsageTracking\Config;
12 use CustomFacebookFeed\UsageTracking\ReporterInterface;
13
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 class RegisterSite {
19
20 /**
21 * Register the site with the API and store the returned site_token.
22 *
23 * @param ReporterInterface $reporter Plugin reporter (for slug/version).
24 * @return string|null Site token on success, null on failure.
25 */
26 public function register( ReporterInterface $reporter ) {
27 $existing = get_option( Config::OPTION_SITE_TOKEN, '' );
28 if ( '' !== $existing && is_string( $existing ) ) {
29 return $existing;
30 }
31
32 $url = Config::get_register_site_url();
33 $body = array(
34 'site_url' => home_url(),
35 'plugin_slug' => $reporter->get_plugin_slug(),
36 'plugin_version' => defined( 'CFFVER' ) ? CFFVER : '',
37 );
38
39 $response = wp_remote_post(
40 $url,
41 array(
42 'method' => 'POST',
43 'timeout' => 15,
44 'redirection' => 5,
45 'headers' => array(
46 'Content-Type' => 'application/json',
47 ),
48 'body' => wp_json_encode( $body ),
49 )
50 );
51
52 if ( is_wp_error( $response ) ) {
53 return null;
54 }
55
56 $code = wp_remote_retrieve_response_code( $response );
57 if ( $code < 200 || $code >= 300 ) {
58 return null;
59 }
60
61 $body_raw = wp_remote_retrieve_body( $response );
62 $data = json_decode( $body_raw, true );
63 if ( ! is_array( $data ) ) {
64 return null;
65 }
66
67 $token = isset( $data['site_token'] ) ? $data['site_token'] : (isset( $data['token'] ) ? $data['token'] : null);
68 if ( null === $token || '' === $token || ! is_string( $token ) ) {
69 return null;
70 }
71
72 $token = sanitize_text_field( $token );
73 update_option( Config::OPTION_SITE_TOKEN, $token, false );
74 return $token;
75 }
76 }
77