private function init()
 {
     $this->init_form_fields();
     $this->init_settings();
     $this->enabled = $this->get_option('enabled');
     $this->name = $this->get_option('name');
     $this->title = $this->get_option('title');
     $this->{'type'} = 'order';
     $this->tax_status = $this->get_option('tax_status');
     $this->availability = $this->get_option('availability');
     $this->countries = $this->get_option('countries');
     $this->weight = $this->getRangeOption('weight');
     $this->subtotal = $this->getRangeOption('subtotal');
     $this->subtotalWithTax = $this->get_option('subtotal_with_tax') === 'yes';
     $this->fee = (double) $this->get_option('fee');
     $this->settings['fee'] = $this->formatFloat($this->fee);
     $this->weightRate = WbsProgressiveRate::fromArray($this->get_option('weight_rate', array()));
     if (empty($this->countries)) {
         $this->availability = $this->settings['availability'] = 'all';
     }
     $this->shippingClassRates = $this->get_option('shipping_class_rates', new WbsBucketRates());
     $this->priceClamp = $this->getRangeOption('price_clamp');
 }
 public function validateShippingClasses($key)
 {
     $rates = new WbsBucketRates();
     $rows = (array) @$_POST[$this->getPostKey($key)];
     foreach ($rows as $i => $row) {
         $rates->add(new WbsBucketRate(@$row['class'], self::receiveDecimal(@$row['fee']), WbsProgressiveRate::fromArray(self::receiveWeightRate(@$row['weight_rate']))));
     }
     return $rates;
 }