Para una de las webs que estábamos desarrollando esta semana, necesitábamos crear una página para que los clientes pudieran ver sus productos. Hemos encontrado un código que realiza esta función y os lo queremos dejar aquí para que lo uséis.
Código para añadir una página de Mis Productos en WooCommerce.
Lo primer es mencionar la fuente, el código lo encontramos aquí.
Para activar el código tienes dos maneras:
- Ponerlo en el fichero functions.php de tu plantilla. Solo te recomiendo que hagas esto si has creado una plantilla hija. De no ser así, al actualizar la plantilla se te borrará el código modificado. Ponedlo antes de ?>
- Usar un plugin para poner códigos personalizados. Como el que mencionamos en este artículo.
El código que hay que poner es :
/**
* @snippet Display All Products Purchased by User via Shortcode - WooCommerce
* @how-to Watch tutorial @ https://businessbloomer.com/?p=19055
* @sourcecode https://businessbloomer.com/?p=22004
* @author Rodolfo Melogli
* @compatible Woo 3.4.5
*/
// Note: this will only return purchased products for completed and processing orders
add_shortcode(
'my_products'
,
'bbloomer_user_products_bought'
);
function
bbloomer_user_products_bought() {
global
$product
,
$woocommerce
,
$woocommerce_loop
;
$columns
= 3;
$current_user
= wp_get_current_user();
$args
=
array
(
'post_type'
=>
'product'
,
'post_status'
=>
'publish'
,
'posts_per_page'
=> -1
);
$loop
=
new
WP_Query(
$args
);
ob_start();
woocommerce_product_loop_start();
while
(
$loop
->have_posts() ) :
$loop
->the_post();
$theid
= get_the_ID();
if
( wc_customer_bought_product(
$current_user
->user_email,
$current_user
->ID,
$theid
) ) {
wc_get_template_part(
'content'
,
'product'
);
}
endwhile
;
woocommerce_product_loop_end();
woocommerce_reset_loop();
wp_reset_postdata();
return
'<div class="woocommerce columns-'
.
$columns
.
'">'
. ob_get_clean() .
'</div>'
;
}
/**
* @snippet Display All Products Purchased by User via Shortcode - WooCommerce
* @how-to Watch tutorial @ https://businessbloomer.com/?p=19055
* @sourcecode https://businessbloomer.com/?p=22004
* @author Rodolfo Melogli
* @compatible Woo 3.4.5
*/
// Note: this will only return purchased products for completed and processing orders
add_shortcode(
'my_products'
,
'bbloomer_user_products_bought'
);
function
bbloomer_user_products_bought() {
global
$product
,
$woocommerce
,
$woocommerce_loop
;
$columns
= 3;
$current_user
= wp_get_current_user();
$args
=
array
(
'post_type'
=>
'product'
,
'post_status'
=>
'publish'
,
'posts_per_page'
=> -1
);
$loop
=
new
WP_Query(
$args
);
ob_start();
woocommerce_product_loop_start();
while
(
$loop
->have_posts() ) :
$loop
->the_post();
$theid
= get_the_ID();
if
( wc_customer_bought_product(
$current_user
->user_email,
$current_user
->ID,
$theid
) ) {
wc_get_template_part(
'content'
,
'product'
);
}
endwhile
;
woocommerce_product_loop_end();
woocommerce_reset_loop();
wp_reset_postdata();
return
'<div class="woocommerce columns-'
.
$columns
.
'">'
. ob_get_clean() .
'</div>'
;
}
Os recomendamos los siguientes productos relacionados con la informática: