File "class-publicize-setup.php"
Full Path: /home/warrior1/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-publicize/src/class-publicize-setup.php
File size: 2.35 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Main Publicize class.
*
* @package automattic/jetpack
*/
namespace Automattic\Jetpack\Publicize;
/**
* The class to configure and initialize the publicize package.
*/
class Publicize_Setup {
/**
* Whether to update the plan information from WPCOM when initialising the package.
*
* @var bool;
*/
public static $refresh_plan_info = false;
/**
* To configure the publicize package, when called via the Config package.
*/
public static function configure() {
add_action( 'jetpack_feature_publicize_enabled', array( __CLASS__, 'on_jetpack_feature_publicize_enabled' ) );
}
/**
* To configure the publicize package, when called via the Config package.
*/
public static function on_jetpack_feature_publicize_enabled() {
global $publicize_ui;
if ( ! isset( $publicize_ui ) ) {
$publicize_ui = new Publicize_UI();
}
// Adding on a higher priority to make sure we're the first field registered.
// The priority parameter can be removed once we deprecate WPCOM_REST_API_V2_Post_Publicize_Connections_Field
add_action( 'rest_api_init', array( new Connections_Post_Field(), 'register_fields' ), 5 );
add_action( 'rest_api_init', array( new REST_Controller(), 'register_rest_routes' ) );
add_action( 'current_screen', array( static::class, 'init_sharing_limits' ) );
}
/**
* Retrieves the blog ID based on the environment we're running in.
*
* @return int The WPCOM blog ID.
*/
public static function get_blog_id() {
return defined( 'IS_WPCOM' ) && IS_WPCOM ? get_current_blog_id() : \Jetpack_Options::get_option( 'id' );
}
/**
* Initialise share limits if they should be enabled.
*/
public static function init_sharing_limits() {
$current_screen = get_current_screen();
if ( empty( $current_screen ) || $current_screen->base !== 'post' ) {
return;
}
global $publicize;
if ( $publicize->has_paid_plan( self::$refresh_plan_info ) ) {
return;
}
$info = $publicize->get_publicize_shares_info( self::get_blog_id() );
if ( is_wp_error( $info ) ) {
return;
}
if ( empty( $info['is_share_limit_enabled'] ) ) {
return;
}
$connections = $publicize->get_filtered_connection_data();
$shares_remaining = $info['shares_remaining'];
$share_limits = new Share_Limits( $connections, $shares_remaining, ! $current_screen->is_block_editor() );
$share_limits->enforce_share_limits();
}
}