Ankündigung

Einklappen
Keine Ankündigung bisher.

Call to undefined function is_countable()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    (Zen-Cart 1.5.6) Call to undefined function is_countable()

    Ich bekomme beim Update auf den Shop diese Fehlermeldungen:

    Code:
    [10-Sep-2019 23:39:28 Europe/Berlin] Request URI: /2019/shopping_cart, IP address: 2003:de:af13:7400:c158:d18f:e8ce:12f4
    --> PHP Fatal error: Uncaught Error: Call to undefined function is_countable() in /is/htdocs/wp10.../xxx/xxx/includes/templates/responsive_classic/templates/tpl_shopping_cart_default.php:264
    Stack trace:
    #0 /is/htdocs/wp10.../xxx/xxx/includes/templates/responsive_classic/common/tpl_main_page.php(171): require()
    #1 /is/htdocs/wp10.../xxx/xxx/index.php(97): require('/is/htdocs/wp10...')
    #2 {main}
    thrown in /is/htdocs/wp10.../xxx/xxx/includes/templates/responsive_classic/templates/tpl_shopping_cart_default.php on line 264.
    In Zeile 264 steht das markierte:

    Code:
     <!--BOF Free Gifts-->
                <h2><?php echo WARENKORB_FREEBIES; ?></h2>
                <?php 
            if ($gift_message) {
                echo '<div align="center"><span class="smallText">'.$gift_message.'</span></div><p>';
            }
            [COLOR=#ff0000][B]if(is_countable($freebie)) {[/B][/COLOR]
            for ($i=0, $n=count($freebie); $i<$n; $i++) {
                if ($gift_exists > 0) {        
                    $link = TEXT_REMOVE_GIFT;
                } else {
                    $link = $freebie[$i]['link'];
                }
                echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr> <br>
                  <td class="smallText" bgcolor="#FFFFFF">  
                         <a href="' . zen_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$freebie[$i]['id'], 'NONSSL') . '">' . zen_image(DIR_WS_IMAGES . $freebie[$i]['image'], $freebie[$i]['name'], GIFTS_IMAGE_WIDTH, GIFTS_IMAGE_WIDTH, 'align="left"' )  . '</a>' 
                         . $freebie[$i]['message'].'
                   <br><br/><b>'.$freebie[$i]['name'].'</b>
                   <br><br/> ' . TEXT_MAX_1_GIFT . '
                         <br/><br/>'.$link.'
                  </td>
                </tr>
                </table>';                        
            }
        }
            if ($freebie[0]['name']) {
            ?>
       <?php
       }
       ?>
       <!--EOF Free Gifts-->
    Da auf der Seite auch ein anderes älteres Modul installiert ist, vermute ich, dass dieses die Ursache ist. Denn wenn ich den Bereich entferne, dann entfallen auch die Fehlermeldungen. Das entsprechende ältere Modul (Hinweis auf kostenlosen Versand ab bestimmtem Bestellwert 2.2 fuer Zen Cart 1.5.5 deutsch) lief unter 1.55 noch problemlos auch mit den Freebies. Das ist das entsprechende Teil, welches offenbar das Problem verursacht, gibt es da eine einfache Möglichkeit der Problembehebung?

    Code:
    <!--BOF Free Shipping Qualifier -->
    <div class="cartAlert">
    <?php
    /**
     * check if cart qualifies for free shipping
     */
    
    if (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') {
      $free_limit = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER;
      if ($_SESSION['cart']->count_contents() > 0) { 
         $_SESSION['cart']->get_products(); 
         $basket_total = $_SESSION['cart']->show_total(); 
         if ($basket_total < $free_limit) { 
            $diff_to_free = ($free_limit - $basket_total);
            echo  TEXT_ALERT_IN_CART . $currencies->format($diff_to_free) . TEXT_ALERT_QUALIFY;
         } 
          else { 
            echo TEXT_ALERT_NOW_QUALIFIED; 
         }  
       } 
     }
    
    /**
     * end of check if cart qualifies for free shipping
     */
    ?>
    <br /><br />
    <?php
      if ($basket_total < $free_limit) {
      echo  TEXT_ALERT_FREE_SHIPPING . $currencies->format($free_limit) . TEXT_ALERT_OR_MORE;
      }
    ?>
    <br /><br />
    </div>
    <!--EOF Free Shipping Qualifier -->

    #2
    Die Funktion is_countable gibt es erst mit PHP 7.3
    Würdest Du auf PHP 7.3 stellen gäbe es diese Meldung nicht
    Wenn PHP 7.3. nicht möglich ist, dann nimm diese Abfrage heraus und ändere den Bereich auf
    Code:
     <!--BOF Free Gifts-->
                <h2><?php echo WARENKORB_FREEBIES; ?></h2>
     
                <?php 
            if ($gift_message) {
                echo '<div align="center"><span class="smallText">'.$gift_message.'</span></div><p>';
            }
            for ($i=0, $n=sizeof($freebie); $i<$n; $i++) {
                if ($gift_exists > 0) {
                    $link = TEXT_REMOVE_GIFT;
                } else {
                    $link = $freebie[$i]['link'];
                }
                echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr> <br>
                  <td class="smallText" bgcolor="#FFFFFF">  
                         <a href="' . zen_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$freebie[$i]['id'], 'NONSSL') . '">' . zen_image(DIR_WS_IMAGES . $freebie[$i]['image'], $freebie[$i]['name'], GIFTS_IMAGE_WIDTH, GIFTS_IMAGE_WIDTH, 'align="left"' )  . '</a>' 
                         . $freebie[$i]['message'].'
                   <br><br/><b>'.$freebie[$i]['name'].'</b>
                   <br><br/> ' . TEXT_MAX_1_GIFT . '
                         <br/><br/>'.$link.'
                  </td>
                </tr>
                </table>';                        
            }
            if ($freebie[0]['name']) {
                
            ?>
                    
       <?php
       }
       ?>
       <!--EOF Free Gifts-->

    Kommentar


      #3
      Danke für den Tipp, webchills. Im Moment bin ich noch beim Update des Shops, dieses läuft in einem Unterverzeichnis des Liveshops. Wenn alles ohne Probleme funktioniert, dann wird der "alte" Shop gelöscht und durch die aktuelle Version ersetzt. Dann kann ich auch auf PHP 7.3 umstellen, was ja wegen der derzeit noch laufenden Version noch nicht möglich ist.

      Kommentar

      Info zu diesem Forenarchiv:
      Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
      Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
      Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
      PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
      Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
      FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

      Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
      Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
      Fehler in der Software können auf Github als Issues gemeldet werden.
      Follow us
      aktuelle version
      Zen Cart 1.5.7g deutsch
      vom 12.12.2023
      [Download]
      Lädt...
      X