2016-08-16 5 views
2

Ich benutze Woocommerce CSV-Export Plugin. Ich möchte eine Möglichkeit haben, zu überprüfen, ob der Kunde NEU ist und wenn es ist, in der Reihenfolge Metadaten für eine benutzerdefinierte meta-keytrue Wert zu schreiben.
Aber wenn Benutzer nicht neu ist, wird nichts passieren.Benutzerdefiniertes Feld für WooCommerce CSV-Export-Plugin hinzufügen - Für Kunden erste Bestellung

Ich dachte zuerst, mit dem Erstellungsdatum des WP-Benutzers (user_registered) zu beginnen. Aber ich denke, es gibt einen besseren und schnelleren Weg. Mit anderen Worten, wie kann ich wissen, ob dies der erste Auftrag eines Kunden ist ...

Mein Ziel: Wenn der Kunde zum ersten Mal ist die Bestellung einen TRUE Wert, für diesen Auftrag in die Export-CSV.

Dann habe ich to use this answer code ohne Erfolg versucht.

Meine Frage:
Wie kann ich das erreichen?

Dank

+1

Willkommen bei SO! SO ist kein "Ich brauche das; gib mir Code" -Service. Dafür gibt es Suchmaschinen. Bitte geben Sie einen Code an, mit dem Sie bereits Probleme hatten, um Antworten zu erhalten. –

Antwort

2

Basierend auf this answer code(Ich habe vor kurzem gemacht), ist es möglich, eine Funktion zu haben, die einen Meta Schlüssel/Wert in der Datenbank wp_postmeta Tabelle für eine neue Kunden ersten Bestellung hinzufügen. So werden wir ein wenig, dass bedingte Funktion dieser Art und Weise ändern:

function new_customer_has_bought() { 

    $count = 0; 
    $new_customer = false; 

    // Get all customer orders 
    $customer_orders = get_posts(array(
     'numberposts' => -1, 
     'meta_key' => '_customer_user', 
     'meta_value' => get_current_user_id() 
    )); 

    // Going through each current customer orders 
    foreach ($customer_orders as $customer_order) { 
     $count++; 
    } 

    // return "true" when it is the first order for this customer 
    if ($count > 2) // or ($count == 1) 
     $new_customer = true; 

    return $new_customer; 
} 

Dieser Code geht in function.php Datei Ihres aktiven Kind Thema oder ein Thema oder in einer Plugin-PHP-Datei.


BEI VERWENDUNG IN THANKYOU HOOK:

add_action('woocommerce_thankyou', 'tracking_new_customer'); 
function tracking_new_customer($order_id) { 

    // Exit if no Order ID 
    if (! $order_id) { 
     return; 
    } 

    // The paid orders are changed to "completed" status 
    $order = wc_get_order($order_id); 
    $order->update_status('completed'); 

    // For 1st 'completed' costumer paid order status 
    if (new_customer_has_bought() && $order->has_status('completed')) 
    { 
     // Create 'first_order' custom field with 'true' value 
     update_post_meta($order_id, 'first_order', 'true'); needed) 
    } 
    else // For all other customer paid orders 
    { 
     // udpdate existing 'first_order' CF to '' value (empty) 
     update_post_meta($order_id, 'first_order', ''); 
    } 
} 

Dieser Code geht in function.php Datei Ihres aktiven Kind Thema oder ein Thema oder in einer Plugin-PHP-Datei.

Jetzt nur für den ersten neuen Kundenauftrag Sie ein benutzerdefinierten Meta-Daten, die Schlüssel ist '_first_customer_order' und Wert ist wahr.

für eine Bestell-ID definiert dieses diesen Wert zu erhalten, werden Sie diese verwenden (letzte Argument bedeutet, dass es eine Zeichenfolge ist):

// Getting the value for a defined $order_id 
$first_customer_order = get_post_meta($order_id, 'first_order', false); 

// to display it 
echo $first_customer_order; 

der gesamte Code ist getestet und funktioniert.


Referenzen

+0

Ich werde das morgen testen. Danke zu teilen. –

Verwandte Themen