Avisos
Vaciar todo

Shortcode woocomerce

6 Respuestas
3 Usuarios
0 Reactions
17 Visitas
Respuestas: 19
Active Member
Topic starter
 

Hola! 

Me podrían ayudar para hacer lo siguiente por favor:

Necesito mostrar a cada usuario la cantidad de pedidos realizados por él. El metadato que necesito mostrar es "woo_order_count", pero no sé cómo hacerlo, se me ocurre que podría hacer un snippet para crear un shortcode y así poder agregarlo a cualquier sección de la web donde lo necesite.

Estoy intentando con el siguiente snippet:

$cliente = new WC_Customer (get_current_user_id());
$nombre = $cliente->get_first_name();
add_shortcode ('nombre', function () {
       $cliente = new WC_Customer (get_current_user_id());
       return ucwords ($cliente->get_first_name());
}); 

 

Ese es para obtener el nombre del usuario y funciona perfecto, donde el shortcode sería [nombre], pero cuando cambio "first_name" por "woo_order_count" en la segunda y en la quinta línea y dar al botón de guardar el snippet, la página web se cae, indica que hay un error. 

 

Me podrían dar una mano para saber cómo hacer esto por favor?

 

Gracias!

Contenido solo visible a usuarios registrados


 
Respondido : 27/10/2022 12:43 pm
Tags del tema
Pepe
 Pepe
Respuestas: 41115
Illustrious Member Admin
 

Hola Felipe.

Podrías compartirnos el código completo.

Por lo que deduzco tendría que ser algo como esto:

add_shortcode ('nombre', function () {
if(is_user_logged_in())
{
$my_user_id = get_current_user_id();
$customer = woo_order_count( $my_user_id );
$statuses = array('processing','expedier','completed', 'refunded', 'pending', 'on-hold');
global $count_real;
$count_real = $customer->woo_order_count($statuses);
}
});

 

Nota: en el foro no damos soporte a códigos personalizados.

 

Un saludo

 


 
Respondido : 27/10/2022 1:40 pm
Respuestas: 19
Active Member
Topic starter
 

Gracias Pepe, ese código sí me funcionó, solo que si quiero contabilizar solo los pedidos en un status (por ejemplo "processing") no los filtra, siempre me arroja el mismo número, que creo que son los completados. Hay algo mal con el código o es de mi web?

Gracias


 
Respondido : 27/10/2022 2:12 pm
Pepe
 Pepe
Respuestas: 41115
Illustrious Member Admin
 

Hola Felipe.

Podrías probar con esto:

global $count_real;
$args = array(
'customer_id' => $my_user_id_itp,
'post_status' => 'any',
'post_type' => 'shop_order',
'return' => 'ids',
'limit' => -1
);
$count_real = 0;
$count_real = count( wc_get_orders( $args ) );

 

Un Saludo


 
Respondido : 27/10/2022 2:36 pm
Respuestas: 19
Active Member
Topic starter
 

@pepesoler por algún motivo me generan un error ambos códigos, como que hay problemas con elementor... existirá un plugin que haga lo que necesito?

No logro encontrar uno que me lo permita

Gracias


 
Respondido : 27/10/2022 6:34 pm
Argenis
Respuestas: 11585
Illustrious Member Moderator
 

Hola Felipe,

Es un poco complicado por que es algo personalizado, sin embargo verifica si con estos te funciona:

https://fr.wordpress.org/plugins/woo-customers-order-history/

https://fr.wordpress.org/plugins/purchased-items-column-woocommerce/

https://fr.wordpress.org/plugins/order-status-history-for-woocommerce/

Si no funciona ninguno recuerda que nuestros colaboradores también podrían ayudarte creando el código a medida:

https://www.webempresa.com/directorio-colaboradores.html

Un saludo 🖐️ 


 
Respondido : 27/10/2022 6:53 pm