Automattic\WooCommerce\Internal\DataStores

CustomMetaDataStore::add_meta()publicWC 1.0

Add new piece of meta.

{} Это метод класса: CustomMetaDataStore{}

Хуков нет.

Возвращает

int. meta ID

Использование

$CustomMetaDataStore = new CustomMetaDataStore();
$CustomMetaDataStore->add_meta( $object, $meta );
$object(WC_Data) (обязательный) (передается по ссылке — &)
WC_Data object.
$meta(stdClass) (обязательный)
(containing ->key and ->value).

Код CustomMetaDataStore::add_meta() WC 6.7.0

public function add_meta( &$object, $meta ) {
	global $wpdb;

	if ( ! is_a( $meta, 'WC_Meta_Data' ) ) {
		return false;
	}

	$db_info = $this->get_db_info();

	$object_id  = $object->get_id();
	$meta_key   = wp_unslash( wp_slash( $meta->key ) );
	$meta_value = maybe_serialize( is_string( $meta->value ) ? wp_unslash( wp_slash( $meta->value ) ) : $meta->value );

	// phpcs:disable WordPress.DB.SlowDBQuery.slow_db_query_meta_value,WordPress.DB.SlowDBQuery.slow_db_query_meta_key
	$result = $wpdb->insert(
		$db_info['table'],
		array(
			$db_info['object_id_field'] => $object_id,
			'meta_key'                  => $meta_key,
			'meta_value'                => $meta_value,
		)
	);
	// phpcs:enable WordPress.DB.SlowDBQuery.slow_db_query_meta_value,WordPress.DB.SlowDBQuery.slow_db_query_meta_key

	return $result ? (int) $wpdb->insert_id : false;
}