Weitere Informationen und den Download findest du auf der offiziellen Anlaufstelle de.wordpress.org
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17
Like Tree2Likes

Thema: Kundenkonto erstellen je nach Produkte de-/aktivieren

  1. #1
    PostRank: 1
    Registriert seit
    17.05.2016
    Beiträge
    29

    Kundenkonto erstellen je nach Produkte de-/aktivieren

    In unserem WooCommerce-Shop biete ich ein Produkt an, bei denen der Nutzer an der Kasse keine Möglichkeit bekommen soll, ein Kundenkonto anzulegen. Bei allen anderen Produkten ist es dagegen schon wünschenswert, wenn ein Kundenkonto leicht beim Kauf angelegt werden kann.

    Vom Prinzip sollen also immer die Hinweise fürs Kundenkonto erscheinen, es sei denn, ein bestimmtes Produkt liegt im Warenkorb.

    Fällt euch da spontan ein Lösungsansatz ein? Welches Hooks wäre da ein guter Einstiegspunkt?

    Gruß


  2. #2
    PostRank: 10 Avatar von mensmaximus
    Registriert seit
    24.07.2014
    Ort
    Krefeld
    Beiträge
    6.398
    Zitat Zitat von Babelfisch Beitrag anzeigen
    Welches Hooks wäre da ein guter Einstiegspunkt?
    woocommerce_before_checkout_form
    Babelfisch likes this.

  3. #3
    PostRank: 1
    Registriert seit
    17.05.2016
    Beiträge
    29
    Ich habe jetzt woocommerce_after_checkout_billing_form genommen, da das wohl der letzte Hook davor ist. Falls andere ein ähnliches Problem haben, hier mal meine Lösung:

    PHP-Code:
    function action_woocommerce_after_checkout_billing_form()
    {
        global 
    $woocommerce;
        
        
    $cart $woocommerce->cart->get_cart();


        foreach(
    $cart as $item => $cartItem)
        {
            if (
    $cartItem['product_id'] == MEINE_PRODUKT_ID)
            {
                
    $woocommerce->checkout()->enable_guest_checkout false;
                return;
            }
        }


    }; 
    add_action'woocommerce_after_checkout_billing_form''action_woocommerce_after_checkout_billing_form'10); 
    Gruß

  4. #4
    PostRank: 10 Avatar von mensmaximus
    Registriert seit
    24.07.2014
    Ort
    Krefeld
    Beiträge
    6.398
    Zitat Zitat von Babelfisch Beitrag anzeigen
    $cartItem['product_id']
    Schau mal in Dein error.log. Ich würde annehmen wollen, dass Du bei WooCommerce 3.0 "Deprecated" Meldungen erhältst. Mit den neuen CRUD Klassen scheibt man $cartItem->get_product_id()
    Babelfisch likes this.

  5. #5
    PostRank: 1
    Registriert seit
    17.05.2016
    Beiträge
    29
    Danke für den Hinweis! Ich bin noch bei 2.7, da die 3er bisher noch zu viele Baustellen hat. Werde frühestens bei 3.1 umsteigen.

  6. #6
    PostRank: 1
    Registriert seit
    17.05.2016
    Beiträge
    29
    Zitat Zitat von mensmaximus Beitrag anzeigen
    Schau mal in Dein error.log. Ich würde annehmen wollen, dass Du bei WooCommerce 3.0 "Deprecated" Meldungen erhältst. Mit den neuen CRUD Klassen scheibt man $cartItem->get_product_id()
    Bin gerade bei der Umstellung auf WC 3 und auch da wird noch ein Array geliefert. Auch in der Doku steht dazu:

    get_cart( )
    Returns the contents of the cart in an array.
    Da hat man also CRUD noch nicht implementiert.

  7. #7
    PostRank: 10 Avatar von mensmaximus
    Registriert seit
    24.07.2014
    Ort
    Krefeld
    Beiträge
    6.398
    Zitat Zitat von Babelfisch Beitrag anzeigen
    Da hat man also CRUD noch nicht implementiert.
    Es geht NICHT um den Inhalt des Warenkorbs per se, sondern um die Eigenschaften der darin enthaltenen Produkte. Diese - die Eigenschaften der Produkte - müssen über die CRUD Klassen abgefragt werden.

  8. #8
    PostRank: 1
    Registriert seit
    17.05.2016
    Beiträge
    29
    Ok, aber wie würde das in meinem Beispiel aussehen? Deine Variante $cartItem->get_product_id() geht so erst mal nicht, da $cartItem eben ein Array und kein Objekt ist.

  9. #9
    PostRank: 10 Avatar von mensmaximus
    Registriert seit
    24.07.2014
    Ort
    Krefeld
    Beiträge
    6.398
    $cartItem['data']->get_id()

  10. #10
    PostRank: 1
    Registriert seit
    17.05.2016
    Beiträge
    29
    Ok, aber nur bei einem einfachen Produkt. Bei einem variablen Produkt wäre es $cartItem['data']->get_parent_id(), da in ['data'] ein WC_Product_Variation-Objekt ist. Ist nicht wirklich gut durchdacht.

    Da momentan bei $cartItem['product_id'] noch keine Deprecation-Warnung kommt, gehe ich mal davon aus, dass es noch eine Weile erhalten bleibt und lasse es erst mal so. Ich hab’s aber zumindest auf dem Schirm.

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •