); return 1 === $result; } /** * Retrieves metadata by meta ID. * * @param int $meta_id Meta ID. * @return object|bool Metadata object or FALSE if not found. */ public function get_metadata_by_id( $meta_id ) { global $wpdb; if ( ! is_numeric( $meta_id ) || floor( $meta_id ) != $meta_id ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison return false; } $db_info = $this->get_db_info(); $meta_id = absint( $meta_id ); // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared $meta = $wpdb->get_row( $wpdb->prepare( "SELECT {$db_info['meta_id_field']}, meta_key, meta_value, {$db_info['object_id_field']} FROM {$db_info['table']} WHERE {$db_info['meta_id_field']} = %d", $meta_id ) ); // phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared if ( empty( $meta ) ) { return false; } if ( isset( $meta->meta_value ) ) { $meta->meta_value = maybe_unserialize( $meta->meta_value ); } return $meta; } /** * Retrieves metadata by meta key. * * @param \WC_Abstract_Order $object Object ID. * @param string $meta_key Meta key. * * @return \stdClass|bool Metadata object or FALSE if not found. */ public function get_metadata_by_key( &$object, string $meta_key ) { global $wpdb; $db_info = $this->get_db_info(); // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared $meta = $wpdb->get_results( $wpdb->prepare( "SELECT {$db_info['meta_id_field']}, meta_key, meta_value, {$db_info['object_id_field']} FROM {$db_info['table']} WHERE meta_key = %s AND {$db_info['object_id_field']} = %d", $meta_key, $object->get_id(), ) ); // phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared if ( empty( $meta ) ) { return false; } foreach ( $meta as $row ) { if ( isset( $row->meta_value ) ) { $row->meta_value = maybe_unserialize( $row->meta_value ); } } return $meta; } /** * Returns distinct meta keys in use. * * @since 8.8.0 * * @param int $limit Maximum number of meta keys to return. Defaults to 100. * @param string $order Order to use for the results. Either 'ASC' or 'DESC'. Defaults to 'ASC'. * @param bool $include_private Whether to include private meta keys in the results. Defaults to FALSE. * @return string[] */ public function get_meta_keys( $limit = 100, $order = 'ASC', $include_private = false ) { global $wpdb; $db_info = $this->get_db_info(); $query = "SELECT DISTINCT meta_key FROM {$db_info['table']} "; if ( ! $include_private ) { $query .= $wpdb->prepare( 'WHERE meta_key != \'\' AND meta_key NOT LIKE %s ', $wpdb->esc_like( '_' ) . '%' ); } else { $query .= "WHERE meta_key != '' "; } $order = in_array( strtoupper( $order ), array( 'ASC', 'DESC' ), true ) ? $order : 'ASC'; $query .= 'ORDER BY meta_key ' . $order . ' '; if ( $limit ) { $query .= $wpdb->prepare( 'LIMIT %d ', $limit ); } return $wpdb->get_col( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- $query is prepared. } }
Fatal error: Uncaught Error: Class "Automattic\WooCommerce\Internal\DataStores\CustomMetaDataStore" not found in /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStoreMeta.php:13 Stack trace: #0 /home/valigeria/public_html/wp-content/plugins/woocommerce/vendor/jetpack-autoloader/class-php-autoloader.php(90): require() #1 [internal function]: Automattic\Jetpack\Autoloader\jp12ea33bcea6a641c43d24712adc9f0b6\PHP_Autoloader::load_class('Automattic\\WooC...') #2 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Definition/Definition.php(211): class_exists('Automattic\\WooC...') #3 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Definition/DefinitionAggregate.php(94): Automattic\WooCommerce\Vendor\League\Container\Definition\Definition->resolve(false) #4 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Container.php(157): Automattic\WooCommerce\Vendor\League\Container\Definition\DefinitionAggregate->resolve('Automattic\\WooC...', false) #5 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DependencyManagement/ExtendedContainer.php(176): Automattic\WooCommerce\Vendor\League\Container\Container->get('Automattic\\WooC...', false) #6 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Argument/ArgumentResolverTrait.php(45): Automattic\WooCommerce\Internal\DependencyManagement\ExtendedContainer->get('Automattic\\WooC...') #7 [internal function]: Automattic\WooCommerce\Vendor\League\Container\Definition\Definition->Automattic\WooCommerce\Vendor\League\Container\Argument\{closure}('Automattic\\WooC...') #8 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Argument/ArgumentResolverTrait.php(19): array_map(Object(Closure), Array) #9 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DependencyManagement/Definition.php(56): Automattic\WooCommerce\Vendor\League\Container\Definition\Definition->resolveArguments(Array) #10 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DependencyManagement/Definition.php(29): Automattic\WooCommerce\Internal\DependencyManagement\Definition->invokeInit(Object(Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore)) #11 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Definition/Definition.php(212): Automattic\WooCommerce\Internal\DependencyManagement\Definition->resolveClass('Automattic\\WooC...') #12 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Definition/DefinitionAggregate.php(94): Automattic\WooCommerce\Vendor\League\Container\Definition\Definition->resolve(false) #13 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Container.php(157): Automattic\WooCommerce\Vendor\League\Container\Definition\DefinitionAggregate->resolve('Automattic\\WooC...', false) #14 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DependencyManagement/ExtendedContainer.php(176): Automattic\WooCommerce\Vendor\League\Container\Container->get('Automattic\\WooC...', false) #15 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Argument/ArgumentResolverTrait.php(45): Automattic\WooCommerce\Internal\DependencyManagement\ExtendedContainer->get('Automattic\\WooC...') #16 [internal function]: Automattic\WooCommerce\Vendor\League\Container\Definition\Definition->Automattic\WooCommerce\Vendor\League\Container\Argument\{closure}('Automattic\\WooC...') #17 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Argument/ArgumentResolverTrait.php(19): array_map(Object(Closure), Array) #18 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DependencyManagement/Definition.php(56): Automattic\WooCommerce\Vendor\League\Container\Definition\Definition->resolveArguments(Array) #19 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DependencyManagement/Definition.php(29): Automattic\WooCommerce\Internal\DependencyManagement\Definition->invokeInit(Object(Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController)) #20 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Definition/Definition.php(212): Automattic\WooCommerce\Internal\DependencyManagement\Definition->resolveClass('Automattic\\WooC...') #21 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Definition/DefinitionAggregate.php(94): Automattic\WooCommerce\Vendor\League\Container\Definition\Definition->resolve(false) #22 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Container.php(157): Automattic\WooCommerce\Vendor\League\Container\Definition\DefinitionAggregate->resolve('Automattic\\WooC...', false) #23 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DependencyManagement/ExtendedContainer.php(176): Automattic\WooCommerce\Vendor\League\Container\Container->get('Automattic\\WooC...', false) #24 /home/valigeria/public_html/wp-content/plugins/woocommerce/lib/packages/League/Container/Container.php(178): Automattic\WooCommerce\Internal\DependencyManagement\ExtendedContainer->get('Automattic\\WooC...', false) #25 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DependencyManagement/ExtendedContainer.php(176): Automattic\WooCommerce\Vendor\League\Container\Container->get('Automattic\\WooC...', false) #26 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Container.php(120): Automattic\WooCommerce\Internal\DependencyManagement\ExtendedContainer->get('Automattic\\WooC...') #27 /home/valigeria/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php(271): Automattic\WooCommerce\Container->get('Automattic\\WooC...') #28 /home/valigeria/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php(194): WooCommerce->init_hooks() #29 /home/valigeria/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php(152): WooCommerce->__construct() #30 /home/valigeria/public_html/wp-content/plugins/woocommerce/woocommerce.php(51): WooCommerce::instance() #31 /home/valigeria/public_html/wp-content/plugins/woocommerce/woocommerce.php(66): WC() #32 /home/valigeria/public_html/wp-settings.php(517): include_once('/home/valigeria...') #33 /home/valigeria/public_html/wp-config.php(111): require_once('/home/valigeria...') #34 /home/valigeria/public_html/wp-load.php(50): require_once('/home/valigeria...') #35 /home/valigeria/public_html/wp-blog-header.php(13): require_once('/home/valigeria...') #36 /home/valigeria/public_html/index.php(17): require('/home/valigeria...') #37 {main} thrown in /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStoreMeta.php on line 13