php - 从 wc_get_order_item_meta 获取订单 ID
问题描述
我在 woocmmerce 我的下载页面上生成一个二维码,通过获取存储的凭证代码值并通过调用凭证值生成一个令牌。最后 QR 应该代表 URL+vouchercode+orderID。但我无法获得该特定下载的订单 ID。任何可能的方法来实现这一点。在我的代码下面
<?php
// include 'phpqrcode/qrlib.php';
$prefix = WOO_VOU_META_PREFIX;
$forc = 0;
foreach ( $downloads as $download ) :
$d=explode('&', $download['download_url']);
$codes_item_meta = '';
$querurl = '';
$val = str_replace('item_id=', '', $d[4]);
$ks = $d[3];
$item = new WC_Order_Item_Product($val);
$ib = 0;
$cn = substr($ks, -1)-1;
$codes_item_meta = [];
$cnn = [];
for($i=0; $i<15; $i++){
$codes_item_meta2 = wc_get_order_item_meta($val , 'Voucher Code_'.$i , true);
if($codes_item_meta2 != ""){
$codes_item_meta[] = wc_get_order_item_meta($val , 'Voucher Code_'.$i , true);
$cnn[] = $i;
}
}
/*--------------------------------------Generate QR token END------------------------*/
$tktest=wc_get_order_item_meta($val , 'Voucher Code_'.$forc , true);
$order123 = new WC_Order( $order_id );
$tk= getqrtoken($tktest) ;
if($cnn[$cn]){
$download['download_url'] .= '&df='.$cnn[$cn];
$querurl = $url.wc_get_order_item_meta($val , 'Voucher Code_'.$cnn[$cn] , true);
}else{
$url2='www.example.com';
$vouchercode=wc_get_order_item_meta($val , 'Voucher Code_'.$cnn[$cn] , true);
$download['download_url'] .= '&df='.$forc;
$querurl = $url2.$tk.{order_id};
}
解决方案
$order_id = wc_get_order_id_by_order_item_id($val);
上面的代码在我的情况下有效,
推荐阅读
- angular - 加密和解密本地存储值
- node.js - MongoDB减慢插入包含嵌套数组的数据
- python - VScode python 3 pylint:我可以在A中导入X文件,但不能在B中导入
- javascript - 从输入类型 =“时间”添加/编辑时间
- c++ - 对于相同的任务,为什么更多的线程导致更少的指令
- internet-explorer - webdriverio browser.executeAsync 在 IE11 中抛出错误设置参数
- c# - 更改多维数组中的一个属性也会更改其他数组的属性
- javascript - 正则表达式只允许输入字段中的字母和空格,但第一个字符不应该是空格
- authentication - 如何延长 TFS 访问的身份验证寿命?
- c# - 在屏幕中央添加`UIImageView`