ucts_classes() as $class ) { $product_slug = $class::$slug; $status = $class::get_status(); if ( $class::is_owned() ) { // This sorts the the products in the order of active -> warning -> inactive. // This enables the frontend to display them in that order. // This is not needed for unowned products as those will always have a status of 'inactive' if ( in_array( $status, self::$active_module_statuses, true ) ) { array_push( $owned_active_products, $product_slug ); } elseif ( in_array( $status, self::$warning_module_statuses, true ) ) { array_push( $owned_warning_products, $product_slug ); } else { array_push( $owned_inactive_products, $product_slug ); } continue; } array_push( $unowned_products, $product_slug ); } $data = array( 'owned' => array_values( array_unique( array_merge( $owned_active_products, $owned_warning_products, $owned_inactive_products ) ) ), 'unowned' => array_values( array_unique( $unowned_products ) ), ); return $data[ $type ]; } /** * Get all plugin filenames associated with the products. * * @return array */ public static function get_all_plugin_filenames() { $filenames = array(); foreach ( self::get_products_classes() as $class ) { if ( ! isset( $class::$plugin_filename ) ) { continue; } if ( is_array( $class::$plugin_filename ) ) { $filenames = array_merge( $filenames, $class::$plugin_filename ); } else { $filenames[] = $class::$plugin_filename; } } return $filenames; } /** * Get one product data by its slug * * @param string $product_slug The product slug. * * @return ?array */ public static function get_product( $product_slug ) { $classes = self::get_products_classes(); if ( isset( $classes[ $product_slug ] ) ) { return $classes[ $product_slug ]::get_info(); } } /** * Get one product Class name * * @param string $product_slug The product slug. * * @return ?string */ public static function get_product_class( $product_slug ) { $classes = self::get_products_classes(); if ( isset( $classes[ $product_slug ] ) ) { return $classes[ $product_slug ]; } } /** * Return product slugs list. * * @return array Product slugs array. */ public static function get_products_slugs() { return array_keys( self::get_products_classes() ); } /** * Gets the json schema for the product data * * @return array */ public static function get_product_data_schema() { return array( 'title' => 'The requested product data', 'type' => 'object', 'properties' => array( 'product' => array( 'description' => __( 'Product slug', 'jetpack-my-jetpack' ), 'type' => 'string', 'enum' => __CLASS__ . '::get_product_slugs', 'required' => false, 'validate_callback' => __CLASS__ . '::check_product_argument', ), 'action' => array( 'description' => __( 'Production action to execute', 'jetpack-my-jetpack' ), 'type' => 'string', 'enum' => array( 'activate', 'deactivate' ), 'required' => false, 'validate_callback' => __CLASS__ . '::check_product_argument', ), 'slug' => array( 'title' => 'The product slug', 'type' => 'string', ), 'name' => array( 'title' => 'The product name', 'type' => 'string', ), 'description' => array( 'title' => 'The product description', 'type' => 'string', ), 'status' => array( 'title' => 'The product status', 'type' => 'string', 'enum' => self::$all_statuses, ), 'class' => array( 'title' => 'The product class handler', 'type' => 'string', ), ), ); } /** * Extend actions links for plugins * tied to the Products. */ public static function extend_plugins_action_links() { $products = array( 'backup', 'boost', 'crm', 'videopress', 'social', 'protect', 'crm', 'search', 'jetpack-ai', ); // Add plugin action links for the core Jetpack plugin. Product::extend_core_plugin_action_links(); // Add plugin action links to standalone products. foreach ( $products as $product ) { $class_name = self::get_product_class( $product ); $class_name::extend_plugin_action_links(); } } }
Fatal error: Uncaught Error: Class 'Automattic\Jetpack\My_Jetpack\Products' not found in /var/www/html/dportilho.com.br/web/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php:87 Stack trace: #0 /var/www/html/dportilho.com.br/web/wp-content/plugins/jetpack/class.jetpack.php(860): Automattic\Jetpack\My_Jetpack\Initializer::init() #1 /var/www/html/dportilho.com.br/web/wp-includes/class-wp-hook.php(324): Jetpack->late_initialization('') #2 /var/www/html/dportilho.com.br/web/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #3 /var/www/html/dportilho.com.br/web/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #4 /var/www/html/dportilho.com.br/web/wp-settings.php(559): do_action('plugins_loaded') #5 /var/www/html/dportilho.com.br/web/wp-config.php(126): require_once('/var/www/html/d...') #6 /var/www/html/dportilho.com.br/web/wp-load.php(50): require_once('/var/www/html/d...') #7 /var/www/html/dportilho.com.br/web/wp-blog-header.php(13): require_once('/va in /var/www/html/dportilho.com.br/web/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php on line 87