在 WooCommerce 电商网站中,我们有时希望为已登录用户提供额外信息,比如会员专属优惠、隐藏的内容说明、批发价格等。而未登录的访客只能看到基础信息,引导他们注册或登录。
这种功能不用安装插件,只需要几行代码,就可以实现:
登录用户可见指定内容
未登录用户看到提示引导登录/注册
本教程会介绍如何在 WooCommerce 产品详情页中,用代码轻松实现“登录可见”功能,安全、轻量、可自定义。
一、适用场景示例
显示会员专属优惠或价格说明
显示仅登录用户可见的“购买须知”
显示批发客户可见的价格或联系方式
鼓励用户注册:未登录时提示“登录后查看更多内容”
二、代码实现:登录用户可见内容
把以下代码添加到当前主题的 functions.php 文件中:
打开路径为:后台-外观-主题文件编辑器–functions.php
add_action( ‘woocommerce_single_product_summary’, ‘show_content_for_logged_in_users’, 35 );
function show_content_for_logged_in_users() {
if ( is_user_logged_in() ) {
echo ‘<div class=”custom-member-content”>’;
echo ‘<strong>🎉 会员专属:</strong> 下单即赠送满100减20优惠券!’;
echo ‘</div>’;
} else {
echo ‘<div class=”custom-guest-message”>’;
echo ‘请先 <a href=”‘ . wp_login_url( get_permalink() ) . ‘”>登录</a> 或 <a href=”‘ . wp_registration_url() . ‘”>注册</a> 后查看更多优惠信息。’;
echo ‘</div>’;
}
}
三、说明与扩展
该代码使用 WooCommerce 的钩子 woocommerce_single_product_summary,插入位置在“加入购物车”按钮后
is_user_logged_in() 是 WordPress 内置函数,可判断用户是否登录
wp_login_url() 和 wp_registration_url() 可生成登录/注册页面链接
四、页面效果预览
未登录用户看到:
请先 登录 或 注册 后查看更多优惠信息。
登录用户看到:
🎉 会员专属:下单即赠送满100减20优惠券!
你可以根据需要替换其中的文本内容、按钮样式、添加图片等,实现个性化效果。
五、进阶建议(可选)
如果想要进一步控制显示内容:
根据用户角色显示不同信息(如只对“批发客户”展示)
把隐藏内容用 get_field() 结合 ACF 插件动态获取
使用 current_user_can() 判断是否为特定权限用户
示例代码(根据角色显示):
if ( current_user_can( ‘wholesale_customer’ ) ) {
echo ‘这是批发客户看到的内容。’;
}
六、总结
通过简单的代码判断,可以轻松实现在 WooCommerce 产品页中为不同用户展示不同内容,可以提升会员体验和有效引导访客注册。
