Antes de começar, preciso informar que o WooCommerce possui um widget para exibir isso, então, você só usará esse tutorial se o widget não satisfazer suas necessidades, ok?
O método é simples, esse widget citado acima possui um cookie que salva os ultimos produtos acessados pelo usuário, então, só precisamos retornar ele e pra isso não precisamos nem ter o widget ativado.
Para isso, criaremos uma função que vai tratar, separar e retornar como array o ID desses posts, esse array poderá ser utilizado no WP_Query().
Mãos a obra!
Abra o functions.php e insira o seguinte código:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function get_wc_cookie_posts(){ | |
if ( !isset( $_COOKIE['woocommerce_recently_viewed'] ) || empty( $_COOKIE['woocommerce_recently_viewed'] ) ) | |
return false; | |
$viewed_products = explode( '|', $_COOKIE['woocommerce_recently_viewed'] ); | |
$viewed_products = array_reverse( array_filter( array_map( 'absint', $viewed_products ) ) ); | |
return $viewed_products; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// WP_Query arguments | |
$args = array ( | |
'post_type' => 'product', | |
'posts_per_page' => 5, | |
'post__in' => get_wc_cookie_posts() | |
); | |
// The Query | |
$query = new WP_Query( $args ); |
Agora é só por pra rodar e ser feliz!
Olá, qual o nome do widget? Valeu
Olá João,
O nome do widget é WooCommerce vistos recentemente.
Abraços
Boa noite. Só estou escrevendo para dizer que gostei da matéria. Parabéns