WC_Meta_Box_Product_Data::prepare_attributes()public staticWC 1.0

Prepare attributes for save.

Метод класса: WC_Meta_Box_Product_Data{}

Возвращает

Массив.

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

$result = WC_Meta_Box_Product_Data::prepare_attributes( $data );
$data(массив)
Attribute data.
По умолчанию: false

Код WC_Meta_Box_Product_Data::prepare_attributes() WC 8.7.0

public static function prepare_attributes( $data = false ) {
	$attributes = array();

	if ( ! $data ) {
		$data = stripslashes_deep( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
	}

	if ( isset( $data['attribute_names'], $data['attribute_values'] ) ) {
		$attribute_names         = $data['attribute_names'];
		$attribute_values        = $data['attribute_values'];
		$attribute_visibility    = isset( $data['attribute_visibility'] ) ? $data['attribute_visibility'] : array();
		$attribute_variation     = isset( $data['attribute_variation'] ) ? $data['attribute_variation'] : array();
		$attribute_position      = $data['attribute_position'];
		$attribute_names_max_key = max( array_keys( $attribute_names ) );

		for ( $i = 0; $i <= $attribute_names_max_key; $i++ ) {
			if ( empty( $attribute_names[ $i ] ) || ! isset( $attribute_values[ $i ] ) ) {
				continue;
			}
			$attribute_id   = 0;
			$attribute_name = wc_clean( esc_html( $attribute_names[ $i ] ) );

			if ( 'pa_' === substr( $attribute_name, 0, 3 ) ) {
				$attribute_id = wc_attribute_taxonomy_id_by_name( $attribute_name );
			}

			$options = isset( $attribute_values[ $i ] ) ? $attribute_values[ $i ] : '';

			if ( is_array( $options ) ) {
				// Term ids sent as array.
				$options = wp_parse_id_list( $options );
			} else {
				// Terms or text sent in textarea.
				$options = 0 < $attribute_id ? wc_sanitize_textarea( esc_html( wc_sanitize_term_text_based( $options ) ) ) : wc_sanitize_textarea( esc_html( $options ) );
				$options = wc_get_text_attributes( $options );
			}

			if ( empty( $options ) ) {
				continue;
			}

			$attribute = new WC_Product_Attribute();
			$attribute->set_id( $attribute_id );
			$attribute->set_name( $attribute_name );
			$attribute->set_options( $options );
			$attribute->set_position( $attribute_position[ $i ] );
			$attribute->set_visible( isset( $attribute_visibility[ $i ] ) );
			$attribute->set_variation( isset( $attribute_variation[ $i ] ) );
			/* phpcs:disable WooCommerce.Commenting.CommentHooks.MissingHookComment */
			$attributes[] = apply_filters( 'woocommerce_admin_meta_boxes_prepare_attribute', $attribute, $data, $i );
			/* phpcs: enable */
		}
	}
	return $attributes;
}