Гравитационные формы/WordPress заполняют выбор переключателей из полей ACF

#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 );