如何从woocommerce订单获得购买日期?

时间:2016-07-02 06:23:14

标签: php wordpress woocommerce

我在Woocommerce中有一个产品循环。如果客户之前购买过产品,我想用一条消息和订单日期替换购买产品按钮。例如。

"您于2016年1月15日购买了此产品"

我可以获取产品ID,但我可以获取当前用户ID,但无法弄清楚如何使用这些信息来提取订单ID。

curl is already installed on windows machine

想法?

1 个答案:

答案 0 :(得分:1)

您可以使用下面的此功能

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

e.g。 在单个商品页echo _cmk_check_ordered_product( get_the_ID() );

上显示消息