Agregar notas de pedido de WooCommerce al correo electrónico completo

Agregar notas de pedido de WooCommerce al correo electrónico completo

No hay nada mejor que tener información sobre un pedido que ha realizado sobre su estado o cualquier otro dato que pueda resultarle útil en relación con su pedido. De forma predeterminada, WooCommerce almacena todas las acciones relacionadas con un pedido en la base de datos. Esta serie de acciones está disponible en la administración, en la barra lateral cuando edita un pedido. Pero sus clientes no tienen acceso a esta lista de acciones. La buena noticia es que puede agregarlo fácilmente a cualquier correo electrónico enviado por WooCommerce. En este artículo, le mostraré agregar para agregar notas de pedido el correo electrónico completo (este es el correo electrónico enviado cuando el estado del pedido se marca como completo). Pero también puede usar este método para agregar las notas del pedido a otros correos electrónicos.

¿Modelos personalizados o ganchos?

Solo un recordatorio rápido: todos los correos electrónicos en WooCommerce se envían usando plantillas, y puede anular las plantillas predeterminadas creando las suyas propias. Básicamente, una plantilla personalizada le permite anular los archivos predeterminados de WooCommerce y usar sus propios archivos personalizados en su lugar. Aquí hay un pequeño tutorial que explica cómo crear sus plantillas personalizadas: http://docs.woothemes.com/document/template-structure/.

Puede agregar las notas del pedido en una plantilla personalizada, pero me gustaría mostrarle otra forma de hacerlo, usando un gancho. La idea no es usar plantillas personalizadas, sino usar el archivo functions.php solo en la carpeta de su tema.

Las notas de pedido son comentarios de WordPress

Las notas de pedido son comentarios de WordPress con un tipo específico “order_note”, por lo que puede usar la clase WP_Query de WordPress aplicada a los comentarios usando la función get_comments ().

El gancho que necesitamos usar es una acción llamada “woocommerce_email_order_meta”. La idea es llamar a una función personalizada cuando esa acción se carga en el proceso de WooCommerce.

El uso de get_comments () simplifica un poco la forma en que podemos recuperar las notas del pedido, solo debemos asegurarnos de que queremos enumerar los comentarios relacionados con un pedido específico utilizando el ID de publicación y el atributo de comentario. “Aprobar”, lo que significa que el comentario está validado (por WooCommerce en este caso).

El código

Aquí está el código para colocar en el archivo functions.php de su carpeta de temas:

add_action( 'woocommerce_email_order_meta', 'woo_add_order_notes_to_email' );

function woo_add_order_notes_to_email() {

	global $woocommerce, $post;

	$args = array(
		'post_id' 	=> $post->ID,
		'approve' 	=> 'approve',
		'type' 		=> 'order_note'
	);

	$notes = get_comments( $args );
	
	echo '<h2>' . __( 'Order Notes', 'woocommerce' ) . '</h2>';

	echo '<ul class="order_notes">';

	if ( $notes ) {
		foreach( $notes as $note ) {
			$note_classes = get_comment_meta( $note->comment_ID, 'is_customer_note', true ) ? array( 'customer-note', 'note' ) : array( 'note' );

			?>
			<li rel="comment_ID ) ; ?>" class="">
				<div class="note_content">
					comment_content ) ) ); ?>
				</div>
				<p class="meta">
					comment_date_gmt ), current_time( 'timestamp', 1 ) ) ); ?>
				</p>
			</li>
			<?php
		}
	} else {
		echo '<li>' . __( 'There are no notes for this order yet.', 'woocommerce' ) . '</li>';
	}

	echo '</ul>';
}

Como puede ver, este código es bastante simple, nada realmente complejo, por lo que puede personalizarlo fácilmente. Tenga en cuenta el uso de algunas funciones interesantes como human_time_diff (), wptexturize () o wp_kses_post ().

Bueno, espero que haya disfrutado de esta publicación, deje un comentario en el formulario a continuación, ¡me encantaría escuchar sus comentarios al respecto!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba