..., 'value' => ...]. */ public function submit( $entry, $form_id, $field_data ) { $labels = $this->labels( (int) $form_id ); $out = array(); foreach ( (array) $field_data as $item ) { if ( ! is_array( $item ) || empty( $item['name'] ) ) { continue; } $name = (string) $item['name']; $type = preg_replace( '/-\d+$/', '', $name ); if ( '_' === $name[0] || $this->is_display_only( $type ) || in_array( $type, array( 'captcha', 'stripe', 'paypal', 'calculation' ), true ) ) { continue; } $out[ $name ] = array( 'label' => $labels[ $name ] ?? $name, 'value' => $item['value'] ?? '', ); } $entry_id = is_object( $entry ) && isset( $entry->entry_id ) ? (int) $entry->entry_id : 0; $url = admin_url( 'admin.php?page=forminator-entries&form_type=forminator_forms&form_id=' . (int) $form_id ); $this->notify( (int) $form_id, get_the_title( (int) $form_id ), $out, $entry_id ? $entry_id : '', $url, __( 'View entries', 'pingpush' ) ); } /** * Field labels keyed by element id (e.g. "name-1"). * * @param int $form_id Form id. * @return array */ private function labels( $form_id ) { $labels = array(); if ( ! class_exists( 'Forminator_API' ) || ! method_exists( 'Forminator_API', 'get_form_fields' ) ) { return $labels; } try { $fields = Forminator_API::get_form_fields( $form_id ); if ( is_array( $fields ) ) { foreach ( $fields as $field ) { if ( is_object( $field ) && method_exists( $field, 'to_formatted_array' ) ) { $arr = $field->to_formatted_array(); if ( ! empty( $arr['element_id'] ) && ! empty( $arr['field_label'] ) ) { $labels[ (string) $arr['element_id'] ] = wp_strip_all_tags( (string) $arr['field_label'] ); } } } } } catch ( \Throwable $e ) { return array(); } return $labels; } }