title: Woocommerce: Order items not showing in order email
body: <p>All my orders are created with the <code>on-hold</code> state by default until payment is confirmed and then the state turns to <code>processing</code>. I created a hook to send the <code>on-hold</code> email every time a new order is created to ensure every user will receive an email once the order is created.</p>
  
  <pre><code>//Force on-hold email notification bug workaround
  add_action('woocommerce_new_order', 'new_order_on_hold_notification', 30, 1 );
  function new_order_on_hold_notification( $order_id ) {
      //global $woocommerce;
      //$mailer = $woocommerce-&gt;mailer();
      $order = wc_get_order( $order_id );
  
      // Send Customer On-Hold Order notification
      WC()-&gt;mailer()-&gt;get_emails()['WC_Email_Customer_On_Hold_Order']-&gt;trigger( $order_id );
  }
  </code></pre>
  
  <p>The email is being sent, but for some reason, the order items are not being included in the email, this is weird since the rest of the emails woocommerce sends (upon order completion, shipped and delivered states) are correctly sent with order items.</p>
  
  <p><strong>UPDATE</strong>
  As requested I attach the <code>customer-on-hold-order.php</code> template Im using in my theme, it's basically the same as the default woocommerce template just added an image at the top of the email.</p>
  
  <pre><code>&lt;?php
  /**
   * Customer on-hold order email
   *
   * This template can be overridden by copying it to yourtheme/woocommerce/emails/customer-on-hold-order.php.
   *
   * HOWEVER, on occasion WooCommerce will need to update template files and you
   * (the theme developer) will need to copy the new files to your theme to
   * maintain compatibility. We try to do this as little as possible, but it does
   * happen. When this occurs the version of the template file will be bumped and
   * the readme will list any important changes.
   *
   * @see https://docs.woocommerce.com/document/template-structure/
   * @package WooCommerce/Templates/Emails
   * @version 3.7.0
   */
  
  defined( 'ABSPATH' ) || exit;
  
  /*
   * @hooked WC_Emails::email_header() Output the email header
   */
  do_action( 'woocommerce_email_header', $email_heading, $email ); ?&gt;
  
  &lt;!--[if gte MSO 9]&gt;
    &lt;table width="640"&gt;
       &lt;tr&gt;
          &lt;td&gt;
  &lt;![endif]--&gt;
    &lt;table width="100%" style="max-width:640px;"&gt;
      &lt;tr&gt;
        &lt;td&gt;
          &lt;img src="https://ebani.com.co/wp-content/themes/martfury-child/woocommerce/emails/images/pedido-en-espera.jpg" width="100%" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
  &lt;!--[if gte MSO 9]&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
  &lt;![endif]--&gt;
  
  &lt;?php /* translators: %s: Customer first name */ ?&gt;
  &lt;p&gt;&lt;?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order-&gt;get_billing_first_name() ) ); ?&gt;&lt;/p&gt;
  &lt;p&gt;&lt;?php esc_html_e( 'Thanks for your order. It’s on-hold until we confirm that payment has been received. In the meantime, here’s a reminder of what you ordered:', 'woocommerce' ); ?&gt;&lt;/p&gt;
  
  &lt;?php
  
  /*
   * @hooked WC_Emails::order_details() Shows the order details table.
   * @hooked WC_Structured_Data::generate_order_data() Generates structured data.
   * @hooked WC_Structured_Data::output_structured_data() Outputs structured data.
   * @since 2.5.0
   */
  do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );
  
  /*
   * @hooked WC_Emails::order_meta() Shows order meta data.
   */
  do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );
  
  /*
   * @hooked WC_Emails::customer_details() Shows customer details
   * @hooked WC_Emails::email_address() Shows email address
   */
  do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
  
  /**
   * Show user-defined additional content - this is set in each email's settings.
   */
  if ( $additional_content ) {
      echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) );
  }
  
  /*
   * @hooked WC_Emails::email_footer() Output the email footer
   */
  do_action( 'woocommerce_email_footer', $email );
  </code></pre>
  
  <p><strong>Update #2</strong>
  After debugging the <code>email-order-items.php</code> template I found that the <code>$items</code> array is empty however this is weird as I told you all other emails are correct with the order items.</p>