WC_API_Products::save_default_attributes( WC_Product $product, array $request )
Save default attributes.
Description Description
Parameters Parameters
- $product
-
(Required)
- $request
-
(Required)
Return Return
Source Source
File: includes/legacy/api/v2/class-wc-api-products.php
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;
}
Changelog Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |