Page 1 of 2 12 LastLast
Results 1 to 10 of 17
  1. #1
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,023
    Plugin Contributions
    32

    Default Hide Available Shipping Methods table until Shipping Estimator runs

    Client offers other flat rates along with UPS and doesn't want the Available Shipping Methods table to display on the
    http: // yoursite(dot)com/index(dot)php? main_page=shopping_cart page until the shipping estimator rates are returned. Is this something easily achieved and does any one have a hint how to go about this??
    Last edited by DivaVocals; 2 Aug 2012 at 02:59 AM.
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  2. #2
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,023
    Plugin Contributions
    32

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    Quote Originally Posted by DivaVocals View Post
    Client offers other flat rates along with UPS and doesn't want the Available Shipping Methods table to display on the
    http: // yoursite(dot)com/index(dot)php? main_page=shopping_cart page until the shipping estimator rates are returned. Is this something easily achieved and does any one have a hint how to go about this??
    Hate to bump this, but I am stumped here.. Anyone got any ideas???

    Here what the page looks like. Note that the Available Shipping Methods table displays.
    Attachment 11004


    After you enter the location and postal code information then the rest of the shipping rates display.
    Attachment 11005

    I want to know how NOT to display the entire Available Shipping Methods table until you enter the location and postal code information. This way all the available shipping methods are displayed together. (flat rates as well as UPS)
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  3. #3
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    12,305
    Plugin Contributions
    87

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    Give this a shot; it's a replacement for your /includes/templates/YOUR_TEMPLATE/templates/tpl_modules_shipping_estimator.php. There are two areas that were changed, just look for the //-bof and //-eof comments.
    Code:
    <?php
    /**
     * Module Template - for shipping-estimator display
     *
     * @package templateSystem
     * @copyright Copyright 2003-2011 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: tpl_modules_shipping_estimator.php 18695 2011-05-04 05:24:19Z drbyte $
     */
    ?>
    <div id="shippingEstimatorContent">
    <?php echo zen_draw_form('estimator', zen_href_link($show_in, '', $request_type), 'post'); ?>
    <?php echo zen_draw_hidden_field('scid', $selected_shipping['id']); ?>
    <?php echo zen_draw_hidden_field('action', 'submit'); ?>
    <?php
      if($_SESSION['cart']->count_contents()) {
        if ($_SESSION['customer_id']) {
    ?>
    <h2><?php echo CART_SHIPPING_OPTIONS; ?></h2>
    
    
    <?php if (!empty($totalsDisplay)) { ?>
    <div class="cartTotalsDisplay important"><?php echo $totalsDisplay; ?></div>
    <?php } ?>
    
    <?php
        // only display addresses if more than 1
          if ($addresses->RecordCount() > 1){
    ?>
    <label class="inputLabel" for="seAddressPulldown"><?php echo CART_SHIPPING_METHOD_ADDRESS; ?></label>
    <?php echo zen_draw_pull_down_menu('address_id', $addresses_array, $selected_address, 'onchange="return shipincart_submit();" id="seAddressPulldown"'); ?>
    <?php
          }
    ?>
    
    <div class="bold back" id="seShipTo"><?php echo CART_SHIPPING_METHOD_TO; ?></div>
    <address class="back"><?php echo zen_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br />'); ?></address>
    <br class="clearBoth" />
    <?php
        } else {
    ?>
    <h2><?php echo CART_SHIPPING_OPTIONS; ?></h2>
    <?php if (!empty($totalsDisplay)) { ?>
    <div class="cartTotalsDisplay important"><?php echo $totalsDisplay; ?></div>
    <?php } ?>
    <?php
          if($_SESSION['cart']->get_content_type() != 'virtual'){
    ?>
    
    <label class="inputLabel" for="country"><?php echo ENTRY_COUNTRY; ?></label>
    <?php echo zen_get_country_list('zone_country_id', $selected_country, 'id="country" onchange="update_zone(this.form);"'); ?>
    <br class="clearBoth" />
    
    <label class="inputLabel" for="stateZone" id="zoneLabel"><?php echo ENTRY_STATE; ?></label>
    <?php echo zen_draw_pull_down_menu('zone_id', zen_prepare_country_zones_pull_down($selected_country), $state_zone_id, 'id="stateZone"');?>
    <br class="clearBoth" id="stBreak" />
    <label class="inputLabel" for="state" id="stateLabel"><?php echo $state_field_label; ?></label>
    <?php echo zen_draw_input_field('state', $selectedState, zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_state', '40') . ' id="state"') .'&nbsp;<span class="alert" id="stText">&nbsp;</span>'; ?>
    <br class="clearBoth" />
    
    <?php
            if(CART_SHIPPING_METHOD_ZIP_REQUIRED == "true"){
    ?>
    <label class="inputLabel"><?php echo ENTRY_POST_CODE; ?></label>
    <?php echo  zen_draw_input_field('zip_code', $zip_code, 'size="7"'); ?>
    <br class="clearBoth" />
    <?php
            }
    ?>
    <div class="buttonRow forward"><?php echo  zen_image_submit(BUTTON_IMAGE_UPDATE, BUTTON_UPDATE_ALT); ?></div>
    <br class="clearBoth" />
    <?php
          }
        }
        if($_SESSION['cart']->get_content_type() == 'virtual'){
    ?>
    <?php echo CART_SHIPPING_METHOD_FREE_TEXT .  ' ' . CART_SHIPPING_METHOD_ALL_DOWNLOADS; ?>
    <?php
        }elseif ($free_shipping==1) {
    ?>
    <?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)); ?>
    <?php
        }else{
    //-bof-No display until country/state/zip are entered (1 of 2)
          if ($selected_country == 0 || ($selectedState == '' && $state_zone_id == 0) || $zip_code == '') {
    	    if (!defined(TEXT_ENTER_ALL_VALUES)) define ('TEXT_ENTER_ALL_VALUES', 'Please select your country, state and zipcode so that we can can retrieve an accurate shipping estimate.');
    	    echo '<p>' . TEXT_ENTER_ALL_VALUES . '</p>';
    	  } else {
    //-eof-No display until country/state/zip are entered (1 of 2)
    ?>
    <table width="100%" border="1" cellpadding="2" cellspacing ="2">
    <?php if ($_SESSION['customer_id'] < 1 ){ ?>
        <tr>
          <td colspan="2" class="seDisplayedAddressLabel">
            <?php echo CART_SHIPPING_QUOTE_CRITERIA; ?><br />
            <?php echo '<span class="seDisplayedAddressInfo">' . zen_get_zone_name($selected_country, $state_zone_id, '') . ($selectedState != '' ? ' ' . $selectedState : '') . ' ' . $order->delivery['postcode'] . ' ' . zen_get_country_name($order->delivery['country_id']) . '</span>'; ?>
          </td>
        </tr>
    <?php } ?>
         <tr>
           <th scope="col" id="seProductsHeading"><?php echo CART_SHIPPING_METHOD_TEXT; ?></th>
           <th scope="col" id="seTotalHeading"><?php echo CART_SHIPPING_METHOD_RATES; ?></th>
         </tr>
    <?php
          for ($i=0, $n=sizeof($quotes); $i<$n; $i++) {
            if(sizeof($quotes[$i]['methods'])==1){
              // simple shipping method
              $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][0]['id'];
    ?>
         <tr class="<?php echo $extra; ?>">
    <?php
              if($quotes[$i]['error']){
    ?>
             <td colspan="2"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['error']; ?>)</td>
           </tr>
    <?php
              }else{
                if($selected_shipping['id'] == $thisquoteid){
    ?>
             <td class="bold"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][0]['title']; ?>)</td>
             <td class="cartTotalDisplay bold"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                }else{
    ?>
              <td><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][0]['title']; ?>)</td>
              <td class="cartTotalDisplay"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                }
              }
            } else {
              // shipping method with sub methods (multipickup)
              for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) {
                $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'];
    ?>
        <tr class="<?php echo $extra; ?>">
    <?php
                if($quotes[$i]['error']){
    ?>
             <td colspan="2"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['error']; ?>)</td>
           </tr>
    <?php
                }else{
                  if($selected_shipping['id'] == $thisquoteid){
    ?>
             <td class="bold"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][$j]['title']; ?>)</td>
             <td class="cartTotalDisplay bold"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                  }else{
    ?>
            <td><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][$j]['title']; ?>)</td>
            <td class="cartTotalDisplay"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])); ?></td>
          </tr>
    <?php
                  }
                }
              }
            }
          }
    ?>
    </table>
    <?php
       }
    //-bof-No display until country/state/zip are entered (2 of 2)
       }
    //-eof-No display until country/state/zip are entered (2 of 2)
      }
    ?>
    </form>
    </div>

  4. #4
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,023
    Plugin Contributions
    32

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    You are awesome!!!! This worked perfectly!!! thank you thank you thank you!!!!!!!!!!!!

    Quote Originally Posted by lat9 View Post
    Give this a shot; it's a replacement for your /includes/templates/YOUR_TEMPLATE/templates/tpl_modules_shipping_estimator.php. There are two areas that were changed, just look for the //-bof and //-eof comments.
    Code:
    <?php
    /**
     * Module Template - for shipping-estimator display
     *
     * @package templateSystem
     * @copyright Copyright 2003-2011 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: tpl_modules_shipping_estimator.php 18695 2011-05-04 05:24:19Z drbyte $
     */
    ?>
    <div id="shippingEstimatorContent">
    <?php echo zen_draw_form('estimator', zen_href_link($show_in, '', $request_type), 'post'); ?>
    <?php echo zen_draw_hidden_field('scid', $selected_shipping['id']); ?>
    <?php echo zen_draw_hidden_field('action', 'submit'); ?>
    <?php
      if($_SESSION['cart']->count_contents()) {
        if ($_SESSION['customer_id']) {
    ?>
    <h2><?php echo CART_SHIPPING_OPTIONS; ?></h2>
    
    
    <?php if (!empty($totalsDisplay)) { ?>
    <div class="cartTotalsDisplay important"><?php echo $totalsDisplay; ?></div>
    <?php } ?>
    
    <?php
        // only display addresses if more than 1
          if ($addresses->RecordCount() > 1){
    ?>
    <label class="inputLabel" for="seAddressPulldown"><?php echo CART_SHIPPING_METHOD_ADDRESS; ?></label>
    <?php echo zen_draw_pull_down_menu('address_id', $addresses_array, $selected_address, 'onchange="return shipincart_submit();" id="seAddressPulldown"'); ?>
    <?php
          }
    ?>
    
    <div class="bold back" id="seShipTo"><?php echo CART_SHIPPING_METHOD_TO; ?></div>
    <address class="back"><?php echo zen_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br />'); ?></address>
    <br class="clearBoth" />
    <?php
        } else {
    ?>
    <h2><?php echo CART_SHIPPING_OPTIONS; ?></h2>
    <?php if (!empty($totalsDisplay)) { ?>
    <div class="cartTotalsDisplay important"><?php echo $totalsDisplay; ?></div>
    <?php } ?>
    <?php
          if($_SESSION['cart']->get_content_type() != 'virtual'){
    ?>
    
    <label class="inputLabel" for="country"><?php echo ENTRY_COUNTRY; ?></label>
    <?php echo zen_get_country_list('zone_country_id', $selected_country, 'id="country" onchange="update_zone(this.form);"'); ?>
    <br class="clearBoth" />
    
    <label class="inputLabel" for="stateZone" id="zoneLabel"><?php echo ENTRY_STATE; ?></label>
    <?php echo zen_draw_pull_down_menu('zone_id', zen_prepare_country_zones_pull_down($selected_country), $state_zone_id, 'id="stateZone"');?>
    <br class="clearBoth" id="stBreak" />
    <label class="inputLabel" for="state" id="stateLabel"><?php echo $state_field_label; ?></label>
    <?php echo zen_draw_input_field('state', $selectedState, zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_state', '40') . ' id="state"') .'&nbsp;<span class="alert" id="stText">&nbsp;</span>'; ?>
    <br class="clearBoth" />
    
    <?php
            if(CART_SHIPPING_METHOD_ZIP_REQUIRED == "true"){
    ?>
    <label class="inputLabel"><?php echo ENTRY_POST_CODE; ?></label>
    <?php echo  zen_draw_input_field('zip_code', $zip_code, 'size="7"'); ?>
    <br class="clearBoth" />
    <?php
            }
    ?>
    <div class="buttonRow forward"><?php echo  zen_image_submit(BUTTON_IMAGE_UPDATE, BUTTON_UPDATE_ALT); ?></div>
    <br class="clearBoth" />
    <?php
          }
        }
        if($_SESSION['cart']->get_content_type() == 'virtual'){
    ?>
    <?php echo CART_SHIPPING_METHOD_FREE_TEXT .  ' ' . CART_SHIPPING_METHOD_ALL_DOWNLOADS; ?>
    <?php
        }elseif ($free_shipping==1) {
    ?>
    <?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)); ?>
    <?php
        }else{
    //-bof-No display until country/state/zip are entered (1 of 2)
          if ($selected_country == 0 || ($selectedState == '' && $state_zone_id == 0) || $zip_code == '') {
            if (!defined(TEXT_ENTER_ALL_VALUES)) define ('TEXT_ENTER_ALL_VALUES', 'Please select your country, state and zipcode so that we can can retrieve an accurate shipping estimate.');
            echo '<p>' . TEXT_ENTER_ALL_VALUES . '</p>';
          } else {
    //-eof-No display until country/state/zip are entered (1 of 2)
    ?>
    <table width="100%" border="1" cellpadding="2" cellspacing ="2">
    <?php if ($_SESSION['customer_id'] < 1 ){ ?>
        <tr>
          <td colspan="2" class="seDisplayedAddressLabel">
            <?php echo CART_SHIPPING_QUOTE_CRITERIA; ?><br />
            <?php echo '<span class="seDisplayedAddressInfo">' . zen_get_zone_name($selected_country, $state_zone_id, '') . ($selectedState != '' ? ' ' . $selectedState : '') . ' ' . $order->delivery['postcode'] . ' ' . zen_get_country_name($order->delivery['country_id']) . '</span>'; ?>
          </td>
        </tr>
    <?php } ?>
         <tr>
           <th scope="col" id="seProductsHeading"><?php echo CART_SHIPPING_METHOD_TEXT; ?></th>
           <th scope="col" id="seTotalHeading"><?php echo CART_SHIPPING_METHOD_RATES; ?></th>
         </tr>
    <?php
          for ($i=0, $n=sizeof($quotes); $i<$n; $i++) {
            if(sizeof($quotes[$i]['methods'])==1){
              // simple shipping method
              $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][0]['id'];
    ?>
         <tr class="<?php echo $extra; ?>">
    <?php
              if($quotes[$i]['error']){
    ?>
             <td colspan="2"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['error']; ?>)</td>
           </tr>
    <?php
              }else{
                if($selected_shipping['id'] == $thisquoteid){
    ?>
             <td class="bold"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][0]['title']; ?>)</td>
             <td class="cartTotalDisplay bold"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                }else{
    ?>
              <td><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][0]['title']; ?>)</td>
              <td class="cartTotalDisplay"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                }
              }
            } else {
              // shipping method with sub methods (multipickup)
              for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) {
                $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'];
    ?>
        <tr class="<?php echo $extra; ?>">
    <?php
                if($quotes[$i]['error']){
    ?>
             <td colspan="2"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['error']; ?>)</td>
           </tr>
    <?php
                }else{
                  if($selected_shipping['id'] == $thisquoteid){
    ?>
             <td class="bold"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][$j]['title']; ?>)</td>
             <td class="cartTotalDisplay bold"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                  }else{
    ?>
            <td><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][$j]['title']; ?>)</td>
            <td class="cartTotalDisplay"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])); ?></td>
          </tr>
    <?php
                  }
                }
              }
            }
          }
    ?>
    </table>
    <?php
       }
    //-bof-No display until country/state/zip are entered (2 of 2)
       }
    //-eof-No display until country/state/zip are entered (2 of 2)
      }
    ?>
    </form>
    </div>
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  5. #5
    Join Date
    Dec 2011
    Posts
    92
    Plugin Contributions
    0

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    Hi DivaVocals,

    Are you able to tell me how you inserted you extra bullet pointed list beneath the available shipping options please? I too, would like to be able to some further guidance to make our shipping costs clearer.

    Thanks

  6. #6
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,023
    Plugin Contributions
    32

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    Hate to bump an old post, but I need some help.. Just discovered today that the shipping estimator does not work when a customer logs in. The ONLY modification to the shipping estimator was the code below. How does this need to be modified so that the shipping estimator will work when a customer is logged in as well??

    ETA: I just tested what happens when I comment this code out.. the shipping estimator does display when logged in.. So I need help making the corrections to the modified code below so that the shipping estimator displays whether logged in or not..

    Quote Originally Posted by lat9 View Post
    Give this a shot; it's a replacement for your /includes/templates/YOUR_TEMPLATE/templates/tpl_modules_shipping_estimator.php. There are two areas that were changed, just look for the //-bof and //-eof comments.
    Code:
    <?php
    /**
     * Module Template - for shipping-estimator display
     *
     * @package templateSystem
     * @copyright Copyright 2003-2011 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: tpl_modules_shipping_estimator.php 18695 2011-05-04 05:24:19Z drbyte $
     */
    ?>
    <div id="shippingEstimatorContent">
    <?php echo zen_draw_form('estimator', zen_href_link($show_in, '', $request_type), 'post'); ?>
    <?php echo zen_draw_hidden_field('scid', $selected_shipping['id']); ?>
    <?php echo zen_draw_hidden_field('action', 'submit'); ?>
    <?php
      if($_SESSION['cart']->count_contents()) {
        if ($_SESSION['customer_id']) {
    ?>
    <h2><?php echo CART_SHIPPING_OPTIONS; ?></h2>
    
    
    <?php if (!empty($totalsDisplay)) { ?>
    <div class="cartTotalsDisplay important"><?php echo $totalsDisplay; ?></div>
    <?php } ?>
    
    <?php
        // only display addresses if more than 1
          if ($addresses->RecordCount() > 1){
    ?>
    <label class="inputLabel" for="seAddressPulldown"><?php echo CART_SHIPPING_METHOD_ADDRESS; ?></label>
    <?php echo zen_draw_pull_down_menu('address_id', $addresses_array, $selected_address, 'onchange="return shipincart_submit();" id="seAddressPulldown"'); ?>
    <?php
          }
    ?>
    
    <div class="bold back" id="seShipTo"><?php echo CART_SHIPPING_METHOD_TO; ?></div>
    <address class="back"><?php echo zen_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br />'); ?></address>
    <br class="clearBoth" />
    <?php
        } else {
    ?>
    <h2><?php echo CART_SHIPPING_OPTIONS; ?></h2>
    <?php if (!empty($totalsDisplay)) { ?>
    <div class="cartTotalsDisplay important"><?php echo $totalsDisplay; ?></div>
    <?php } ?>
    <?php
          if($_SESSION['cart']->get_content_type() != 'virtual'){
    ?>
    
    <label class="inputLabel" for="country"><?php echo ENTRY_COUNTRY; ?></label>
    <?php echo zen_get_country_list('zone_country_id', $selected_country, 'id="country" onchange="update_zone(this.form);"'); ?>
    <br class="clearBoth" />
    
    <label class="inputLabel" for="stateZone" id="zoneLabel"><?php echo ENTRY_STATE; ?></label>
    <?php echo zen_draw_pull_down_menu('zone_id', zen_prepare_country_zones_pull_down($selected_country), $state_zone_id, 'id="stateZone"');?>
    <br class="clearBoth" id="stBreak" />
    <label class="inputLabel" for="state" id="stateLabel"><?php echo $state_field_label; ?></label>
    <?php echo zen_draw_input_field('state', $selectedState, zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_state', '40') . ' id="state"') .'&nbsp;<span class="alert" id="stText">&nbsp;</span>'; ?>
    <br class="clearBoth" />
    
    <?php
            if(CART_SHIPPING_METHOD_ZIP_REQUIRED == "true"){
    ?>
    <label class="inputLabel"><?php echo ENTRY_POST_CODE; ?></label>
    <?php echo  zen_draw_input_field('zip_code', $zip_code, 'size="7"'); ?>
    <br class="clearBoth" />
    <?php
            }
    ?>
    <div class="buttonRow forward"><?php echo  zen_image_submit(BUTTON_IMAGE_UPDATE, BUTTON_UPDATE_ALT); ?></div>
    <br class="clearBoth" />
    <?php
          }
        }
        if($_SESSION['cart']->get_content_type() == 'virtual'){
    ?>
    <?php echo CART_SHIPPING_METHOD_FREE_TEXT .  ' ' . CART_SHIPPING_METHOD_ALL_DOWNLOADS; ?>
    <?php
        }elseif ($free_shipping==1) {
    ?>
    <?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)); ?>
    <?php
        }else{
    //-bof-No display until country/state/zip are entered (1 of 2)
          if ($selected_country == 0 || ($selectedState == '' && $state_zone_id == 0) || $zip_code == '') {
            if (!defined(TEXT_ENTER_ALL_VALUES)) define ('TEXT_ENTER_ALL_VALUES', 'Please select your country, state and zipcode so that we can can retrieve an accurate shipping estimate.');
            echo '<p>' . TEXT_ENTER_ALL_VALUES . '</p>';
          } else {
    //-eof-No display until country/state/zip are entered (1 of 2)
    ?>
    <table width="100%" border="1" cellpadding="2" cellspacing ="2">
    <?php if ($_SESSION['customer_id'] < 1 ){ ?>
        <tr>
          <td colspan="2" class="seDisplayedAddressLabel">
            <?php echo CART_SHIPPING_QUOTE_CRITERIA; ?><br />
            <?php echo '<span class="seDisplayedAddressInfo">' . zen_get_zone_name($selected_country, $state_zone_id, '') . ($selectedState != '' ? ' ' . $selectedState : '') . ' ' . $order->delivery['postcode'] . ' ' . zen_get_country_name($order->delivery['country_id']) . '</span>'; ?>
          </td>
        </tr>
    <?php } ?>
         <tr>
           <th scope="col" id="seProductsHeading"><?php echo CART_SHIPPING_METHOD_TEXT; ?></th>
           <th scope="col" id="seTotalHeading"><?php echo CART_SHIPPING_METHOD_RATES; ?></th>
         </tr>
    <?php
          for ($i=0, $n=sizeof($quotes); $i<$n; $i++) {
            if(sizeof($quotes[$i]['methods'])==1){
              // simple shipping method
              $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][0]['id'];
    ?>
         <tr class="<?php echo $extra; ?>">
    <?php
              if($quotes[$i]['error']){
    ?>
             <td colspan="2"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['error']; ?>)</td>
           </tr>
    <?php
              }else{
                if($selected_shipping['id'] == $thisquoteid){
    ?>
             <td class="bold"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][0]['title']; ?>)</td>
             <td class="cartTotalDisplay bold"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                }else{
    ?>
              <td><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][0]['title']; ?>)</td>
              <td class="cartTotalDisplay"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                }
              }
            } else {
              // shipping method with sub methods (multipickup)
              for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) {
                $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'];
    ?>
        <tr class="<?php echo $extra; ?>">
    <?php
                if($quotes[$i]['error']){
    ?>
             <td colspan="2"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['error']; ?>)</td>
           </tr>
    <?php
                }else{
                  if($selected_shipping['id'] == $thisquoteid){
    ?>
             <td class="bold"><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][$j]['title']; ?>)</td>
             <td class="cartTotalDisplay bold"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])); ?></td>
           </tr>
    <?php
                  }else{
    ?>
            <td><?php echo $quotes[$i]['module']; ?>&nbsp;(<?php echo $quotes[$i]['methods'][$j]['title']; ?>)</td>
            <td class="cartTotalDisplay"><?php echo $currencies->format(zen_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])); ?></td>
          </tr>
    <?php
                  }
                }
              }
            }
          }
    ?>
    </table>
    <?php
       }
    //-bof-No display until country/state/zip are entered (2 of 2)
       }
    //-eof-No display until country/state/zip are entered (2 of 2)
      }
    ?>
    </form>
    </div>
    Last edited by DivaVocals; 22 Aug 2013 at 05:51 AM.
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  7. #7
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,023
    Plugin Contributions
    32

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    Quote Originally Posted by DivaVocals View Post
    Hate to bump an old post, but I need some help.. Just discovered today that the shipping estimator does not work when a customer logs in. The ONLY modification to the shipping estimator was the code below. How does this need to be modified so that the shipping estimator will work when a customer is logged in as well??

    ETA: I just tested what happens when I comment this code out.. the shipping estimator does display when logged in.. So I need help making the corrections to the modified code below so that the shipping estimator displays whether logged in or not..
    Nevermind.. I think the issue is that this code conflicts with the changes to the UPS and Flat Rate shipping modules that Ajeh just helped me with today:
    http://www.zen-cart.com/showthread.p...a-lower-option

    Gonna back out the shipping estimator code and test to see if this fixes things..
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  8. #8
    Join Date
    Sep 2008
    Location
    Toronto, ON
    Posts
    2
    Plugin Contributions
    0

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    Quote Originally Posted by DivaVocals View Post
    Hate to bump an old post, but I need some help.. Just discovered today that the shipping estimator does not work when a customer logs in. The ONLY modification to the shipping estimator was the code below. How does this need to be modified so that the shipping estimator will work when a customer is logged in as well??

    ETA: I just tested what happens when I comment this code out.. the shipping estimator does display when logged in.. So I need help making the corrections to the modified code below so that the shipping estimator displays whether logged in or not..
    Just tried to implement this myself with same issue. Think I've managed to fix it.

    Alter the first if statement in the modification so it also checks if customer logged in.

    From:

    Code:
    if ($selected_country == 0 || ($selectedState == '' && $state_zone_id == 0) || $zip_code == '') {
    To:

    Code:
    if (($selected_country == 0 || ($selectedState == '' && $state_zone_id == 0) || $zip_code == '')  && (!$_SESSION['customer_id'])) {
    I'm have some basic programming skills but am not knowledgeable about PHP. Just put this together from following the logic and copying some code from above in the file. Seems to work (1.3.9h) but please test first.

  9. #9
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,023
    Plugin Contributions
    32

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    Quote Originally Posted by Beagle View Post
    Just tried to implement this myself with same issue. Think I've managed to fix it.

    Not the SAME issue at all.. you have the same SYMPTOM.. (yes there is a difference)

    So let me be CLEAR.. The code posted in post #3 (http://www.zen-cart.com/showthread.p...97#post1145497) worked JUST FINE for me (and it will for others too) until I made OTHER changes ELSEWHERE to some shipping modules which caused the shipping estimator to not work when a customer logged in.
    As I stated in post #7 here:
    I think the issue is that this code conflicts with the changes to the UPS and Flat Rate shipping modules that Ajeh just helped me with today:
    http://www.zen-cart.com/showthread.p...a-lower-option
    The changes I made to the UPS and Flat Rate shipping modules conflicted with the code posted in post #3, and in a fact the changes I made to my UPS and Flat Rate shipping modules made the need for the changes in post #3 OBSOLETE..



    Quote Originally Posted by Beagle View Post
    Alter the first if statement in the modification so it also checks if customer logged in.

    From:

    Code:
    if ($selected_country == 0 || ($selectedState == '' && $state_zone_id == 0) || $zip_code == '') {
    To:

    Code:
    if (($selected_country == 0 || ($selectedState == '' && $state_zone_id == 0) || $zip_code == '')  && (!$_SESSION['customer_id'])) {
    I'm have some basic programming skills but am not knowledgeable about PHP. Just put this together from following the logic and copying some code from above in the file. Seems to work (1.3.9h) but please test first.
    Your solution only adds the customer being logged in as an additional condition required before the shipping estimator will display.. Means that customers who are NOT logged in will NOT see the shipping estimator..
    Last edited by DivaVocals; 22 Sep 2013 at 07:06 PM.
    My Site - Zen Cart & WordPress integration specialist
    I don't answer support questions via PM. Post add-on support questions in the support thread. The question & the answer will benefit others with similar issues.

  10. #10
    Join Date
    Sep 2008
    Location
    Toronto, ON
    Posts
    2
    Plugin Contributions
    0

    Default Re: Hide Available Shipping Methods table until Shipping Estimator runs

    Quote Originally Posted by DivaVocals View Post
    Not the SAME issue at all.. you have the same SYMPTOM.. (yes there is a difference)
    Fair enough. Did not mean to suggest that this change would fix a conflict with a shipping module.

    Quote Originally Posted by DivaVocals View Post
    Your solution only adds the customer being logged in as an additional condition required before the shipping estimator will display.. Means that customers who are NOT logged in will NOT see the shipping estimator..
    Note the ! - checks for customer NOT logged in.

    The logic of the shipping estimator is something like:

    IF (customer is logged in) THEN
    Use customer's address information for shipping estimate
    ELSE
    Present form to collect Country, State, Zip and use this for shipping estimate
    END IF

    But if the customer is logged in, the variables set by the form under ELSE are not set. Therefore the display of the shipping estimate is not presented, since the modification discussed here disables the display if any of the variables are not set. My additional condition ignores all the other conditions if the customer is logged in.

    I present this should someone else have the same display issue - as far as I can tell, the original code cannot work if the customer is logged in.

 

 
Page 1 of 2 12 LastLast

Similar Threads

  1. Replies: 30
    Last Post: 30 Dec 2013, 08:20 PM
  2. hide other shipping methods with free shipping
    By thenax in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 10 Nov 2009, 09:46 PM
  3. Hide the shipping estimator if only free shipping?
    By westcoastfavors in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 22 Dec 2007, 06:27 AM
  4. USPS - No shipping methods available
    By DeV0id in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 12 May 2007, 04:29 AM
  5. Shipping Estimator Sort Shipping Methods
    By sitehatchery in forum Built-in Shipping and Payment Modules
    Replies: 0
    Last Post: 15 Apr 2007, 05:34 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