wpcf7_flamingo_submit() CF7 1.0
Возвращает
Null. Ничего.
Использование
wpcf7_flamingo_submit( $contact_form, $result );
Код wpcf7_flamingo_submit() wpcf7 flamingo submit CF7 5.3.2
<?php
function wpcf7_flamingo_submit( $contact_form, $result ) {
if ( ! class_exists( 'Flamingo_Contact' )
or ! class_exists( 'Flamingo_Inbound_Message' ) ) {
return;
}
if ( $contact_form->in_demo_mode() ) {
return;
}
$cases = (array) apply_filters( 'wpcf7_flamingo_submit_if',
array( 'spam', 'mail_sent', 'mail_failed' ) );
if ( empty( $result['status'] )
or ! in_array( $result['status'], $cases ) ) {
return;
}
$submission = WPCF7_Submission::get_instance();
if ( ! $submission
or ! $posted_data = $submission->get_posted_data() ) {
return;
}
if ( $submission->get_meta( 'do_not_store' ) ) {
return;
}
$email = wpcf7_flamingo_get_value( 'email', $contact_form );
$name = wpcf7_flamingo_get_value( 'name', $contact_form );
$subject = wpcf7_flamingo_get_value( 'subject', $contact_form );
$meta = array();
$special_mail_tags = array( 'serial_number', 'remote_ip',
'user_agent', 'url', 'date', 'time', 'post_id', 'post_name',
'post_title', 'post_url', 'post_author', 'post_author_email',
'site_title', 'site_description', 'site_url', 'site_admin_email',
'user_login', 'user_email', 'user_display_name',
);
foreach ( $special_mail_tags as $smt ) {
$tagname = sprintf( '_%s', $smt );
$mail_tag = new WPCF7_MailTag(
sprintf( '[%s]', $tagname ),
$tagname,
''
);
$meta[$smt] = apply_filters( 'wpcf7_special_mail_tags', null,
$tagname, false, $mail_tag
);
}
$akismet = isset( $submission->akismet )
? (array) $submission->akismet : null;
$timestamp = $submission->get_meta( 'timestamp' );
if ( $timestamp and $datetime = date_create( '@' . $timestamp ) ) {
$datetime->setTimezone( wp_timezone() );
$last_contacted = $datetime->format( 'Y-m-d H:i:s' );
} else {
$last_contacted = '0000-00-00 00:00:00';
}
if ( 'mail_sent' == $result['status'] ) {
$flamingo_contact = Flamingo_Contact::add( array(
'email' => $email,
'name' => $name,
'last_contacted' => $last_contacted,
) );
}
$post_meta = get_post_meta( $contact_form->id(), '_flamingo', true );
$channel_id = isset( $post_meta['channel'] )
? (int) $post_meta['channel']
: wpcf7_flamingo_add_channel(
$contact_form->name(), $contact_form->title() );
if ( $channel_id ) {
if ( ! isset( $post_meta['channel'] )
or $post_meta['channel'] !== $channel_id ) {
$post_meta = empty( $post_meta ) ? array() : (array) $post_meta;
$post_meta = array_merge( $post_meta, array(
'channel' => $channel_id,
) );
update_post_meta( $contact_form->id(), '_flamingo', $post_meta );
}
$channel = get_term( $channel_id,
Flamingo_Inbound_Message::channel_taxonomy );
if ( ! $channel or is_wp_error( $channel ) ) {
$channel = 'contact-form-7';
} else {
$channel = $channel->slug;
}
} else {
$channel = 'contact-form-7';
}
$args = array(
'channel' => $channel,
'status' => $submission->get_status(),
'subject' => $subject,
'from' => trim( sprintf( '%s <%s>', $name, $email ) ),
'from_name' => $name,
'from_email' => $email,
'fields' => $posted_data,
'meta' => $meta,
'akismet' => $akismet,
'spam' => ( 'spam' == $result['status'] ),
'consent' => $submission->collect_consent(),
'timestamp' => $timestamp,
'posted_data_hash' => $submission->get_posted_data_hash(),
);
if ( $args['spam'] ) {
$args['spam_log'] = $submission->get_spam_log();
}
if ( isset( $submission->recaptcha ) ) {
$args['recaptcha'] = $submission->recaptcha;
}
$flamingo_inbound = Flamingo_Inbound_Message::add( $args );
if ( empty( $flamingo_contact ) ) {
$flamingo_contact_id = 0;
} elseif ( method_exists( $flamingo_contact, 'id' ) ) {
$flamingo_contact_id = $flamingo_contact->id();
} else {
$flamingo_contact_id = $flamingo_contact->id;
}
if ( empty( $flamingo_inbound ) ) {
$flamingo_inbound_id = 0;
} elseif ( method_exists( $flamingo_inbound, 'id' ) ) {
$flamingo_inbound_id = $flamingo_inbound->id();
} else {
$flamingo_inbound_id = $flamingo_inbound->id;
}
$result += array(
'flamingo_contact_id' => absint( $flamingo_contact_id ),
'flamingo_inbound_id' => absint( $flamingo_inbound_id ),
);
do_action( 'wpcf7_after_flamingo', $result );
}