WC_API_Products::save_downloadable_files()privateWC 2.2

Save downloadable files

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

Хуки из метода

Возвращает

WC_Product.

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

// private - только в коде основоного (родительского) класса
$result = $this->save_downloadable_files( $product, $downloads, $deprecated );
$product(WC_Product) (обязательный)
-
$downloads(массив) (обязательный)
-
$deprecated(int)
Deprecated since 3.0.

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

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

Код WC_API_Products::save_downloadable_files() WC 8.7.0

private function save_downloadable_files( $product, $downloads, $deprecated = 0 ) {
	if ( $deprecated ) {
		wc_deprecated_argument( 'variation_id', '3.0', 'save_downloadable_files() does not require a variation_id anymore.' );
	}

	$files = array();
	foreach ( $downloads as $key => $file ) {
		if ( isset( $file['url'] ) ) {
			$file['file'] = $file['url'];
		}

		if ( empty( $file['file'] ) ) {
			continue;
		}

		$download = new WC_Product_Download();
		$download->set_id( ! empty( $file['id'] ) ? $file['id'] : wp_generate_uuid4() );
		$download->set_name( $file['name'] ? $file['name'] : wc_get_filename_from_url( $file['file'] ) );
		$download->set_file( apply_filters( 'woocommerce_file_download_path', $file['file'], $product, $key ) );
		$files[]  = $download;
	}
	$product->set_downloads( $files );

	return $product;
}