获取Woocommerce订单付款日期

4
如何在Woocommerce中获取订单状态由已支付/已完成的日期?
我看到了关于获取客户订单的内容,但这只是我的算法的第一步。接下来我需要知道何时更改为已完成状态。
我的想法是创建一个会员区域:付款持续3个月。所以我将计算自购买以来过去的天数
以下是相关内容: https://www.skyverge.com/blog/get-all-woocommerce-orders-for-a-customer/ 而这是我用来确定客户是否购买该产品的方式。
if (wc_customer_bought_product($customer_email, $user_id,$loop->post->ID)){
            $courses[] = $this->find($loop->post->ID);
          }
3个回答

4

我认为你应该了解:

/mySite/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-order.php

这里有一个__get函数:

public function __get( $key ) {
        // Get values or default if not set.
        if ( 'completed_date' === $key ) {
            $value = ( $value = get_post_meta( $this->id, '_completed_date', true ) ) ? $value : $this->modified_date;
        } elseif ( 'user_id' === $key ) {
            $value = ( $value = get_post_meta( $this->id, '_customer_user', true ) ) ? absint( $value ) : '';
        } elseif ( 'status' === $key ) {
            $value = $this->get_status();
        } else {
            $value = get_post_meta( $this->id, '_' . $key, true );
        }

        return $value;
    }

我的理解是,如果你将“完成日期”作为参数传递,则会返回completed_date。

它还会给出一个提示,即这个日期在哪里,即

get_post_meta

好吧,至少我会从这里开始。


1
不需要传递 $key... 可以像 $order->completed_date 这样使用它,这将把 completed_date 作为 $key 传递给 __get - Reigel Gallarde
PHP 致命错误:未捕获的错误:调用未定义的方法 WC_Order::completed_date() - naomi
您无法直接访问最近的WooComm属性。 - a-coder

3

可能“最正确”的方式是:

$order = new WC_Order($order_id);
$date_obj = $order->get_date_paid();
echo $date_obj->date('d/m/Y'); 

1
这应该适用于最近的WP/WooCommerce。
$order = new WC_Order($sale_id);
echo $order->get_date_paid();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接