Импортер продуктов WooCommerce: измените каталог загрузки мультимедиа на / {SKU} / - PullRequest
0 голосов
/ 21 января 2019

В WooCommerce мы хотим организовать медиа продуктов, подобных этому:

/wp-content/products/{SKU}/{allImagesofTheSpecificProdukt}

Теперь для стандартного загрузчика в разделе редактирования продукта / страницы мы кодировали его, и он работает как шарм:

Собственный плагин:

/* Change Upload-Dir for Products /wp-content/products/{SKU} */
add_filter( 'wp_handle_upload_prefilter', 'test_product_pre_upload' );
function test_product_pre_upload( $file ) {
    add_filter( 'upload_dir', 'test_product_upload_dir' );
    return $file;
}
function test_product_upload_dir( $param ) {
    $id = $_REQUEST['post_id'];
    $parent = get_post( $id )->post_parent;

    if (get_post_type($id) == "product" || get_post_type($parent) == "product") {
        $sku = get_post_meta( $id, '_sku', true );
        if ($sku == '' || $sku == NULL) {
            $sku = get_post_meta( $parent, '_sku', true );
        }
        if ($sku != '') {
            $param['subdir']  = '/products/' . $param['subdir'];
            $param['path'] = $param['basedir'] . $param['subdir'] . preg_replace('/\s+/', '', $sku);
            $param['url']  = $param['baseurl'] . $param['subdir'] . preg_replace('/\s+/', '', $sku);
        } else {
            $param['subdir']  = '/products/' . $param['subdir'];
            $param['path'] = $param['basedir'] . $param['subdir'];
            $param['url']  = $param['baseurl'] . $param['subdir'];
        }
    }
    return $param;
}

Но теперь мы хотим, чтобы мы также использовали WooCommerce Importer (встроенная версия - без плагина), который тоже работает так же. Как это возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...