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)}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();