Visualizzazione risultati 1 fino 7 di 7

Discussione: inviare the_title() in una mail tramite form html/php

  1. #1
    legioiedigio non  connesso Neofita
    Data registrazione
    13-11-2014
    Messaggi
    5

    Predefinito inviare the_title() in una mail tramite form html/php

    Il mio problema questo: ho un form su un sito wordpress i cui dati vengono inviati per email, funziona tutto bene, ma vorrei includere the_title() o ancor meglio il titolo di un singolo portfolio nel testo dell'email o come oggetto.. Questo il form:


    Codice:
    /**************************************
    		Contact Form
    **************************************/
    if ( ! function_exists( 'be_contact_form' ) ) {
    	function be_contact_form($atts,$content) {
    		extract( shortcode_atts( array (
    			'input_bg_color' => '',
    			'input_color' => '',
    		    'input_border_color' => '',
    		    'button_bg_color' => '',
    		    'button_color' => ''
    	    ), $atts ) );
    		$output = '';
    		$styles = $button_styles = 'style="';
    		if( isset( $input_bg_color ) && !empty( $input_bg_color) ) {
    			$styles .= 'background-color: '.$input_bg_color.';';
    		}
    		if( isset( $input_color ) && !empty( $input_color) ) {
    			$styles .= 'color: '.$input_color.';';
    		}
    		if( isset( $input_border_color ) && !empty( $input_border_color) ) {
    			$styles .= 'border-color: '.$input_border_color.';';
    		}
    		if( isset( $button_bg_color ) && !empty( $button_bg_color) ) {
    			$button_styles .= 'background-color: '.$button_bg_color.' !important;';
    		}
    		if( isset( $button_color ) && !empty( $button_color) ) {
    			$button_styles .= 'color: '.$button_color.' !important;';
    		}
    		$styles .= '"';
    		$button_styles .= '"';
    		$output .= '<div class="contact_form contact_form_module">
    						<form method="post" class="contact">
                            <table>
                            	<tr>
                                	<td>
    							<fieldset class="contact_fieldset">
    								<input type="text" name="contact_name" class="txt autoclear" placeholder="'.__('*Nome e Cognome:','be-themes').'" '.$styles.' />
    							</fieldset></td>
                                <td>
    							<fieldset class="contact_fieldset">
    								<input type="text" name="contact_email" class="txt autoclear" placeholder="'.__('*Email:','be-themes').'" '.$styles.' />
    							</fieldset></td></tr>
                                <tr>
                                	<td>
    							<fieldset class="contact_fieldset">
    								<input type="text" name="contact_tel" class="txt autoclear" placeholder="'.__('Telefono:','be-themes').'" '.$styles.' />
    							</fieldset></td>
                                <td>
                                <fieldset class="contact_address">
    								<input type="text" name="contact_subject" class="txt autoclear" placeholder="'.__('Indirizzo:','be-themes').'" '.$styles.' />
    							</fieldset></td></tr>
                                <tr>
                                	<td colspan="2">
    							<fieldset class="contact_fieldset">
    								<input style="width:99%;" type="text" name="contact_comment" class="txt autoclear" placeholder="'.__('*Richiesta:','be-themes').'" '.$styles.' />
    							</fieldset></td></tr>
                                <tr>
    							<td colspan="2">
                                <fieldset class="contact_fieldset">
    								<input style="min-width:30px;" checked="checked" id="checkbox" type="checkbox" name="checkbox" value="yes" />
                                <label for="checkbox">Si, acconsento al trattamento dei miei dati personali secondo l&rsquo;<a id="linkprivacy" href="http://www.silviaalessandri.it/informativa-privacy/">informativa sulla Privacy</a></label>
    							</fieldset></td></tr>
    							<tr>
                                	<td colspan="2" style="text-align:center;">
    							<fieldset class="contact_fieldset submit-fieldset">
    								<input style="min-width: 150px;border: 1px solid #000;float: right;color: #000;font-weight: bold;font-size: 15px;}" type="submit" name="contact_submit" value="'.__('Invio','be-themes').'" class="contact_submit" '.$button_styles.' />
    								<div class="contact_loader"></div>
    							</fieldset>
    							</td></tr>
    							<div class="contact_status be-notification"></div>
    							</table>
                            </form>
    					</div>';
    		return $output; 
    	}
    	add_shortcode('contact_form','be_contact_form');
    }


    E questo il controllo:
    Codice:
    /* ---------------------------------------------  */
    // Function for processing contact form submission
    /* ---------------------------------------------  */
    add_action( 'wp_ajax_nopriv_contact_authentication', 'be_themes_contact_authentication' );
    add_action( 'wp_ajax_contact_authentication', 'be_themes_contact_authentication' );
    function be_themes_contact_authentication() {
    	global $be_themes_data;
    	extract($_POST);
    	if(empty($contact_name) || empty($contact_email) || empty($contact_comment) || empty($contact_subject) ) {
    		$result['status']="error";
    		$result['data']= __('Attenzione, tutti i campi sono obbligatori','be-themes');
    	}
    	else if(!preg_match ('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/', $contact_email)) {
    		$result['status']="error";
    		$result['data']=__('Inserire un indirizzo email valido','be-themes');
    	}
    	else if(!empty($contact_name) && !empty($contact_email) && !empty($contact_comment) && !empty($contact_subject) ) {
    		if ( !empty( $be_themes_data['mail_id'] ) ) {
    			$to = $be_themes_data['mail_id'];
    		} else {
    			$to = get_option('admin_email');
    		}
    		$message= "Questa email ti  stata inviata da " . $_POST['contact_name'] . ", " . $_POST['contact_subject'] . " " . $_POST['contact_tel'] . ". MESSAGGIO: " . $_POST['contact_comment'];		
    		$subject= $contact_name;
    		$from = $contact_email;
    		$headers = "From:" . $from;
    		mail($to, $subject, $message, $headers);
    		$result['status']="success";
    		$result['data']=__('Il tuo messaggio  stato inviato con successo!
    		 Ti ricontatteremo al pi presto.','be-themes');
    	}
    	header('Content-type: application/json');
    	echo json_encode($result);
    	die();
    }
    Qualcuno pu aiutarmi? grazie dell'attenzione :)

  2. #2
    legioiedigio non  connesso Neofita
    Data registrazione
    13-11-2014
    Messaggi
    5

    Predefinito

    se ad esempio cambio
    $subject= $contact_name;
    con
    $subject= the_title();
    oppure
    $subject= get_the_title();

    mi restituisce l'oggetto della mail vuoto...

  3. #3
    L'avatar di miki92
    miki92 non  connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,218

    Predefinito

    Il form credo che si trovi in una pagina "dedicata" e non sotto ogni articolo interessato giusto?
    Perch se cos fosse la funzione get_the_title() (che tra le due postate quella corretta per il tuo scopo) trovandosi in una pagina non mostra il titolo dell'articolo.
    Apprezzi l'aiuto? Offrimi un caff!

  4. #4
    legioiedigio non  connesso Neofita
    Data registrazione
    13-11-2014
    Messaggi
    5

    Predefinito

    Ciao e grazie della risposta... praticamente ho un unico contact form, che viene richiamato dinamicamente all'interno delle pagine.. mi serve che nella mail che arriva all'admin ci sia come oggetto il titolo della pagina in cui si trova il form...

  5. #5
    L'avatar di miki92
    miki92 non  connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,218

    Predefinito

    Nelle pagine viene incluso il form ma non la pagina PHP. Quella resta indipendente giusto? In questo caso l'errore ovvio.

    Fai cos. Nel form html (quindi nel primo codice) nascondici questo:

    Codice PHP:
    <input type="hidden" name="titolo_articolo" value="<?php echo get_the_title(); ?>">
    E cambia questo codice:

    Codice PHP:
    $subject$contact_name;
            
    $from $contact_email;
            
    $headers "From:" $from;
            
    mail($to$subject$message$headers);
            
    $result['status']="success"
    Con questo:

    Codice PHP:
    $subjecthtmlspecialchars($_POST['titolo_articolo']);
            
    $from $contact_email;
            
    $headers "From: {$contact_name} <" $contact_email.">";
            
    mail($to$subject$message$headers);
            
    $result['status']="success"
    Apprezzi l'aiuto? Offrimi un caff!

  6. #6
    legioiedigio non  connesso Neofita
    Data registrazione
    13-11-2014
    Messaggi
    5

    Predefinito

    Ciao, ho provato a fare come hai detto tu ma nell'oggetto della mail mi arriva questo: &lt;?php echo get_the_title(); ?&gt;
    ho provato a riprendere il linguaggio php non con <?php ?> ma bens con le virgolette, scrivendo questo: <input type="hidden" name="titolo_articolo" value=" ' echo get_the_title();' " />
    ma dreamweaver mi dice che c' un errore di sintassi e la pagina non si carica pi ma rimane bianca..
    Ultima modifica di legioiedigio : 05-12-2014 alle ore 19.03.40

  7. #7
    legioiedigio non  connesso Neofita
    Data registrazione
    13-11-2014
    Messaggi
    5

    Predefinito

    ciao di nuovo ho risolto!! mi bastato scrivere cos:
    <input type="hidden" name="titolo_articolo" value=" '. get_the_title($ID).' " />

    Grazie mille!! :D

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •