Быстрое изменение товаров
Для того чтобы массово отредактировать товары 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 цены — основная и со скидкой, то этим кодом не редактируется ни одна из них. Думаю, здесь нужно как-то иначе подходить к вопросу.Есть ещё одна интересная вещь, может Вы знаете. При редактировании заказа (а именно удаление или добавление товара в заказ на прямую из админки), не происходит учет склада. Т.е. если добавить товар в заказ — со склада позиция не уходит, а если удалить из заказа товар — то на склад она не добавляется. Так как работает с физ товарами и с доставкой курьером, оплатой по факту, То очень часто клиенты звонят с просьбой изменить заказ (добавить/убрать/заменить). Всё это плохо сказывается над учетом склада)Может быть у Вас есть идеи?
нигде не найду описание или пример как пакетно добавить атрибуты к товарам?Пример: в товаре есть атрибут бренда «производитель такой то», к этому атрибуту в карточке товара надо добавить еще правило «производитель такой то — столы» Те выглядеть должно так: Бренд: «производитель такой то». «производитель такой то — столы» .
Я не вполне понял, что Вы хотите реализовать. Вы пытаетесь реализовать иерархическую структуру метаполей?
здравствуйте, а как сделать вывод на примере Атрибута, вместо цены ?
Вы имеете в виду массовое изменение какого-либо атрибута у товаров?
Плагин не рабочий для обычного пользователя без знания PHP,CSS,HTML
Не спорю. Зачастую публикую интересные решения, не заботясь чтобы они работают сами по себе. Нужно вникать в PHP, CSS, HTML.