Benutzerdefiniertes WooCommerce-Feld auf der Bearbeitungsseite für Bestellungen

Lesezeit: 2 Minuten

Benutzerdefiniertes WooCommerce Feld auf der Bearbeitungsseite fur Bestellungen
Priit

// Display custom field Orders edit page
add_action('woocommerce_before_order_itemmeta', 'storage_location_of_order_items', 10, 3);
function storage_location_of_order_items($item_id, $item, $product)
{
    // Only on backend order edit pages
    if (!(is_admin() && $item->is_type('line_item'))) return;

// Get your '_laoriiul' value (replace the slug by yours below)
    $custom_ladu = get_post_meta($product->get_id(), '_laoriiul', true); //Error message: "Uncaught Error: Call to a member function get_id() on bool in functions.php:211"  - when product not aviable (line 211)
     if (isset($custom_ladu)) { // only show the custom SKU if it's set
        echo "<br>" . wp_kses_post("Laoriiul: $custom_ladu"); // change this line if needed
    }
    }

Das Problem/der Fehler tritt auf, wenn das Produkt nicht mehr im Shop ist – wenn keine ID mehr erhalten wird. Wie kontrolliere ich, ob eine Produkt-ID vorhanden ist, bevor eine ID abgerufen wird? Habe verschiedene Lösungen ausprobiert, nichts hat mir da geholfen. Jemand hilft mir dabei?

  • Sie sprechen von der Bestellbearbeitungsseite? Ich nehme an, es gibt einen anderen Code, den Sie dafür verwenden? kannst du das auch hinzufügen? abhängig davon kann eine zusätzliche Prüfung hinzugefügt werden

    – 7uc1f3r

    13. April 20 um 16:55 Uhr

  • Hallo! Bearbeitungsseite für Yep-Bestellungen. Code hinzugefügt, der mit der Werbeaktion beginnt. Wenn mehr benötigt wird, füge ich mehr hinzu.

    – Priit

    14. April 20 um 7:16 Uhr

Ich kann den Fehler nicht reproduzieren, aber ausgehend von dem Fehler können Sie Folgendes verwenden.

method_exists ( mixed $object , string $method_name ) : bool

Überprüft, ob die Klassenmethode im angegebenen Objekt vorhanden ist.

Nutzt du zufällig eine ältere Version von WooCommerce oder WordPress?

// Display custom field Orders edit page
function storage_location_of_order_items( $item_id, $item, $product ) { 
    // Only on backend order edit pages
    if (!(is_admin() && $item->is_type('line_item'))) return;

    // Checks if the class method exists
    if ( method_exists( $product, 'get_id' ) ) {
        // Get product id
        $product_id = $product->get_id();

        // Get your '_laoriiul' value (replace the slug by yours below)
        $custom_ladu = get_post_meta( $product_id, '_laoriiul', true);

        if ( isset( $custom_ladu ) ) { // only show the custom SKU if it's set
            echo "<br>" . wp_kses_post( $custom_ladu ); // change this line if needed
        }
    }
}
add_action('woocommerce_before_order_itemmeta', 'storage_location_of_order_items', 10, 3);

  • Cool! Kein Fehler mehr 🙂 danke! Wie könnte ich nicht selbst darauf kommen 🙂 Mit der neuesten WordPress 5.4 und Woocommerce 4.0.1

    – Priit

    14. April 2020 um 08:21 Uhr

.

758080cookie-checkBenutzerdefiniertes WooCommerce-Feld auf der Bearbeitungsseite für Bestellungen

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

Privacy policy