Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Создание сайтов Харьков

Фильтр по категориям товаров в админке WP E-commerce

3 августа 2011 в 2:30 Автор: Nikita_Sp в категории Статьи о php 4 комментария

Данный пост написан в связи обнаружением недоработки в связке WordPress 3.2.x и WP e-Commerce 3.8.5. Хотя эта недоработка находиться именно в файлах плагина WP E-commerce версии 3.8.5, возможно в ранних версиях так же может быть замечен данный баг.

Проблема состоит в том, что в админ-панеле, в разделе «Товары», не отображается корректно список всех категорий магазина.

Сегодня мы это исправим! Итак, функция вывода списка категорий для фильтра реализована в файле display-items.page.php, который находится по адресу: wp-content/plugins/wp-e-commerce/wpsc-admin/
Итак, находим нужную нам функцию на строке ~285 под названием wpsc_cats_restrict_manage_posts_print_terms.

И вносим свои изменения и корректировки:

вместо

	$terms = get_terms( $taxonomy, array( 'parent' => $parent ) );
	if( !($terms instanceof WP_Error) && !empty($terms) )

пишем

	$terms = get_terms( $taxonomy, array('hide_empty'=>0, 'parent'=>$parent));
	if( !($terms instanceof WP_Error) && !empty($terms) ){

и не забываем добавить } (фигурную скобку) в конце функции.

Вот как выглядит готовая функция:

function wpsc_cats_restrict_manage_posts_print_terms($taxonomy, $parent = 0, $level = 0){
	$prefix = str_repeat( '   ' , $level );
// Закоментируйте, ибо может пригодиться
//	$terms = get_terms( $taxonomy, array( 'parent' => $parent ) );
//	if( !($terms instanceof WP_Error) && !empty($terms) )

// То что вставили, чтобы знали что удалить потом =)
	$terms = get_terms( $taxonomy, array('hide_empty'=>0, 'parent'=>$parent));
	if( !($terms instanceof WP_Error) && !empty($terms) ){
// Конец хака
		foreach ( $terms as $term ){
			echo '<option value="'. $term->slug . '"', ( isset($_GET[$term->taxonomy]) && $_GET[$term->taxonomy] == $term->slug) ? ' selected="selected"' : '','>' . $prefix . $term->name .' (' . $term->count .')</option>';
			wpsc_cats_restrict_manage_posts_print_terms($taxonomy, $term->term_id, $level+1);
		}
		}
}

Вроде на этом и все. Спасибо за внимание, и за то что читаете мой блог. Пробуем, пишем отзывы, если помогло — говорим «Спасибо»! 🙂
Всем удачного кодинга!

4 комментария

  • Снизу плагин в виде травы классный=)..не можешь подсказать, как называется?..или сам делал?)..если можно напиши на почту=)

  • А не подскажите как сделать сортировку товара в самой категории? т.е. что б добавленный в последнюю очередь товар показывался сверху списка товаров, а не в конце?

    • В админке в настройках магазина вкладка вроде «Презентация».
      Там можно выбрать как сортировать товары в категориях. Если хотите, там есть Drag’n’Drop — сортировка перетягиваниями (Тяни и бросай — такой корявый перевод дает русификатор вроде, не помню точно).
      Т.е. можете выбрать D’n’Drop и потом просто войдя в админке в список продуктов, выбрать в фильтре нужную категорию и перетаскивая сортировать продукты.
      Других способов пока не знаю и не искал, если честно — не было надобности 🙂

Добавить комментарий для besha Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вверх!

Меню блога

Категории блога

Облако тегов