Buenas, Tienes dos manera de hacerlo
1. Hacer override del fichero email-order-items.php
Para hacerlo debes copiar este fichero del plugin woocommerce a tu tema.
(más información en https://docs.woocommerce.com/document/template-structure/)
Entonces puedes editar la linea que pone:
echo wp_kses_post( apply_filters( 'woocommerce_order_item_name', $item->get_name(), $item, false ) );
2. Como esta hecho con un filtro. También puedes crear un filtro para eso.
En tu functions.php pon:
add_filter('woocommerce_order_item_name','change_name_on_order_item_name');
function change_name_on_order_item_name($name, $item, false){
$product = $item->get_product();
return $product->get_description();
}
No he probado el código, pero para que puedes investigar más las propiedades de $item te dejo dos links:
https://docs.woocommerce.com/wc-apidocs/class-WC_Order_Item_Product.html
https://docs.woocommerce.com/wc-apidocs/class-WC_Product.html
El segundo método es mucho más limpio, pero con los dos puedes conseguir lo que necesitas.Espero que lo consigas.
Iniciador del debate
Jordi
(@kukat)
Muchíssimas gracias! Voy a probar.
Iniciador del debate
Jordi
(@kukat)
Lamentablemente no funciona 🙁
Aunque debe ser algo similar.
-
Esta respuesta fue modificada hace 4 años, 12 meses por Jordi.
Iniciador del debate
Jordi
(@kukat)
Supongo que aquí debería de poner algo así, no? Però creo que se debería pasar al array de arriba o algo similar, pero no estoy muy puesto 🙁
echo wp_kses_post( apply_filters( ‘woocommerce_order_item_name’, $item->get_description(), $item, false ) );
No porque $item no es un objeto producto y no tiene el método get_description.
Comenta la linea y pon:
//echo wp_kses_post( apply_filters( ‘woocommerce_order_item_name’, $item->get_name(), $item, false ) );
$product = $item->get_product();
echo wp_kses_post($product->get_description());
No he probado el código pero creo que por ahí debe ir. Si no consulta los links que te pasé, haz var_dump de $item para saber que objeto es y tira del hilo.
Iniciador del debate
Jordi
(@kukat)
Grácias, lo voy a probar.
Hola @kukat
¿Pudiste probarlo? ¿Hay algo que podamos ayudarte en relación de esta?
En caso de que quedara resuelta por favor indica como lo hiciste y marca el debate como resuelto.
Iniciador del debate
Jordi
(@kukat)
Disculpa el retraso, aún no lo había podido probar. Y efectivamente!!! Funcionó. Resumiendo:
1. Copiar fichero de plugins/woocommerce/emails/email-order-items.php
a tutema/woocommerce/emails/email-order-items.php
2. Buscar esta línea:
echo wp_kses_post( apply_filters( 'woocommerce_order_item_name', $item->get_name(), $item, false ) );
3. Comentarla con //
4. Añadir estas líneas.
$product = $item->get_product();
echo wp_kses_post($product->get_description());
Por cierto, puedes explicar más detalladamente estas dos últimas líneas? Llamas al objeto producto y guardas en la variable $producto, y luego simplemente le dices a ese objecto que te muestre la descripción, no?
-
Esta respuesta fue modificada hace 4 años, 11 meses por Jordi.