Gravity Forms email melléklet a felhasználónak

Sziasztok!











Elakadtam a Gravity Forms-szal.











Szerintem hiányzik a Gravity Forms-ból egy fontos funkció, a melléklet csatolása a kimenő emaileknél.











Elméletileg van erre megoldás, amit le is írnak a weboldalukon, de azokat nem egyeszerű földi halandóknak szánták, hanem annak, aki ért a PHP, vagy HTML programozáshoz.











Én szeretek barkácsolgatni, de ez kifogott rajtam.











El tudja valaki magyarázni, hogy akkor most mi is a teendő? :slight_smile:











Itt a használati utasítás:











http://www.gravityhe…ion_attachments















Quote:

Gform user notification attachments





Description





This filter can be used to add attachments to the user notification email.


Usage











1 <?php


2 add_filter("gform_user_notification_attachments", "add_attachment", 10, 3);


3 ?>


You can also target a specific form by adding the form id after the hook name.








1 <?php


2 //This filter declaration targets a form whose id is 6


3 add_filter("gform_user_notification_attachments_6", "add_attachment", 10, 3);


4 ?>


Parameters





$attachments (string/array) The attachments to be filtered. This parameter will be passed to the filter as a blank string. To add attachments, set it to a string (containing the full file path) for one attachment or an array of strings (file paths) for multiple attachments.


$entry (Entry Object) Current entry object.


$form (Form Object) Current form object.


Examples





This example attaches all file upload fields in the form to the user notification email.








01 <?php


02 add_filter("gform_user_notification_attachments", "add_attachment", 10, 3);


03 function add_attachment($attachments, $lead, $form){


04 $fileupload_fields = GFCommon::get_fields_by_type($form, array("fileupload"));


05


06 if(!is_array($fileupload_fields))


07 return $attachments;


08


09 $attachments = array();


10 $upload_root = RGFormsModel::get_upload_root();


11 foreach($fileupload_fields as $field){


12 $url = $lead[$field["id"]];


13 $attachment = preg_replace('|^(.*?)/gravity_forms/|', $upload_root, $url);


14 if($attachment){


15 $attachments[] = $attachment;


16 }


17 }


18


19 return $attachments;


20 }


21 ?>


Placement





This code should be placed in the functions.php file of your active theme.


Source Code





This filter is located in common.php


_______________________________________________________________











A leírás alapján nagyon egyszerűnek tűnik, de mégsem tudom megfejteni. :)))

Esetleg tud valaki hasonló form plugin-t, amivel megoldható a melléklet küldése a felhasználónak?











Tuti van ilyen. Csak én nem találom. :slight_smile:

Senkinek nincs ötlete? :frowning:

Én ezt minden hack nélkül úgy oldottam meg, hogy bemásoltam egy linket, ahonnan le tudja tölteni. : )

Most nézem a kódot, amit írtál. Ez más. Jól értem, hogy te szeretnél küldeni levelet csatolmánnyal annak, aki kitöltötte az űrlapot?

sok-sok óra eredménytelen próbálkozás után, pont most jutottam oda, hogy én is fogom megcsinálni.











:slight_smile:











Csak, hát sokkal jobb (profibb) lenne, ha mellékletként megkapná az ember.

Igen

igen, annak szeretnék emailt küldeni, melléklettel, aki kitöltötte az űrlapot.

Laci, ahogy nézem te nagy wordpress fan, és guru vagy egyben.











Ha TE nem tudsz erre megoldást, akkor én már nem is keresgélek tovább. :slight_smile:

Én nem mondtam, hogy nincs rá megoldás. NEm is kerestem, mert egyszerűbbnek tűnt linkkel kiküldeni! :slight_smile:











Szétnézek a témában, engem is érdekel. Sok helyen használom ezt.

Ejj de nyakatekert egy ügy ez. Nem volt most időm szebb megoldásra, így a példa kódot írtam át.











Tehát:











Csinálsz egy formot, megnézed az ID-ját. ( minden form előtt ott van, az első oszlopban )











Majd, ha már tudod az ID-t , akkor ezt a kódot bemásolod a sablonod functions.php-jába:















<?php



add_filter(“gform_user_notification_attachments_64”, “add_attachment”, 10, 3);



function add_attachment($attachments, $lead, $form){



$fileupload_fields = GFCommon::get_fields_by_type($form, array(“hidden”));







if(!is_array($fileupload_fields))



return $attachments;



$attachments = array();



$upload_root = RGFormsModel::get_upload_root();



foreach($fileupload_fields as $field){







$url = $lead[$field[“id”]];



$attachment = preg_replace(’|^(.?)/gravity_forms/|’, $upload_root, $url);



if($attachment){



$attachments[] = $attachment;



}



}



return $attachments;



}



