Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Save downloadable files for a WooCommerce product.
- *
- * @param WC_Product $product Product instance.
- * @param array $downloads Array of download data.
- *
- * @return WC_Product
- */
- protected function save_downloadable_files( $product, $downloads ) {
- $download_files = [];
- foreach ( $downloads as $download_id => $download_data ) {
- // Skip if the file URL is empty
- if ( empty( $download_data['file'] ) ) {
- continue;
- }
- // Initialize a new download object
- $download = new WC_Product_Download();
- $download->set_id( $download_id );
- $download->set_name( ! empty( $download_data['name'] ) ? $download_data['name'] : wc_get_filename_from_url( $download_data['file'] ) );
- // Apply the filter to the file path
- $filtered_file_path = apply_filters( 'woocommerce_file_download_path', $download_data['file'], $product, $download_id );
- $download->set_file( $filtered_file_path );
- $download_files[] = $download;
- }
- // Apply a filter to the array of downloads before setting it on the product
- $filtered_download_files = apply_filters( 'woocommerce_product_download_files', $download_files, $product );
- // Set the downloads on the product
- $product->set_downloads( $filtered_download_files );
- return $product;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement