2016-07-02 4 views
1

Ich habe eine Produktschleife in Woocommerce. Wenn ein Kunde bereits ein Produkt gekauft hat, möchte ich den Button "Produkt kaufen" durch eine Nachricht und das Datum der Bestellung ersetzen. Beispielsweise.Wie kaufe ich ein Kaufdatum aus Woocommerce Bestellung?

„Du diesen Artikel gekauft am 15. Januar 2016“

Ich kann das Produkt-ID erhalten und ich kann den aktuellen Benutzer-ID erhalten, kann aber nicht herausfinden, wie die Stücke von Informationen zu verwenden, ziehen Bestell-IDs.

$postid = get_the_ID(); 
$current_user = wp_get_current_user(); 
$has_product = wc_customer_bought_product($current_user->user_email, $current_user->ID, $product->id); 

Ideen?

+1

Bitte fügen Sie Ihren Code ein. –

+0

Könnten Sie bitte erklären, auf welcher Seite Sie diese neue Schaltfläche anzeigen müssen? – purvik7373

Antwort

1

Sie diese Funktion unter

function _cmk_check_ordered_product($id) { 
    // Get All order of current user 
    $orders = get_posts(array(
     'numberposts' => -1, 
     'meta_key' => '_customer_user', 
     'meta_value' => get_current_user_id(), 
     'post_type' => wc_get_order_types('view-orders'), 
     'post_status' => array_keys(wc_get_order_statuses()) 
    )); 

    if (!$orders) return false; // return if no order found 

    $all_ordered_product = array(); // store products ordered in an array 

    foreach ($orders as $order => $data) { // Loop through each order 
     $order_data = new WC_Order($data->ID); // create new object for each order 
     foreach ($order_data->get_items() as $key => $item) { // loop through each order item 
      // store in array with product ID as key and order date a value 
      $all_ordered_product[ $item['product_id'] ] = $data->post_date; 
     } 
    } 
    if (isset($all_ordered_product[ $id ])) { // check if defined ID is found in array 
     return 'You purchased this product on '. date('M. d, Y', strtotime($all_ordered_product[ $id ])); 
    } else { 
     return 'Product Never Purchased'; 
    } 
} 

zum Beispiel verwenden können Anzeigen der Nachricht auf einer einzigen Produktseite echo _cmk_check_ordered_product(get_the_ID());

+0

Gut gearbeitet. Vielen Dank. –

Verwandte Themen