Перейти к содержанию
Форум поддержки пользователей VamShop

Модуль доставки с выбором


Рекомендуемые сообщения

Пытаюсь самостоятельно сделать модуль доставки с выбором на основе модуля дчл, выбор есть, но он не отрабатывается. Что неправильно в коде?

 

Вот код

<?php


  class dostavka {
    var $code, $title, $description, $icon, $enabled, $types;


    function dostavka() {
      global $order;

      $this->code = 'dostavka';
	  
      $this->title = MODULE_SHIPPING_DOSTAVKA_TEXT_TITLE;
      $this->description = MODULE_SHIPPING_DOSTAVKA_TEXT_DESCRIPTION;
      $this->sort_order = MODULE_SHIPPING_DOSTAVKA_SORT_ORDER;
      $this->icon = '';
      $this->tax_class = MODULE_SHIPPING_DOSTAVKA_TAX_CLASS;
	  
      $this->enabled = ((MODULE_SHIPPING_DOSTAVKA_STATUS == 'True') ? true : false);

      if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_DOSTAVKA_ZONE > 0) ) {
        $check_flag = false;
        $check_query = vam_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_DOSTAVKA_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
        while ($check = vam_db_fetch_array($check_query)) {
          if ($check['zone_id'] < 1) {
            $check_flag = true;
            break;
          } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
            $check_flag = true;
            break;
          }
        }

        if ($check_flag == false) {
          $this->enabled = false;
        }
      }$this->types = array('vl01' => 'EU Express Service',
                           'vl02' => 'Document Express Service',
                           'vl03' => 'Start Day Express Service',
                           'vl04' => 'Mid Day Express Service',
                           'vl05' => 'Waren Express Service');
    }

/**
 * class methods
 */
    function quote($method = '') {
      global $order;

        $methods = array();
        
        $methods[] = array('id' => 'vl01',
                             'title' => 'EU Express Service',
							 'cost' => MODULE_SHIPPING_DOSTAVKA_TEXT_WAY);
                
        $methods[] = array('id' => 'vl02',
                             'title' => 'Document Express Service');
        
        $methods[] = array('id' => 'vl03',
                             'title' => 'Start Day Express Service');
        
        $methods[] = array('id' => 'vl04',
                             'title' => 'Mid Day Express Service');
        
        $methods[] = array('id' => 'vl05',
                             'title' => 'Start Day Express Service');   
          

      $this->quotes = array('id' => $this->code,
                            'module' => $this->title . ' (' . 444444 . ' x ' . 888888 . ' )');
							
	   $this->quotes['methods'] = $methods;

      if ( (vam_not_null($method)) && (isset($this->types[$method])) ) {

        for ($i=0; $i<sizeof($methods); $i++) {
          if ($method == $methods[$i]['id']) {
            $methodsc = array();
            $methodsc[] = array('id' => $methods[$i]['id'],
                                'title' => $methods[$i]['title'],
                                'cost' => $methods[$i]['cost']);
            break;
          }
        }
        $this->quotes['methods'] = $methodsc;
      }

      

      return $this->quotes;
    }						
							

    function check() {
      if (!isset($this->_check)) {
        $check_query = vam_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_DOSTAVKA_STATUS'");
        $this->_check = vam_db_num_rows($check_query);
      }
      return $this->_check;
    }

    function install() {
      vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_DOSTAVKA_STATUS', 'True', '6', '0', 'vam_cfg_select_option(array(\'True\', \'False\'), ', now())");
      vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DOSTAVKA_ALLOWED', '', '6', '0', now())");
      vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DOSTAVKA_COST', '5.00', '6', '0', now())");
      vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_DOSTAVKA_TAX_CLASS', '0', '6', '0', 'vam_get_tax_class_title', 'vam_cfg_pull_down_tax_classes(', now())");
      vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_DOSTAVKA_ZONE', '0', '6', '0', 'vam_get_zone_class_title', 'vam_cfg_pull_down_zone_classes(', now())");
      vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_DOSTAVKA_SORT_ORDER', '0', '6', '0', now())");
    }

    function remove() {
      vam_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
      return array('MODULE_SHIPPING_DOSTAVKA_STATUS', 'MODULE_SHIPPING_DOSTAVKA_COST','MODULE_SHIPPING_DOSTAVKA_ALLOWED', 'MODULE_SHIPPING_DOSTAVKA_TAX_CLASS', 'MODULE_SHIPPING_DOSTAVKA_ZONE', 'MODULE_SHIPPING_DOSTAVKA_SORT_ORDER');
    }
  }
?>

 

post-51693-0-03750500-1370949228_thumb.p

post-51693-0-67255800-1370949502_thumb.p

Ссылка на сообщение
Поделиться на другие сайты

Может начать лучше с более простого модуля, например с flat ?!

С flat уже отработано, там все тип-топ. У меня 150 пунктов самовывоза. Я просто загнусь, а главное - запутаюсь делать 150 клонов flat. Поэтому хочу сделать с возможностью выбора. 

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...