Page 1 of 3 123 LastLast
Results 1 to 10 of 29
  1. #1
    Join Date
    Mar 2005
    Location
    California
    Posts
    663
    Plugin Contributions
    0

    Idea or Suggestion Free Shipping Options module, how to exclude some categories?

    When using the Free Shipping Options module, if I want to exclude a category (say category id 35), can I do this simply by adding this?
    AND $_SESSION['cart']->in_cart_check('master_categories_id') != 35

    PHP Code:
    // final check for display of Free Options
          
    if ($this->ck_freeoptions_total or $this->ck_freeoptions_weight or $this->ck_freeoptions_items
    AND $_SESSION['cart']->in_cart_check('master_categories_id') != 35
    ) {
            
    $this->enabled true;
          } else {
            
    $this->enabled false;
          } 

  2. #2
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Free Shipping Options module, how to exclude some categories

    You kind of have the right idea ...

    Try this code up in the top of the file add the code in red below the code in black:
    Code:
          // disable only when entire cart is free shipping
          if (zen_get_shipping_enabled($this->code)) {
              $this->enabled = ((MODULE_SHIPPING_FREEOPTIONS_STATUS == 'True') ? true : false);
          }
    
    // bof: do not show if 1 or more products from master_categories_id 35 is in the cart
          global $cart;
          if (!IS_ADMIN_FLAG && $_SESSION['cart']->in_cart_check('master_categories_id', 35) > 0) {
            $this->enabled = false;
          }
    // eof: do not show if 1 or more products from master_categories_id 35 is in the cart
    
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  3. #3
    Join Date
    Mar 2005
    Location
    California
    Posts
    663
    Plugin Contributions
    0

    Default Re: Free Shipping Options module, how to exclude some categories

    Thank you.
    If I wanted to exclude more categories, can it be done like this? (I took this from another example you had mentioned, but not sure if it's applied correctly here)

    PHP Code:
    global $cart;
    $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','1');
    $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','2');
    $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','3');
    if (!
    IS_ADMIN_FLAG && $chk_exclude_categories 0) {
    $this->enabled false;


  4. #4
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Free Shipping Options module, how to exclude some categories

    I have not tested it but that looks about right but it is 1:30am and I am very sleepy ... so be sure to test this ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  5. #5
    Join Date
    Mar 2005
    Location
    California
    Posts
    663
    Plugin Contributions
    0

    Default Re: Free Shipping Options module, how to exclude some categories

    Quote Originally Posted by Ajeh View Post
    You kind of have the right idea ...

    Try this code up in the top of the file add the code in red below the code in black:
    Code:
          // disable only when entire cart is free shipping
          if (zen_get_shipping_enabled($this->code)) {
              $this->enabled = ((MODULE_SHIPPING_FREEOPTIONS_STATUS == 'True') ? true : false);
          }
    
    // bof: do not show if 1 or more products from master_categories_id 35 is in the cart
          global $cart;
          if (!IS_ADMIN_FLAG && $_SESSION['cart']->in_cart_check('master_categories_id', 35) > 0) {
            $this->enabled = false;
          }
    // eof: do not show if 1 or more products from master_categories_id 35 is in the cart
    
    Just testing now, this did not work, free options is still showing when products from this category are in the cart.
    Should the code be placed somewhere else?

  6. #6
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Free Shipping Options module, how to exclude some categories

    Post your whole file ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  7. #7
    Join Date
    Mar 2005
    Location
    California
    Posts
    663
    Plugin Contributions
    0

    Default Re: Free Shipping Options module, how to exclude some categories

    Thank you for looking into this.
    The only modifications to the file are this new code to try to exclude the categories, the code to exclude several categories is there on the file, but it's commented out because it gave an error on the admin side. So currently the only active modification is the code to exclude a single category.
    Also, in the final check I had previously changed an OR to an AND.
    I have highlighted the changes in red.

    Code:
    <?php
    /**
     * @package shippingMethod
     * @copyright Copyright 2003-2006 Zen Cart Development Team
     * @copyright Portions Copyright 2003 osCommerce
     * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
     * @version $Id: freeoptions.php 4238 2006-08-24 10:01:04Z drbyte $
     */
    
      class freeoptions extends base {
        var $code, $title, $description, $icon, $enabled;
        var $ck_freeoptions_total, $ck_freeoptions_weight, $ck_freeoptions_items;
    
    // class constructor
        function freeoptions() {
          global $order, $db;
    
          $this->code = 'freeoptions';
          $this->title = MODULE_SHIPPING_FREEOPTIONS_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_FREEOPTIONS_TEXT_DESCRIPTION;
          $this->sort_order = MODULE_SHIPPING_FREEOPTIONS_SORT_ORDER;
          $this->icon = '';
          $this->tax_class = MODULE_SHIPPING_FREEOPTIONS_TAX_CLASS;
          $this->tax_basis = MODULE_SHIPPING_FREEOPTIONS_TAX_BASIS;
    
          // disable only when entire cart is free shipping
          if (zen_get_shipping_enabled($this->code)) {
              $this->enabled = ((MODULE_SHIPPING_FREEOPTIONS_STATUS == 'True') ? true : false);
          }
          
    // bof: do not show if 1 or more products from master_categories_id 35 is in the cart
          global $cart;
          if (!IS_ADMIN_FLAG && $_SESSION['cart']->in_cart_check('master_categories_id', 35) > 0) {
            $this->enabled = false;
          }
    // eof: do not show if 1 or more products from master_categories_id 35 is in the cart
          
    /* this not working yet
    global $cart;
    $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','1');
    $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','35');
    $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','25');
    if (!IS_ADMIN_FLAG && $chk_exclude_categories > 0) {
    $this->enabled = false;
    }
    */
    
          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FREEOPTIONS_ZONE > 0) ) {
            $check_flag = false;
            $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FREEOPTIONS_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
            while (!$check->EOF) {
              if ($check->fields['zone_id'] < 1) {
                $check_flag = true;
                break;
              } elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) {
                $check_flag = true;
                break;
              }
    		  $check->MoveNext();
            }
    
            if ($check_flag == false) {
              $this->enabled = false;
            }
          }
        }
    
    // class methods
        function quote($method = '') {
          global $order;
          $order_weight = round($_SESSION['cart']->show_weight(),9);
    
          // check if anything is configured for total, weight or item
          if ((MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN !='' or MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX !='')) {
            $this->ck_freeoptions_total = true;
          } else {
            $this->ck_freeoptions_total = false;
          }
          if ((MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MIN !='' or MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MAX !='')) {
            $this->ck_freeoptions_weight = true;
          } else {
            $this->ck_freeoptions_weight = false;
          }
          if ((MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN !='' or MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX !='')) {
            $this->ck_freeoptions_items = true;
          } else {
            $this->ck_freeoptions_items = false;
          }
          if ($this->ck_freeoptions_total or $this->ck_freeoptions_weight or $this->ck_freeoptions_items) {
            $this->enabled = true;
          } else {
            $this->enabled = false;
          }
    
          // disabled if nothing validates for total, weight or item
          if ($this->enabled) {
            if ($this->ck_freeoptions_total) {
              switch (true) {
              case ((MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN !='' and MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX !='')):
    // free shipping total should not need adjusting
    //            if (($_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices()) >= MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN and ($_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices()) <= MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX) {
                if (($_SESSION['cart']->show_total()) >= MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN and ($_SESSION['cart']->show_total()) <= MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX) {
                  $this->ck_freeoptions_total = true;
                } else {
                  $this->ck_freeoptions_total = false;
                }
                break;
              case ((MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN !='')):
    //            if (($_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices()) >= MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN) {
                if (($_SESSION['cart']->show_total()) >= MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN) {
                  $this->ck_freeoptions_total = true;
                } else {
                  $this->ck_freeoptions_total = false;
                }
                break;
              case ((MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX !='')):
    //            if (($_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices()) <= MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX) {
                if (($_SESSION['cart']->show_total()) <= MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX) {
                  $this->ck_freeoptions_total = true;
                } else {
                  $this->ck_freeoptions_total = false;
                }
                break;
              }
            }
    
            if ($this->ck_freeoptions_weight) {
              switch (true) {
              case ((MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MIN !='' and MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MAX !='')):
                if ($order_weight >= MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MIN and $order_weight <= MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MAX) {
                  $this->ck_freeoptions_weight = true;
                } else {
                  $this->ck_freeoptions_weight = false;
                }
                break;
              case ((MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MIN !='')):
                if ($order_weight >= MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MIN) {
                  $this->ck_freeoptions_weight = true;
                } else {
                  $this->ck_freeoptions_weight = false;
                }
                break;
              case ((MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MAX !='')):
                if ($order_weight <= MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MAX) {
                  $this->ck_freeoptions_weight = true;
                } else {
                  $this->ck_freeoptions_weight = false;
                }
                break;
              }
            }
    
            if ($this->ck_freeoptions_items) {
              switch (true) {
              case ((MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN !='' and MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX !='')):
    // free shipping items should not need adjusting
    //            if (($_SESSION['cart']->count_contents() - $_SESSION['cart']->free_shipping_items()) >= MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN and ($_SESSION['cart']->count_contents() - $_SESSION['cart']->free_shipping_items()) <= MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX) {
                if (($_SESSION['cart']->count_contents()) >= MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN and ($_SESSION['cart']->count_contents()) <= MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX) {
                  $this->ck_freeoptions_items = true;
                } else {
                  $this->ck_freeoptions_items = false;
                }
                break;
              case ((MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN !='')):
    //            if (($_SESSION['cart']->count_contents() - $_SESSION['cart']->free_shipping_items()) >= MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN) {
                if (($_SESSION['cart']->count_contents()) >= MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN) {
                  $this->ck_freeoptions_items = true;
                } else {
                  $this->ck_freeoptions_items = false;
                }
                break;
              case ((MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX !='')):
    //            if (($_SESSION['cart']->count_contents() - $_SESSION['cart']->free_shipping_items())<= MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX) {
                if (($_SESSION['cart']->count_contents())<= MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX) {
                  $this->ck_freeoptions_items = true;
                } else {
                  $this->ck_freeoptions_items = false;
                }
                break;
              }
            }
          }
    
    /*
    echo 'I see count: ' . $_SESSION['cart']->count_contents() . ' free count: ' . $_SESSION['cart']->free_shipping_items() . '<br>' .
    'I see weight: ' . $_SESSION['cart']->show_weight() . '<br>' .
    'I see total: ' . $_SESSION['cart']->show_total() . ' free price: ' . $_SESSION['cart']->free_shipping_prices() . '<br>' .
    'Final check ' . ($this->ck_freeoptions_total ? 'T: YES ' : 'T: NO ') . ($this->ck_freeoptions_weight ? 'W: YES ' : 'W: NO ') . ($this->ck_freeoptions_items ? 'I: YES ' : 'I: NO ') . '<br>';
    */
    
    // final check for display of Free Options
          if ($this->ck_freeoptions_total AND $this->ck_freeoptions_weight or $this->ck_freeoptions_items) {
            $this->enabled = true;
          } else {
            $this->enabled = false;
          }
          
          if ($this->enabled) {
            $this->quotes = array('id' => $this->code,
                                  'module' => MODULE_SHIPPING_FREEOPTIONS_TEXT_TITLE,
                                  'methods' => array(array('id' => $this->code,
                                                           'title' => MODULE_SHIPPING_FREEOPTIONS_TEXT_WAY,
                                                           'cost'  => MODULE_SHIPPING_FREEOPTIONS_COST + MODULE_SHIPPING_FREEOPTIONS_HANDLING)));
          }
    
          if ($this->tax_class > 0) {
            $this->quotes['tax'] = zen_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
          }
    
          if (zen_not_null($this->icon)) $this->quotes['icon'] = zen_image($this->icon, $this->title);
    
          return $this->quotes;
        }
    
        function check() {
          global $db;
          if (!isset($this->_check)) {
            $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_FREEOPTIONS_STATUS'");
            $this->_check = $check_query->RecordCount();
          }
          return $this->_check;
        }
    
        function install() {
          global $db;
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Free Options Shipping', 'MODULE_SHIPPING_FREEOPTIONS_STATUS', 'True', 'Free Options is used to display a Free Shipping option when other Shipping Modules are displayed.
    It can be based on: Always show, Order Total, Order Weight or Order Item Count.
    The Free Options module does not show when Free Shipper is displayed.<br /><br />
    Setting Total to >= 0.00 and <= nothing (leave blank) will activate this module to show with all shipping modules, except for Free Shipping - freeshipper.<br /><br />
    NOTE: Leaving all settings for Total, Weight and Item count blank will deactivate this module.<br /><br />
    NOTE: Free Shipping Options does not display if Free Shipping is used based on 0 weight is Free Shipping.
    See: freeshipper<br /><br />Do you want to offer per freeoptions rate shipping?', '6', '0', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Cost', 'MODULE_SHIPPING_FREEOPTIONS_COST', '0.00', 'The shipping cost will be $0.00', '6', '0', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Handling Fee', 'MODULE_SHIPPING_FREEOPTIONS_HANDLING', '0', 'Handling fee for this shipping method.', '6', '0', now())");
    
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Total >=', 'MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN', '0.00', 'Free Shipping when Total >=', '6', '0', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Total <=', 'MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX', '', 'Free Shipping when Total <=', '6', '0', now())");
    
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Weight >=', 'MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MIN', '', 'Free Shipping when Weight >=', '6', '0', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Weight <=', 'MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MAX', '', 'Free Shipping when Weight <=', '6', '0', now())");
    
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Item Count >=', 'MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN', '', 'Free Shipping when Item Count >=', '6', '0', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Item Count <=', 'MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX', '', 'Free Shipping when Item Count <=', '6', '0', now())");
    
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Tax Class', 'MODULE_SHIPPING_FREEOPTIONS_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '6', '0', 'zen_get_tax_class_title', 'zen_cfg_pull_down_tax_classes(', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Tax Basis', 'MODULE_SHIPPING_FREEOPTIONS_TAX_BASIS', 'Shipping', 'On what basis is Shipping Tax calculated. Options are<br />Shipping - Based on customers Shipping Address<br />Billing Based on customers Billing address<br />Store - Based on Store address if Billing/Shipping Zone equals Store zone', '6', '0', 'zen_cfg_select_option(array(\'Shipping\', \'Billing\', \'Store\'), ', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Shipping Zone', 'MODULE_SHIPPING_FREEOPTIONS_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '6', '0', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
          $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_SHIPPING_FREEOPTIONS_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())");
        }
    
       function remove() {
         global $db;
         $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key LIKE  'MODULE_SHIPPING_FREEOPTIONS_%'");
       }
    
        function keys() {
          return array('MODULE_SHIPPING_FREEOPTIONS_STATUS', 'MODULE_SHIPPING_FREEOPTIONS_COST', 'MODULE_SHIPPING_FREEOPTIONS_HANDLING', 'MODULE_SHIPPING_FREEOPTIONS_TOTAL_MIN', 'MODULE_SHIPPING_FREEOPTIONS_TOTAL_MAX', 'MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MIN', 'MODULE_SHIPPING_FREEOPTIONS_WEIGHT_MAX', 'MODULE_SHIPPING_FREEOPTIONS_ITEMS_MIN', 'MODULE_SHIPPING_FREEOPTIONS_ITEMS_MAX', 'MODULE_SHIPPING_FREEOPTIONS_TAX_CLASS', 'MODULE_SHIPPING_FREEOPTIONS_TAX_BASIS', 'MODULE_SHIPPING_FREEOPTIONS_ZONE', 'MODULE_SHIPPING_FREEOPTIONS_SORT_ORDER');
        }
      }
    ?>

  8. #8
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Free Shipping Options module, how to exclude some categories

    What happens if you uncomment your code so it can run?

    NOTE: You will need to change the code a little so it can run in the Admin ...

    Code:
          // disable only when entire cart is free shipping
          if (zen_get_shipping_enabled($this->code)) {
              $this->enabled = ((MODULE_SHIPPING_FREEOPTIONS_STATUS == 'True') ? true : false);
          }
    
          if (!IS_ADMIN_FLAG) {
            global $cart;
            $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','1');
            $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','35');
            $chk_exclude_categories += $_SESSION['cart']->in_cart_check('master_categories_id','25');
            if ($chk_exclude_categories > 0) {
              $this->enabled = false;
            }
          }
    
          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FREEOPTIONS_ZONE > 0) ) {
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  9. #9
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: Free Shipping Options module, how to exclude some categories

    Also, what are your settings that you are using an AND and OR on the final check?
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  10. #10
    Join Date
    Mar 2005
    Location
    California
    Posts
    663
    Plugin Contributions
    0

    Default Re: Free Shipping Options module, how to exclude some categories

    I have figured it out the reason why it was not working was because I was using the top level category id, I thought that would automatically apply to subcategories, but it doesn't.

    So now the question is, is there a way to just enter the top level category id and have that apply to all subcategories as well?

 

 
Page 1 of 3 123 LastLast

Similar Threads

  1. group pricing exclude some master categories
    By count in forum Discounts/Coupons, Gift Certificates, Newsletters, Ads
    Replies: 0
    Last Post: 20 Jan 2013, 11:42 PM
  2. Limiting shipping options for some product categories
    By ShawnMilo in forum Addon Shipping Modules
    Replies: 13
    Last Post: 26 Jun 2008, 01:46 PM
  3. How to exclude certain shipping options if certain weight
    By dman76 in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 18 May 2008, 12:15 PM
  4. Free Shipping Options Module
    By WaltBoyd in forum Built-in Shipping and Payment Modules
    Replies: 1
    Last Post: 2 Dec 2007, 09:09 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR