WC_Emails::order_metapublicWC 1.0

Add order meta to email templates.

Method of the class: WC_Emails{}

Returns

null. Nothing (null).

Usage

$WC_Emails = new WC_Emails();
$WC_Emails->order_meta( $order, $sent_to_admin, $plain_text );
$order(WC_Order) (required)
Order instance.
$sent_to_admin(true|false)
If should sent to admin.
Default: false
$plain_text(true|false)
If is plain text email.
Default: false

WC_Emails::order_meta() code WC 10.4.3

public function order_meta( $order, $sent_to_admin = false, $plain_text = false ) {
	/**
	 * Filter the order meta fields.
	 *
	 * @since 3.0.0
	 * @param array    $fields        Array of meta fields.
	 * @param bool     $sent_to_admin If sent to admin.
	 * @param WC_Order $order         Order instance.
	 */
	$fields = apply_filters( 'woocommerce_email_order_meta_fields', array(), $sent_to_admin, $order );

	/**
	 * Deprecated woocommerce_email_order_meta_keys filter.
	 *
	 * @since 2.3.0
	 * @param array    $fields        Array of meta fields.
	 * @param bool     $sent_to_admin If sent to admin.
	 */
	$_fields = apply_filters( 'woocommerce_email_order_meta_keys', array(), $sent_to_admin );

	if ( $_fields ) {
		foreach ( $_fields as $key => $field ) {
			if ( is_numeric( $key ) ) {
				$key = $field;
			}

			$fields[ $key ] = array(
				'label' => wptexturize( $key ),
				'value' => wptexturize( $order->get_meta( $field ) ),
			);
		}
	}

	if ( $fields ) {

		if ( $plain_text ) {

			foreach ( $fields as $field ) {
				if ( isset( $field['label'], $field['value'] ) && $field['value'] ) {
					echo wp_kses_post( $field['label'] . ': ' . $field['value'] ) . "\n"; // WPCS: XSS ok.
				}
			}
		} else {

			foreach ( $fields as $field ) {
				if ( isset( $field['label'], $field['value'] ) && $field['value'] ) {
					echo '<p><strong>' . wp_kses_post( $field['label'] ) . ':</strong> ' . wp_kses_post( $field['value'] ) . '</p>'; // WPCS: XSS ok.
				}
			}
		}
	}
}