【问题标题】:Access downloadable data from WooCommerce downloadable products从 WooCommerce 可下载产品访问可下载数据
【发布时间】:2020-06-04 18:02:48
【问题描述】:

我正在尝试使用 $product = new WC_Product( get_the_ID() ); 获取 WooCommerce 产品元数据我正在获取产品价格和产品的所有其他值都是可下载的 WooCommerce 产品,我想获取以下数据:

每当我尝试获取 $product->downloads->id$product->downloads->file 时,我都会得到 null 作为回报。请告诉我我在这里做错了什么。

【问题讨论】:

    标签: php wordpress woocommerce download product


    【解决方案1】:

    要访问可下载产品的所有产品下载,您将使用 WC_Product get_downloads() method

    它将为您提供一组 WC_Product_Download 对象,这些受保护的属性可通过 WC_Product_Download available methods 访问(自 WooCommerce 3 起)

    // Optional - Get the WC_Product object from the product ID
    $product = wc_get_product( $product_id );
    
    $output = []; // Initializing
    
    if ( $product->is_downloadable() ) {
        // Loop through WC_Product_Download objects
        foreach( $product->get_downloads() as $key_download_id => $download ) {
    
            ## Using WC_Product_Download methods (since WooCommerce 3)
    
            $download_name = $download->get_name(); // File label name
            $download_link = $download->get_file(); // File Url
            $download_id   = $download->get_id(); // File Id (same as $key_download_id)
            $download_type = $download->get_file_type(); // File type
            $download_ext  = $download->get_file_extension(); // File extension
    
            ## Using array properties (backward compatibility with previous WooCommerce versions)
    
            // $download_name = $download['name']; // File label name
            // $download_link = $download['file']; // File Url
            // $download_id   = $download['id']; // File Id (same as $key_download_id)
    
            $output[$download_id] = '<a href="'.$download_link.'">'.$download_name.'</a>';
        }
        // Output example
        echo implode('<br>', $output);
    }
    

    相关答案:

    【讨论】:

      【解决方案2】:

      如果您想获取下载链接,请尝试:

      $downloads = $product->get_downloads();
      

      这应该返回一个数组,所以你可以像这样使用它:

      foreach( $downloads as $key => $download ) {
          echo '<a href="' . $download["file"] . '">Download File</a>';
      }
      

      【讨论】:

        猜你喜欢
        • 2017-08-19
        • 1970-01-01
        • 2016-09-04
        • 1970-01-01
        • 1970-01-01
        • 2017-03-31
        • 1970-01-01
        • 2014-05-14
        • 1970-01-01
        相关资源
        最近更新 更多