Быстрое изменение товаров
Для того чтобы массово отредактировать товары woocommerce нужно установить плагин Woocommerce advanced bulk edit. В репозитории плагинов WordPress его нет, он платный. Если поискать на просторах интернета — можно найти и бесплатно.
Плагин интуитивно понятен и прост в настройке и использовании.
Работа с плагином Woocommerce advanced bulk edit
1. Первым делом выбираем какие поля нужно отображать в таблице массового редактирования. Синяя кнопка Show/Hide Fields внизу слева.
2. Делаем выборку товаров. Сверху вводим данные категория (можно несколько), производитель (произвольная таксономия), цена (>), метки и т.д. После того как выбрали нажать кнопку Get Products.
3. Если из выбранных товаров нам нужно сделать более точную выборку — кнопка Selection Manager. Там в необходимом поле вводим значение по которому нужно выделить строки. Например нужно выделить все вариативные товары, вводим в поле тип товара — variable, в выпадающем списке contains (содержит), и нажимаем ОК. Все необходимые товары выделятся галкой.
4. Массовое добавление/изменение параметров. После того как мы выделили необходимые строки, жмем Bulk Edit, и там заполняем соответствующие поля для массового заполнения.
После всех манипуляций жмем кнопку Save Changes.
Массовое добавление сопутствующих товаров
Если у нас на сайте много товаров, то «по быстрому» наполнить сопутствующие товары можно через плагин Advanced bulk edit.
Для этого делаем все как описано выше. При этом включаем поле Cross-Sells. Делаем выборку по определенной категории, т.к. в рамках одной категории можно делать одинаковые сопутствующие товары. При заполнении указываем через запятую ID сопутствующих товаров (644, 1042, 1024, 1587, 1319). И таким образом заполняем сопутку для каждой категории.
И не забываем после всех действий — надо нажать кнопку Save Changes!
Массовое добавление миниатюр
Для того чтобы добавить миниатюру для нескольких (многих/всех) товаров. Нужно чтоб данное поле было включено + выбрать галками все товары для добавления. Нажать на пустою клетку миниатюры у любого товара. !Включить галку Apply action to all selected products (Применить для всех выбранных), нажать ссылку Set product image и выбрать необходимое изображение. Таким же образом можно массово удалять или менять миниатюры.
Быстрое изменение цен
Чтобы была возможность быстро менять цены товаров не входя в каждую карточку, нужно прописать следующую функцию (работает на ajax!):
function true_add_post_columns($my_columns){ $slider = array( 'price' => 'Цена' ); $my_columns = array_slice( $my_columns, 0, 5, true ) + $slider + array_slice( $my_columns, 5, NULL, true ); return $my_columns; } function true_fill_post_columns( $column ) { global $post; switch ( $column ) { case 'price': echo ' '; break; } } add_filter( 'manage_edit-product_columns', 'true_add_post_columns', 10, 1 ); // manage_edit-{тип поста}_columns add_action( 'manage_posts_custom_column', 'true_fill_post_columns', 10, 1 ); function admin_scripts_basic() { wp_enqueue_script('jquery'); wp_enqueue_script('ajaxpostmeta', get_stylesheet_directory_uri() . '/ajax-post-meta.js', array('jquery')); } add_action( 'admin_enqueue_scripts', 'admin_scripts_basic' ); function updatePrice_callback(){ update_post_meta($_POST['product_id'], '_price', esc_attr($_POST['price_val'])); die(); } if( is_admin() ) { add_action('wp_ajax_updatePrice', 'updatePrice_callback'); // wp_ajax_nopriv_ не нужен, так как мы работаем в админке (а в админку не попадают незареганные пользователи) }
Содержимое подключенного скрипта ajax-post-meta.js
jQuery(function($){ $('.this_price').blur(function(){ this_price = $(this); $.ajax({ type:'POST', url:ajaxurl, data:'action=updatePrice&price_val=' + this_price.val() + '&product_id=' + this_price.attr('data-id'), beforeSend:function(xhr){ this_price.attr('readonly','readonly').next().html('Сохраняю…'); }, success:function(results){ this_price.removeAttr('readonly').next().html('Сохранено'); } }); }); });
Поиск и вывод произвольных полей
Чтобы массово редактировать произвольные поля их необходимо найти. Для этого переходим в интерфейс Find Custom Fields (снизу под таблицей товаров). Вводим ID товара, у которого это поле точно не пусто. Появится список потенциальных полей выбираем нужный и снизу нажимаем Save Selected and Close. Произвольные поля включаются /отключаются не из интерфейса Column Settings (Show/Hide Fields) как все остальные поля, а из Custom Fields. Там же можно и создать дополнительное поле.
Подскажите как вывести в быстром редактировании цен вариативные цены (У меня их 4-5)
Как это сделать пока не знаю. Но думаю это ОЧЕНЬ проблематично.
Александр, здравствуйте.Я новичок в коде и прочем.Функцию я прописал в дочернюю тему в файл функций.пшпВ этой же папке создал файл ajax-post-meta.js и него вставил этот скрипт.Сохранил. Захожу в админку, в товары. Появилось окошко для редактирования цены. Но при вводе новой цены, ничего не меняется.
И ещё хотел спросить, можно ли сделать так же и с кол-вом на складе. Тоже прямое редактирование.
Постараюсь в ближайшие дни проработать данный функционал с количеством товара. По поводу неработоспособности скрипта: скажите, какая у Вас версия WC?
Всё со скриптом хорошо:)Спасибо. Думаю, что для товаров сам соображу.Есть такой момент. Если у товара забиты 2 цены — основная и со скидкой, то этим кодом не редактируется ни одна из них. Думаю, здесь нужно как-то иначе подходить к вопросу.Есть ещё одна интересная вещь, может Вы знаете. При редактировании заказа (а именно удаление или добавление товара в заказ на прямую из админки), не происходит учет склада. Т.е. если добавить товар в заказ — со склада позиция не уходит, а если удалить из заказа товар — то на склад она не добавляется. Так как работает с физ товарами и с доставкой курьером, оплатой по факту, То очень часто клиенты звонят с просьбой изменить заказ (добавить/убрать/заменить). Всё это плохо сказывается над учетом склада)Может быть у Вас есть идеи?
нигде не найду описание или пример как пакетно добавить атрибуты к товарам?Пример: в товаре есть атрибут бренда «производитель такой то», к этому атрибуту в карточке товара надо добавить еще правило «производитель такой то — столы» Те выглядеть должно так: Бренд: «производитель такой то». «производитель такой то — столы» .
Я не вполне понял, что Вы хотите реализовать. Вы пытаетесь реализовать иерархическую структуру метаполей?
здравствуйте, а как сделать вывод на примере Атрибута, вместо цены ?
Вы имеете в виду массовое изменение какого-либо атрибута у товаров?