WC_Data::update_meta_data()
Update meta data by key or ID, if provided.
Метод класса: WC_Data{}
Хуков нет.
Возвращает
null
. Ничего (null).
Использование
$WC_Data = new WC_Data(); $WC_Data->update_meta_data( $key, $value, $meta_id );
- $key(строка) (обязательный)
- Meta key.
- $value(строка|массив) (обязательный)
- Meta value.
- $meta_id(int)
- Meta ID.
Список изменений
С версии 2.6.0 | Введена. |
Код WC_Data::update_meta_data() WC Data::update meta data WC 9.7.1
public function update_meta_data( $key, $value, $meta_id = 0 ) { if ( $this->is_internal_meta_key( $key ) ) { $function = 'set_' . ltrim( $key, '_' ); if ( is_callable( array( $this, $function ) ) ) { return $this->{$function}( $value ); } } $this->maybe_read_meta_data(); $array_key = false; if ( $meta_id ) { $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); $array_key = $array_keys ? current( $array_keys ) : false; } else { // Find matches by key. $matches = array(); foreach ( $this->meta_data as $meta_data_array_key => $meta ) { if ( $meta->key === $key ) { $matches[] = $meta_data_array_key; } } if ( ! empty( $matches ) ) { // Set matches to null so only one key gets the new value. foreach ( $matches as $meta_data_array_key ) { $this->meta_data[ $meta_data_array_key ]->value = null; } $array_key = current( $matches ); } } if ( false !== $array_key ) { $meta = $this->meta_data[ $array_key ]; $meta->key = $key; $meta->value = $value; } else { $this->add_meta_data( $key, $value, true ); } }