{"id":3165,"date":"2024-02-27T21:25:43","date_gmt":"2024-02-28T01:25:43","guid":{"rendered":"https:\/\/pos.geratec.com.br\/gold\/?page_id=3165"},"modified":"2024-02-28T11:28:11","modified_gmt":"2024-02-28T15:28:11","slug":"report","status":"publish","type":"page","link":"https:\/\/pos.geratec.com.br\/amilcar\/report\/","title":{"rendered":"report"},"content":{"rendered":"<p><!--?php \/* * Template Name: Filtro de Pedidos *\/ \/\/ Adicione aqui o cabe\u00e7alho do WordPress get_header(); ?--><\/p>\n<p><!-- Bootstrap CSS --><\/p>\n<p>&nbsp;<\/p>\n<h2>Filtro de Pedidos<\/h2>\n<form action=\"\" method=\"get\"><label for=\"usuarioSelect\">Usu\u00e1rio:<\/label><br \/>\n<select name=\"usuario\"><option value=\"\">Todos os clientes<\/option><!-- Lista de todos os clientes --><br \/>\n<\/select><br \/>\n<select name=\"usuario\"><!--?php &lt;br ?--> $users = get_users();<br \/>\n<\/select><\/p>\n<p><select name=\"usuario\">foreach ($users as $user) {<br \/>\n<\/select><\/p>\n<p><select name=\"usuario\">echo &#8216;<option value=\"' . $user-&gt;ID . '\">&#8216; . $user-&gt;display_name . &#8216;<\/option>&#8216;;<br \/>\n<\/select><\/p>\n<p><select name=\"usuario\">}<br \/>\n<\/select><\/p>\n<p><select name=\"usuario\">?&gt;<br \/>\n<\/select><\/p>\n<p><label for=\"tipoPagamentoSelect\">Tipo de Pagamento:<\/label><br \/>\n<select name=\"tipo_pagamento\"><option value=\"\">Todos os tipos de pagamento<\/option><!--?php \/\/ Obt\u00e9m todos os m\u00e9todos de pagamento dispon\u00edveis no WooCommerce $payment_gateways = WC()-&gt;payment_gateways-&gt;get_available_payment_gateways();&lt;br ?--> \/\/ Itera sobre os m\u00e9todos de pagamento e cria as op\u00e7\u00f5es para o select<br \/>\n<\/select><\/p>\n<p><select name=\"tipo_pagamento\">foreach ($payment_gateways as $id =&gt; $payment_gateway) {<br \/>\n<\/select><\/p>\n<p><select name=\"tipo_pagamento\">if ($payment_gateway-&gt;is_available()) { \/\/ Verifica se o m\u00e9todo de pagamento est\u00e1 ativo<br \/>\n<\/select><\/p>\n<p><select name=\"tipo_pagamento\">echo &#8216;<option value=\"' . esc_attr($id) . '\">&#8216; . esc_html($payment_gateway-&gt;title) . &#8216;<\/option>&#8216;;<br \/>\n<\/select><\/p>\n<p><select name=\"tipo_pagamento\">}<br \/>\n<\/select><\/p>\n<p><select name=\"tipo_pagamento\">}<br \/>\n<\/select><\/p>\n<p><select name=\"tipo_pagamento\">?&gt;<br \/>\n<\/select><\/p>\n<p><label for=\"categoriaProdutoSelect\">Categoria do Produto:<\/label><br \/>\n<select name=\"categoria_produto\"><option value=\"\">Todas as categorias de produto<\/option><!-- Lista de categorias do WooCommerce --><br \/>\n<\/select><\/p>\n<p><select name=\"categoria_produto\"><!--?php $product_categories = get_terms(array( 'taxonomy' =&gt; 'product_cat',&lt;br ?--> &#8216;hide_empty&#8217; =&gt; false,<br \/>\n<\/select><\/p>\n<p><select name=\"categoria_produto\">));<br \/>\n<\/select><\/p>\n<p><select name=\"categoria_produto\">foreach ($product_categories as $category) {<br \/>\n<\/select><\/p>\n<p><select name=\"categoria_produto\">echo &#8216;<option value=\"' . $category-&gt;term_id . '\">&#8216; . $category-&gt;name . &#8216;<\/option>&#8216;;<br \/>\n<\/select><\/p>\n<p><select name=\"categoria_produto\">}<br \/>\n<\/select><\/p>\n<p><select name=\"categoria_produto\">?&gt;<br \/>\n<\/select><\/p>\n<p><label for=\"dataInicial\">Data Inicial:<\/label><br \/>\n<input id=\"dataInicial\" name=\"data_inicial\" type=\"date\" value=\"&lt;?php echo date('Y-m-d'); ?&gt;\" \/><br \/>\n<label for=\"dataFinal\">Data Final:<\/label><br \/>\n<input id=\"dataFinal\" name=\"data_final\" type=\"date\" value=\"&lt;?php echo date('Y-m-d'); ?&gt;\" \/><br \/>\n<button type=\"submit\">Filtrar<\/button><\/p>\n<\/form>\n<p><!--?php the_content();?--><br \/>\n<!--?php \/\/ Obtendo os par\u00e2metros do formul\u00e1rio $usuario_id = isset($_GET['usuario']) ? intval($_GET['usuario']) : ''; $tipo_pagamento = isset($_GET['tipo_pagamento']) ? sanitize_text_field($_GET['tipo_pagamento']) : ''; $categoria_produto = isset($_GET['categoria_produto']) ? intval($_GET['categoria_produto']) : ''; $data_inicial = isset($_GET['data_inicial']) ? sanitize_text_field($_GET['data_inicial']) : ''; $data_final = isset($_GET['data_final']) ? sanitize_text_field($_GET['data_final']) : ''; \/\/ Construindo os argumentos para a consulta de pedidos $args = array( 'status' =&gt; array('completed', 'processing'), \/\/ Pedidos com status \"completed\" e \"processing\"&lt;br ?--> &#8216;limit&#8217; =&gt; -1, \/\/ Retorna todos os pedidos<br \/>\n&#8216;date_query&#8217; =&gt; array(),<br \/>\n);<br \/>\n\/\/ Aplicando filtros se foram definidos<br \/>\nif (!empty($usuario_id)) {<br \/>\n$args[&#8216;customer&#8217;] = $usuario_id;<br \/>\n}<br \/>\nif (!empty($tipo_pagamento)) {<br \/>\n$args[&#8216;payment_method&#8217;] = $tipo_pagamento;<br \/>\n}<br \/>\nif (!empty($categoria_produto)) {<br \/>\n$args[&#8216;tax_query&#8217;] = array(<br \/>\narray(<br \/>\n&#8216;taxonomy&#8217; =&gt; &#8216;product_cat&#8217;,<br \/>\n&#8216;field&#8217; =&gt; &#8216;term_id&#8217;,<br \/>\n&#8216;terms&#8217; =&gt; $categoria_produto,<br \/>\n),<br \/>\n);<br \/>\n}<br \/>\nif (!empty($data_inicial) &amp;&amp; !empty($data_final)) {<br \/>\n\/\/ Ajustando o formato das datas para a consulta<br \/>\n$data_inicial = date(&#8216;Y-m-d&#8217;, strtotime($data_inicial));<br \/>\n$data_final = date(&#8216;Y-m-d&#8217;, strtotime($data_final));<br \/>\n$args[&#8216;date_query&#8217;] = array(<br \/>\n&#8216;after&#8217; =&gt; $data_inicial,<br \/>\n&#8216;before&#8217; =&gt; $data_final,<br \/>\n&#8216;inclusive&#8217; =&gt; true, \/\/ Inclui as datas de in\u00edcio e fim na consulta<br \/>\n);<br \/>\n}<br \/>\n\/\/ Obtendo os pedidos do WooCommerce com base nos argumentos<br \/>\n$pedidos = wc_get_orders($args);<br \/>\n\/\/ Exibindo os resultados<br \/>\necho &#8221;;<br \/>\necho &#8216;<\/p>\n<h3>Resultados:<\/h3>\n<p>&#8216;;<br \/>\nif ($pedidos) {<br \/>\necho &#8216;<\/p>\n<p>&#8216;;echo &#8221;;echo &#8221;;echo &#8221;;<br \/>\necho &#8221;;<br \/>\necho &#8221;;<br \/>\necho &#8221;;<br \/>\necho &#8221;;<br \/>\necho &#8221;; \/\/ Adiciona o cabe\u00e7alho da forma de pagamento<br \/>\necho &#8221;;<br \/>\necho &#8221;;<br \/>\necho &#8221;;$total_vendas = 0; \/\/ Inicializa o total de vendasforeach ($pedidos as $pedido) {\/\/ Obtendo o n\u00famero do pedido$numero_pedido = $pedido-&gt;get_order_number();\/\/ Obtendo a forma de pagamento$forma_pagamento = $pedido-&gt;get_payment_method();\/\/ Obtendo os itens do pedido$itens = $pedido-&gt;get_items();foreach ($itens as $item) {$produto = $item-&gt;get_product(); \/\/ Obtendo o produto associado ao itemecho &#8221;;\/\/ Exibindo o n\u00famero do pedido apenas na primeira linhaecho &#8221;;<br \/>\necho &#8221;; \/\/ Nome do produto<br \/>\necho &#8221;; \/\/ Categoria do produto<br \/>\necho &#8221;; \/\/ Valor do produto<br \/>\necho &#8221;; \/\/ Total do item<br \/>\nif ($forma_pagamento === &#8216;woo-mercado-pago-pix&#8217;) {<br \/>\n$forma_pagamento = &#8216;Pix&#8217;;<br \/>\n}<br \/>\nif ($forma_pagamento === &#8216;cod&#8217;) {<br \/>\n$forma_pagamento = &#8216;Dinheiro&#8217;;<br \/>\n}<br \/>\necho &#8221;; \/\/ Forma de pagamento<br \/>\necho &#8221;;<br \/>\n$total_vendas += $item-&gt;get_total(); \/\/ Adiciona o total do item ao total de vendas<br \/>\n}<br \/>\n}<br \/>\necho &#8221;;<br \/>\necho &#8216;<\/p>\n<table>\n<thead>\n<tr>\n<th>N\u00famero do Pedido<\/th>\n<th>Nome do Produto<\/th>\n<th>Categoria<\/th>\n<th>Valor<\/th>\n<th>Total<\/th>\n<th>Forma de Pagamento<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>&#8216; . ($item === reset($itens) ? $numero_pedido : &#8221;) . &#8216;<\/td>\n<td>&#8216; . $produto-&gt;get_name() . &#8216;<\/td>\n<td>&#8216; . implode(&#8216;, &#8216;, wp_get_post_terms($produto-&gt;get_id(), &#8216;product_cat&#8217;, array(&#8216;fields&#8217; =&gt; &#8216;names&#8217;))) . &#8216;<\/td>\n<td>&#8216; . wc_price($produto-&gt;get_price()) . &#8216;<\/td>\n<td>&#8216; . wc_price($item-&gt;get_total()) . &#8216;<\/td>\n<td>&#8216; . $forma_pagamento . &#8216;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#8216;;<br \/>\n\/\/ Exibe o total de vendas abaixo da tabela<br \/>\necho &#8216;Total de Vendas: &#8216; . wc_price($total_vendas) . &#8221;;<br \/>\n} else {<br \/>\necho &#8216;<\/p>\n<p>Nenhum produto vendido encontrado com os filtros aplicados.<\/p>\n<p>&#8216;;<br \/>\n}<br \/>\necho &#8221;; \/\/ Fechando a div.container<br \/>\n?&gt;<br \/>\n<!-- .container --><br \/>\n<!-- #main --><br \/>\n<!-- #primary --><br \/>\n<!--?php \/\/ Adicione aqui o rodap\u00e9 do WordPress get_footer(); ?--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Filtro de Pedidos Usu\u00e1rio: Todos os clientes $users = get_users(); foreach ($users as $user) { echo &#8216;&#8216; . $user-&gt;display_name . &#8216;&#8216;; } ?&gt; Tipo de Pagamento: Todos os tipos de pagamento \/\/ Itera sobre os m\u00e9todos de pagamento e cria as op\u00e7\u00f5es para o select foreach ($payment_gateways as $id =&gt; $payment_gateway) { if ($payment_gateway-&gt;is_available()) &#8230; <a title=\"report\" class=\"read-more\" href=\"https:\/\/pos.geratec.com.br\/amilcar\/report\/\" aria-label=\"Read more about report\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3165","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/pos.geratec.com.br\/amilcar\/wp-json\/wp\/v2\/pages\/3165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pos.geratec.com.br\/amilcar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pos.geratec.com.br\/amilcar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pos.geratec.com.br\/amilcar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pos.geratec.com.br\/amilcar\/wp-json\/wp\/v2\/comments?post=3165"}],"version-history":[{"count":10,"href":"https:\/\/pos.geratec.com.br\/amilcar\/wp-json\/wp\/v2\/pages\/3165\/revisions"}],"predecessor-version":[{"id":3257,"href":"https:\/\/pos.geratec.com.br\/amilcar\/wp-json\/wp\/v2\/pages\/3165\/revisions\/3257"}],"wp:attachment":[{"href":"https:\/\/pos.geratec.com.br\/amilcar\/wp-json\/wp\/v2\/media?parent=3165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}