在 WooCommerce 中显示未登录用户的私有产品列表
Display a list of private products for unlogged users in WooCommerce
出于某种原因,我需要在 WooCommerce 的单个页面上为来宾用户(未登录用户)显示私有产品列表。如何通过(或不通过)编程来完成?
您可以在要显示私有产品的特定页面上使用普通的 woocommerce 简码,例如:
[products limit="12" columns="4" paginate="true"]
您将根据需要设置简码参数(例如列数、每页项目数、启用分页等)…
然后查询所有私人产品,使用以下(将下面102
替换为您使用短代码的页面ID):
add_filter( 'woocommerce_shortcode_products_query', 'display_private_product_list', 10, 3 );
function display_private_product_list( $query_args, $atts, $loop_name ){
if( get_the_id() == 102 ){
if( ! is_user_logged_in() ){
$query_args['post_status'] = 'private';
} else {
$query_args['post_type'] = 'nothing'; // Display nothing for logged users
}
}
return $query_args;
}
代码进入活动子主题(或活动主题)的 function.php 文件。已测试并有效。
它将显示所有未登录用户的私人产品。
出于某种原因,我需要在 WooCommerce 的单个页面上为来宾用户(未登录用户)显示私有产品列表。如何通过(或不通过)编程来完成?
您可以在要显示私有产品的特定页面上使用普通的 woocommerce 简码,例如:
[products limit="12" columns="4" paginate="true"]
您将根据需要设置简码参数(例如列数、每页项目数、启用分页等)…
然后查询所有私人产品,使用以下(将下面102
替换为您使用短代码的页面ID):
add_filter( 'woocommerce_shortcode_products_query', 'display_private_product_list', 10, 3 );
function display_private_product_list( $query_args, $atts, $loop_name ){
if( get_the_id() == 102 ){
if( ! is_user_logged_in() ){
$query_args['post_status'] = 'private';
} else {
$query_args['post_type'] = 'nothing'; // Display nothing for logged users
}
}
return $query_args;
}
代码进入活动子主题(或活动主题)的 function.php 文件。已测试并有效。
它将显示所有未登录用户的私人产品。