// Přidání sloupce "Prodáno kusů"
add_filter('manage_edit-product_columns', 'custom_product_sold_column');
function custom_product_sold_column($columns) {
$columns['total_sold'] = __('Prodáno kusů', 'woocommerce');
return $columns;
}
// Výpis obsahu sloupce s barevným rozlišením
add_action('manage_product_posts_custom_column', 'custom_product_sold_column_content', 10, 2);
function custom_product_sold_column_content($column, $post_id) {
if ($column === 'total_sold') {
$product = wc_get_product($post_id);
// Získání počtu prodaných kusů
if ($product && $product->is_type('variable')) {
$total_sold = 0;
foreach ($product->get_children() as $variation_id) {
$variation = wc_get_product($variation_id);
$total_sold += (int) $variation->get_total_sales();
}
} else {
$total_sold = (int) $product->get_total_sales();
}
// Nastavení barvy textu
$color = 'black'; // defaultní barva
if ($total_sold === 0) {
$color = 'red'; // žádný kus prodán, červená
}
// Získání nejprodávanějšího produktu
global $wpdb;
$most_sold_product = $wpdb->get_var("SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_key = '_stock_status' ORDER BY meta_value_num DESC LIMIT 1");
// Pokud je aktuální produkt tím nejprodávanějším, nastavíme zelenou barvu
if ($post_id == $most_sold_product) {
$color = 'green';
}
// Zobrazení počtu prodaných kusů s nastavenou barvou
echo '<span style="color:' . esc_attr($color) . ';">' . esc_html($total_sold) . '</span>';
}
}
// Označení sloupce jako řaditelného
add_filter('manage_edit-product_sortable_columns', 'custom_product_sold_column_sortable');
function custom_product_sold_column_sortable($columns) {
$columns['total_sold'] = 'total_sales';
return $columns;
}
// Přizpůsobení dotazu pro řazení podle počtu prodaných
add_action('pre_get_posts', 'custom_product_sold_orderby');
function custom_product_sold_orderby($query) {
if (!is_admin() || !$query->is_main_query()) {
return;
}
// Ověření správného řazení ve správné tabulce
if ($query->get('post_type') === 'product' && $query->get('orderby') === 'total_sales') {
$query->set('meta_key', 'total_sales');
$query->set('orderby', 'meta_value_num');
}
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