首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用CRUD方法设置订单创建日期,并将其保存在Woocommerce 3中

使用CRUD方法设置订单创建日期,并将其保存在Woocommerce 3中
EN

Stack Overflow用户
提问于 2018-06-07 03:56:53
回答 1查看 831关注 0票数 2

我正在为Woocommerce开发一个自定义插件,它使用了其他一些Woocommerce扩展提供的功能。我遇到了一个关于Woocommerce的奇怪问题。

虽然我已经使用$order->set_date_created为订单设置了date_created,但是在使用wc_get_order( $order->get_id() )再次获得相同的订单之后,返回的$order对象没有设置date_created,它是NULL。下面带有注释的代码应该很清楚,我想说的是:

// returns a new order object from order post_id
$order = wc_get_order( $post->ID );
$order->set_date_created( time() );

// Getting expected WC_DateTime object
$order->get_date_created();


/***** Here's the problem ******/
$same_order = wc_get_order( $order->get_id() );

// returns NULL instead of WC_DateTime object
$same_order->get_date_created();

所以我的问题是,为什么date_created属性在再次获得相同的订单时消失了,并且在设置时没有写入数据库。请帮助找到潜在的错误,并提出修复建议。

虽然,我可以在设置date_created之后传递$order对象,但是来自另一个插件的函数要求order_id的顺序应该设置为date_created,而不是NULL。这就是我设置date_created然后将$order->get_id()传递给函数的原因。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 04:45:28

您还需要保存数据…请尝试执行以下操作:

// Get an instance of the WC_Order object
$order = wc_get_order( $post->ID );

// Get an instance of the current WC_DateTime object
$date_time = new WC_DateTime();

// Set it in the order
$order->set_date_created( $date_time );

// Save the data (in database)
$order->save();

这一次它应该可以工作,并且您将不会得到空值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50728562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档