32 ) ? '' : 'elementor_' . $id; } $id = (int) $form_id; return $id > 0 ? $provider . '_' . $id : ''; } private static function submit( $provider, $form_id, $entry_id, $email, $page_url = '' ) { $surface = self::surface( $provider, $form_id ); if ( '' === $surface ) { return; } $once = $surface . ':' . (int) $entry_id . ':' . strtolower( (string) $email ); if ( isset( self::$seen[ $once ] ) ) { return; } self::$seen[ $once ] = true; do_action( 'aieo_submission', array( 'provider' => $provider, 'goal_key' => 'form_submit_' . $provider, 'entry_id' => max( 0, (int) $entry_id ), 'surface' => $surface, 'email' => is_email( (string) $email ) ? (string) $email : '', 'page_url' => (string) $page_url, ) ); } public static function first_email( $values ) { foreach ( is_array( $values ) ? $values : array() as $v ) { if ( is_array( $v ) ) { $type = isset( $v['type'] ) ? (string) $v['type'] : ''; $val = isset( $v['value'] ) ? $v['value'] : ''; if ( ( 'email' === $type || '' === $type ) && is_scalar( $val ) && is_email( trim( (string) $val ) ) ) { return trim( (string) $val ); } continue; } if ( is_scalar( $v ) && is_email( trim( (string) $v ) ) ) { return trim( (string) $v ); } } return ''; } public static function on_wpforms( $fields, $entry = array(), $form_data = array(), $entry_id = 0 ) { $form_id = is_array( $form_data ) && isset( $form_data['id'] ) ? $form_data['id'] : ( is_array( $entry ) && isset( $entry['id'] ) ? $entry['id'] : 0 ); $page = isset( $_POST['page_url'] ) && is_string( $_POST['page_url'] ) ? esc_url_raw( wp_unslash( $_POST['page_url'] ) ) : ''; self::submit( 'wpforms', $form_id, (int) $entry_id, self::first_email( $fields ), $page ); } public static function on_cf7( $contact_form ) { $form_id = is_object( $contact_form ) && method_exists( $contact_form, 'id' ) ? $contact_form->id() : 0; $posted = array(); $page = ''; if ( class_exists( 'WPCF7_Submission' ) ) { $submission = WPCF7_Submission::get_instance(); if ( $submission ) { $posted = (array) $submission->get_posted_data(); $page = (string) $submission->get_meta( 'url' ); } } self::submit( 'cf7', $form_id, 0, self::first_email( $posted ), $page ); } public static function on_fluent( $insert_id, $form_data = array(), $form = null ) { $form_id = is_object( $form ) && isset( $form->id ) ? $form->id : ( is_array( $form ) && isset( $form['id'] ) ? $form['id'] : 0 ); self::submit( 'fluent', $form_id, (int) $insert_id, self::first_email( $form_data ) ); } public static function on_ninja( $form_data ) { if ( ! is_array( $form_data ) ) { return; } $form_id = isset( $form_data['form_id'] ) ? $form_data['form_id'] : 0; $sub_id = isset( $form_data['actions']['save']['sub_id'] ) ? (int) $form_data['actions']['save']['sub_id'] : 0; self::submit( 'ninja', $form_id, $sub_id, self::first_email( isset( $form_data['fields'] ) ? $form_data['fields'] : array() ) ); } public static function on_elementor( $record, $handler = null ) { if ( ! is_object( $record ) || ! method_exists( $record, 'get' ) ) { return; } $form_id = method_exists( $record, 'get_form_settings' ) ? $record->get_form_settings( 'id' ) : ''; $fields = $record->get( 'fields' ); $meta = $record->get( 'meta' ); $page = is_array( $meta ) && isset( $meta['page_url']['value'] ) ? (string) $meta['page_url']['value'] : ''; self::submit( 'elementor', $form_id, 0, self::first_email( is_array( $fields ) ? $fields : array() ), $page ); } } }