t_features_by_tier() { return array( array( 'name' => __( 'Scan for threats and vulnerabilities', 'jetpack-my-jetpack' ), 'tiers' => array( self::FREE_TIER_SLUG => array( 'included' => true, 'description' => __( 'Check items against database', 'jetpack-my-jetpack' ), ), self::UPGRADED_TIER_SLUG => array( 'included' => true, 'description' => __( 'Line by line malware scanning', 'jetpack-my-jetpack' ), ), ), ), array( 'name' => __( 'Daily automated scans', 'jetpack-my-jetpack' ), 'tiers' => array( self::FREE_TIER_SLUG => array( 'included' => true ), 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 ) ), ), ); } /** * Determines whether the module/plugin/product needs the users attention. * Typically due to some sort of error where user troubleshooting is needed. * * @return boolean|array */ public static function does_module_need_attention() { $protect_threat_status = false; // Check if there are scan threats. $protect_data = self::get_protect_data(); if ( is_wp_error( $protect_data ) ) { return $protect_threat_status; // false } $critical_threat_count = false; if ( ! empty( $protect_data->threats ) ) { $critical_threat_count = array_reduce( $protect_data->threats, function ( $accum, $threat ) { return $threat->severity >= 5 ? ++$accum : $accum; }, 0 ); $protect_threat_status = array( 'type' => $critical_threat_count ? 'error' : 'warning', 'data' => array( 'threat_count' => count( $protect_data->threats ), 'critical_threat_count' => $critical_threat_count, 'fixable_threat_ids' => $protect_data->fixable_threat_ids, ), ); } return $protect_threat_status; } /** * Get the product-slugs of the paid plans for this product. * (Do not include bundle plans, unless it's a bundle plan itself). * * @return array */ public static function get_paid_plan_product_slugs() { return array( 'jetpack_scan', 'jetpack_scan_monthly', 'jetpack_scan_bi_yearly', ); } /** * Checks whether the product can be upgraded - i.e. this shows the /#add-protect interstitial * * @return boolean */ public static function is_upgradable() { return ! self::has_paid_plan_for_product(); } /** * 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 the user is taken after purchasing the product through the checkout for each product feature * * @return ?array */ public static function get_post_checkout_urls_by_feature() { return array( self::SCAN_FEATURE_SLUG => self::get_post_checkout_url(), self::FIREWALL_FEATURE_SLUG => admin_url( 'admin.php?page=jetpack-protect#/firewall' ), ); } /** * Get the URL where the user manages the product * * @return ?string */ public static function get_manage_url() { // check standalone first if ( static::is_standalone_plugin_active() ) { return admin_url( 'admin.php?page=jetpack-protect' ); // otherwise, check for the main Jetpack plugin } elseif ( static::is_jetpack_plugin_active() ) { return Redirect::get_url( 'my-jetpack-manage-scan' ); } } /** * Get the URL where the user manages the product for each product feature * * @return ?array */ public static function get_manage_urls_by_feature() { return array( self::SCAN_FEATURE_SLUG => self::get_manage_url(), self::FIREWALL_FEATURE_SLUG => admin_url( 'admin.php?page=jetpack-protect#/firewall' ), ); } /** * Return product bundles list * that supports the product. * * @return array Products bundle list. */ public static function is_upgradable_by_bundle() { return array( 'security', 'complete' ); } }
Fatal error: Uncaught Error: Class 'Automattic\Jetpack\My_Jetpack\Products\Protect' not found in /var/www/html/dportilho.com.br/web/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-products.php:421 Stack trace: #0 /var/www/html/dportilho.com.br/web/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php(87): Automattic\Jetpack\My_Jetpack\Products::extend_plugins_action_links() #1 /var/www/html/dportilho.com.br/web/wp-content/plugins/jetpack/class.jetpack.php(860): Automattic\Jetpack\My_Jetpack\Initializer::init() #2 /var/www/html/dportilho.com.br/web/wp-includes/class-wp-hook.php(324): Jetpack->late_initialization('') #3 /var/www/html/dportilho.com.br/web/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #4 /var/www/html/dportilho.com.br/web/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #5 /var/www/html/dportilho.com.br/web/wp-settings.php(559): do_action('plugins_loaded') #6 /var/www/html/dportilho.com.br/web/wp-conf in /var/www/html/dportilho.com.br/web/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-products.php on line 421