WooCommerce – nowa kolumna na liście produktów

Lista produktów w panelu administracyjnym WooCommerce jest dość uboga w informacje. Standardowo to  zdjęcie, nazwa, SKU, stan magazynu, cena, kategorie, tagi, wyróżniony oraz data opublikowania produktu, jednak często zdarza się, że to nie jest wystarczająca ilość informacji dla właścicieli sklepów. Jak sobie z tym poradzić? Możemy dodać swoją własną kolumnę która wyświetli to co jest nam potrzebne.

 

Jak dodać nową kolumnę na liście produktów?

Na początku taki kod:

add_filter( 'manage_edit-product_columns', 'sem_woo_admin_nowa_kolumna' );

function sem_woo_admin_nowa_kolumna( $columns ) {
    $columns['producent'] = 'Producent';
    return $columns;
}

W ten sposób stworzyliśmy dodatkową kolumnę, a teraz musimy sprawić by zawierała interesujące nas informacje. W tym przypadku będzie to jeden z atrybutów produktu.

add_action( 'manage_product_posts_custom_column', 'sem_woo_admin_nowa_kolumna_wartosc' );

function sem_woo_admin_nowa_kolumna_wartosc( $column ) {

  global $product;
  $sem_atributes_name = $product->get_attribute('pa_marka'); 

  if( $column == 'producent' ){
  echo $sem_atributes_name;
  }

}

Projekt przez nas realizowany wykorzystywał dobrze znany i nieoceniony plugin Advanced Custom Fields, a jednym z pól, które zostało utworzone przy jego pomocy był kod producenta. Markę produktu, która była atrybutem wstawiliśmy do kolumny w powyższym kodzie. Teraz to samo, ale dodatkowo wstawimy drugą wartość z własnego dodatkowego pola “kod producenta”.

add_action( 'manage_product_posts_custom_column', 'sem_woo_admin_nowa_kolumna_wartosc' );

function sem_woo_admin_nowa_kolumna_wartosc( $column ) {

  global $product;
  $sem_atributes_name = $product->get_attribute('pa_marka'); 
  $sem_acf_kod_producenta = get_field("kod_producenta"); 

  if( $column == 'producent' ){
  echo $sem_atributes_name.' - '.$sem_acf_kod_producenta;
  }

}

Tym krótkim kodem sprawiliśmy, że w panelu administracyjnym w ostatniej kolumnie, przy każdym produkcie pojawi się marka produktu oraz jego kod np. Stanley – FMC011S2.

Jak usunąć wybrane kolumny?

Jeżeli nie potrzebujesz wszystkich kolumn, które wyświetlają się standardowo na liście produktów oraz zamówień to możesz je w bardzo prosty sposób usunąć. Opisaliśmy to w artykule “jak usunąć wybraną kolumnę na liście produktów lub zamówień”