// 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 '' . esc_html($total_sold) . ''; } } // 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'); } }