tatus = json_decode( $body ); return $status; } /** * Checks whether the current plan (or purchases) of the site already supports the product * * @return boolean */ public static function has_required_plan() { $rewind_data = static::get_state_from_wpcom(); if ( is_wp_error( $rewind_data ) ) { return false; } return is_object( $rewind_data ) && isset( $rewind_data->state ) && 'unavailable' !== $rewind_data->state; } /** * Return product bundles list * that supports the product. * * @return boolean|array Products bundle list. */ public static function is_upgradable_by_bundle() { return array( 'security' ); } /** * Get the URL the user is taken after activating the product * * @return ?string */ public static function get_post_activation_url() { return ''; // stay in My Jetpack page or continue the purchase flow if needed. } /** * Get the URL where the user manages the product * * @return ?string */ public static function get_manage_url() { if ( static::is_jetpack_plugin_active() ) { return Redirect::get_url( 'my-jetpack-manage-backup' ); } elseif ( static::is_plugin_active() ) { return admin_url( 'admin.php?page=jetpack-backup' ); } } /** * Checks whether the Product is active * * @return boolean */ public static function is_active() { return parent::is_active() && static::has_required_plan(); } /** * Get the URL where the user should be redirected after checkout */ public static function get_post_checkout_url() { if ( static::is_jetpack_plugin_active() ) { return admin_url( 'admin.php?page=jetpack#/recommendations' ); } elseif ( static::is_plugin_active() ) { return admin_url( 'admin.php?page=jetpack-backup' ); } } }