Schwerwiegender Fehler: Nicht erfasster Fehler: Aufruf der undefinierten Funktion is_product()

Lesezeit: 7 Minuten

Benutzer-Avatar
ptrca

Nach dem Importieren meiner mit WordPress verbundenen Produktionswebsite in meine lokale Xampp-Umgebung erhalte ich diese Fehlermeldung:

Fatal error: Uncaught Error: Call to undefined function is_product() in C:\xampp\htdocs\public_html\siliconharvest\wp-content\themes\storefront-child\functions.php:62 Stack-Trace: #0 C:\xampp\ htdocs\public_html\siliconharvest\wp-includes\class-wp-hook.php(286): wc_variable_simple_conditions(”) #1 C:\xampp\htdocs\public_html\siliconharvest\wp-includes\class-wp-hook.php (310): WP_Hook->apply_filters(NULL, Array) #2 C:\xampp\htdocs\public_html\siliconharvest\wp-includes\plugin.php(453): WP_Hook->do_action(Array) #3 C:\xampp \htdocs\public_html\siliconharvest\wp-includes\general-template.php(2614): do_action(‘wp_head’) #4 C:\xampp\htdocs\public_html\siliconharvest\wp-content\themes\storefront\header.php (18): wp_head() #5 C:\xampp\htdocs\public_html\siliconharvest\wp-includes\template.php(688): require_once(‘C:\xampp\htdocs…’) #6 C:\ xampp\htdocs\public_html\siliconharvest\wp-includes\template.php(647): load_template(‘C:\xampp\htdocs…’, true) #7 C:\xampp\htdocs\public_html\siliconharvest\ wp-includes\general-template.php( in C:\xampp\htdocs\public_html\siliconharvest\wp-content\themes\storefront-child\functions.php auf Zeile 62

Ich habe die folgenden Diagnoseschritte versucht, ohne Auswirkung auf den Fehler:

  1. Alle Plugins deaktiviert, einschließlich des Plugins, das sich mit Produkten befasst (Woocommerce)
  2. Datei storefront-child\functions.php umbenannt (um sie vorübergehend zu deaktivieren)
  3. Die Vorlage wurde in etwas anderes als das Store-Front-Kind geändert

Der Fehler bleibt jedoch unabhängig von einem der oben genannten Schritte bestehen. Die richtige Lösung muss all diese Fehler beseitigen.

Bearbeiten: Zeilen 1-73 der Datei functions.php, auf die im Fehler verwiesen wird:

<?php
// BEGIN Remove "Storefront Designed by WooThemes" from Footer as per https://danielsantoro.com/remove-storefront-designed-woothemes/
add_action('init', 'custom_remove_footer_credit', 10);
function custom_remove_footer_credit()
{
    remove_action('storefront_footer', 'storefront_credit', 20);
    add_action('storefront_footer', 'custom_storefront_credit', 20);
}

