wake-up-neo.net

Fügen Sie eine benutzerdefinierte Variable im Mail-Body von Contact Form 7 hinzu

Ich setze ein Cookie, damit meine Benutzer wissen, von welcher Quelle sie auf die Site kommen, und ich möchte, dass die Nachricht, wenn Benutzer mit uns Kontakt aufnehmen, auch mit ihrem Cookie kommt.

Damit habe ich einen neuen Shortcode erstellt und im Mail-Bereich hinzugefügt, aber der direkte Shortcode sendet nicht den zurückgegebenen Wert

Code:

function my_shortcode( $atts ) {
   return isset($_COOKIE['my_source']) ? $_COOKIE['my_source'] : '' ;
}
add_shortcode( 'my-source', 'my_shortcode' );

Nachrichtentext in Kontaktformular 7:

Name : [your-name]
Email : [your-email]
Phone : [form-tel]
My Source : [my-source]

E-Mail, die ich erhalten habe:

Name : Mohit Bumb
Email : [email protected]
Phone : 19191919191
My Source : [my-source]
1
Mohit Bumb

Du solltest es so machen:

add_action( 'wpcf7_init', 'custom_add_form_tag_my_source' );

function custom_add_form_tag_my_source() {
  // "my-source" is the type of the form-tag
  wpcf7_add_form_tag( 'my-source', 'custom_my_source_form_tag_handler' );
}

function custom_my_source_form_tag_handler( $tag ) {
  return isset( $_COOKIE['my_source'] ) ? $_COOKIE['my_source'] : '';
}

Weitere Informationen finden Sie in der Dokumentation .

Alternativ können Sie auch versuchen, reguläre Shortcodes zu analysieren:

add_filter( 'wpcf7_mail_components', function( $components ){
  $components['body'] = do_shortcode( $components['body'] );
  return $components;
} );
1
Sally CJ

Ich habe meine Antwort hier gelöst und gepostet:

Hinzufügen eines benutzerdefinierten Formular-Tags zu Contact Form 7 in Wordpress

(das funktioniert auch per email)

https://stackoverflow.com/questions/53754577/how-to-make-contact-form-7-custom-field/

Der Code

https://Gist.github.com/eduardoarandah/83cad9227bc0ab13bf845ab14f2c4dad

0
lalo

Verwenden Sie den Filter "wpcf7_special_mail_tags"

in diesem Beispiel ist mein Tag "Turniere".

/**
 * A tag to be used in "Mail" section so the user receives the special tag
 * [tournaments]
 */
add_filter('wpcf7_special_mail_tags', 'wpcf7_tag_tournament', 10, 3);
function wpcf7_tag_tournament($output, $name, $html)
{
    $name = preg_replace('/^wpcf7\./', '_', $name); // for back-compat

    $submission = WPCF7_Submission::get_instance();

    if (! $submission) {
        return $output;
    }

    if ('tournaments' == $name) {
        return $submission->get_posted_data("tournaments");
    }

    return $output;
}
0
lalo