首页 > 解决方案 > 从 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};

        }

标签: phpwordpresswoocommercehook-woocommerce

解决方案


$order_id = wc_get_order_id_by_order_item_id($val);

上面的代码在我的情况下有效,


推荐阅读