Form Image to Email Attachment issue
-
I use an Uploads-to-Email Attachment snippet, but the Drop Zone files are not being picked up by the snippet.
I tried Drop Zone via URL, Name, Absolute, but none of them are being picked up.
Could you maybe see why that is happening?
Here is the code snippet I use/** * Class Elementor_Form_Email_Attachments * * Send Elementor Form upload field as attachments to email */ class Elementor_Form_Email_Attachments { // Set to true if you want the files to be removed from // the server after they are sent by email const DELETE_ATTACHMENT_FROM_SERVER = false; public $attachments_array = []; public function __construct() { add_action( 'elementor_pro/forms/process', [ $this, 'init_form_email_attachments' ], 11, 2 ); } /** * @param \ElementorPro\Modules\Forms\Classes\Form_Record $record * @param \ElementorPro\Modules\Forms\Classes\Ajax_Handler $ajax_handler */ public function init_form_email_attachments( $record, $ajax_handler ) { // check if we have attachments $files = $record->get( 'files' ); if ( empty( $files ) ) { return; } // Store attachment in local var foreach ( $files as $id => $files_array ) { $this->attachments_array[] = $files_array['path'][0]; } // if local var has attachments setup filter hook if ( 0 < count( $this->attachments_array ) ) { add_filter( 'wp_mail', [ $this, 'wp_mail' ] ); add_action( 'elementor_pro/forms/new_record', [ $this, 'remove_wp_mail_filter' ], 5 ); } } public function remove_wp_mail_filter() { if ( self::DELETE_ATTACHMENT_FROM_SERVER ) { foreach ( $this->attachments_array as $uploaded_file ) { unlink( $uploaded_file ); } } $this->attachments_array = []; remove_filter( 'wp_mail', [ $this, 'wp_mail' ] ); } public function wp_mail( $args ) { $args['attachments'] = $this->attachments_array; return $args; } } new Elementor_Form_Email_Attachments();
- The topic ‘Form Image to Email Attachment issue’ is closed to new replies.