function ped_render_auditoria_produtos() {
// ====== Filtros ======
$f_hidden = isset($_GET['f_hidden']);
$f_nostock = isset($_GET['f_nostock']);
$f_nodl = isset($_GET['f_nodl']);
echo '
';
echo '
Regras de uso dos produtos digitais
🟢 Produto vendável (para novos clientes)
✔️ Deve ter estoque
✔️ Deve estar visível no catálogo e na pesquisa
✔️ Deve ser enviado para o catálogo do Facebook
🔵 Produto apenas para clientes antigos (download)
❌ Sem estoque
❌ Oculto no catálogo e na pesquisa
✔️ Download mantido para quem já comprou
';
// ====== FORM DE FILTRO ======
echo '
';
if ( ! class_exists('WooCommerce') ) {
echo '
WooCommerce não ativo.
';
return;
}
$query = new WP_Query([
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
[
'key' => '_downloadable',
'value' => 'yes'
]
]
]);
echo '';
echo '
| ID |
Produto |
Visibilidade |
Estoque |
Download |
Ação |
';
$total = 0;
foreach ( $query->posts as $post ) {
$product = wc_get_product( $post->ID );
if ( ! $product ) continue;
$has_download = ! empty( $product->get_downloads() );
$visibility = $product->get_catalog_visibility();
$stock = $product->get_stock_status();
// ====== APLICA FILTROS ======
if ( $f_hidden && $visibility !== 'hidden' ) continue;
if ( $f_nostock && $stock === 'instock' ) continue;
if ( $f_nodl && $has_download ) continue;
$total++;
// Visibilidade
$vis_label = ($visibility === 'hidden')
? 'Oculto'
: 'Visível';
// Estoque
if ( $stock === 'instock' ) {
$stock_label = 'Em estoque';
} elseif ( $stock === 'outofstock' ) {
$stock_label = 'Sem estoque';
} else {
$stock_label = 'Sob encomenda';
}
// Download
$dl_label = $has_download
? 'OK'
: 'Ausente';
echo '';
echo '| ' . esc_html( $product->get_id() ) . ' | ';
echo '' . esc_html( $product->get_name() ) . ' | ';
echo '' . $vis_label . ' | ';
echo '' . $stock_label . ' | ';
echo '' . $dl_label . ' | ';
echo '
Editar
| ';
echo '
';
}
if ( $total === 0 ) {
echo '| Nenhum produto encontrado com os filtros atuais 🎉 |
';
}
echo '
';
echo 'Total: ' . intval($total) . '
';
echo '';
}