);
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