首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Woocommerce获取订单密钥

Woocommerce获取订单密钥
EN

Stack Overflow用户
提问于 2016-06-07 11:21:49
回答 2查看 17.3K关注 0票数 6

我的订单格式为[domain]/checkout/order-received/[order_number]/key=[wc-order-key] -如何获取[wc-order-key]

到目前为止,我已经做到了:

代码语言:javascript
复制
add_action('woocommerce_payment_complete', 'custom_process_order', 10, 1);

function custom_process_order($order_id)
{
  $order = new WC_Order( $order_id );
  $myuser_id = (int)$order->user_id;
  $user_info = get_userdata($myuser_id);
  $items = $order->get_items();
  foreach ($items as $item)
  {
    $product_name = $item['name'];
    $product_id = $item['product_id'];
    $product_variation_id = $item['variation_id'];
    $product_description = get_post_meta($item['product_id'])->post_content
  }
  return $order_id;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-07 11:49:03

如果我没理解错的话,你需要用order_id获取order_key,对吗?如果是这样,您可以只使用WC_Order属性:

代码语言:javascript
复制
$test_order = new WC_Order($order_id);
$test_order_key = $test_order->order_key;

编辑的

正如前面提到的indextwo,从Woo 3.0开始有了新的语法:

代码语言:javascript
复制
$test_order = wc_get_product($order_id);
$test_order_key = $test_order->get_order_key();
票数 9
EN

Stack Overflow用户

发布于 2018-11-06 19:12:36

2018年更新答案

由于WooCommerce 3改变了属性调用的方式,因此获取相同信息的适当方式是:

代码语言:javascript
复制
$order = wc_get_order($order_id);

// Added a check to make sure it's a real order

if ($order && !is_wp_error($order)) {
    $order_key = $order->get_order_key();
}

请注意,您可以轻松地反向执行相同的操作:从订单键获取订单ID:

代码语言:javascript
复制
$order_id = wc_get_order_id_by_order_key($order_key);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37669956

复制
相关文章

相似问题

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