You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何针对特定Memberpress订阅用户隐藏或显示Gravity Forms指定字段

实现Gravity Form根据Memberpress订阅状态控制字段显隐的方案
  • 第一步:在需要调整的Gravity Form表单中新增一个隐藏类型的字段,命名可自行定义(比如「会员有效状态」),记录该字段的ID,同时记录当前表单的ID。
  • 第二步:将以下代码添加到WordPress站点当前主题的functions.php文件,或自定义功能插件的代码文件中,按注释替换对应参数即可:
add_filter( 'gform_pre_render_替换为你的表单ID', 'populate_mepr_sub_status_to_gf' );
function populate_mepr_sub_status_to_gf( $form ) {
    // 替换为你需要校验的Memberpress订阅产品ID
    $target_membership_id = 123;
    // 替换为刚才新建的隐藏字段ID
    $status_field_id = 10;

    $sub_status = 0;
    if ( is_user_logged_in() ) {
        $current_user = new MeprUser( get_current_user_id() );
        // Memberpress原生校验方法,返回布尔值表示是否有有效订阅
        $has_valid_sub = $current_user->is_active_on_membership( $target_membership_id );
        $sub_status = $has_valid_sub ? 1 : 0;
    }

    // 给目标隐藏字段赋值
    foreach ( $form['fields'] as &$field ) {
        if ( $field->id == $status_field_id ) {
            $field->defaultValue = $sub_status;
        }
    }
    return $form;
}
  • 第三步:配置目标字段的条件逻辑。打开你需要控制显隐的字段设置,开启「条件逻辑」选项,规则设置为:当「会员有效状态」字段值等于1时,显示/隐藏该字段,保存表单即可生效。

补充说明:如果你坚持要使用HTML字段嵌入脚本的方案也可以实现,但前端赋值容易被用户篡改,安全性更低,不推荐。需要的话可直接在HTML字段中插入对应JS代码,赋值完成后手动触发字段change事件让Gravity Form的条件逻辑生效即可。

内容的提问来源于stack exchange,提问作者Mk1399

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 21:06:03