WC_Product::set_downloads()
Set downloads.
Метод класса: WC_Product{}
Хуков нет.
Возвращает
null
. Ничего (null).
Использование
$WC_Product = new WC_Product(); $WC_Product->set_downloads( $downloads_array );
- $downloads_array(массив) (обязательный)
- Array of WC_Product_Download objects or arrays.
Список изменений
С версии 3.0.0 | Введена. |
Код WC_Product::set_downloads() WC Product::set downloads WC 9.4.2
public function set_downloads( $downloads_array ) { // When the object is first hydrated, only the previously persisted downloads will be passed in. $existing_downloads = $this->get_object_read() ? (array) $this->get_prop( 'downloads' ) : $downloads_array; $downloads = array(); $errors = array(); $downloads_array = $this->build_downloads_map( $downloads_array ); $existing_downloads = $this->build_downloads_map( $existing_downloads ); foreach ( $downloads_array as $download ) { $download_id = $download->get_id(); $is_new = ! isset( $existing_downloads[ $download_id ] ); $has_changed = ! $is_new && $existing_downloads[ $download_id ]->get_file() !== $downloads_array[ $download_id ]->get_file(); try { $download->check_is_valid( $this->get_object_read() ); $downloads[ $download_id ] = $download; } catch ( Exception $e ) { // We only add error messages for newly added downloads (let's not overwhelm the user if there are // multiple existing files which are problematic). if ( $is_new || $has_changed ) { $errors[] = $e->getMessage(); } // If the problem is with an existing download, disable it. if ( ! $is_new ) { $download->set_enabled( false ); $downloads[ $download_id ] = $download; } } } $this->set_prop( 'downloads', $downloads ); if ( $errors && $this->get_object_read() ) { $this->error( 'product_invalid_download', $errors[0] ); } }