Может кто-нибудь сказать мне, что я делаю не так с этим хуком 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.
Я смог решить эту проблему, используя вместо этого код:
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;
}
Других решений пока нет …