function custom_storefront_credit()
{
?>
    <div class="site-info">
<div class="deferred-menu-items">
<ul style="list-style-type: none;" class="footer-menu">
<li style="display:inline-block" class="menu-item-156"><a href="https://stackoverflow.com/about/">About Us</a></li><!--
--><li style="display:inline-block" class="menu-item-189"><a href="http://stackoverflow.com/faq/">FAQ</a></li><!--
--><li style="display:inline-block" class="fa-delivery"><a href="http://stackoverflow.com/delivery/">Delivery</a></li><!--
--><li style="display:inline-block" class="fa-returns"><a href="http://stackoverflow.com/returns/">Returns</a></li><!--
--><li style="display:inline-block" class="menu-item-464"><a href="http://stackoverflow.com/store-policies/"><i class="far fa-handshake"></i> Store Policies</a></li><!--
--><!--<li style="display:inline-block" class="menu-item-1024"><a href="http://stackoverflow.com/articles/">Articles</a></li>--><!--
--><li style="display:inline-block" class="affiliates"><a href="http://stackoverflow.com/about-the-silicon-harvest-affiliates-program/"><i class="fas fa-bullhorn"></i> Affiliates Programme</a></li>
<!--<li style="display:inline-block" class="fa-opas"><a href="http://stackoverflow.com/overseas-parts-acquisition-service-opas/">Overseas Parts Acquisition Service (OPAS)</a></li>-->
</ul>
</div>
        &copy; <?php
    echo get_bloginfo('name') . ' ' . get_the_date('Y') . ' | ABN: 31 022 705 565 | <a style="color:blue" href="http://stackoverflow.com/terms-of-service-and-privacy-policy/">Terms of Service/Privacy Policy</a> <div class="front-page-contact">
<a style="color:blue" href="http://stackoverflow.com/contact-us/#aggs-contact-form">Contact Form</a> | mob: 0424 214 930 | tel: (02) 8007 6871 <!--| mob: +61 424 214 930 (international) / tel: +612 8007 6871 -->| <a style="color:blue" href="mailto:[email protected]">[email protected]</a><br />Live contact hours from 9am-9pm (AEST/AEDT or Sydney/Melbourne/ACT/TAS time), Mon-Sun</div>';
?>
    </div><!-- .site-info -->
    <?php
}
// END Remove "Storefront Designed by WooThemes" from Footer

/* START add microdata relating to item condition to satisfy Google Merchant's optional advice - as per https://github.com/woocommerce/woocommerce/issues/15797#issuecomment-355744594 */
add_filter('woocommerce_structured_data_product_offer', 'filter_woocommerce_structured_data_product', 10, 2);

/**
 * Add properties to the http://schema.org/Offer markup for all products.
 */
function filter_woocommerce_structured_data_product($markup, $product)
{
    /* By default, we assume all products sold in the ecommerce are in new condition */
    if (empty($markup['itemCondition'])) {
        $markup['itemCondition'] = 'http://schema.org/NewCondition';
    }
    return $markup;
}
/* END add microdata */


// as per https://wordpress.stackexchange.com/questions/276941/woocommerce-add-extra-field-to-variation-product/277556 
// based on http://www.remicorson.com/woocommerce-custom-fields-for-variations/ 

//THESE ACTIONS AND FILTER HANDLE YOUR PRODUCT VARIATION FIELDS + add_filter( 'woocommerce_available_variation', 'load_variation_settings_fields' ); which you have inserted into a conditional
add_action('woocommerce_product_after_variable_attributes', 'variation_settings_fields', 10, 3);
add_action('woocommerce_save_product_variation', 'save_variation_settings_fields', 10, 2);

add_action('wp_head', 'wc_variable_simple_conditions');
function wc_variable_simple_conditions()
{
    if (is_product()) {
        global $post;
        $post_id = $post->ID;
        $product = wc_get_product($post_id);
        $type    = $product->get_type();
        if ($type == 'variable') {
            add_filter('woocommerce_available_variation', 'load_variation_settings_fields');
        } elseif ($type == 'simple') {
            add_action('woocommerce_single_product_summary', 'custom_data_above_add_to_cart_button', 41);
        }
    }
}

