Gostaria de exibir 6 produtos em destaque da minha loja de woocommerce no meu modelo home-page.php. Depois de pesquisar, descobri que a maneira certa de fazer isso era através de um loop personalizado (não desejo usar códigos de acesso porque gostaria de adicionar classes adicionais para estilizar etc.). Também descobri que a chave que o woocommerce usa para o os produtos em destaque são '_featured'. Eu montei o código abaixo para exibir todos os produtos que eu escolhi para serem destacados em minha loja, mas não funciona ... Qualquer ajuda é apreciada.
<?php
$args = array(
'post_type' => 'product',
'stock' => 1,
'showposts' => 6,
'orderby' => 'date',
'order' => 'DESC' ,
'meta_query' => array(
array(
'key' => '_featured',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
)
)
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
<li>
<?php
if ( has_post_thumbnail( $loop->post->ID ) )
echo get_the_post_thumbnail( $loop->post->ID, 'shop_catalog' );
else
echo '<img src="' . woocommerce_placeholder_img_src() . '" alt="Placeholder" width="65px" height="115px" />';
?>
<h3><?php the_title(); ?></h3>
<?php
echo $product->get_price_html();
woocommerce_template_loop_add_to_cart( $loop->post, $product );
?>
</li>
<?php
endwhile;
wp_reset_query();
?>
loop
woocommerce
featured-post
steamfunk
fonte
fonte
var_dump( get_meta_values( '_featured', 'product' );
onde a funçãoget_meta_values
é suportada pela função personalizada explicado em esta respostaRespostas:
Mude seus argumentos para ficar assim:
Se você acessar o wp-content / plugins / woocommerce / includes / class-wc-shortcodes.php (@ 595), poderá descobrir como isso é feito para os códigos de acesso do WC.
fonte
Isso mudou no WooCommerce 3.0. Não é simplesmente uma meta_query, mas agora inclui uma tax_query. Os argumentos são agora:
Veja woocommerce / includes / class-wc-shortcodes.php
fonte
wc_placeholder_img_src
vez dewoocommerce_placeholder_img_src
.Loop de produtos em destaque no WooCommerce 3
fonte
De acordo com o WooCommerce Wiki :
O WooCommerce defende o uso
wc_get_products()
ou emWC_Product_Query()
vez deWP_Query()
ouget_posts()
.Eu escrevi uma postagem com o código que usei para alcançar o que você deseja aqui: https://cfxdesign.com/create-a-custom-woocommerce-product-loop-the-right-way/
fonte
Sei que isso é bastante antigo, mas acabei de compartilhar uma solução alternativa aqui e acho que também pode ajudar aqueles que chegam a esse tópico.
Em vez de usar
meta_query
ortax_query
, você também pode usar wc_get_featured_product_ids () :Espero que ajude!
fonte
Baseado em: https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query
Eu tentaria:
laço externo:
no loop:
fonte
Se você der uma olhada no banco de dados na
wp_postmeta
tabela que você verámeta_key
será_featured
emeta_value
seráyes
ouno
então ao invés de valor0
ou1
de gravaçãoyes
ouno
fonte
fonte