Проблема с крючком Ninja Forms ninja_forms_submit_data

Может ли кто-нибудь сказать мне, что я делаю не так с этим крючком Ninja Forms:

add_filter( 'ninja_forms_submit_data', 'my_ninja_forms_submit_data' );

function my_ninja_forms_submit_data( $form_data ) {
    foreach( $form_data[ 'fields' ] as $field ) { 
        if( 'test_page_url_1519171605789' == $field['key'] ){
            $current_url =  "my url - {$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
            $field[ 'value' ] = $current_url; 
        }
    }
    $form_settings = $form_data[ 'settings' ]; // Form settings.
    $extra_data = $form_data[ 'extra' ]; // Extra data included with the submission.

    return $form_data;
}

Я пытаюсь изменить скрытое поле формы со значением ключа "test_page_url_1519171605789", чтобы оно содержало URL.

1 ответ

Я смог решить эту проблему, используя вместо этого код:

add_filter( 'ninja_forms_submit_data', 'my_ninja_forms_submit_data' );

function my_ninja_forms_submit_data( $form_data ) { 

    //Need to set the current URL as the previous page since
    //REQUEST_URI was returning /wp-admin/admin-ajax.php 
    //instead of the form's actual URL.
    $current_url =  $_SERVER['HTTP_REFERER'];

    foreach( $form_data[ 'fields' ] as $key => $field ) {
        //I need to look for the field ID and not the field key
        if( $key == '197' || $key == '195' || $key == '196' || $key == '179' ){
            // Update the submitted field value with the URL to the previous page.
            $form_data['fields'][$key]['value'] = $current_url; 
      }
  }

  // Form settings.
  $form_settings = $form_data[ 'settings' ]; 
  // Extra data included with the submission.
  $extra_data = $form_data[ 'extra' ]; 

  return $form_data;
}
Другие вопросы по тегам