Die Linie if (is_product()) { ist Zeile 62.

  • Es heißt, dass der Fehler aus der Datei “functions.php:line 62” stammt, also sollten Sie auch die Codes aus dieser Datei teilen

    – Md. Kowsar Hossain

    26. Dezember 2018 um 6:56 Uhr

  • @MdKowsarHossain habe ich jetzt in OP aufgenommen

    – ptrca

    26. Dezember 2018 um 9:01 Uhr

Überprüfen Sie zuerst, ob Woocommerce aktiviert ist, und rufen Sie dann die Funktion auf:

add_action('wp_head', 'wc_variable_simple_conditions');
function wc_variable_simple_conditions(){
    if (!class_exists('WooCommerce')) return; // add this line
    if (is_product()) {
        global $post;
        $post_id = $post->ID;
        $product = wc_get_product($post_id);
        $type    = $product->get_type();
        if ($type == 'variable') {
            add_filter('woocommerce_available_variation', 'load_variation_settings_fields');
        } elseif ($type == 'simple') {
            add_action('woocommerce_single_product_summary', 'custom_data_above_add_to_cart_button', 41);
        }
    }
}

Stellen Sie sicher, dass Sie include Quelle dieser Funktion includes/wc-conditional-functions.php

http://woocommerce.wp-a2z.org/oik_api/is_product/

  • Ich kann die Datei bestätigen wc-conditional-functions.php kann gefunden werden in C:\xampp\htdocs\public_html\siliconharvest\wp-content\plugins\woocommerce\includes. Bitte beraten.

    – ptrca

    26. Dezember 2018 um 12:35 Uhr


  • Ist Ihr WooCommerce-Plugin aktiv? check in DB mit SELECT * FROM wp_options WHERE option_name = ‘active_plugins’;

    – Maxim

    26. Dezember 2018 um 14:01 Uhr

  • Ich habe diesen Begriff im Wert für den Datensatz active_plugins gefunden i:54;s:27:"woocommerce/woocommerce.php";. Sagt Ihnen das, ob Woocommerce aktiv ist?

    – ptrca

    26. Dezember 2018 um 14:06 Uhr


  • Ich verwende Storefront mit einem untergeordneten Thema für Anpassungen. Die Sache ist, meine Live-Produktionswebsite auf meinem gehosteten Server funktioniert einwandfrei. Scheint, dass die Migration einer identischen Kopie der Website in eine lokale Desktop-Umgebung Woocommerce kaputt gemacht hat …

    – ptrca

    26. Dezember 2018 um 14:36 ​​Uhr

  • kann es sein, dass einige Dateien übersehen wurden. Versuchen Sie erneut, Ihre Designdateien zu kopieren

    – Maxim

    26. Dezember 2018 um 15:18 Uhr

Versuchen Sie, Ihre Funktion durch diese zu ersetzen:

function wc_variable_simple_conditions()
{
    if ( !function_exists( 'is_product' ) ) {
        return;
    }
    if (is_product()) {
        global $post;
        $post_id = $post->ID;
        $product = wc_get_product($post_id);
        $type    = $product->get_type();
        if ($type == 'variable') {
            add_filter('woocommerce_available_variation', 'load_variation_settings_fields');
        } elseif ($type == 'simple') {
            add_action('woocommerce_single_product_summary', 'custom_data_above_add_to_cart_button', 41);
        }
    }
}

  • Leider bleibt der Fehler bestehen… Probieren Sie es ruhig noch einmal 🙂

    – ptrca

    26. Dezember 2018 um 12:11 Uhr

Benutzer-Avatar
Luismi

Sie könnten dies versuchen:

add_action('wp_head', 'wc_variable_simple_conditions');
function wc_variable_simple_conditions() {
    if (is_singular( array( 'product' ) )) {
        global $post;
        $post_id = $post->ID;
        $product = wc_get_product($post_id);
        $type = $product->get_type();
        if ($type == 'variable') {
            add_filter('woocommerce_available_variation', 'load_variation_settings_fields');
        } elseif ($type == 'simple') {
            add_action('woocommerce_single_product_summary', 'custom_data_above_add_to_cart_button', 41);
        }
    }
}

Wenn Sie Fehler erhalten, existiert der benutzerdefinierte Beitragstyp „Produkt“ möglicherweise nicht.

Können Sie folgende Dinge ausprobieren, wenn es funktioniert?

  • Versuchen Sie, das Design zu aktualisieren, wenn ein neues Update für das Design vorhanden ist.

  • Wenn der Woo-Commerce-Ordner im aktiven Themenordner vorhanden ist, benennen Sie diesen WooCommerce-Ordner um und überprüfen Sie ihn.

1353560cookie-checkSchwerwiegender Fehler: Nicht erfasster Fehler: Aufruf der undefinierten Funktion is_product()

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy