Überprüfen Sie, ob ein Kunde erworben hat, ein, dass bestimmte Produkte in WooCommerce
Ich brauche, um zu überprüfen, ob ein Kunde ein bestimmtes Produkt gekauft haben früher in WooCommerce.
Fall ist dieser: Der Kunde ist nicht in der Lage sein, - Kauf-Produkt "c", "d", "e", es sei denn, Sie gekauft haben, werden Produkt "a" oder "b" auf eine frühere Zeit.
Wenn vom Kunden gekaufte Produkt "a" oder "b" erwähnt, dann die Schaltfläche "kaufen" des Produkts "c", "d" und "e" aktiviert ist und Sie berechtigt sind, Sie zu kaufen.
Wenn Sie havent gekauft "a" oder "b" erwähnt, Sie werden nicht erlaubt zu kaufen "c", "d", "e" und der Kauf-button ist deaktiviert.
Wie kann ich das erreichen?
Dank.
- Ive genommen ein Blick auf die wc_customer_bought_product_function, ich fand auch einen ähnlichen post auf stackoverflow.com/questions/27306828/... aber nicht ganz sicher, wie ich würde es weiter für mein Beispiel funktioniert.
- Danke @LoicTheAztec, ich ' ll testen Sie es später noch heute und geben Sie ein feedback.
- Ich habe eine neue Antwort mit einer viel leichter und schneller Funktion, die das gleiche tun... Wenn Sie könnte, testen Sie es und geben Sie mir ein feed-back. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist möglich, schriftlich eine bedingte Funktion gibt "true" zurück, wenn der aktuelle Kunde bereits gekauft hat Besonderheiten definierten Produkte-IDs. Dieser code geht auf function.php Datei der aktiven child-theme oder-theme.
Hier ist die bedingte Funktion:
Dieser code ist getestet und funktioniert.
VERWENDUNG:
Zum Beispiel, können Sie es in einigen WooCommerce Vorlagen, die Sie zuvor kopiert haben, um Ihre active child-theme oder-theme:
add-to-cart
Tasteloop/add-to-cart.php
.add-to-cart
- Taste sind insingle-product/add-to-cart
- Ordner je nach Produkt-Typen.Hier ist ein Beispiel, das man verwenden könnte in diesen Vorlagen (oben):
Und hier die vollständige Anwendungsbeispiel zu
add-to-cart
Schaltfläche Vorlage auf Shop-Seite:Sie Stil die inaktive Schaltfläche mit
greyed_button
Klasse in derstyle.css
- Datei des aktiven child-theme oder-theme. Das gleiche gilt für die Nachricht mitgreyed_button-message
Klasse.Den integrierten woocommerce-Funktion
wc_customer_bought_product
können auch verwendet werden, in diesem Fall.Siehe Funktion Verwendung hier.
Dies ist eine neue verbesserte und leichtere bedingte Funktion teilweise basierend auf gebaut-in woocommerce Funktion
wc_customer_bought_product
source-code.Es ist ein 2 optionale argument
$user_id
und$product_ids
:$user_id
können Sie festlegen einen angegebenen Benutzer-ID (wenn nicht verwendet für den aktuellen angemeldeten user);$product_ids
(array) zulassen wird, angeben, angegebenen Produkt-Ids zu überprüfenIst hier das code:
Code geht in function.php Datei der aktiven child-theme (oder ein Thema) oder auch in jedem plugin-Datei.
Dieser code ist getestet auf Woocommerce 3+ und funktioniert (sollte Es auf den vorherigen Versionen auch).
BEISPIELE:
Beispiel 1 (angemeldeter Kunde): Erkennen, wenn der aktuelle Nutzer gekauft hat eines der angegebenen Produkte (Produkt-Ids muss ein array sein)
Beispiel 2 (Einstellung der
$user_id
) Erkennen, wenn die angegebenen Benutzer gekauft hat, der definierten Produkte (Produkt-Ids muss ein array sein)Wenn die
$user_id
ist nicht definiert und der aktuelle Benutzer ist nicht eingeloggt, wird diese Funktion zurückfalse
.Beispiel 3 (angemeldeter Kunde): Erkennen, wenn der aktuelle Benutzer bereits einen Kauf getätigt
Beispiel 4 (Einstellung der
$user_id
) Erkennen, wenn die angegebenen Benutzer bereits einen Kauf getätigtIch würde es tun, auf diese Weise;
dies nicht tun, jede woocommerce template-änderungen, sondern nur die filter
woocommerce_is_purchasable
Diese sind alle Funktionen,
überprüfen, ob aktuelle Produkt-ID ist bereits gebracht durch den Kunden, in der version 2.6 +, woocommerce realisiert die Funktion
wc_customer_bought_product
um zu überprüfen, ob der Kunde bereits brachte das Produkt, ich habe es nie benutzt, bevor, aber basierend auf die docs-Sie können eine Funktion erstellen, wie Sie unten, um zu überprüfen, eine Reihe von Produkt-ID, wenn eine von Ihnen wurde schon gebracht;Vorherigen Methode, die ich tun, um zu überprüfen, ob bestimmte Produkt-ID wurde bereits gebracht, indem der Kunde ist unten, so können Sie verwenden diese Funktion, wenn die, die ich erstellt ist nicht für array von ID ' s
woocommerce_is_purchasable
unseren eigenen Zustand, kann diese Funktion unten ist es einfach ein Beispiel von dem, was Sie versuchen zu erreichen,wurde nur der
$required_purchased
und$conditional_purchase
Werte.... Und dass sollte das Produkt als nicht-käufliche (Warenkorb Schaltfläche wird automatisch ausgeblendet werden ).
Nun, wenn Sie möchten, fügen Sie eine Nachricht für nicht-käufliche Produkt, können Sie einfach den gleichen Zustand der
cmk_disable_product_purchase
fügen Sie Ihre Nachricht einfach und Haken es aufwoocommerce_single_product_summary
oder überall wo Sie es wollen angezeigt.