2016-05-12 2 views
2

Wie kann ich eine Schaltfläche erstellen, die beim Drücken eine E-Mail-Verknüpfung mit der aktuellen Seite auf WordPress sendet? Ich weiß, dass es ein Plugin gibt, aber ich würde gerne wissen, wie ich es selbst machen kann.Wie erstellt man eine Schaltfläche in WordPress, die die URL der aktuellen Seite per E-Mail versendet?

Etwas wie folgt aus:

$(function(){ 
    $('button').click(function(){ 
     $.ajax({ 
      data: 'action', 
      url: '...' 
     }).done(function(response){ 
      $('button').html('Thank you'); 
     }) 
    }) 
}) 

Und PHP:

if($_POST['action'] =='action'){ 
    mail("[email protected]", "My Subject", "text"); 
} 
+2

Wenn das Plugin Sie wollen nicht frei ist, können Sie einen Blick auf seinen Code haben kann, auf diese Weise immer, gut inspiriert :) – LoicTheAztec

Antwort

2

functions.php

wp_register_script('myscript', path/to/script.js, array('jquery')); 
wp_localize_script('myscript', 'ajaxobj', array('ajaxurl' => admin_url().'admin-ajax.php')); 
wp_enqueue_script('myscript'); 

script.js

$(function(){ 
    $('button').click(function(){ 

    var admin_url = ajaxobj.ajaxurl; 

    $.ajax({ 
     type:'POST', 
     data: {action: 'mail_func', name: 'danish'}, 
     url: admin_url 
    }).done(function(response){ 
     $('button').html('Thank you'); 
    }) 
}) 
}) 

Und PHP (functions.php)

add_action('wp_ajax_mail_func', 'mail_func_callback'); 
add_action('wp_ajax_nopriv_mail_func', 'mail_func_callback'); 

function mail_func_callback(){ 
    $Name= $_POST['name']; //danish 
    wp_mail($to, $subject, $message, $headers, $attachments); 
    die(); 
} 
+0

@ Александр-Рейдзан Ich habe habe meine Antwort bearbeitet, die die Ajax URL dynamisch bekommt. Bitte prüfe. – danish

+1

Insgesamt eine gute Antwort, aber ich würde vorschlagen, ['wp_mail()'] (https://developer.wordpress.org/reference/functions/wp_mail/) anstelle von 'mail()' zu verwenden, um alle Vorteile von WordPress zu nutzen . Edit: Ich weiß, dass der 'mail()' gegenüber 'wp_mail()' Aspekt nicht wirklich Teil der Frage ist, aber zukünftige Benutzer werden wahrscheinlich die Antwort kopieren, ohne zu viel nachzudenken. –

+1

@Krik Absolut. Wird die Antwort sofort bearbeiten. – danish

Verwandte Themen