WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

WC_API_Products::save_default_attributes() protected WC 3.0.0

Save default attributes.

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

Хуков нет.

Возвращает

WC_Product.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->save_default_attributes( $product, $request );
$product(WC_Product) (обязательный)
-
$request(массив) (обязательный)
-

Список изменений

С версии 3.0.0 Введена.

Код WC_API_Products::save_default_attributes() WC 5.6.0

protected function save_default_attributes( $product, $request ) {
	// Update default attributes options setting.
	if ( isset( $request['default_attribute'] ) ) {
		$request['default_attributes'] = $request['default_attribute'];
	}

	if ( isset( $request['default_attributes'] ) && is_array( $request['default_attributes'] ) ) {
		$attributes         = $product->get_attributes();
		$default_attributes = array();

		foreach ( $request['default_attributes'] as $default_attr_key => $default_attr ) {
			if ( ! isset( $default_attr['name'] ) ) {
				continue;
			}

			$taxonomy = sanitize_title( $default_attr['name'] );

			if ( isset( $default_attr['slug'] ) ) {
				$taxonomy = $this->get_attribute_taxonomy_by_slug( $default_attr['slug'] );
			}

			if ( isset( $attributes[ $taxonomy ] ) ) {
				$_attribute = $attributes[ $taxonomy ];

				if ( $_attribute['is_variation'] ) {
					$value = '';

					if ( isset( $default_attr['option'] ) ) {
						if ( $_attribute['is_taxonomy'] ) {
							// Don't use wc_clean as it destroys sanitized characters.
							$value = sanitize_title( trim( stripslashes( $default_attr['option'] ) ) );
						} else {
							$value = wc_clean( trim( stripslashes( $default_attr['option'] ) ) );
						}
					}

					if ( $value ) {
						$default_attributes[ $taxonomy ] = $value;
					}
				}
			}
		}

		$product->set_default_attributes( $default_attributes );
	}

	return $product;
}