你应该做的是,在你的functions.php中添加这段代码。
function user_downloads($order_id) {
// Variables to change
$download_file_id = CUSTOM_ID_OR_ATTACHMENT_ID_OF_FILE;
$user_id = USER_ID;
$product_id = PRODUCT_ID;
$order = new WC_Order( $order_id );
if($order['product_id'] == $product_id ){
$user_downloads = get_user_meta($user_id, 'user_downloads', TRUE);
if(!empty($user_downloads)){
$user_downloads = $user_downloads.','.$download_file_id;
update_user_meta($user_id, 'user_downloads', $user_downloads );
}else{
update_user_meta($user_id, 'user_downloads', $user_downloads );
}
}
}
add_action( 'woocommerce_order_status_completed', 'user_downloads' );
该代码将连接到 woocommerce,当订单完成时,它将创建一个新的用户元数据。因此,每个为指定产品付款的用户都会有一个名为“user_downloads”的新元项目。该项目的值将是附件 id 或某些加密 id 的逗号分隔值。现在您在模板页面中要做的就是
$user_downloads = get_user_meta($user_id, 'user_downloads', TRUE);
$user_downloads = explode(',',$user_downloads);
foreach($user_downloads as $user_download){
echo '<a href="'.wp_get_attachment_url( $user_downloads[$user_download] ).'">Downloadable File</a>';
}
这样他们就可以购买任意数量的产品,并且所有这些项目都将堆积在他们的用户个人资料中,他们可以从那里下载它们。