?>











Az első sorban lévő gform_user_notification_attachments_64 részt cseréled az adott ID-ra. Csak simán átírod a 64-et a végén a te formod ID-jára.







Ezek után feltöltöd a fájlt/fájlokat a gravity_forms mappába így:







oldaladcime.hu/wp-content/gravity_forms/21-349480f2e8d03a821a18e6c59b042362/2012/07/kikuldendo.zip



oldaladcime.hu/wp-content/gravity_forms/21-349480f2e8d03a821a18e6c59b042362/2012/07/kikuldendo_2.zip







Ezek után csinálsz a form-ba hidden mezőket, adsz neki bármilyen nevet ( amit szeretnél, lényegtelen ) és az Advanced fülön megadod az elküldendő fájl teljes url címét ( http://… ahogy fent írtam ) FONTOS! gravity_forms mappában legyen a fenti módon.







That’s all folks! :slight_smile:





<?php





add_filter(“gform_user_notification_attachments_64”, “add_attachment”, 10, 3);





function add_attachment($attachments, $lead, $form){





$fileupload_fields = GFCommon::get_fields_by_type($form, array(“hidden”));











if(!is_array($fileupload_fields))





return $attachments;





$attachments = array();





$upload_root = RGFormsModel::get_upload_root();





foreach($fileupload_fields as $field){











$url = $lead[$field[“id”]];





$attachment = preg_replace(’|^(.
?)/gravity_forms/|’, $upload_root, $url);





if($attachment){





$attachments[] = $attachment;





}





}





return $attachments;





}





?>

















Az első sorban lévő gform_user_notification_attachments_64 részt cseréled az adott ID-ra. Csak simán átírod a 64-et a végén a te formod ID-jára.











Ezek után feltöltöd a fájlt/fájlokat a gravity_forms mappába így:











oldaladcime.hu/wp-content/gravity_forms/21-349480f2e8d03a821a18e6c59b042362/2012/07/kikuldendo.zip





oldaladcime.hu/wp-content/gravity_forms/21-349480f2e8d03a821a18e6c59b042362/2012/07/kikuldendo_2.zip











Ezek után csinálsz a form-ba hidden mezőket, adsz neki bármilyen nevet ( amit szeretnél, lényegtelen ) és az Advanced fülön megadod az elküldendő fájl teljes url címét ( http://… ahogy fent írtam ) FONTOS! gravity_forms mappában legyen a fenti módon.











That’s all folks! :slight_smile:

Amint beillesztem a kódot a sablonom functions.php-jába, a mentés után eltűnik minden.





Nem jön be se az oldal, se az admin felület.











Ha kitörlöm a beillesztett részt, akkor visszajön minden.











Mi lehet a hiba?

Rosszul másolod be, vagy nem tudom! :slight_smile:











Csatold a fájlt, megnézem.

<?php



/**


  • @package WordPress


  • @subpackage U-Design



    /







    // Create Text Domain For the Themes’ Translations



    if (function_exists(‘load_theme_textdomain’)) {



    load_theme_textdomain(‘udesign’, get_template_directory().’/locale’);



    }



    <?php



    add_filter(“gform_user_notification_attachments_64”, “add_attachment”, 10, 3);



    function add_attachment($attachments, $lead, $form){



    $fileupload_fields = GFCommon::get_fields_by_type($form, array(“hidden”));



    if(!is_array($fileupload_fields))



    return $attachments;



    $attachments = array();



    $upload_root = RGFormsModel::get_upload_root();



    foreach($fileupload_fields as $field){



    $url = $lead[$field[“id”]];



    $attachment = preg_replace(’|^(.
    ?)/gravity_forms/|’, $upload_root, $url);



    if($attachment){



    $attachments[] = $attachment;



    }



    }



    return $attachments;



    }



    ?>



    // load styles



    function my_init_styles() {



    if( !is_admin() ){



    // get the desired color scheme



    global $udesign_options, $style;



    // Format the Google WebFonts as string



    if( $udesign_options[‘google_web_fonts_assoc’] ) {



    $google_fonts_string = implode( ‘|’, array_unique($udesign_options[‘google_web_fonts_assoc’]) );



    if( $google_fonts_string )



    printf(“rn”, str_replace(’ ', ‘+’, $google_fonts_string));



    }



    wp_enqueue_style(‘reset’, get_bloginfo(‘template_url’) . ‘/styles/common-css/reset.css’, false, ‘1.0’, ‘screen’);



    wp_enqueue_style(‘text’, get_bloginfo(‘template_url’) . “/styles/{$style}/css/text.css”, false, ‘1.0’, ‘screen’);



    wp_enqueue_style(‘grid-960’, get_bloginfo(‘template_url’) . ‘/styles/common-css/960.css’, false, ‘1.0’, ‘screen’);



    wp_enqueue_style(‘superfish_menu’, get_bloginfo(‘template_url’) . ‘/scripts/superfish-1.4.8/css/superfish.css’, false, ‘1.0’, ‘screen’);



    if ( $udesign_options[‘enable_prettyPhoto_script’] && !WP_PRETTY_PHOTO_PLUGIN_ACTIVE ) {



    wp_enqueue_style(‘pretty_photo’, get_bloginfo(‘template_url’) . ‘/scripts/prettyPhoto/css/prettyPhoto.css’, false, ‘3.1.3’, ‘screen’);



    }



    wp_enqueue_style(‘style’, get_bloginfo(‘template_url’) . “/styles/{$style}/css/style.css”, false, ‘1.0’, ‘screen’);



    wp_enqueue_style(‘custom-style’, get_bloginfo(‘template_url’) . ‘/styles/custom/custom_style.php’, false, ‘’, ‘screen’);



    if ( $udesign_options[‘enable_default_style_css’] ) {



    wp_enqueue_style(‘style-orig’, get_stylesheet_directory_uri() . “/style.css”, false, ‘1.0’, ‘screen’);



    }



    }



    }



    add_action(‘wp_print_styles’, ‘my_init_styles’);



    // load scripts



    function my_init_scripts() {



    if( !is_admin() ){



    global $udesign_options, $current_slider;







    // Load jQuery



    if( WP_PRETTY_PHOTO_PLUGIN_ACTIVE ) { // WP-prettyPhoto requires jquery 1.4.2



    wp_deregister_script( ‘jquery’ );



    wp_register_script( ‘jquery’, get_bloginfo(‘template_url’)."/scripts/jquery-1.4.2.min.js", false, ‘’ );



    }



    wp_enqueue_script(‘jquery’);









    <?php





    /**




  • @package WordPress




  • @subpackage U-Design





    /











    // Create Text Domain For the Themes’ Translations





    if (function_exists(‘load_theme_textdomain’)) {





    load_theme_textdomain(‘udesign’, get_template_directory().’/locale’);





    }





    <?php





    add_filter(“gform_user_notification_attachments_64”, “add_attachment”, 10, 3);





    function add_attachment($attachments, $lead, $form){





    $fileupload_fields = GFCommon::get_fields_by_type($form, array(“hidden”));





    if(!is_array($fileupload_fields))





    return $attachments;





    $attachments = array();





    $upload_root = RGFormsModel::get_upload_root();





    foreach($fileupload_fields as $field){





    $url = $lead[$field[“id”]];





    $attachment = preg_replace(’|^(.
    ?)/gravity_forms/|’, $upload_root, $url);





    if($attachment){





    $attachments[] = $attachment;





    }





    }





    return $attachments;





    }





    ?>





    // load styles





    function my_init_styles() {





    if( !is_admin() ){





    // get the desired color scheme





    global $udesign_options, $style;





    // Format the Google WebFonts as string





    if( $udesign_options[‘google_web_fonts_assoc’] ) {





    $google_fonts_string = implode( ‘|’, array_unique($udesign_options[‘google_web_fonts_assoc’]) );





    if( $google_fonts_string )





    printf(“rn”, str_replace(’ ', ‘+’, $google_fonts_string));





    }





    wp_enqueue_style(‘reset’, get_bloginfo(‘template_url’) . ‘/styles/common-css/reset.css’, false, ‘1.0’, ‘screen’);





    wp_enqueue_style(‘text’, get_bloginfo(‘template_url’) . “/styles/{$style}/css/text.css”, false, ‘1.0’, ‘screen’);





    wp_enqueue_style(‘grid-960’, get_bloginfo(‘template_url’) . ‘/styles/common-css/960.css’, false, ‘1.0’, ‘screen’);





    wp_enqueue_style(‘superfish_menu’, get_bloginfo(‘template_url’) . ‘/scripts/superfish-1.4.8/css/superfish.css’, false, ‘1.0’, ‘screen’);





    if ( $udesign_options[‘enable_prettyPhoto_script’] && !WP_PRETTY_PHOTO_PLUGIN_ACTIVE ) {





    wp_enqueue_style(‘pretty_photo’, get_bloginfo(‘template_url’) . ‘/scripts/prettyPhoto/css/prettyPhoto.css’, false, ‘3.1.3’, ‘screen’);





    }





    wp_enqueue_style(‘style’, get_bloginfo(‘template_url’) . “/styles/{$style}/css/style.css”, false, ‘1.0’, ‘screen’);





    wp_enqueue_style(‘custom-style’, get_bloginfo(‘template_url’) . ‘/styles/custom/custom_style.php’, false, ‘’, ‘screen’);





    if ( $udesign_options[‘enable_default_style_css’] ) {





    wp_enqueue_style(‘style-orig’, get_stylesheet_directory_uri() . “/style.css”, false, ‘1.0’, ‘screen’);





    }





    }





    }





    add_action(‘wp_print_styles’, ‘my_init_styles’);





    // load scripts





    function my_init_scripts() {





    if( !is_admin() ){





    global $udesign_options, $current_slider;











    // Load jQuery





    if( WP_PRETTY_PHOTO_PLUGIN_ACTIVE ) { // WP-prettyPhoto requires jquery 1.4.2





    wp_deregister_script( ‘jquery’ );





    wp_register_script( ‘jquery’, get_bloginfo(‘template_url’)."/scripts/jquery-1.4.2.min.js", false, ‘’ );





    }





    wp_enqueue_script(‘jquery’);





persze ez a fucntion.php fájnak csak egy kis része, de ide illesztettem be.

Közben próbálkoztam a második lépéssel is, de ott is akadályokba ütköztem:











“Ezek után feltöltöd a fájlt/fájlokat a gravity_forms mappába így:











oldaladcime.hu/wp-content/gravity_forms/21-349480f2e8d03a821a18e6c59b042362/2012/07/kikuldendo.zip





oldaladcime.hu/wp-content/gravity_forms/21-349480f2e8d03a821a18e6c59b042362/2012/07/kikuldendo_2.zip”











a “wp-content” mappába csináljak egy “gravity_forms” mappát?











Mert ugye alapból nem oda tölti fel nekem a fájlokat.











Elnézést, ha nagyon amatőr kérdéseim vannak! :slight_smile:

Így megfelelő?











oldaladcime.hu/wp-content/gravity_forms/kikuldendo_2.zip"

Dehát leírtam hogyan:











/21-349480f2e8d03a821a18e6c59b042362/2012/07/











Felmész FTP-n és létrehozod ezt a 3 mappát.

Igazán röstellem magam, hogy így bénázok. :slight_smile:











Köszönöm a türelmedet!











Gondoltam erre is, hogy talán így kell… :slight_smile:

















Annak az oka mi lehet, hogy miután a kódot beillesztem elszáll az oldal?











Amit feljebb írtam.

Most kipróbáltam egy másik weboldalnál is, de ott is ugyan az az eredmény lett.





Azaz, ha beillesztem ezt a kódot a sablonom funcitons.php fájljába:











<?php



add_filter(“gform_user_notification_attachments_1”, “add_attachment”, 10, 3);



function add_attachment($attachments, $lead, $form){



$fileupload_fields = GFCommon::get_fields_by_type($form, array(“hidden”));







if(!is_array($fileupload_fields))



return $attachments;



$attachments = array();



$upload_root = RGFormsModel::get_upload_root();



foreach($fileupload_fields as $field){







$url = $lead[$field[“id”]];



$attachment = preg_replace(’|^(.?)/gravity_forms/|’, $upload_root, $url);



if($attachment){



$attachments[] = $attachment;



}



}



return $attachments;



}



?>







,akkor utána “eltűnik” minden, mindaddig, amíg ftp-n fel nem megyek, és a function.php fájlból ki nem szedem a hozzáadott kódot.







Mi a túrót bénázok el? :slight_smile:<?php





add_filter(“gform_user_notification_attachments_1”, “add_attachment”, 10, 3);





function add_attachment($attachments, $lead, $form){





$fileupload_fields = GFCommon::get_fields_by_type($form, array(“hidden”));











if(!is_array($fileupload_fields))





return $attachments;





$attachments = array();





$upload_root = RGFormsModel::get_upload_root();





foreach($fileupload_fields as $field){











$url = $lead[$field[“id”]];





$attachment = preg_replace(’|^(.
?)/gravity_forms/|’, $upload_root, $url);





if($attachment){





$attachments[] = $attachment;





}





}





return $attachments;





}





?>











,akkor utána “eltűnik” minden, mindaddig, amíg ftp-n fel nem megyek, és a function.php fájlból ki nem szedem a hozzáadott kódot.











Mi a túrót bénázok el? :slight_smile: