我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