如何针对特定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
相关产品推荐
相关产品推荐

