/**
  * Save pre-order options
  *
  * @since 1.0
  * @param int $post_id the ID of the product being saved
  */
 public function save_product_tab_options($post_id)
 {
     // don't save any settings if there are active pre-orders
     if (WC_Pre_Orders_Product::product_has_active_pre_orders($post_id)) {
         return;
     }
     // pre-orders enabled
     if (isset($_POST['_wc_pre_orders_enabled']) && 'yes' === $_POST['_wc_pre_orders_enabled']) {
         update_post_meta($post_id, '_wc_pre_orders_enabled', 'yes');
     } else {
         update_post_meta($post_id, '_wc_pre_orders_enabled', 'no');
     }
     /*
      * Save the availability date/time
      *
      * The date/time a pre-order is released is saved as a unix timestamp adjusted for the site's timezone. For example,
      * when an admin sets a pre-order to be released on 2013-06-25 12pm EST (UTC-4), it is saved as a timestamp equivalent
      * to 2013-12-25 4pm UTC. This makes the pre-order release check much easier, as it's a simple timestamp comparison,
      * because the release datetime and the current time are both in UTC.
      */
     if (!empty($_POST['_wc_pre_orders_availability_datetime'])) {
         try {
             // get datetime object from site timezone
             $datetime = new DateTime($_POST['_wc_pre_orders_availability_datetime'], new DateTimeZone(WC_Pre_Orders_Product::get_wp_timezone_string()));
             // get the unix timestamp (adjusted for the site's timezone already)
             $timestamp = $datetime->format('U');
             // don't allow availability dates in the past
             if ($timestamp <= time()) {
                 $timestamp = '';
             }
             // set the availability datetime
             update_post_meta($post_id, '_wc_pre_orders_availability_datetime', $timestamp);
         } catch (Exception $e) {
             global $wc_pre_orders;
             $wc_pre_orders->log($e->getMessage());
         }
     } else {
         delete_post_meta($post_id, '_wc_pre_orders_availability_datetime');
     }
     // pre-order fee
     if (isset($_POST['_wc_pre_orders_fee']) && is_numeric($_POST['_wc_pre_orders_fee'])) {
         update_post_meta($post_id, '_wc_pre_orders_fee', $_POST['_wc_pre_orders_fee']);
     }
     // when to charge pre-order amount
     if (isset($_POST['_wc_pre_orders_when_to_charge']) && isset($_POST['_wc_pre_orders_enabled']) && 'yes' === $_POST['_wc_pre_orders_enabled']) {
         update_post_meta($post_id, '_wc_pre_orders_when_to_charge', 'upon_release' === $_POST['_wc_pre_orders_when_to_charge'] ? 'upon_release' : 'upfront');
     }
     do_action('wc_pre_orders_save_product_options', $post_id);
 }