?
Current Path : /opt/wp/plugins/jetpack/_inc/lib/ |
Linux gator3171.hostgator.com 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 |
Current File : //opt/wp/plugins/jetpack/_inc/lib/class-jetpack-recommendations.php |
<?php /** * Utilities related to the Jetpack Recommendations * * @package automattic/jetpack */ use Automattic\Jetpack\Connection\Client; use Automattic\Jetpack\Connection\Manager as Connection_Manager; use Automattic\Jetpack\Status; use Automattic\Jetpack\Status\Host; /** * Contains utilities related to the Jetpack Recommendations. * * @package automattic/jetpack */ /** * Jetpack_Recommendations class */ class Jetpack_Recommendations { /** * Returns a boolean indicating if the Jetpack Recommendations are enabled. * * @since 9.3.0 * * @return bool */ public static function is_enabled() { // Shortcircuit early if Jetpack is not active or we are in offline mode. if ( ! Jetpack::is_connection_ready() || ( new Status() )->is_offline_mode() ) { return false; } // No recommendations for Atomic sites, they already get onboarded in Calypso. if ( ( new Host() )->is_woa_site() ) { return false; } self::initialize_jetpack_recommendations(); return true; } /** * Returns a boolean indicating if the Jetpack Banner is enabled. * * @since 9.3.0 * * @return bool */ public static function is_banner_enabled() { // Shortcircuit early if the recommendations are not enabled at all. if ( ! self::is_enabled() ) { return false; } $recommendations_banner_enabled = Jetpack_Options::get_option( 'recommendations_banner_enabled', null ); // If the option is already set, just return the cached value. // Otherwise calculate it and store it before returning it. if ( null !== $recommendations_banner_enabled ) { return $recommendations_banner_enabled; } if ( ! Jetpack::connection()->is_connected() ) { return new WP_Error( 'site_not_connected', esc_html__( 'Site not connected.', 'jetpack' ) ); } $blog_id = Jetpack_Options::get_option( 'id' ); $request_path = sprintf( '/sites/%s/jetpack-recommendations/site-registered-date', $blog_id ); $result = Client::wpcom_json_api_request_as_blog( $request_path, 2, array( 'headers' => array( 'content-type' => 'application/json' ), ), null, 'wpcom' ); $body = json_decode( wp_remote_retrieve_body( $result ) ); if ( 200 === wp_remote_retrieve_response_code( $result ) ) { $site_registered_date = $body->site_registered_date; } else { $connection = new Connection_Manager( 'jetpack' ); $site_registered_date = $connection->get_assumed_site_creation_date(); } $recommendations_start_date = gmdate( 'Y-m-d H:i:s', strtotime( '2020-12-01 00:00:00' ) ); $recommendations_banner_enabled = $site_registered_date > $recommendations_start_date; Jetpack_Options::update_option( 'recommendations_banner_enabled', $recommendations_banner_enabled ); return $recommendations_banner_enabled; } /** * Initializes the Recommendations step according to the Setup Wizard state. */ private static function initialize_jetpack_recommendations() { if ( Jetpack_Options::get_option( 'recommendations_step' ) ) { return; } $setup_wizard_status = Jetpack_Options::get_option( 'setup_wizard_status' ); if ( 'completed' === $setup_wizard_status ) { Jetpack_Options::update_option( 'recommendations_banner_enabled', false ); Jetpack_Options::update_option( 'recommendations_step', 'setup-wizard-completed' ); } } /** * Get the data for the recommendations * * @return array Recommendations data */ public static function get_recommendations_data() { self::initialize_jetpack_recommendations(); return Jetpack_Options::get_option( 'recommendations_data', array() ); } /** * Update the data for the recommendations * * @param WP_REST_Request $data The data. */ public static function update_recommendations_data( $data ) { if ( ! empty( $data ) ) { Jetpack_Options::update_option( 'recommendations_data', $data ); } } /** * Get the data for the recommendations * * @return array Recommendations data */ public static function get_recommendations_step() { self::initialize_jetpack_recommendations(); return array( 'step' => Jetpack_Options::get_option( 'recommendations_step', 'not-started' ), ); } /** * Update the step for the recommendations * * @param WP_REST_Request $step The step. */ public static function update_recommendations_step( $step ) { if ( ! empty( $step ) ) { Jetpack_Options::update_option( 'recommendations_step', $step ); } } }