title: Force display a zero fee in Woocommerce Orders and email notifications
body: <p>In Woocommerce, I am trying to get the display of a custom fee, <strong>when the fee amount is zero</strong>, to make it appear in the order detail table. </p>
  
  <p>Based on "<a href="https://stackoverflow.com/questions/49457961/update-fee-dynamically-based-on-radio-buttons-in-woocommerce-checkout/49470265#49470265">Update fee dynamically based on radio buttons in Woocommerce checkout</a>" answer code,
  I have manage to add a dynamic fee that is applied to cart and changes on customer delivery choice. </p>
  
  <p>Here is the working code that I have adapted for my needs:</p>
  
  <pre><code>add_action( 'woocommerce_cart_calculate_fees', 'add_delivery_fee', 20, 1 );
  function add_delivery_fee( $cart ) {
      $domain = 'woocommerce';
      $NipostFST = '2000';
      $NIPOSTSUB = '250';
  
      if ( is_admin() &amp;&amp; ! defined( 'DOING_AJAX' ) )
          return;
  
      $packing_fee = WC()-&gt;session-&gt;get( 'chosen_delivery_option' ); // Dynamic delivery fee
      $Dlabel = $packing_fee == 'home_delivery' ? __('To Your Doorstep', $domain) : __('Local Pickup', $domain);
      $weight_of_item = WC()-&gt;cart-&gt;cart_contents_weight;
  
      if ( $weight_of_item &gt; 1 ) {
          $nipostFee = $NipostFST + ( ($weight_of_item - 1)*$NIPOSTSUB );
      }elseif ( $weight_of_item == 1 ) {
          $nipostFee = $NipostFST;
      }
  
      $fee = (isset($weight_of_item)) ? $packing_fee == 'home_delivery' ? $nipostFee : 0.00 : 'Not Available';
      $cart-&gt;add_fee( !is_cart() ? __( 'Delivery Fee [ '.$Dlabel.' ]', $domain ) : __( 'Delivery Fee', $domain ), $fee );
  }
  
  // Add a custom radio fields for Delivery Option selection
  add_action( 'woocommerce_checkout_before_order_review', 'checkout_delivery_fee_addition', 20 );
  function checkout_delivery_fee_addition(){
      $domain       = 'woocommerce';
      $weight_of_item = WC()-&gt;cart-&gt;cart_contents_weight;
  
      $NipostFST = '2000';
      $NIPOSTSUB = '250';
  
  
      if ( $weight_of_item &gt; 1 ) {
          $nipostFee = $NipostFST + ( ($weight_of_item - 1)*$NIPOSTSUB );
      }elseif ( $weight_of_item == 1 ) {
          $nipostFee = $NipostFST;
      }
  
      echo '&lt;div id="izzycart_checkout_addons"&gt;&lt;tr class="deliveryOption-select"&gt;&lt;th&gt;' . __('Delivery Method', $domain) . '&lt;/th&gt;&lt;td&gt;';
  
      $chosen   = WC()-&gt;session-&gt;get('chosen_delivery_option');
      $chosen   = empty($chosen) ? WC()-&gt;checkout-&gt;get_value('radio_delivery_option') : $chosen;
      $chosen   = empty($chosen) ? 'local_pickup' : $chosen;
  
      // Add a custom checkbox field
      woocommerce_form_field( 'radio_delivery_option', array(
          'type' =&gt; 'radio',
          'class' =&gt; array( 'form-row-wide delivery_option' ),
          'options' =&gt; array(
              'local_pickup' =&gt; __('Local Pickup '.wc_price(0.00), $domain),
              'home_delivery' =&gt; (!isset($weight_of_item)) ? __('To Your Doorstep &lt;br&gt;&lt;span style="color:red"&gt;Not Available&lt;/span&gt;', $domain) : __('To Your Doorstep '.wc_price($nipostFee), $domain),
          ),
          'default' =&gt; $chosen,
      ), $chosen );
  
      echo '&lt;/td&gt;&lt;/tr&gt;&lt;/div&gt;';
  }
  </code></pre>
  
  <p>Now, the problem is that, when customer choose <strong>Local Pickup</strong> delivery method custom radio button, the applied fee is equal to zero <strong>and not displayed at all</strong> on order received page, on My account view order page and on all email notifications. </p>
  
  <p>So how to get the display (on orders totals table) just like a normal fee that should look like:</p>
  
  <p><a href="https://i.stack.imgur.com/buEAz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/buEAz.png" alt="enter image description here"></a></p>
  
  <p>So the displayed total item line will be something like:</p>
  
  <blockquote>
    <p>Delivery Fee: <strong>N0.00</strong><br></p>
  </blockquote>