我GOOGLE了很多,但沒有發現任何解決方案,交替您可以創建一個新的訂單(創建使用代碼禮物順序)爲所有用戶,並按照woocommerce結構/規則所有用戶都可以從我的帳戶下載該產品的下下載鏈接。這不是一個最好的解決方案,但你的工作不會掛起。
編輯:(下面的方法使用) 循環遍歷所有的訂單和產品到所有訂單(您可以爲了完成甚至在任何順序添加產品),你可以用下面的代碼添加產品:
$product = wc_get_product($product_id);
$item = array(
'order_item_name' => $product->get_title(),
);
$item_id = wc_add_order_item($order_id, $item);
然後,你需要添加一些元:
wc_add_order_item_meta($item_id, '_qty', 1);
wc_add_order_item_meta($item_id, '_tax_class', $product->get_tax_class());
wc_add_order_item_meta($item_id, '_product_id', $product->id);
wc_add_order_item_meta($item_id, '_variation_id', $variation_id);
wc_add_order_item_meta($item_id, '_line_subtotal', 0);
wc_add_order_item_meta($item_id, '_line_subtotal_tax', '');
wc_add_order_item_meta($item_id, '_line_total', 0);
wc_add_order_item_meta($item_id, '_line_tax', '');
wc_add_order_item_meta($item_id, '_line_tax_data', 0);
最後呼籲:
wc_downloadable_product_permissions($order_id);
如果您的訂單已經下載的產品,那麼用戶下面的代碼在上面的函數的地方:
$order = new WC_Order($order_id);
if (sizeof($order->get_items()) > 0)
{
foreach ($order->get_items() as $item)
{
$_product = $order->get_product_from_item($item);
if ($_product && $_product->exists() && $_product->is_downloadable())
{
$downloads = $_product->get_files();
foreach (array_keys($downloads) as $download_id)
{
wc_downloadable_file_permission($download_id, $item['variation_id'] > 0 ? $item['variation_id'] : $item['product_id'], $order, $item['qty']);
}
}
}
}
update_post_meta($order_id, '_download_permissions_granted', 1);
這一切都應該在訂單環,就是這樣。
一個想法:與其直接應用基於產品的下載權限相比,在您的情況下,創建一種可以處理設置產品的下載權限的特殊屬性(可下載系列)可能會更方便。這種方式當你添加一個新的產品,你會鏈接到這個屬性之一,在同一時間下載權限擴展...這只是一個想法,現在得到這個工作是另一回事... – LoicTheAztec
嗨@LoicTheAztec感謝您的響應!在這種情況下,我需要更多的移植工具。我目前正在將我的簡單產品下載轉換爲具有多個下載的可變產品。 – Blake