Я создаю функцию для подключения к wpcf7_mail_sent
, чтобы сохранить отправку формы Contact Form 7 в файл json. Я получаю отправку формы со следующим кодом.
$submission = WPCF7_Submission::get_instance();
$data = $submission->get_posted_data();
if ( $submission ) {
// The rest of the code goes in here
}
Затем у меня есть массив с выходными данными, где я сохраняю все, прежде чем конвертировать его в json, например.
$output = [
'name' => $data['name']
]
Теперь у меня также есть необязательные поля. Я помещаю все это в массив, чтобы просмотреть его и увидеть, пустые они или нет. Но как-то это не работает.
$optional_fields = ['subject', 'phone'];
foreach ( $optional_fields as $optional_field ) {
if ( isset($data[$optional_field]) ) {
array_push( $output[$optional_field], $data[$optional_field] );
}
}
Независимо от того, попробую ли я isset()
, != null
или просто приведенный выше пример, я всегда получаю ВСЕ необязательные поля в моем выводе, в том числе те, где значение равно нулю. Как я могу отфильтровать незарегистрированные поля?