1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Extend class funktioniert nicht

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von cs.m3rlin, 25. August 2018.

Schlagworte:
  1. cs.m3rlin

    cs.m3rlin Member

    Registriert seit:
    17. August 2014
    Beiträge:
    11
    Zustimmungen:
    1
    Hallo,

    ich möchte eine Klasse von WooCommerce Bookings erweitern (ist für mein Problem aber denke ich nicht relevant).

    Ich habe die Erweiterung in der Original-Datei des Plugins durchgeführt, dort funktioniert es. Ich möchte in der function is_bookable in der class WC_Booking_Form eine weitere if-Schleife einfügen. Nun wollte ich die Änderung in meine functions,php mit aufnehmen, indem ich die class extende. Das funktioniert aber leider gar nicht.

    Hier der Code von WooCommerce Booking:
    /wp-content/plugins/woocommerce-bookings/includes/booking-form/class-wc-booking-form.php
    (ich habe hier nur die relevante Funktion kopiert)
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!

    Hier mein Code:
    /wp-content/themes/MEINTHEME/functions.php

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ich scheine wohl irgendetwas in der Syntax der extended class falsch gemacht zu haben, aber ich finde den Fehler nicht.

    Ich bin für jede Hilfe dankbar!

    Beste Grüße,
    cs-m3rlin
     
  2. am3

    am3 Well-Known Member

    Registriert seit:
    11. März 2010
    Beiträge:
    462
    Zustimmungen:
    21
    Es wäre sinnvoll, wenn du angibst welche Fehlermeldung du bekommst.
    Ist die Klasse überhaupt schon definiert wenn du sie erweitern willst?
     
  3. cs.m3rlin

    cs.m3rlin Member

    Registriert seit:
    17. August 2014
    Beiträge:
    11
    Zustimmungen:
    1
    Hi,
    vielen Dank für die Antwort. Sorry für die späte Rückmeldung, ich war unterwegs...
    Ich bekomme keine Fehlermeldung von PHP, die Anpassung liegt direkt auf dem Host Server. Ich sehe nur, dass die if-Schleife meiner Extension nicht getriggert wird... dachte, dass es vielleicht nur an der Syntax hängt?
    Wenn ich in der functions.php eine neue leere class WC_Booking_Form erstelle, meldet er einen Fehler, dass es bereits diese Klasse gibt, daher gehe ich davon aus, dass die Klasse bereits definiert ist.

    Ist das denn so wie oben definiert (insbesondere der Teil parent::is_bookable($data); ) korrekt?
    Die if-Schleife funktioniert auf jeden Fall, denn wenn ich sie in die obige Funktion direkt einfüge (dafür verändere ich aber das WooCommerce Bookings Plugin), dann funktioniert es.

    Beste Grüße,
    cs-m3rlin
     
  4. am3

    am3 Well-Known Member

    Registriert seit:
    11. März 2010
    Beiträge:
    462
    Zustimmungen:
    21
    Grundsätzlich sollte das so funktionieren.
    Ich weiß natürlich nicht wie du das ganze überhaupt aufrufst und wie du "merkst", dass es nicht funktioniert.
    Ohne Fehlermeldungen kannst du halt nicht debuggen.
    Probier das Ganze doch erst mal lokal, wenn du keinen vernünftigen Zugriff auf den Server und dessen error log hast.
     
  5. cs.m3rlin

    cs.m3rlin Member

    Registriert seit:
    17. August 2014
    Beiträge:
    11
    Zustimmungen:
    1
    Hi,
    ich habe gerade noch einmal getestet.
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    gibt ein "Existiert" zurück.

    Ansonsten stehen im Log ein paar Warnungen zu CGI, aber nichts, das mit der Klasse zu tun hat.
    Habe das jetzt über Chrome Logger geloggt, ich weiß daher nicht, ob du damit etwas anfangen kannst, sind über 10000 Zeichen, daher kann ich es nicht posten.

    Okay, ich werde das dann noch mal lokal testen.
    Ich merke es, weil die if-Schleife im Front-End (also in dem Webshop) nicht berücksichtigt wird.

    Danke schon mal!
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden