Avisos
Vaciar todo

precio unitario en mails de woocommerce  

Página 1 / 2
 
Daniela
 Daniela
Usuario experto

Hola
Les escribo porque hace un par de años tuve un problema con los emails que envía woocommerce al realizar la compra y ustedes me ayudaros a resolverlo.
Bueno hoy tras la actualización de woocommerce el código ha quedado obsoleto y no logro adaptarlo para que me envíe los precios unitarios en el mail, sabéis como se puede hacer esto¿? siguiendo el nuevo lenguaje de las plantillas, que el antiguo no va.
De antemano muchas gracias
Daniela

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 18/06/2019 4:38 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

Revisa si añadiendo estas dos funciones al archivo Functions.php se muestra el precio unitario:

/**
 * Filter the document table headers to add product unit price.
 *
 * @param string[] $headers table column headers
 * @param int $order_id the order ID for the document
 * @param string $document_type the current document type
 * @return string[] updated table headers
 */
function sv_wc_pip_invoice_add_unit_price_column( $headers, $order_id, $document_type ) {
	if ( 'invoice' === $document_type ) {
		$new_headers = array();
		foreach ( $headers as $key => $header ) {
			if ( 'quantity' === $key ) {
				$new_headers['unit_price'] = __( 'Unit price', 'textdomain' );
			}
			$new_headers[ $key ] = $header;
		}
		$headers = $new_headers;
	}
	return $headers;
}
add_filter( 'wc_pip_document_table_headers', 'sv_wc_pip_invoice_add_unit_price_column', 10, 3 );
/**
 * Filter the document table row cells to add product unit price.
 *
 * @param string[] $cells the current table row cells
 * @param string $type WC_PIP_Document type
 * @param int $item_id item id
 * @param string[] $item item data
 * @param WC_Product $product product object
 * @return string[] updated row cells
 */
function sv_wc_pip_document_invoice_add_unit_price_cell( $cells, $document_type, $item_id, $item, $product ) {
	if ( 'invoice' === $document_type ) {
		$new_cells = array();
		foreach ( $cells as $key => $cell ) {
			if ( 'quantity' === $key ) {
				$new_cells['unit_price'] = wc_price( $product->get_price() );
			}
			$new_cells[ $key ] = $cell;
		}
		$cells = $new_cells;
	}
	return $cells;
}
add_filter( 'wc_pip_document_table_row_cells', 'sv_wc_pip_document_invoice_add_unit_price_cell', 10, 5 );

Nota: Recuerda realizar una copia del archivo antes de la modificación para tener el original.

Un saludo

ResponderCitar
Respondido : 18/06/2019 5:15 pm

Daniela
 Daniela
Usuario experto

Pero esto es del tema? mm no se puede poner algo en los mails de woocommerce como el anterior? sólo lo necesito para los emails de compra.
Muchas gracias
D

ResponderCitar
Respondido : 18/06/2019 5:30 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniela.

Lo que hacen las funciones que te pase es exactamente lo mismo que si el código que añadiste en los archivos, hay que modificar archivo para que se muestre, lo que en este caso en vez de realizarlo en los archivos del plugin lo realizamos es de las funciones de Wordpress.

Prueba lo siguiente:
.- Accede wp_content -> themes -> tu_plantilla -> woocommerce
.- Renombra la carpeta emails por ejemplo emails_old

Revisa si se muestra.

Si ves que se muestra copia la carpeta emails de wp-content -> plugins -> woocommerce -> emails, a la carpeta wp_content -> themes -> tu_plantilla -> woocommerce

Un saludo

ResponderCitar
Respondido : 18/06/2019 5:54 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Daniela
 Daniela
Usuario experto

Lo he puesto en functions.php, pero no pasa nada de nada 🙁 🙁

ResponderCitar
Respondido : 18/06/2019 6:26 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Comenta o elimina el código del archivo functions.php que agregaste y prueba hacerlo reemplazando los archivos, tal como se discute en el siguiente hilo:

https://www.webempresa.com/foro/26-Plugins-WordPress/149575-Como-puedo-recibir-los-precios-unitarios-por-woocommerce.html

Saludos.

ResponderCitar
Respondido : 18/06/2019 6:53 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Daniela
 Daniela
Usuario experto

Si te fijas ese hilo es mío y fue hace un par de añitos, como puse al inicio ya no van porque utilizan otras variables que no he sabido como modificar.
Gracias

ResponderCitar
Respondido : 18/06/2019 6:59 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Prueba hacerlo tal como se comenta en este artículo, igualmente con archivos, que según veo en los comentarios aún sigue siendo válido esta año 2019 https://nicola.blog/2015/09/08/print-unit-price-emails/

Saludos.

ResponderCitar
Respondido : 18/06/2019 7:38 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Daniela
 Daniela
Usuario experto

este ejemplo también es de los antiguos, te explico por que en los antiguos la tabla y la clase están dentro del archivo email-order-items.php, de esta manera
"

<td class="td" style="text-align:; vertical-align:middle; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;">
get_item_total( $item, false, true ), array( 'currency' => $order->get_order_currency() ) ); ?>

<td class="td" style="text-align:; vertical-align:middle; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;">
get_quantity(), $item ) ); ?>

<td class="td" style="text-align:; vertical-align:middle; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;">
get_formatted_line_subtotal( $item ) ); ?>

"

y ahora es: get_quantity(), $item ) ); ?> get_formatted_line_subtotal( $item ) ); ?>

entonces aunque he intentado de varias formas no logro que coja los precios 🙁

ResponderCitar
Respondido : 18/06/2019 8:02 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

He probado en WooCommerce 3.5.7 y si funciona la sobreescritura de archivos, (ver imagen adjunta) qué versión de WooCommerce tienes?

Saludos.

ResponderCitar
Respondido : 18/06/2019 11:24 pm

Cursos Gratuitos WordPress

Daniela
 Daniela
Usuario experto

En verdad :ohmy: ? tengo la 3.5.1, y me podeis decir lo que has hecho, a mi no me funciona

ResponderCitar
Respondido : 19/06/2019 12:03 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniela.

Desde la version 3x de woocommerce esta implementada esa opcion, lo que tienes qu erevisar es lo qu ete comente en la anterior respuesta.

.- Accede a wp-content -> themes -> tu_plantilla -> carpeta woocommerce
.- revisa si dentro de esa carpeta tienes otra con el nombre email, si esta la renombra por ejemplo a email_old

revisa si después de eso se muestra la columna.

Un saludo

ResponderCitar
Respondido : 19/06/2019 12:29 pm

Daniela
 Daniela
Usuario experto

Lo hice, pero los datos del precio unitario me aparecen fuera de la tabla, antes del encabezado

ResponderCitar
Respondido : 19/06/2019 10:16 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Envía una captura de pantalla para ver como te aparecen y qué código has implementado, puedes enviar los archivos que has modificado, adjuntados en .zip

Saludos.

ResponderCitar
Respondido : 19/06/2019 10:31 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Daniela
 Daniela
Usuario experto

Aqui van los adjuntos son los mismos que la página que me has dicho

ResponderCitar
Respondido : 20/06/2019 10:29 am
Página 1 / 2