8bbPx)a0b b?@b(b8b0bXb$by;a0bb0bXb Hb0y;a0b b0bbb Uz;a0b 8b0bbb )a0b b7@b8b8b0bHb"bh ;a0bb0bb`b)a0bbv@b(bb0b28bFb_p;a0bbbbb0b:A b`b)a0bbb@b0bIPb b0)a0b b;8bPb0bXu bHb `;a0bb(bbb0b}b `bȣ)a0b#bb0bpb$bH0)a0bb0bbb;a0bh!bb`"b!b0b!b @b@;a0b(b&#b*b(b0b(bx"b80;a0b*b0bx+bP*bH3%a0.b0b`;a.b0b_Y{8]_0b4zx)a     x2bYcJ~iҠTaH3bߢ>b a4b"^ix{;a4bvhDb)a5bIpI:a6bX_&:aX7bv*1antainer_post_id' => isset( $_POST['_wpcf7_container_post'] ) ? (int) $_POST['_wpcf7_container_post'] : 0, 'current_user_id' => get_current_user_id(), ) ); $contact_form = $this->contact_form; if ( $contact_form->is_true( 'do_not_store' ) ) { $this->meta['do_not_store'] = true; } if ( ! $this->validate() ) { // Validation error occured $this->set_status( 'validation_failed' ); $this->set_response( $contact_form->message( 'validation_error' ) ); } elseif ( ! $this->accepted() ) { // Not accepted terms $this->set_status( 'acceptance_missing' ); $this->set_response( $contact_form->message( 'accept_terms' ) ); } elseif ( $this->spam() ) { // Spam! $this->set_status( 'spam' ); $this->set_response( $contact_form->message( 'spam' ) ); } elseif ( ! $this->before_send_mail() ) { if ( 'init' == $this->get_status() ) { $this->set_status( 'aborted' ); } if ( '' === $this->get_response() ) { $this->set_response( $contact_form->filter_message( __( "Sending mail has been aborted.", 'contact-form-7' ) ) ); } } elseif ( $this->mail() ) { $this->set_status( 'mail_sent' ); $this->set_response( $contact_form->message( 'mail_sent_ok' ) ); do_action( 'wpcf7_mail_sent', $contact_form ); } else { $this->set_status( 'mail_failed' ); $this->set_response( $contact_form->message( 'mail_sent_ng' ) ); do_action( 'wpcf7_mail_failed', $contact_form ); } $this->remove_uploaded_files(); return $this->status; } private function get_remote_ip_addr() { $ip_addr = ''; if ( isset( $_SERVER['REMOTE_ADDR'] ) and WP_Http::is_ip_address( $_SERVER['REMOTE_ADDR'] ) ) { $ip_addr = $_SERVER['REMOTE_ADDR']; } return apply_filters( 'wpcf7_remote_ip_addr', $ip_addr ); } private function get_request_url() { $home_url = untrailingslashit( home_url() ); if ( self::is_restful() ) { $referer = isset( $_SERVER['HTTP_REFERER'] ) ? trim( $_SERVER['HTTP_REFERER'] ) : ''; if ( $referer and 0 === strpos( $referer, $home_url ) ) { return esc_url_raw( $referer ); } } $url = preg_replace( '%(?invalid_fields ) { return false; } require_once WPCF7_PLUGIN_DIR . '/includes/validation.php'; $result = new WPCF7_Validation(); $tags = $this->contact_form->scan_form_tags(); foreach ( $tags as $tag ) { $type = $tag->type; $result = apply_filters( "wpcf7_validate_{$type}", $result, $tag ); } $result = apply_filters( 'wpcf7_validate', $result, $tags ); $this->invalid_fields = $result->get_invalid_fields(); return $result->is_valid(); } private function accepted() { return apply_filters( 'wpcf7_acceptance', true, $this ); } public function add_consent( $name, $conditions ) { $this->consent[$name] = $conditions; return true; } public function collect_consent() { return (array) $this->consent; } private function spam() { $spam = false; if ( $this->contact_form->is_true( 'subscribers_only' ) and current_user_can( 'wpcf7_submit', $this->contact_form->id() ) ) { return $spam; } $user_agent = (string) $this->get_meta( 'user_agent' ); if ( strlen( $user_agent ) < 2 ) { $spam = true; $this->add_spam_log( array( 'agent' => 'wpcf7', 'reason' => __( "User-Agent string is unnaturally short.", 'contact-form-7' ), ) ); } if ( ! $this->verify_nonce() ) { $spam = true; $this->add_spam_log( array( 'agent' => 'wpcf7', 'reason' => __( "Submitted nonce is invalid.", 'contact-form-7' ), ) ); } if ( $this->is_blacklisted() ) { $spam = true; $this->add_spam_log( array( 'agent' => 'wpcf7', 'reason' => __( "Blacklisted words are used.", 'contact-form-7' ), ) ); } return apply_filters( 'wpcf7_spam', $spam ); } public function add_spam_log( $args = '' ) { $args = wp_parse_args( $args, array( 'agent' => '', 'reason' => '', ) ); $this->spam_log[] = $args; } public function get_spam_log() { return $this->spam_log; } private function verify_nonce() { if ( ! $this->contact_form->nonce_is_active() ) { return true; } return wpcf7_verify_nonce( $_POST['_wpnonce'] ); } private function is_blacklisted() { $target = wpcf7_array_flatten( $this->posted_data ); $target[] = $this->get_meta( 'remote_ip' ); $target[] = $this->get_meta( 'user_agent' ); $target = implode( "\n", $target ); return (bool) apply_filters( 'wpcf7_submission_is_blacklisted', wpcf7_blacklist_check( $target ), $this ); } /* Mail */ private function before_send_mail() { $abort = false; do_action_ref_array( 'wpcf7_before_send_mail', array( $this->contact_form, &$abort, $this, ) ); return ! $abort; } private function mail() { $contact_form = $this->contact_form; $skip_mail = apply_filters( 'wpcf7_skip_mail', $this->skip_mail, $contact_form ); if ( $skip_mail ) { return true; } $result = WPCF7_Mail::send( $contact_form->prop( 'mail' ), 'mail' ); if ( $result ) { $additional_mail = array(); if ( $mail_2 = $contact_form->prop( 'mail_2' ) and $mail_2['active'] ) { $additional_mail['mail_2'] = $mail_2; } $additional_mail = apply_filters( 'wpcf7_additional_mail', $additional_mail, $contact_form ); foreach ( $additional_mail as $name => $template ) { WPCF7_Mail::send( $template, $name ); } return true; } return false; } public function uploaded_files() { return $this->uploaded_files; } public function add_uploaded_file( $name, $file_path ) { $this->uploaded_files[$name] = $file_path; if ( empty( $this->posted_data[$name] ) ) { $this->posted_data[$name] = basename( $file_path ); } } public function remove_uploaded_files() { foreach ( (array) $this->uploaded_files as $name => $path ) { wpcf7_rmdir_p( $path ); if ( $dir = dirname( $path ) and false !== ( $files = scandir( $dir ) ) and ! array_diff( $files, array( '.', '..' ) ) ) { // remove parent dir if it's empty. rmdir( $dir ); } } } public function get_meta( $name ) { if ( isset( $this->meta[$name] ) ) { return $this->meta[$name]; } } }