Results 1 to 10 of 19

Hybrid View

  1. #1
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,021
    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.

  2. #2
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,021
    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.

  3. #3
    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.

  4. #4
    Join Date
    Jan 2007
    Location
    Los Angeles, California, United States
    Posts
    10,021
    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.

  5. #5
    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.

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

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

    Quote Originally Posted by Beagle View Post
    Fair enough. Did not mean to suggest that this change would fix a conflict with a shipping module.



    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.
    Read your ealier post a bit too fast.. So I stand corrected.. You are right the original code probably never worked when a customer was logged in.. (admittedly I never tested this when I first used it..) so in the name of clarity gonna post the FULL change (makes it easier for folks following this if they don't have to piece together the change)

    This is a replacement for the /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
          }
        }
        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 == '')  && (!$_SESSION['customer_id'])) {
            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.

  7. #7
    Join Date
    Feb 2010
    Posts
    2,159
    Plugin Contributions
    17

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

    Quote Originally Posted by DivaVocals View Post
    Read your ealier post a bit too fast.. So I stand corrected.. You are right the original code probably never worked when a customer was logged in.. (admittedly I never tested this when I first used it..) so in the name of clarity gonna post the FULL change (makes it easier for folks following this if they don't have to piece together the change)

    This is a replacement for the /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
          }
        }
        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{
    //-REMOVE -- REMOVE -- REMOVE -- REMOVE --       
    if (($selected_country == 0 || ($selectedState == '' && $state_zone_id == 0) || $zip_code == '')  && (!$_SESSION['customer_id'])) {
            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 {
    //-REMOVE -- REMOVE -- REMOVE -- REMOVE --
    ?>
    //-BOF REMOVE TABLE TILL ZIP CODE ENTERED OR CUSTOMER SESSION EXISTS
    <?php if ($_SESSION['customer_id'] < '1' and !empty($order->delivery['postcode']) or $_SESSION['customer_id']){ ?>
    //-EOF REMOVE TABLE TILL ZIP CODE ENTERED OR CUSTOMER SESSION EXISTS
    <table width="100%" border="1" cellpadding="2" cellspacing ="2">
    //-MOVE ABOVE <HTML TABLE> AND CHANGE TO RED CODE
    <?php if ($_SESSION['customer_id'] < 1 ){ ?>
    //-MOVE ABOVE <HTML TABLE> AND CHANGE TO RED CODE
        <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>
    //-REMOVE -- REMOVE -- REMOVE -- REMOVE --
    <?php } ?>
    //-REMOVE -- REMOVE -- REMOVE -- REMOVE --
         <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)  KEEP 
       }
    //-eof-No display until country/state/zip are entered (2 of 2)     KEEP
      }
    ?>
    </form>
    </div>
    Hope this helps and what you are looking to do.

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

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

    Quote Originally Posted by rbarbour View Post
    Hope this helps and what you are looking to do.
    Honestly speaking what you posted isn't clear all.. the blue and red coloring confuses rather than clarifies things.. I tried your code and it doesn't work, and breaks a few things.. The code I posted (lat9's original code + the changes Beagle made) does achieve the original objective "Hide Available Shipping Methods table until Shipping Estimator runs", and now it works whether you are logged in or not.. Plus it has the added bonus of providing a nice on-screen message to remind the site visitor to enter the required info needed to obtain a shipping estimate..
    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.

 

 

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

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