order-downloads.php的模板上有为订单提供的下载文件的参考.但它使用的引用会产生一个加密的字符串,而不是显示实际的URL.

%s = $download['download_url'];

在我的情况下,下载链接将是一个需要加书签的链接,所以我需要纯URL.我可以改用如下内容吗

$download = $order -> download_file();

如果是的话,用什么?

为了测试,我try 了这个代码.

$testip = "";
if (!empty($_SERVER['REMOTE_ADDR'])) {
            $drmip = $_SERVER['REMOTE_ADDR'];
        }

        if $testip = "136.220.152.221" {

            $testinvoice = $order->get_order_number();
            $testemail = $order->get_billing_email();
            $testproduct = $order->get_items();

            if(strstr($testproduct,"DDD")) {
                $testdownload = $order->get_downloadable_items()[0]['download_url'];
                echo "<script>alert('ID = " . $testinvoice . " \nEmail = " . $testemail . " \nURL = " . $testdownload . "')</script>";  
            }

        }

但我收到一条错误消息"Critical Error on Page"(页面上出现严重错误)

推荐答案

如果您只有一种可能的订购下载方式,您可以使用以下(that gets the first downloadable item)种方式:

$download      = reset($downloads); // Get first download item

$product = wc_get_product($download['product_id']);
$product_downloads = $product->get_downloads();
$product_download  = reset($product_downloads);
$download_link     = $product_download->get_file();

$order         = wc_get_order( $download['order_id'] );
$order_number  = $order->get_order_number();
$billing_email = $order->get_billing_email();
$customer_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();

// Test output
print_r('<pre>ID = ' . $order_number . ' <br>Customer name = ' . $customer_name . ' <br>Email = ' . $billing_email . ' <br>URL = ' . $download_link . '</pre>');

经过测试,效果良好.

Php相关问答推荐

如何发送woocommerce订单跟踪码与短信

按制造商、型号和年份范围判断数据的存在性

在AJAX请求后,Laravel重定向.(不允许使用方法)

让所有具有相同名称的产品在WooCommerce中更改价格

WooCommerce:在 checkout 审核单和发票中显示定制产品数据

WordPress插件和JSON不是有效的响应错误

如何在WooCommerce产品子类别中显示特定内容

针对给定产品类别的WooCommerce计数审核

PHP文件上载问题-";Move_Uploaded_Files";未按预期工作

Rappasoft Datatables V2(我想在另一个表具有相同值列时显示数据)

在WooCommercel邮箱通知上添加来自Apaczka插件的选定交付点

Google Drive API 服务->文件->get('root') 失败并显示找不到文件. (范围问题?)

将产品数量、名称和结帐链接添加到 WooCommerce 添加到购物车消息

在WooCommerce单产品页面中显示特价产品的节省金额

在PHP WordPress插件中使用变量连接路径时的问题解决方法

WooCommerce单个产品页面上启用额外选项卡的产品元框字段

php/html OnSubmit 禁用输入类型提交未给出预期结果

在 Laravel、Vuejs 和 Inertia 中配置 TypeScript 的问题

使用 --exclude-dir 选项从 PHP 执行 grep 时出现问题

使用 v-for 的存储链接中的 Img src 在 Laravel vuejs 中不起作用