php - 重力形式:单选按钮标签的 ACF 字段
问题描述
我正在尝试创建在 ACF 文本字段中输入标签的重力表单单选按钮。
我尝试过使用 Gravity forms ACF live merge tag。但是,当使用合并标签时,输出结果如下:
<label for="choice_16_11_0" id="label_16_11_0">{custom_field:valg_1}</label>
合并标签只是用纯文本而不是 ACF 字段中的实际文本编写的。因此我认为我必须使用gform_field_choice_markup_pre_render 过滤器才能覆盖标签。我遵循了重力表单文档中的示例。我的代码:
add_filter( 'gform_field_choice_markup_pre_render_16_11', function ( $choice_markup, $choice, $field, $value ) {
if ( $field->get_input_type() == 'radio' ) :
switch ( rgar( $choice, 'text' ) ) {
case "Valg 1":
$description = get_field('valg_1');
break;
case "Valg 2":
$description = get_field('valg_2');
break;
case "Valg 3":
$description = get_field('valg_3');
break;
}
endif;
return str_replace( "</label>", "</label>$description", $choice_markup );
}, 10, 4 );
16 是我的表单 ID,11 是我的单选按钮的字段 ID。但是,我的代码似乎没有做任何事情。关于我可能遗漏的任何指示?
解决方案
尝试从返回中的引号中取出 $description。
仅供参考,如果您尝试完全替换选择,我将替换当前文本值(否则您的代码将简单地为现有标签添加后缀)。
if ( $field->get_input_type() == 'radio' ) :
switch ( rgar( $choice, 'text' ) ) {
case "Valg 1":
$description = get_field('valg_1');
$current = "Valg 1";
break;
case "Valg 2":
$description = get_field('valg_2');
$current = "Valg 2";
break;
case "Valg 3":
$description = get_field('valg_3');
$current = "Valg 3";
break;
}
endif;
return str_replace( ">".$current, ">".$description, $choice_markup);
推荐阅读
- sql-server - 用于删除当前和未来日期的 SQL 查询?
- unity3d - 如何旋转对象以沿矢量 Unity3D 指向
- python - 将数据添加到 CSV 文件的新列和第一行
- angular - 错误 TS2304:部署云功能 firebase 时找不到名称“元素”
- selenium - NightwatchJS - 手动运行 Selenium 服务器时无法创建会话
- vba - VBA,带工作表,清除表格内容
- spring-boot - Spring Boot @Pattern 自定义消息不起作用
- javascript - Chartist 关于没有 jQuery 的点击功能
- ios - 重用“昂贵”的 UIViewController
- angular - Angular - 由 *ngFor 创建的输入会导致在触发模糊事件时显示重复值