ue ), self::UPGRADED_TIER_SLUG => array( 'included' => true, 'description' => __( 'Plus on-demand manual scans', 'jetpack-my-jetpack' ), ), ), ), array( 'name' => __( 'Web Application Firewall', 'jetpack-my-jetpack' ), 'tiers' => array( self::FREE_TIER_SLUG => array( 'included' => false, 'description' => __( 'Manual rules only', 'jetpack-my-jetpack' ), ), self::UPGRADED_TIER_SLUG => array( 'included' => true, 'description' => __( 'Automatic protection and rule updates', 'jetpack-my-jetpack' ), ), ), ), array( 'name' => __( 'Brute force protection', 'jetpack-my-jetpack' ), 'tiers' => array( self::FREE_TIER_SLUG => array( 'included' => true ), self::UPGRADED_TIER_SLUG => array( 'included' => true ), ), ), array( 'name' => __( 'Access to scan on Cloud', 'jetpack-my-jetpack' ), 'tiers' => array( self::FREE_TIER_SLUG => array( 'included' => false ), self::UPGRADED_TIER_SLUG => array( 'included' => true ), ), ), array( 'name' => __( 'One-click auto fixes', 'jetpack-my-jetpack' ), 'tiers' => array( self::FREE_TIER_SLUG => array( 'included' => false ), self::UPGRADED_TIER_SLUG => array( 'included' => true ), ), ), array( 'name' => __( 'Notifications', 'jetpack-my-jetpack' ), 'tiers' => array( self::FREE_TIER_SLUG => array( 'included' => false ), self::UPGRADED_TIER_SLUG => array( 'included' => true ), ), ), array( 'name' => __( 'Severity labels', 'jetpack-my-jetpack' ), 'tiers' => array( self::FREE_TIER_SLUG => array( 'included' => false ), self::UPGRADED_TIER_SLUG => array( 'included' => true ), ), ), ); } /** * Get the product pricing details * * @return array Pricing details */ public static function get_pricing_for_ui() { return array( 'tiers' => array( self::FREE_TIER_SLUG => array( 'available' => true, 'is_free' => true, ), self::UPGRADED_TIER_SLUG => array_merge( array( 'available' => true, 'wpcom_product_slug' => self::UPGRADED_TIER_PRODUCT_SLUG, ), Wpcom_Products::get_product_pricing( self::UPGRADED_TIER_PRODUCT_SLUG ) ), ), ); } /** * Checks if the site has a paid plan for the product * * @return bool */ public static function has_paid_plan_for_product() { $scan_data = static::get_state_from_wpcom(); if ( is_wp_error( $scan_data ) ) { return false; } return is_object( $scan_data ) && isset( $scan_data->state ) && 'unavailable' !== $scan_data->state; } /** * Get the URL the user is taken after purchasing the product through the checkout * * @return ?string */ public static function get_post_checkout_url() { return self::get_manage_url(); } /** * Get the URL where the user manages the product * * @return ?string */ public static function get_manage_url() { return admin_url( 'admin.php?page=jetpack-protect' ); } /** * Return product bundles list * that supports the product. * * @return array Products bundle list. */ public static function is_upgradable_by_bundle() { return array( 'security' ); } }
Fatal error: Uncaught Error: Class "Automattic\Jetpack\My_Jetpack\Products\Protect" not found in /htdocs/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-products.php:192 Stack trace: #0 /htdocs/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php(80): Automattic\Jetpack\My_Jetpack\Products::extend_plugins_action_links() #1 /htdocs/wp-content/plugins/jetpack/class.jetpack.php(976): Automattic\Jetpack\My_Jetpack\Initializer::init() #2 /htdocs/wp-includes/class-wp-hook.php(324): Jetpack->late_initialization('') #3 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #4 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #5 /htdocs/wp-settings.php(559): do_action('plugins_loaded') #6 /htdocs/wp-config.php(85): require_once('/htdocs/wp-sett...') #7 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #8 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #9 /htdocs/index.php(17): require('/htdocs/wp-blog...') #10 {main} thrown in /htdocs/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-products.php on line 192