WooCommerce如何隐藏优惠券字段但对登录用户可见?
问题解决:仅登录用户可见购物车优惠券字段
原代码存在两个关键问题:
- 使用了未定义的变量
$disabled,PHP会抛出错误导致逻辑失效 - 逻辑完全颠倒:原本要隐藏未登录用户的优惠券字段,结果写成了登录用户在购物车也无法看到优惠券
修正后的代码如下:
function hide_coupon_field_for_guest_on_cart( $enabled ) { // 仅在购物车页面且用户未登录时,禁用优惠券字段 if ( is_cart() && !is_user_logged_in() ) { $enabled = false; } return $enabled; } add_filter( 'woocommerce_coupons_enabled', 'hide_coupon_field_for_guest_on_cart' );
代码说明:
- 先判断当前是否处于购物车页面(
is_cart()),同时用户未登录(!is_user_logged_in()) - 满足条件时将
$enabled设为false,隐藏优惠券输入字段 - 其他场景(非购物车页面或用户已登录),保持原有优惠券功能的启用状态,不影响正常使用
内容的提问来源于stack exchange,提问作者Jazzy
相关产品推荐
相关产品推荐

