#php #wordpress #filter #gravity-forms-plugin
Вопрос:
Я пытаюсь заполнить варианты в переключателях из полей ACF. Я придумал решение ниже, которое в основном просто заменяет строку. Однако это решение работает только визуально на переднем плане. Например, при получении уведомления администратора он по-прежнему возвращает исходный текст «Valg 1:, Valg 2: или valg3».
Как я могу также заставить код работать в уведомлениях администратора и тому подобном?
Я искал всевозможные фильтры гравитационных форм, но по какой-то причине не смог заставить их работать:
gform_pre_render
gform_pre_validation
gform_pre_submission_filter
gform_admin_pre_render
Мой код:
add_filter( 'gform_field_choice_markup_pre_render_16_11', function ( $choice_markup, $choice, $field, $value ) {
if ( $field->get_input_type() == 'radio' ) :
if( get_field('valg_checkbox') == 'Valg1' ) {
switch ( rgar( $choice, 'text' ) ) {
case "Valg 1:":
$description = get_field('valg_1');
$current = "Valg 1";
break;
}
} elseif ( get_field('valg_checkbox') == 'Valg2' ) {
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;
} } else {
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);
}, 10, 4 );