2016-07-02 14 views
1

私はWoocommerceに製品ループを持っています。お客様が以前に商品を購入した場合は、購入商品のボタンをメッセージと注文日に置き換えます。例えば。私は、製品IDを取得することができますし、私は、現在のユーザIDを取得することができますが、プルする情報のこれらの作品を使用する方法を見つけ出すことはできませんwoocommerceの注文から購入日を取得するには?

を「あなたは2016年1月15日にこの製品を購入した」

注文ID。

$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); 

アイデア?

あなたが

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'; 
    } 
} 

例えば以下この機能を使用することができます

+1

コードを貼り付けてください。 –

+0

この新しいボタンを表示する必要があるページを教えてください。 – purvik7373

答えて

1

単一商品ページにメッセージを表示echo _cmk_check_ordered_product(get_the_ID());

+0

うまくいった。ありがとうございました。 –

関連する問題