Gravity Forms:仅当单选按钮值为Yes时显示审核页的问题排查
问题分析与修复方案
你的代码存在两个核心问题:
- 逻辑顺序颠倒:你先直接将
$review_page['is_enabled']设为true,之后才判断单选按钮的值。这会导致审核页默认处于开启状态,完全违背了「仅当单选选Yes时才显示」的需求。 - 缺少默认返回值:当单选按钮值不是"Yes"时,函数没有返回任何内容,这会破坏Gravity Forms的过滤器工作机制,导致表单流程出现异常。
修正后的代码如下:
add_filter( 'gform_review_page_19', 'add_review_page_ccm', 10, 3 ); function add_review_page_ccm( $review_page, $form, $entry ) { // 先获取单选按钮的值 $selected_radio = rgar( $entry, '8' ); // 根据单选值决定是否启用审核页 if ( $selected_radio == 'Yes' ) { $review_page['is_enabled'] = true; $review_page['content'] .= GFCommon::replace_variables( '{all_fields}', $form, $entry ); } else { // 不满足条件时关闭审核页 $review_page['is_enabled'] = false; } // 无论什么情况都返回处理后的$review_page return $review_page; }
这段代码的逻辑是:先判断单选按钮的值,仅当值为"Yes"时才开启审核页并添加内容;否则直接关闭审核页。同时确保函数在任何分支都返回$review_page,保证过滤器正常工作。
内容的提问来源于stack exchange,提问作者Buzzard
相关产品推荐
相关产品推荐

