首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Woocommerce:以编程方式更新订单状态

Woocommerce:以编程方式更新订单状态
EN

Stack Overflow用户
提问于 2016-06-15 15:55:47
回答 3查看 16.9K关注 0票数 15

当我试图在WP_Ajax挂钩期间以编程方式更新订单时。即。

代码语言:javascript
运行
AI代码解释
复制
$order = wc_create_order($order_data);
$order->add_product( get_product( $membership_product_ids[0] ), 1 );
$order->set_address( $address, 'billing' );
$order->set_address( $address, 'shipping' );
$order_id = $order->id;
$order->update_status('completed');

我得到以下错误:

警告: DOMXPath::query():第299行/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的无效表达式 警告: DOMXPath::query():第299行/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的无效表达式 警告:为第302行的/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的foreach()提供的参数无效 警告: DOMXPath::query():第299行/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的无效表达式 警告: DOMXPath::query():第299行/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的无效表达式 警告:为第302行的/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php中的foreach()提供的参数无效

如果删除该update_status函数,它不会出错。

EN

回答 3

Stack Overflow用户

发布于 2016-06-15 16:56:15

我不确定,但是您可以使用new WC_Order( $order_id );来尝试这个技巧,以避免错误:

代码语言:javascript
运行
AI代码解释
复制
// global $woocommerce; // in case of need…
$order = wc_create_order($order_data);
$order_id = $order->id; // moving this here
$_order = new WC_Order( $order_id ); // here
$_order->add_product( get_product( $membership_product_ids[0] ), 1 );
$_order->set_address( $address, 'billing' );
$_order->set_address( $address, 'shipping' );
$_order->update_status('completed');

我同意这是一个奇怪的问题。

票数 4
EN

Stack Overflow用户

发布于 2016-09-16 04:58:15

由于这是一个罕见的问题,您最好手动打开:

/wp-content/plugins/woocommerce/includes/libraries/class-emogrifier.php

在第299行之前,插入这些行,并查看您将得到什么:

代码语言:javascript
运行
AI代码解释
复制
var_dump($value);
var_dump($this->translateCssToXpath($value['selector']));
var_dump($xpath->query($this->translateCssToXpath($value['selector'])));
票数 1
EN

Stack Overflow用户

发布于 2017-01-23 13:25:20

我通过尝试一系列不同的钩子解决了这个问题,问题是我用来创建订单的钩子发生在woocommerce初始化导致这个问题的原因之前。

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

https://stackoverflow.com/questions/37847681

复制
相关文章

相似问题

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