【问题标题】:get the download id for the product in woocommerce在 woocommerce 中获取产品的下载 ID
【发布时间】:2015-04-19 06:31:32
【问题描述】:

我在 wordpress 中使用 woocommerce。我为每个产品设置了 2 个要下载的文件,但是当我尝试使用以下代码调用两个下载文件链接时:

$download1=$product->get_files();

我得到以下数组:

[downloadable_files] => Array
        (
            [d289633f5c2d8f2f7cc9a102aea7242c] => Array
                (
                    [name] => Three Phase UPS1
                    [file] => http://localhost/creative/wp-content/uploads/woocommerce_uploads/2014/11/SolaPalm_DS.pdf
                )

            [413ff459269b8ed9e7c441eac585c035] => Array
                (
                    [name] => Three Phase UP2
                    [file] => http://localhost/creative/wp-content/uploads/woocommerce_uploads/2014/11/CFL_DS.pdf
                )

        )

虽然我想获取单个文件的下载 ID
这样我就可以使用 for 循环来获取所有下载产品的链接。

【问题讨论】:

  • 只是为了清楚 - 你显示的数组是你在 var_dump($download1) 时得到的?
  • 根据手册 (woocommerce.wp-a2z.org/oik_api/wc_productget_files) 似乎这两个文件都与当前产品有关。
  • @OfirBaruch 是的,这两个文件都与当前产品相关,因为网站要求每个产品有 2 个 pdf
  • 那么问题出在哪里?您有一个包含下载的数组。您可以使用简单的foreach 循环并打印它们,或者我遗漏了什么?
  • 你能给我看一些例子吗,因为我也很困惑,如何用链接显示所有 pdf 名称

标签: php wordpress woocommerce


【解决方案1】:

Woocommerce 方法是 get_downloads() :

$product = wc_get_product($product_id);
     $downloads = $product->get_downloads();
     foreach ( $downloads as $key => $download ) {
         echo $key // gives - d289633f5c2d8f2f7cc9a102aea7242c
         echo $download["name"] // gives - Three Phase UPS1
         echo $download["file"] // gives - http://localhost/cre...
    }

【讨论】:

    【解决方案2】:
    $downloads = $product -> get_fields();
    foreach ( $downloads as $key => $download ) {
       $key // gives - d289633f5c2d8f2f7cc9a102aea7242c
       $download["name"] // gives - Three Phase UPS1
       $download["file"] // gives - http://localhost/cre...
    }
    

    这应该可以满足您的需求

    【讨论】:

    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 2016-01-09
    • 2015-05-27
    • 2017-08-19
    • 1970-01-01
    • 2020-01-12
    相关资源
    最近更新 更多