Automattic\WooCommerce\Internal\DataStores

CustomMetaDataStore::get_metadata_by_keypublicWC 1.0

Retrieves metadata by meta key.

Method of the class: CustomMetaDataStore{}

No Hooks.

Returns

\stdClass[]|false. Metadata object or FALSE if not found.

Usage

$CustomMetaDataStore = new CustomMetaDataStore();
$CustomMetaDataStore->get_metadata_by_key( $object, $meta_key );
$object(WC_Data) (required) (passed by reference — &)
Object ID.
$meta_key(string) (required)
Meta key.

CustomMetaDataStore::get_metadata_by_key() code WC 10.8.1

public function get_metadata_by_key( &$object, string $meta_key ) {
	global $wpdb;

	if ( ! $object->get_id() ) {
		return false;
	}

	$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;
}