title: implode causing invalid argument to show on admin sales emails
body: <p>Anytime we have a sale without a coupon being used, I get an error on the email stating implode() invalid argument <strong>functions.php</strong></p>
  
  <p>It was not causing this issue, until recently, then I moved the website from one host to another and updated all the plugins. </p>
  
  <p>The email function hooked that display the text</p>
  
  <pre><code>add_action( 'woocommerce_email_order_details', 'display_applied_coupons', 10, 4 );
  </code></pre>
  
  <pre><code>function display_applied_coupons( $order, $sent_to_admin, $plain_text, $email ) {
  
      // Only for admins and when there at least 1 coupon in the order
      if ( ! $sent_to_admin &amp;&amp; count($order-&gt;get_items('coupon') ) == 0 ) return;
  
      foreach( $order-&gt;get_items('coupon') as $coupon ){
          $coupon_codes[] = $coupon-&gt;get_code();
      }
      // For one coupon
      if( count($coupon_codes) == 1 ){
          $coupon_code = reset($coupon_codes);
          echo '&lt;p&gt;'.__( 'Coupon Used: ').$coupon_code.'&lt;p&gt;';
      } 
      // For multiple coupons
      else {
          $coupon_codes = implode( ', ', $coupon_codes);
          echo '&lt;p&gt;'.__( 'Coupons Used: ').$coupon_codes.'&lt;p&gt;';
      }
  }
  </code></pre>
  
  <p>If the customer does not use a coupon it either should be blank or state "No Coupon Used" - I am not sure why the multiple coupons area is causing the section when they do not use any coupons.</p>
  
  <p>Instead of it working I keep just getting this invalid argument to implode error</p>