Richiamare funzione invio mail php con Ajax

  • Avatar di Sconosciuto

    Ciao a tutti. Sto diventando pazzo per cercare di risolvere un problema. In una pagina in cui sono mostrate le righe di una query mysql ho aggiunto un pulsante su ogni riga. Cliccando su quel pulsante dovrebbe chiedere conferma ed eventualmente inviare una mail con alcuni dati della riga. Per ora sto cercando solo di far partire una mail predefinita, ma già non ci riesco.
    Ho aggiunto la action in functions.php, ma non va nulla, si aprono solo le finestre di conferma e alert. Posto il codice della pagina in cui c’è anche il codice javascript e il codice che ho aggiunto a functions.php

    <?php
    if(isset($_POST[“update-codes”])){ //se il bottone viene cliccato
    $servername = “………”;
    $username = “……..”;
    $password = “…….”;
    $database = “………”;
    // Create connection
    $conn = new mysqli($servername, $username, $password, $database);

    // Check connection
    if ($conn->connect_error) {
    die(“Connection failed: ” . $conn->connect_error);
    }

    $user_ID = get_current_user_id();

    $sql = “SELECT wpsb_posts.post_title,
    wpsb_postmeta.meta_value
    FROM wpsb_postmeta
    INNER JOIN wpsb_posts
    ON wpsb_posts.post_author = $user_ID
    AND wpsb_posts.post_type = ‘dgv-upload’
    AND wpsb_postmeta.post_id = wpsb_posts.ID
    WHERE 1=1
    AND wpsb_postmeta.meta_key = ‘dgv_response'”;
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
    echo $row[“post_title”]. ” – “;
    echo $row[“meta_value”]. ” “;
    echo “<table class=’delete’><form method=’post’ action=’emaildelete.php’><input type=’button’ onclick=’videocode(this.id)’ id=’$row[post_title] – $row[meta_value]’ name=’invia’ value=’delete’></form></table><br>”;

    }

    } else {
    echo “No video available”;
    }
    $conn->close();
    }

    ?>
    <form method=”POST” action=””>
    <input class=”updatecodes” type=”submit” name=”update-codes” value=”Update codes” />
    </form>

    <script type=”text/javascript”>

    function videocode(clicked) {
    if (confirm(“Do you really want to delete the video: “+clicked+” ?”)) {
    alert(“Request sent. The video “+clicked+” will be deleted within 24 hours.”);
    function send_email(){
    $.ajax({
    type : “post”,
    dataType : “json”,
    url : “/wp-admin/admin-ajax.php”,
    data : {
    action: “send_email()”, post_id : “+clicked+”,},

    })
    };

    send_email();
    }
    else alert(“No video will be deleted.”);
    }

    </script>

    ——-
    questo invece il codice che ho aggiunto in functions.php:
    ——-

    //aggiunta azioni
    add_action(‘wp_ajax_send_email’, ‘send_email’);
    add_action(‘wp_ajax_nopriv_send_email’, ‘send_email’);

    ///// funzione php invio mail
    function send_email(){

    $to = ‘(e-mail visibile solo per moderatori e personale)’;
    $subject = “Richiesta cancellazione video – $video”;
    $body = “L’Utente ID=$user ha richiesto di cancellare il video $title – $video”;
    $headers = array(‘Content-Type: text/html; charset=UTF-8’);

    wp_mail( $to, $subject, $body, $headers );

    die();

    }

    Sono davvero disperato perché non riesco a capire cosa sbaglio.

    Grazie a chiunque voglia aiutarmi.

    Ho bisogno d'aiuto per il blog (visibile solo agli utenti che hanno effettuato l'accesso).

  • L'argomento ‘Richiamare funzione invio mail php con Ajax’ è chiuso a nuove risposte.