%PDF- %PDF-
Direktori : /home/dopla/www/wp-content/plugins/http-headers/ |
Current File : /home/dopla/www/wp-content/plugins/http-headers/cp-main-class.inc.php |
<?php class CP_ContactFormToEmail extends CP_CFTEMAIL_BaseClass { private $menu_parameter = 'cp_contactformtoemail'; private $prefix = 'cp_contactformtoemail'; private $plugin_name = 'Contact Form to Email'; private $plugin_URL = 'https://form2email.dwbooster.com'; public $table_items = "cftemail_forms"; public $table_messages = "cftemail_messages"; public $print_counter = 1; private $include_user_data_csv = false; public $shorttag = 'CONTACT_FORM_TO_EMAIL'; protected $tags_allowed = array( 'a' => array( 'href' => array(), 'title' => array(), 'style' => array(), 'class' => array(), ), 'br' => array(), 'em' => array(), 'b' => array(), 'strong' => array(), 'img' => array( 'src' => array(), 'width' => array(), 'height' => array(), 'border' => array(), 'style' => array(), 'class' => array(), ), ); function _install() { global $wpdb; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $charset_collate = $wpdb->get_charset_collate(); $results = $wpdb->get_results("SHOW TABLES LIKE '".$wpdb->prefix.$this->table_messages."'"); if (!count($results)) { $sql = "CREATE TABLE ".$wpdb->prefix.$this->table_messages." ( id int(10) NOT NULL AUTO_INCREMENT, formid INT NOT NULL, time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, ipaddr VARCHAR(250) DEFAULT '' NOT NULL, notifyto VARCHAR(250) DEFAULT '' NOT NULL, data mediumtext, posted_data mediumtext, UNIQUE KEY id (id) ) ".$charset_collate.";"; $wpdb->query($sql); } $results = $wpdb->get_results("SHOW TABLES LIKE '".$wpdb->prefix.$this->table_items."'"); if (!count($results)) { $sql = "CREATE TABLE ".$wpdb->prefix.$this->table_items." ( id mediumint(9) NOT NULL AUTO_INCREMENT, form_name VARCHAR(250) DEFAULT '' NOT NULL, form_structure mediumtext, fp_from_email VARCHAR(250) DEFAULT '' NOT NULL, fp_destination_emails text, fp_subject text, fp_inc_additional_info VARCHAR(20) DEFAULT '' NOT NULL, fp_return_page VARCHAR(250) DEFAULT '' NOT NULL, fp_message text, fp_emailformat VARCHAR(20) DEFAULT '' NOT NULL, cu_enable_copy_to_user VARCHAR(10) DEFAULT '' NOT NULL, cu_user_email_field VARCHAR(250) DEFAULT '' NOT NULL, cu_subject text, cu_message text, cu_emailformat VARCHAR(20) DEFAULT '' NOT NULL, fp_emailfrommethod VARCHAR(20) DEFAULT '' NOT NULL, fp_enableemail VARCHAR(10) DEFAULT '' NOT NULL, onsubmitaction VARCHAR(10) DEFAULT '' NOT NULL, fp_return_message text, vs_use_validation text, vs_text_is_required text, vs_text_is_email text, vs_text_datemmddyyyy text, vs_text_dateddmmyyyy text, vs_text_number text, vs_text_digits text, vs_text_max text, vs_text_min text, vs_text_page text, vs_text_of text, vs_text_submitbtn text, vs_text_previousbtn text, vs_text_nextbtn text, rep_enable VARCHAR(10) DEFAULT '' NOT NULL, rep_days VARCHAR(10) DEFAULT '' NOT NULL, rep_hour VARCHAR(10) DEFAULT '' NOT NULL, rep_emails text, rep_subject text, rep_emailformat VARCHAR(10) DEFAULT '' NOT NULL, rep_message text, cv_enable_captcha VARCHAR(20) DEFAULT '' NOT NULL, cv_enable_captchaintelligent VARCHAR(20) DEFAULT '' NOT NULL, cv_width VARCHAR(20) DEFAULT '' NOT NULL, cv_height VARCHAR(20) DEFAULT '' NOT NULL, cv_chars VARCHAR(20) DEFAULT '' NOT NULL, cv_font VARCHAR(20) DEFAULT '' NOT NULL, cv_min_font_size VARCHAR(20) DEFAULT '' NOT NULL, cv_max_font_size VARCHAR(20) DEFAULT '' NOT NULL, cv_noise VARCHAR(20) DEFAULT '' NOT NULL, cv_noise_length VARCHAR(20) DEFAULT '' NOT NULL, cv_background VARCHAR(20) DEFAULT '' NOT NULL, cv_border VARCHAR(20) DEFAULT '' NOT NULL, cv_text_enter_valid_captcha text, UNIQUE KEY id (id) ) ".$charset_collate.";"; $wpdb->query($sql); } // insert initial data $count = $wpdb->get_var( "SELECT COUNT(id) FROM ".$wpdb->prefix.$this->table_items ); if (!$count) { $default_from = strtolower(get_the_author_meta('user_email', get_current_user_id())); $domain = str_replace('www.','', strtolower($_SERVER["HTTP_HOST"])); while (substr_count($domain,".") > 1) $domain = substr($domain, strpos($domain, ".")+1); $pos = strpos($default_from, $domain); if (substr_count($domain,".") == 1 && $pos === false) define('CP_CFEMAIL_DEFAULT_fp_from_email', 'admin@'.$domain ); else define('CP_CFEMAIL_DEFAULT_fp_from_email', $default_from ); define('CP_CFEMAIL_DEFAULT_fp_destination_emails', get_the_author_meta('user_email', get_current_user_id()) ); $wpdb->insert( $wpdb->prefix.$this->table_items, array( 'id' => 1, 'form_name' => 'Form 1', 'form_structure' => $this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure), 'fp_from_email' => $this->get_option('fp_from_email', CP_CFEMAIL_DEFAULT_fp_from_email), 'fp_destination_emails' => $this->get_option('fp_destination_emails', CP_CFEMAIL_DEFAULT_fp_destination_emails), 'fp_subject' => $this->get_option('fp_subject', CP_CFEMAIL_DEFAULT_fp_subject), 'fp_inc_additional_info' => $this->get_option('fp_inc_additional_info', CP_CFEMAIL_DEFAULT_fp_inc_additional_info), 'fp_return_page' => $this->get_option('fp_return_page', CP_CFEMAIL_DEFAULT_fp_return_page), 'fp_message' => $this->get_option('fp_message', CP_CFEMAIL_DEFAULT_fp_message), 'fp_emailformat' => $this->get_option('fp_emailformat', CP_CFEMAIL_DEFAULT_email_format), 'cu_enable_copy_to_user' => $this->get_option('cu_enable_copy_to_user', CP_CFEMAIL_DEFAULT_cu_enable_copy_to_user), 'cu_user_email_field' => $this->get_option('cu_user_email_field', CP_CFEMAIL_DEFAULT_cu_user_email_field), 'cu_subject' => $this->get_option('cu_subject', CP_CFEMAIL_DEFAULT_cu_subject), 'cu_message' => $this->get_option('cu_message', CP_CFEMAIL_DEFAULT_cu_message), 'cu_emailformat' => $this->get_option('cu_emailformat', CP_CFEMAIL_DEFAULT_email_format), 'fp_return_message' => 'Your message has been sent. Thank you!', 'onsubmitaction' => '3', 'fp_enableemail' => 'true', 'vs_use_validation' => $this->get_option('vs_use_validation', CP_CFEMAIL_DEFAULT_vs_use_validation), 'vs_text_is_required' => $this->get_option('vs_text_is_required', CP_CFEMAIL_DEFAULT_vs_text_is_required), 'vs_text_is_email' => $this->get_option('vs_text_is_email', CP_CFEMAIL_DEFAULT_vs_text_is_email), 'vs_text_datemmddyyyy' => $this->get_option('vs_text_datemmddyyyy', CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy), 'vs_text_dateddmmyyyy' => $this->get_option('vs_text_dateddmmyyyy', CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy), 'vs_text_number' => $this->get_option('vs_text_number', CP_CFEMAIL_DEFAULT_vs_text_number), 'vs_text_digits' => $this->get_option('vs_text_digits', CP_CFEMAIL_DEFAULT_vs_text_digits), 'vs_text_max' => $this->get_option('vs_text_max', CP_CFEMAIL_DEFAULT_vs_text_max), 'vs_text_min' => $this->get_option('vs_text_min', CP_CFEMAIL_DEFAULT_vs_text_min), 'vs_text_page' => $this->get_option('vs_text_page', 'Page'), 'vs_text_of' => $this->get_option('vs_text_of', 'of'), 'vs_text_submitbtn' => $this->get_option('vs_text_submitbtn', 'Submit'), 'vs_text_previousbtn' => $this->get_option('vs_text_previousbtn', 'Previous'), 'vs_text_nextbtn' => $this->get_option('vs_text_nextbtn', 'Next'), 'rep_enable' => $this->get_option('rep_enable', 'no'), 'rep_days' => $this->get_option('rep_days', '1'), 'rep_hour' => $this->get_option('rep_hour', '0'), 'rep_emails' => $this->get_option('rep_emails', ''), 'rep_subject' => $this->get_option('rep_subject', 'Submissions report...'), 'rep_emailformat' => $this->get_option('rep_emailformat', 'text'), 'rep_message' => $this->get_option('rep_message', 'Attached you will find the data with the form submissions.'), 'cv_enable_captcha' => $this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha), 'cv_enable_captchaintelligent' => $this->get_option('cv_enable_captchaintelligent', CP_CFEMAIL_DEFAULT_cv_enable_captchainvisible), 'cv_width' => $this->get_option('cv_width', CP_CFEMAIL_DEFAULT_cv_width), 'cv_height' => $this->get_option('cv_height', CP_CFEMAIL_DEFAULT_cv_height), 'cv_chars' => $this->get_option('cv_chars', CP_CFEMAIL_DEFAULT_cv_chars), 'cv_font' => $this->get_option('cv_font', CP_CFEMAIL_DEFAULT_cv_font), 'cv_min_font_size' => $this->get_option('cv_min_font_size', CP_CFEMAIL_DEFAULT_cv_min_font_size), 'cv_max_font_size' => $this->get_option('cv_max_font_size', CP_CFEMAIL_DEFAULT_cv_max_font_size), 'cv_noise' => $this->get_option('cv_noise', CP_CFEMAIL_DEFAULT_cv_noise), 'cv_noise_length' => $this->get_option('cv_noise_length', CP_CFEMAIL_DEFAULT_cv_noise_length), 'cv_background' => $this->get_option('cv_background', CP_CFEMAIL_DEFAULT_cv_background), 'cv_border' => $this->get_option('cv_border', CP_CFEMAIL_DEFAULT_cv_border), 'cv_text_enter_valid_captcha' => $this->get_option('cv_text_enter_valid_captcha', CP_CFEMAIL_DEFAULT_cv_text_enter_valid_captcha) ) ); } } public function plugins_loaded() { load_plugin_textdomain( 'contact-form-to-email', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); } /* Filter for placing the maps into the contents */ public function filter_content($atts) { global $wpdb; extract( shortcode_atts( array( 'id' => '', 'prefill' => '', ), $atts ) ); if ($id != '') $this->item = intval($id); ob_start(); $this->insert_public_item($prefill); $buffered_contents = ob_get_contents(); ob_end_clean(); return $buffered_contents; } function insert_public_item($prefill = '') { global $wpdb; $page_label = $this->get_option('vs_text_page', 'Page'); $page_label = ($page_label==''?'Page':$page_label); $of_label = $this->get_option('vs_text_of', 'of'); $of_label = ($of_label==''?'of':$of_label); $previous_label = $this->get_option('vs_text_previousbtn', 'Previous'); $previous_label = ($previous_label==''?'Previous':$previous_label); $next_label = $this->get_option('vs_text_nextbtn', 'Next'); $next_label = ($next_label==''?'Next':$next_label); if (CP_CFEMAIL_DEFER_SCRIPTS_LOADING) { wp_enqueue_style('cfte-stylepublic', plugins_url('css/stylepublic.css', __FILE__) ); wp_enqueue_style('cfte-stylecalendar', plugins_url('css/cupertino/jquery-ui-1.8.20.custom.css', __FILE__)); wp_enqueue_style('cfte-custompublicstyle', $this->get_site_url( false ).'?cp_cfte_resources=css'); wp_deregister_script($this->prefix.'_validate_script'); wp_register_script($this->prefix.'_validate_script', plugins_url('/js/jquery.validate.js', __FILE__)); wp_enqueue_script( $this->prefix.'_builder_script', plugins_url('/js/fbuilderf.jquery.js?nc=3', __FILE__),array("jquery","jquery-ui-core","jquery-ui-datepicker","jquery-ui-widget","jquery-ui-dialog","jquery-ui-position","jquery-ui-tooltip",$this->prefix."_validate_script"), false, true ); wp_enqueue_script( $this->prefix.'_customjs', $this->get_site_url( false ).'?cp_cfte_resources=customjs',array($this->prefix.'_builder_script')); wp_localize_script($this->prefix.'_builder_script', $this->prefix.'_fbuilder_config'.('_'.$this->print_counter), array('obj' => '{"pub":true,"identifier":"'.('_'.$this->print_counter).'","messages": { "required": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_is_required', CP_CFEMAIL_DEFAULT_vs_text_is_required),'contact-form-to-email')).'", "email": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_is_email', CP_CFEMAIL_DEFAULT_vs_text_is_email),'contact-form-to-email')).'", "datemmddyyyy": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_datemmddyyyy', CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy),'contact-form-to-email')).'", "dateddmmyyyy": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_dateddmmyyyy', CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy),'contact-form-to-email')).'", "number": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_number', CP_CFEMAIL_DEFAULT_vs_text_number),'contact-form-to-email')).'", "digits": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_digits', CP_CFEMAIL_DEFAULT_vs_text_digits),'contact-form-to-email')).'", "max": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_max', CP_CFEMAIL_DEFAULT_vs_text_max),'contact-form-to-email')).'", "min": "'.str_replace(array('"'),array('\\"'),__($this->get_option('vs_text_min', CP_CFEMAIL_DEFAULT_vs_text_min),'contact-form-to-email')).'", "previous": "'.str_replace(array('"'),array('\\"'),$previous_label).'", "next": "'.str_replace(array('"'),array('\\"'),$next_label).'", "page": "'.str_replace(array('"'),array('\\"'),$page_label).'", "of": "'.str_replace(array('"'),array('\\"'),$of_label).'" }}' )); } else { wp_enqueue_script( "jquery" ); wp_enqueue_script( "jquery-ui-core" ); wp_enqueue_script( "jquery-ui-datepicker" ); wp_enqueue_script( "jquery-ui-dialog" ); } ?> <script type="text/javascript"> function <?php echo esc_js($this->prefix); ?>_pform_doValidate<?php echo '_'.esc_js($this->print_counter); ?>(form) { document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.cp_ref_page.value = document.location; $dexQuery = jQuery.noConflict();<?php if (!is_admin() && $this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha) != 'false') { ?> if (document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.hdcaptcha_<?php echo esc_js($this->prefix); ?>_post.value == '') { setTimeout( "<?php echo esc_js($this->prefix); ?>_cerror<?php echo '_'.esc_js($this->print_counter); ?>()", 100); return false; } var result = $dexQuery.ajax({ type: "GET", url: "<?php echo $this->get_site_url_slash(); ?>ps=<?php echo '_'.esc_js($this->print_counter); ?>&<?php echo esc_js($this->prefix); ?>_pform_process=2&<?php echo esc_js($this->prefix); ?>_id=<?php echo $this->item; ?>&inAdmin=1&ps=<?php echo '_'.esc_js($this->print_counter); ?>&hdcaptcha_<?php echo esc_js($this->prefix); ?>_post="+document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.hdcaptcha_<?php echo esc_js($this->prefix); ?>_post.value, async: false }).responseText; if (result.indexOf("captchafailed") != -1) { $dexQuery("#captchaimg<?php echo '_'.esc_js($this->print_counter); ?>").attr('src', $dexQuery("#captchaimg<?php echo '_'.esc_js($this->print_counter); ?>").attr('src')+'&'+Math.floor((Math.random() * 99999) + 1)); setTimeout( "<?php echo esc_js($this->prefix); ?>_cerror<?php echo '_'.esc_js($this->print_counter); ?>()", 100); return false; } else <?php } ?> { var cpefb_error = 0; $dexQuery("#<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>").find(".cpefb_error").each(function(index){ if ($dexQuery(this).css("display")!="none") cpefb_error++; }); if (cpefb_error) return false; if (document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.<?php echo esc_js($this->prefix); ?>_pform_status.value != '0') return false; document.getElementById("refpage<?php echo '_'.esc_js($this->print_counter); ?>").value = document.location; cfte_blink(".pbSubmit"); document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.<?php echo esc_js($this->prefix); ?>_pform_status.value = '2';<?php $option = $this->get_option('onsubmitaction', '3'); $message = str_replace("\n","\\n",str_replace("\r","",str_replace("'","\'", __($this->get_option('fp_return_message', 'Your message has been successfully sent.')) ))); if ($option == '1' || $option == '2' || $option == '3') { ?>document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.<?php echo esc_js($this->prefix); ?>_pform_status.value = '1'; $dexQuery.ajax({ type: "POST", url: '<?php $this->get_site_url(); ?>', data: $dexQuery("#<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>").serialize(), success: function(data) { document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.<?php echo esc_js($this->prefix); ?>_pform_status.value = '0'; <?php if ($option == '3') { ?> document.getElementById('<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>').innerHTML ='<a id="cftejump"></a><?php echo esc_js($message); ?>'; var tag = $dexQuery("#cftejump"); $dexQuery('html,body').animate({scrollTop: tag.offset().top-60},'fast'); <?php } else if ($option == '1') { ?> alert('<?php echo esc_js($message); ?>'); document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.reset(); <?php } else if ($option == '2') { ?> $dexQuery("#cftedialog").dialog({ buttons: { Ok: function() { $dexQuery( this ).dialog( "close" ); document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.reset(); } } }); $dexQuery(".ui-dialog-titlebar").hide(); <?php } ?> } }); return false; <?php } else echo 'return true;'; ?> } } function cfte_blink(selector){ try { $dexQuery = jQuery.noConflict(); $dexQuery(selector).fadeOut(700, function(){ $dexQuery(this).fadeIn(700, function(){ try { if (document.<?php echo esc_js($this->prefix); ?>_pform<?php echo '_'.esc_js($this->print_counter); ?>.<?php echo esc_js($this->prefix); ?>_pform_status.value != '0') cfte_blink(this); } catch (e) {} }); }); } catch (e) {} } function <?php echo esc_js($this->prefix); ?>_cerror<?php echo '_'.esc_js($this->print_counter); ?>(){$dexQuery = jQuery.noConflict();$dexQuery("#hdcaptcha_error<?php echo '_'.esc_js($this->print_counter); ?>").css('top',$dexQuery("#hdcaptcha_<?php echo esc_js($this->prefix); ?>_post<?php echo '_'.esc_js($this->print_counter); ?>").outerHeight());$dexQuery("#hdcaptcha_error<?php echo '_'.esc_js($this->print_counter); ?>").css("display","inline");} </script> <div id="cftedialog" style="display:none;"><?php echo esc_html(__($this->get_option('fp_return_message', 'Thank you.'))); ?></div> <?php $button_label = $this->get_option('vs_text_submitbtn', 'Submit'); $button_label = ($button_label==''?'Submit':$button_label); // START:: code to load form settings $raw_form_str = str_replace("\r"," ",str_replace("\n"," ",$this->cleanJSON($this->translate_json($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure))))); $form_data = json_decode( $raw_form_str ); if( is_null( $form_data ) ){ $json = new JSON; $form_data = $json->unserialize( $raw_form_str ); } $preload_params = array(); if ($prefill) { $prefill = intval($prefill); $event_query = "SELECT * FROM ".$wpdb->prefix.$this->table_messages." WHERE id=".intval($prefill); $event = $wpdb->get_results( $event_query ); if (count($event)) $preload_params = unserialize($event[0]->posted_data); $preload_params["itemnumber"] = $prefill; } if( !is_null( $form_data ) ) { if( !empty( $form_data[ 0 ] ) ) { foreach( $form_data[ 0 ] as $key => $object ) { if( isset( $object->isDataSource ) && $object->isDataSource && function_exists( 'mcrypt_encrypt' ) ) { $connection = new stdClass(); $connection->connection = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, $this->get_option('form_structure', CP_CONTACTFORMPP_DEFAULT_form_structure,$id), serialize( $object->list->database->databaseData ), MCRYPT_MODE_ECB ) ); $connection->form = $id; $object->list->database->databaseData = $connection; $form_data[ 0 ][ $key ] = $object; $raw_form_str = json_encode( $form_data ); } else if ($object->ftype == 'fcheck' || $object->ftype == 'fradio' || $object->ftype == 'fdropdown') { for($ki=0; $ki<count($object->choicesVal); $ki++) $object->choicesVal[$ki] = $object->choicesVal[$ki]; $form_data[ 0 ][ $key ] = $object; $raw_form_str = json_encode( $form_data ); } if (count($preload_params)) { if ($object->ftype == 'fdate') $object->defaultDate = $preload_params[$object->name]; else if ($object->ftype == 'fradio' || $object->ftype == 'fdropdown') { for($ki=0; $ki<count($object->choicesVal); $ki++) if ($object->choices[$ki] == $preload_params[$object->name]) $object->choiceSelected = $object->choices[$ki]; } else if ($object->ftype == 'fcheck' && is_array($preload_params[$object->name])) { for($ki=0; $ki<count($object->choices); $ki++) if (in_array($object->choices[$ki], $preload_params[$object->name])) $object->choiceSelected[$ki] = true; } else if ($object->ftype == 'fPhone') $object->predefined = str_replace("-", " ", $preload_params[$object->name]); else if (property_exists($object, 'predefined')) $object->predefined = $preload_params[$object->name]; if (property_exists($object, 'predefinedClick')) // remove placeholders $object->predefinedClick = 0; $form_data[ 0 ][ $key ] = $object; $raw_form_str = json_encode( $form_data ); } } } } $raw_form_str = str_replace('"','"',esc_attr($raw_form_str)); // END:: code to load form settings if (!defined('CP_AUTH_INCLUDE')) define('CP_AUTH_INCLUDE',true); @include dirname( __FILE__ ) . '/cp-public-int.inc.php'; if (!CP_CFEMAIL_DEFER_SCRIPTS_LOADING) { $prefix_ui = ''; if (@file_exists(dirname( __FILE__ ).'/../../../wp-includes/js/jquery/ui/jquery.ui.core.min.js')) $prefix_ui = 'jquery.ui.'; // This code won't be used in most cases. This code is for preventing problems in wrong WP themes and conflicts with third party plugins. // It can be manually activated by the user if needed from the troubleshoot settings area of the plugin ?> <?php $plugin_url = plugins_url('', __FILE__); ?> <link href="<?php echo plugins_url('css/stylepublic.css', __FILE__); ?>" type="text/css" rel="stylesheet" /> <link href="<?php echo plugins_url('css/cupertino/jquery-ui-1.8.20.custom.css', __FILE__); ?>" type="text/css" rel="stylesheet" /> <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/jquery.js'; ?>'></script> <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'core.min.js'; ?>'></script> <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'datepicker.min.js'; ?>'></script> <?php if (@file_exists(dirname( __FILE__ ).'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'widget.min.js')) { ?><script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'widget.min.js'; ?>'></script><?php } ?> <?php if (@file_exists(dirname( __FILE__ ).'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'position.min.js')) { ?><script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'position.min.js'; ?>'></script><?php } ?> <script type='text/javascript' src='<?php echo $plugin_url.'/../../../wp-includes/js/jquery/ui/'.$prefix_ui.'tooltip.min.js'; ?>'></script> <script type='text/javascript' src='<?php echo plugins_url('js/jquery.validate.js', __FILE__); ?>'></script> <script type='text/javascript'> /* <![CDATA[ */ var <?php echo esc_js($this->prefix); ?>_fbuilder_config<?php echo '_'.esc_js($this->print_counter); ?> = {"obj":"{\"pub\":true,\"identifier\":\"<?php echo '_'.esc_js($this->print_counter); ?>\",\"messages\": {\n \t \t\"required\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_is_required', CP_CFEMAIL_DEFAULT_vs_text_is_required));?>\",\n \t \t\"email\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_is_email', CP_CFEMAIL_DEFAULT_vs_text_is_email));?>\",\n \t \t\"datemmddyyyy\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_datemmddyyyy', CP_CFEMAIL_DEFAULT_vs_text_datemmddyyyy));?>\",\n \t \t\"dateddmmyyyy\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_dateddmmyyyy', CP_CFEMAIL_DEFAULT_vs_text_dateddmmyyyy));?>\",\n \t \t\"number\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_number', CP_CFEMAIL_DEFAULT_vs_text_number));?>\",\n \t \t\"digits\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_digits', CP_CFEMAIL_DEFAULT_vs_text_digits));?>\",\n \t \t\"max\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_max', CP_CFEMAIL_DEFAULT_vs_text_max));?>\",\n \t \t\"min\": \"<?php echo str_replace(array('"'),array('\\"'),$this->get_option('vs_text_min', CP_CFEMAIL_DEFAULT_vs_text_min));?>\",\"previous\": \"<?php echo str_replace(array('"'),array('\\"'),$previous_label); ?>\",\"next\": \"<?php echo str_replace(array('"'),array('\\"'),$next_label); ?>\"\n \t }}"}; /* ]]> */ </script> <script type='text/javascript' src='<?php echo plugins_url('js/fbuilderf.jquery.js?nc=3', __FILE__); ?>'></script> <script type='text/javascript' src='<?php echo $this->get_site_url( false ).'?cp_cfte_resources=customjs'; ?>'></script> <?php } $this->print_counter++; } /* Code for the admin area */ public function plugin_page_links($links) { $customAdjustments_link = '<a href="https://form2email.dwbooster.com/download">'.__('Upgrade','contact-form-to-email').'</a>'; array_unshift($links, $customAdjustments_link); $settings_link = '<a href="admin.php?page='.$this->menu_parameter.'">'.__('Settings','contact-form-to-email').'</a>'; array_unshift($links, $settings_link); $help_link = '<a href="https://form2email.dwbooster.com/support">'.__('Documentation','contact-form-to-email').'</a>'; array_unshift($links, $help_link); $s_link = '<a href="https://wordpress.org/support/plugin/contact-form-to-email#new-post">'.__('Support','contact-form-to-email').'</a>'; array_unshift($links, $s_link); return $links; } public function admin_menu() { add_options_page($this->plugin_name.' Options', $this->plugin_name, 'manage_options', $this->menu_parameter, array($this, 'settings_page') ); add_menu_page( $this->plugin_name.' Options', $this->plugin_name, 'edit_pages', $this->menu_parameter, array($this, 'settings_page') ); add_submenu_page( $this->menu_parameter, 'Help: Online demo', 'Help: Online demo', 'read', $this->menu_parameter."_demo", array($this, 'settings_page') ); add_submenu_page( $this->menu_parameter, 'Help: Documentation', 'Help: Documentation', 'read', $this->menu_parameter."_docs", array($this, 'settings_page') ); add_submenu_page( $this->menu_parameter, 'Help: Free support', 'Help: Free support', 'read', $this->menu_parameter."_fsupport", array($this, 'settings_page') ); add_submenu_page( $this->menu_parameter, 'Upgrade', 'Upgrade', 'edit_pages', $this->menu_parameter."_upgrade", array($this, 'settings_page') ); } function insert_button() { print '<a href="javascript:send_to_editor(\'[CONTACT_FORM_TO_EMAIL]\');" title="'.__('Insert','contact-form-to-email').' '.$this->plugin_name.'"><img hspace="5" src="'.plugins_url('/images/cp_form.gif', __FILE__).'" alt="'.__('Insert','contact-form-to-email').' '.$this->plugin_name.'" /></a>'; } public function settings_page() { global $wpdb; if ($this->get_param("cal") || $this->get_param("cal") == '0' || $this->get_param("pwizard") == '1') { $this->item = intval($this->get_param("cal")); if (isset($_GET["edit"]) && $_GET["edit"] == '1') @include_once dirname( __FILE__ ) . '/cp_admin_int_edition.inc.php'; else if ($this->get_param("list") == '1') @include_once dirname( __FILE__ ) . '/cp-admin-int-message-list.inc.php'; else if ($this->get_param("edititem")) @include_once dirname( __FILE__ ) . '/cp-admin-int-edit-booking.inc.php'; else if ($this->get_param("addbk") == '1') @include_once dirname( __FILE__ ) . '/cp-admin-int-add-booking.inc.php'; else if ($this->get_param("report") == '1') @include_once dirname( __FILE__ ) . '/cp-admin-int-report.inc.php'; else if ($this->get_param("pwizard") == '1') { if ($this->get_param("cal")) $this->item = intval($this->get_param("cal")); @include_once dirname( __FILE__ ) . '/cp-publish-wizzard.inc.php'; } else @include_once dirname( __FILE__ ) . '/cp-admin-int.inc.php'; } else if ($this->get_param("page") == $this->menu_parameter.'_upgrade') { echo("Redirecting to upgrade page...<script type='text/javascript'>document.location='https://form2email.dwbooster.com/download';</script>"); exit; } else if ($this->get_param("page") == $this->menu_parameter.'_demo') { echo("Redirecting to demo page...<script type='text/javascript'>document.location='https://form2email.dwbooster.com/home#demos';</script>"); exit; } else if ($this->get_param("page") == $this->menu_parameter.'_docs') { echo("Redirecting to demo page...<script type='text/javascript'>document.location='https://form2email.dwbooster.com/documentation?open=1';</script>"); exit; } else if ($this->get_param("page") == $this->menu_parameter.'_fsupport') { echo("Redirecting to demo page...<script type='text/javascript'>document.location='https://wordpress.org/support/plugin/contact-form-to-email#new-post';</script>"); exit; } else @include_once dirname( __FILE__ ) . '/cp-admin-int-list.inc.php'; } function gutenberg_block() { global $wpdb; wp_enqueue_script( 'cfte_gutenberg_editor', plugins_url('/js/block.js', __FILE__)); wp_enqueue_style('cfte-publicstyle', plugins_url('css/stylepublic.css', __FILE__)); wp_deregister_script($this->prefix.'_validate_script'); wp_register_script($this->prefix.'_validate_script', plugins_url('/js/jquery.validate.js', __FILE__)); wp_enqueue_script( $this->prefix.'_builder_script', plugins_url('/js/fbuilderf.jquery.js?nc=3', __FILE__),array("jquery","jquery-ui-core","jquery-ui-datepicker","jquery-ui-widget","jquery-ui-position","jquery-ui-tooltip",$this->prefix."_validate_script"), false, true ); $forms = array(); $rows = $wpdb->get_results("SELECT id,form_name FROM ".$wpdb->prefix.$this->table_items." ORDER BY form_name"); foreach ($rows as $item) $forms[] = array ( 'value' => $item->id, 'label' => $item->form_name, ); wp_localize_script( 'cfte_gutenberg_editor', 'cfte_forms', array( 'forms' => $forms, 'siteUrl' => get_site_url() ) ); } public function render_form_admin ($atts) { $is_gutemberg_editor = defined( 'REST_REQUEST' ) && REST_REQUEST && ! empty( $_REQUEST['context'] ) && 'edit' === $_REQUEST['context']; if (!$is_gutemberg_editor) return $this->filter_content (array('id' => $atts["formId"])); else if ($atts["formId"]) { $this->setId($atts["formId"]); return '<input type="hidden" name="form_structure'.$atts["instanceId"].'" id="form_structure'.$atts["instanceId"].'" value="'.esc_attr($this->get_option('form_structure')).'" /><fieldset class="ahbgutenberg_editor" disabled><div id="fbuilder"><div id="fbuilder_'.$atts["instanceId"].'"><div id="formheader_'.$atts["instanceId"].'"></div><div id="fieldlist_'.$atts["instanceId"].'"></div></div></div></fieldset>'; } else return __('Contact form inserted. <b>Save and reload this page</b> to render the contact form.','contact-form-to-email'); } function insert_adminScripts($hook) { if ($this->get_param("page") == $this->menu_parameter && $this->get_param("addbk") != '1' && !$this->get_param("edititem")) { wp_enqueue_script( $this->prefix.'_builder_script', plugins_url('/js/fbuilderf.jquery.js?nc=3', __FILE__),array("jquery","jquery-ui-core","jquery-ui-sortable","jquery-ui-tabs","jquery-ui-droppable","jquery-ui-button","jquery-ui-datepicker") ); wp_enqueue_style('cfte-adminstyles', plugins_url('css/style.css', __FILE__) ); wp_enqueue_style('cfte-admincalendarstyles', plugins_url('css/cupertino/jquery-ui-1.8.20.custom.css', __FILE__) ); wp_enqueue_style('cfte-newadminstyle', plugins_url('/css/newadminlayout.css', __FILE__)); //wp_enqueue_style('jquery-style', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css'); if ($this->get_param("report") == '1') wp_enqueue_script( $this->prefix.'_excanvas', plugins_url('/js/excanvas.min.js', __FILE__)); } if( 'post.php' != $hook && 'post-new.php' != $hook ) return; // space to include some script in the post or page areas if needed } /* hook for checking posted data for the admin area */ function data_management_loaded() { global $wpdb; $action = $this->get_param('cp_contactformtoemail_do_action_loaded'); if (!$action) return; // go out if the call isn't for this one if ($this->get_param('cp_contactformtoemail_id')) $this->item = $this->get_param('cp_contactformtoemail_id'); if ($action == "wizard" && current_user_can('manage_options') && wp_verify_nonce( $_POST['anonce'], 'cpappb_actions_pwizard')) { $shortcode = '['.$this->shorttag.' id="'.$this->item .'"]'; $this->postURL = $this->publish_on(sanitize_text_field($_POST["whereto"]), sanitize_text_field(@$_POST["publishpage"]), sanitize_text_field(@$_POST["publishpost"]), $shortcode, sanitize_text_field($_POST["posttitle"])); return; } // ... echo 'Some unexpected error happened. If you see this error contact the support service at https://form2email.dwbooster.com/contact-us'; exit(); } private function publish_on($whereto, $publishpage = '', $publishpost = '', $content = '', $posttitle = 'Booking Form') { global $wpdb; $id = ''; if ($whereto == '0' || $whereto =='1') // new page { $my_post = array( 'post_title' => $posttitle, 'post_type' => ($whereto == '0'?'page':'post'), 'post_content' => $content, // 'This is a <b>preview</b> page, remember to publish it if needed. You can edit the full form settings into the admin settings page.<br /><br /> '. 'post_status' => 'publish' ); // Insert the post into the database $id = wp_insert_post( $my_post ); } else { $id = ($whereto == '2'?$publishpage:$publishpost); $post = get_post( $id ); $pos = strpos($post->post_content,$content); if ($pos === false) { $my_post = array( 'ID' => $id, 'post_content' => $content.$post->post_content, ); // Update the post into the database wp_update_post( $my_post ); } } return get_permalink($id); } function data_management() { global $wpdb, $cp_cfte_plugin; if( isset( $_REQUEST[ 'cp_cfte_resources' ] ) ) { if( $_REQUEST[ 'cp_cfte_resources' ] == 'css' ) { header("Content-type: text/css"); $custom_styles = base64_decode(get_option('CP_CFTE_CSS', '')); echo $custom_styles; } else if( $_REQUEST[ 'cp_cfte_resources' ] == 'customjs' ) { header("Content-type: application/javascript"); $custom_scripts = base64_decode(get_option('CP_CFTE_JS', '')); echo $custom_scripts; } exit; } $this->check_reports(); if ($this->get_param($this->prefix.'_encodingfix') == '1') { $wpdb->query('alter table '.$wpdb->prefix.$this->table_items.' convert to character set utf8 collate utf8_unicode_ci;'); $wpdb->query('alter table '.$wpdb->prefix.$this->table_messages.' convert to character set utf8 collate utf8_unicode_ci;'); echo 'Ok, encoding fixed.'; exit; } if ($this->get_param($this->prefix.'_captcha') == 'captcha' ) { @include_once dirname( __FILE__ ) . '/captcha/captcha.php'; exit; } if ($this->get_param($this->prefix.'_csv') && current_user_can('edit_pages') && is_admin() ) { $this->export_csv(); return; } if ( $this->get_param($this->prefix.'_post_options') && current_user_can('edit_pages') && is_admin() ) { $this->save_options(); return; } if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset( $_POST['CP_CFTE_post_edition'] ) && current_user_can('edit_pages') && is_admin() ) { $this->save_edition(); return; } if ( 'POST' != $_SERVER['REQUEST_METHOD'] || ! isset( $_POST[$this->prefix.'_pform_process'] ) ) if ( 'GET' != $_SERVER['REQUEST_METHOD'] || !isset( $_GET['hdcaptcha_'.$this->prefix.'_post'] ) ) return; if ($this->get_param($this->prefix.'_id')) $this->item = $this->get_param($this->prefix.'_id'); if (function_exists('session_start')) @session_start(); if (isset($_GET["ps"])) $sequence = sanitize_key($_GET["ps"]); else if (isset($_POST["cp_pform_psequence"])) $sequence = sanitize_key($_POST["cp_pform_psequence"]); $captcha_tr = ''; if (!empty($_COOKIE['rand_code'.$sequence])) $captcha_tr = get_transient( "cpeople-captcha-".sanitize_key($_COOKIE['rand_code'.$sequence])); if ( (!is_admin() && $this->get_option('cv_enable_captcha', CP_CFEMAIL_DEFAULT_cv_enable_captcha) != 'false') && ( (strtolower($this->get_param('hdcaptcha_'.$this->prefix.'_post')) != strtolower($_SESSION['rand_code'.$sequence])) || ($_SESSION['rand_code'.$sequence] == '') ) && ( ((strtolower($this->get_param('hdcaptcha_'.$this->prefix.'_post'))) != ($captcha_tr)) || ($captcha_tr == '') ) ) { $_SESSION['rand_code'.$sequence] = ''; setCookie('rand_code'.$sequence, '', time()+36000,"/"); echo 'captchafailed'; exit; } // if this isn't the real post (it was the captcha verification) then echo ok and exit if ( 'POST' != $_SERVER['REQUEST_METHOD'] || ! isset( $_POST[$this->prefix.'_pform_process'] ) ) { echo 'ok'; exit; } if ($this->get_option('cv_enable_captchaintelligent', CP_CFEMAIL_DEFAULT_cv_enable_captchainvisible) == 'true') { if ( (!isset($_POST["cftecontrolmessage"]) || $_POST["cftecontrolmessage"] != '') || (!isset($_POST["cftehp"]) || $_POST["cftehp"] != '25') || !wp_verify_nonce( $_POST['anonce'], 'cfte_actions_emailform') ) { echo 'Invisible antispam protection prevented this submission. Please contact our support service if you think this is an error. Thank you.'; exit; } } //if (get_magic_quotes_gpc()) foreach ($_POST as $item => $value) $_POST[$item] = (is_array($value)?$value:stripcslashes($value)); // get form info //--------------------------- require_once(ABSPATH . "wp-admin" . '/includes/file.php'); $form_data = json_decode($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure))); $fields = array(); foreach ($form_data[0] as $item) { $fields[$item->name] = $item->title; if ($item->ftype == 'fPhone') // join fields for phone fields { for($i=0; $i<=substr_count($item->dformat," "); $i++) { $_POST[$item->name.$sequence] .= ($_POST[$item->name.$sequence."_".$i]!=''?($i==0?'':'-').$_POST[$item->name.$sequence."_".$i]:''); unset($_POST[$item->name.$sequence."_".$i]); } } } // grab posted data //--------------------------- $buffer = ""; $params = array(); $founddata = false; if (!(isset($_POST["edititem"]) && $_POST["edititem"])) $params["referrer"] = esc_url_raw($_POST["refpage".$sequence]); foreach ($_POST as $item => $value) if (isset($fields[str_replace($sequence,'',$item)])) { $buffer .= $fields[str_replace($sequence,'',$item)] . ": ". (is_array($value)?(implode(", ",$value)):($value)) . "\n\n"; $params[str_replace($sequence,'',$item)] = $value; $founddata = true; } foreach ($_FILES as $item => $value) if (isset($fields[str_replace($sequence,'',$item)]) && $this->check_upload($_FILES[$item])) { $buffer .= $fields[str_replace($sequence,'',$item)] . ": ". $value["name"] . "\n\n"; $params[str_replace($sequence,'',$item)] = $value["name"]; $founddata = true; $movefile = wp_handle_upload( $_FILES[$item], array( 'test_form' => false ) ); if ( $movefile ) { $params[str_replace($sequence,'',$item)."_link"] = $movefile["file"]; $params[str_replace($sequence,'',$item)."_url"] = $movefile["url"]; } // else {print_r($movefile);exit;} // un-comment this line if the uploads aren't working } $buffer_A = $buffer; if (!$founddata) { echo 'Empty post! No data received.'; exit; } $_SESSION['rand_code'.$sequence] = ''; if (!empty($_COOKIE['rand_code'.$sequence])) $captcha_tr = delete_transient( "cpeople-captcha-".sanitize_key($_COOKIE['rand_code'.$sequence])); setCookie('rand_code'.$sequence, '', time()+36000,"/"); $saveipaddr = ('true' == $this->get_option('fp_inc_additional_info', CP_CFEMAIL_DEFAULT_fp_inc_additional_info)); /** * Action called before insert the data into database. * To the function is passed an array with submitted data. */ do_action_ref_array( 'cfte_process_data_before_insert', array(&$params) ); // insert into database //--------------------------- $wpdb->query("ALTER TABLE ".$wpdb->prefix.$this->table_messages." CHANGE `ipaddr` `ipaddr` VARCHAR(250)"); $to = $this->get_option('cu_user_email_field', CP_CFEMAIL_DEFAULT_cu_user_email_field); if (isset($_POST["edititem"]) && $_POST["edititem"]) { $rows_affected = $wpdb->update( $wpdb->prefix.$this->table_messages, array( 'notifyto' => sanitize_email(@$_POST[$to.$sequence]?$_POST[$to.$sequence]:''), 'posted_data' => serialize($params), 'data' =>$buffer_A ), array ( 'id' => intval($_POST["edititem"]) ) ); } else $rows_affected = $wpdb->insert( $wpdb->prefix.$this->table_messages, array( 'formid' => $this->item, 'time' => current_time('mysql'), 'ipaddr' => ($saveipaddr?$this->getRealUserIP():'-'), 'notifyto' => sanitize_email(@$_POST[$to.$sequence]?$_POST[$to.$sequence]:''), 'posted_data' => serialize($params), 'data' =>$buffer_A ) ); if (!$rows_affected && !isset($_POST["edititem"])) { echo 'Error saving data! Please try again.'; echo '<br /><br />If the error persists please be sure you are using the latest version and in that case contact support service at https://form2email.dwbooster.com/contact-us?debug=db'; exit; } if (isset($_POST["edititem"]) && $_POST["edititem"]) $item_number = intval($_POST["edititem"]); else { $myrows = $wpdb->get_results( "SELECT MAX(id) as max_id FROM ".$wpdb->prefix.$this->table_messages ); $item_number = $myrows[0]->max_id; } // Call action for data processing //--------------------------------- $params[ 'itemnumber' ] = $item_number; /** * Action called after inserted the data into database. * To the function is passed an array with submitted data. */ do_action( 'cfte_process_data', $params ); $this->ready_to_go_reservation($item_number, "", $params); if (is_admin()) return; if ($_POST[ $this->prefix."_pform_status"] == '1') echo 'OK'; else header("Location: ".$this->get_option('fp_return_page', CP_CFEMAIL_DEFAULT_fp_return_page)); exit(); } function check_upload($uploadfiles) { $filename = $uploadfiles['name']; $filetype = wp_check_filetype( basename( $filename ), null ); if ( in_array ($filetype["ext"],array("php","asp","aspx","cgi","pl","perl","exe","cmd","js","msi")) ) return false; else return true; } function ready_to_go_reservation($itemnumber, $payer_email = "", $params = array()) { global $wpdb; $myrows = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix.$this->table_messages." WHERE id=%d", $itemnumber ) ); $mycalendarrows = $wpdb->get_results( $wpdb->prepare( 'SELECT * FROM '.$wpdb->prefix.$this->table_items.' WHERE `id`=%d', $myrows[0]->formid ) ); $this->item = $myrows[0]->formid; $buffer_A = $myrows[0]->data; $buffer = $buffer_A; if ('true' == $this->get_option('fp_inc_additional_info', CP_CFEMAIL_DEFAULT_fp_inc_additional_info)) { $buffer .="ADDITIONAL INFORMATION\n" ."*********************************\n" ."IP: ".$myrows[0]->ipaddr."\n" ."Server Time: ".date("Y-m-d H:i:s")."\n"; } // 1- Send email //--------------------------- $attachments = array(); if ('html' == $this->get_option('fp_emailformat', CP_CFEMAIL_DEFAULT_email_format)) $message = str_replace('<'.'%INFO%'.'>',str_replace("\n","<br />",str_replace('<','<',$buffer)),$this->get_option('fp_message', CP_CFEMAIL_DEFAULT_fp_message)); else $message = str_replace('<'.'%INFO%'.'>',$buffer,$this->get_option('fp_message', CP_CFEMAIL_DEFAULT_fp_message)); $subject = $this->get_option('fp_subject', CP_CFEMAIL_DEFAULT_fp_subject); foreach ($params as $item => $value) { $message = str_replace('<'.'%'.$item.'%'.'>',(is_array($value)?(implode(", ",$value)):($value)),$message); $subject = str_replace('<'.'%'.$item.'%'.'>',(is_array($value)?(implode(", ",$value)):($value)),$subject); if (strpos($item,"_link")) $attachments[] = $value; } $message = str_replace('<'.'%itemnumber%'.'>',$itemnumber,$message); $subject = str_replace('<'.'%itemnumber%'.'>',$itemnumber,$subject); for ($i=0;$i<500;$i++) { $subject = str_replace('<'.'%fieldname'.$i.'%'.'>',"",$subject); $message = str_replace('<'.'%fieldname'.$i.'%'.'>',"",$message); } $from = trim($this->get_option('fp_from_email', (defined('CP_CFEMAIL_DEFAULT_fp_from_email') ? CP_CFEMAIL_DEFAULT_fp_from_email : '') )); $to = explode(",",$this->get_option('fp_destination_emails', (defined('CP_CFEMAIL_DEFAULT_fp_destination_emails') ? CP_CFEMAIL_DEFAULT_fp_destination_emails : '') )); if ('html' == $this->get_option('fp_emailformat', CP_CFEMAIL_DEFAULT_email_format)) $content_type = "Content-Type: text/html; charset=utf-8\n"; else $content_type = "Content-Type: text/plain; charset=utf-8\n"; $replyto = $myrows[0]->notifyto; if ($this->get_option('fp_emailfrommethod', "fixed") == "customer") $from_1 = $replyto; else $from_1 = $from; // if is_admin and not required emails end function here if (is_admin() && !isset($_POST["sendemails_admin"])) return; if ($this->get_option('fp_enableemail', 'true') != 'false') { foreach ($to as $item) if (trim($item) != '') { if (!strpos($from_1,">")) $from_1 = '"'.$from_1.'" <'.$from_1.'>'; wp_mail(trim($item), $subject, $message, "From: ".$from_1."\r\n". ($replyto!=''?"Reply-To: ".$replyto."\r\n":''). $content_type. "X-Mailer: PHP/" . phpversion(), $attachments); } } // 2- Send copy to user //--------------------------- $to = $this->get_option('cu_user_email_field', CP_CFEMAIL_DEFAULT_cu_user_email_field); $_POST[$to] = $myrows[0]->notifyto; if ((trim($_POST[$to]) != '' || $payer_email != '') && 'true' == $this->get_option('cu_enable_copy_to_user', CP_CFEMAIL_DEFAULT_cu_enable_copy_to_user)) { if ('html' == $this->get_option('cu_emailformat', CP_CFEMAIL_DEFAULT_email_format)) $message = str_replace('<'.'%INFO%'.'>',str_replace("\n","<br />",str_replace('<','<',$buffer_A)).'</pre>',$this->get_option('cu_message', CP_CFEMAIL_DEFAULT_cu_message)); else $message = str_replace('<'.'%INFO%'.'>',$buffer_A,$this->get_option('cu_message', CP_CFEMAIL_DEFAULT_cu_message)); $subject = $this->get_option('cu_subject', CP_CFEMAIL_DEFAULT_cu_subject); foreach ($params as $item => $value) { $message = str_replace('<'.'%'.$item.'%'.'>',(is_array($value)?(implode(", ",$value)):($value)),$message); $subject = str_replace('<'.'%'.$item.'%'.'>',(is_array($value)?(implode(", ",$value)):($value)),$subject); } if ('html' == $this->get_option('cu_emailformat', CP_CFEMAIL_DEFAULT_email_format)) $content_type = "Content-Type: text/html; charset=utf-8\n"; else $content_type = "Content-Type: text/plain; charset=utf-8\n"; for ($i=0;$i<500;$i++) { $subject = str_replace('<'.'%fieldname'.$i.'%'.'>',"",$subject); $message = str_replace('<'.'%fieldname'.$i.'%'.'>',"",$message); } if (!strpos($from,">")) $from = '"'.$from.'" <'.$from.'>'; if ($_POST[$to] != '') wp_mail(trim($_POST[$to]), $subject, $message, "From: ".$from."\r\n". $content_type. "X-Mailer: PHP/" . phpversion()); if ($_POST[$to] != $payer_email && $payer_email != '') wp_mail(trim($payer_email), $subject, $message, "From: ".$from."\r\n". $content_type. "X-Mailer: PHP/" . phpversion()); } } function save_edition() { $verify_nonce = wp_verify_nonce( $_POST['rsave'], 'cfte_update_actions_custom'); if (!$verify_nonce) { echo 'Error: Form cannot be authenticated. Please contact our <a href="https://form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.'; return; } foreach ($_POST as $item => $value) if (!is_array($value)) $_POST[$item] = stripcslashes($value); if (substr_count($_POST['editionarea'],"\\\"")) $_POST["editionarea"] = stripcslashes($_POST["editionarea"]); if ($_POST["cfwpp_edit"] == 'js') update_option('CP_CFTE_JS', base64_encode($_POST["editionarea"])); else if ($_POST["cfwpp_edit"] == 'css') update_option('CP_CFTE_CSS', base64_encode($_POST["editionarea"])); } function save_options() { global $wpdb; $verify_nonce = wp_verify_nonce( $_POST['rsave'], 'cfpoll_update_actions_post'); if (!$verify_nonce) { echo 'Error: Form cannot be authenticated. Please contact our <a href="https://form2email.dwbooster.com/contact-us">support service</a> for verification and solution. Thank you.'; return; } $this->item = intval($_POST[$this->prefix."_id"]); if ((substr_count($_POST['form_structure_control'],"\\") > 1) || substr_count($_POST['form_structure_control'],"\\\"title\\\":")) foreach ($_POST as $item => $value) if (!is_array($value)) $_POST[$item] = stripcslashes($value); if (false == get_option('CFTE_ONE_TIME_2UPDATE',false)) { $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_enable", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_days", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_hour", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_emails", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_subject", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_emailformat", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "rep_message", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_page',"text"); $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_of',"text"); $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_submitbtn',"text"); $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_previousbtn',"text"); $this->add_field_verify($wpdb->prefix.$this->table_items,'vs_text_nextbtn',"text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "onsubmitaction", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "fp_return_message", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "fp_enableemail", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "fp_emailfrommethod", "text"); $this->add_field_verify($wpdb->prefix.$this->table_items, "cv_enable_captchaintelligent", "text"); update_option('CFTE_ONE_TIME_2UPDATE',true); } $wpdb->update ( $wpdb->prefix.$this->table_items, array( 'form_structure' => $this->clean_sanitize($_POST['form_structure']), 'fp_from_email' => sanitize_text_field($_POST['fp_from_email']), 'fp_destination_emails' => sanitize_text_field($_POST['fp_destination_emails']), 'fp_subject' => $this->clean_sanitize($_POST['fp_subject']), 'fp_inc_additional_info' => sanitize_text_field($_POST['fp_inc_additional_info']), 'fp_return_page' => sanitize_text_field($_POST['fp_return_page']), 'fp_message' => $this->clean_sanitize($_POST['fp_message']), 'fp_emailformat' => sanitize_text_field($_POST['fp_emailformat']), 'cu_enable_copy_to_user' => sanitize_text_field($_POST['cu_enable_copy_to_user']), 'cu_user_email_field' => sanitize_text_field(@$_POST['cu_user_email_field']), 'cu_subject' => $this->clean_sanitize($_POST['cu_subject']), 'cu_message' => $this->clean_sanitize($_POST['cu_message']), 'cu_emailformat' => sanitize_text_field($_POST['cu_emailformat']), 'fp_emailfrommethod' => sanitize_text_field($_POST['fp_emailfrommethod']), 'onsubmitaction' => sanitize_text_field($_POST['onsubmitaction']), 'fp_return_message' => sanitize_text_field($_POST['fp_return_message']), 'fp_enableemail' => sanitize_text_field($_POST['fp_enableemail']), 'vs_text_is_required' => sanitize_text_field($_POST['vs_text_is_required']), 'vs_text_is_email' => sanitize_text_field($_POST['vs_text_is_email']), 'vs_text_datemmddyyyy' => sanitize_text_field($_POST['vs_text_datemmddyyyy']), 'vs_text_dateddmmyyyy' => sanitize_text_field($_POST['vs_text_dateddmmyyyy']), 'vs_text_number' => sanitize_text_field($_POST['vs_text_number']), 'vs_text_digits' => sanitize_text_field($_POST['vs_text_digits']), 'vs_text_max' => sanitize_text_field($_POST['vs_text_max']), 'vs_text_min' => sanitize_text_field($_POST['vs_text_min']), 'vs_text_page' => sanitize_text_field($_POST['vs_text_page']), 'vs_text_of' => sanitize_text_field($_POST['vs_text_of']), 'vs_text_submitbtn' => sanitize_text_field($_POST['vs_text_submitbtn']), 'vs_text_previousbtn' => sanitize_text_field($_POST['vs_text_previousbtn']), 'vs_text_nextbtn' => sanitize_text_field($_POST['vs_text_nextbtn']), 'rep_enable' => sanitize_text_field($_POST['rep_enable']), 'rep_days' => sanitize_text_field($_POST['rep_days']), 'rep_hour' => sanitize_text_field($_POST['rep_hour']), 'rep_emails' => sanitize_text_field($_POST['rep_emails']), 'rep_subject' => $this->clean_sanitize($_POST['rep_subject']), 'rep_emailformat' => sanitize_text_field($_POST['rep_emailformat']), 'rep_message' => $this->clean_sanitize($_POST['rep_message']), 'cv_enable_captchaintelligent' => $_POST['cv_enable_captchaintelligent'], 'cv_enable_captcha' => sanitize_text_field($_POST['cv_enable_captcha']), 'cv_width' => sanitize_text_field($_POST['cv_width']), 'cv_height' => sanitize_text_field($_POST['cv_height']), 'cv_chars' => sanitize_text_field($_POST['cv_chars']), 'cv_font' => sanitize_text_field($_POST['cv_font']), 'cv_min_font_size' => sanitize_text_field($_POST['cv_min_font_size']), 'cv_max_font_size' => sanitize_text_field($_POST['cv_max_font_size']), 'cv_noise' => sanitize_text_field($_POST['cv_noise']), 'cv_noise_length' => sanitize_text_field($_POST['cv_noise_length']), 'cv_background' => sanitize_text_field(str_replace('#','',$_POST['cv_background'])), 'cv_border' => sanitize_text_field(str_replace('#','',$_POST['cv_border'])), 'cv_text_enter_valid_captcha' => sanitize_text_field($_POST['cv_text_enter_valid_captcha']) ) , array( 'id' => $this->item )); if (isset($_POST["savepublish"])) { echo '<script type="text/javascript">document.location="?page='.$this->menu_parameter.'&pwizard=1&cal='.$this->item.'";</script>'; } else if (isset($_POST["savereturn"])) { echo '<script type="text/javascript">document.location="?page='.$this->menu_parameter.'&confirm=1";</script>'; } } function get_form_field_label ($fieldid, $form) { foreach($form as $item) if ($item->name == $fieldid) { if (isset($item->shortlabel) && $item->shortlabel != '') return $item->shortlabel; else return $item->title; } return $fieldid; } function clean_csv_value($value) { $value = trim($value); while (strlen($value) > 1 && in_array($value[0],array('=','@'))) $value = trim(substr($value, 1)); return $value; } function export_csv () { if (!is_admin()) return; global $wpdb; $this->item = intval($this->get_param("cal")); if ($this->item > 0) { $form = json_decode($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure))); $form = $form[0]; } else $form = array(); $cond = ''; if ($this->get_param("search")) $cond .= " AND (data like '%".esc_sql($this->get_param("search"))."%' OR posted_data LIKE '%".esc_sql($this->get_param("search"))."%')"; if ($this->get_param("dfrom")) $cond .= " AND (`time` >= '".esc_sql( $this->get_param("dfrom") . ($this->get_param("tfrom")?' '.$this->get_param("tfrom"):'') )."')"; if ($this->get_param("dto")) $cond .= " AND (`time` <= '".esc_sql($this->get_param("dto") . (@$this->get_param("tto")?' '.$this->get_param("tto"):' 23:59:59') )."')"; if ($this->item > 0) $cond .= " AND formid=".intval($this->item); $events = $wpdb->get_results( "SELECT * FROM ".$wpdb->prefix.$this->table_messages." WHERE 1=1 ".$cond." ORDER BY `time` DESC" ); if ($this->include_user_data_csv) $fields = array("ID","Form ID", "IP Address", "email"); else $fields = array("ID","Form", "Time", "email"); $values = array(); foreach ($events as $item) { if ($this->include_user_data_csv) $value = array($item->id,$item->formid, $item->time, $item->ipaddr, $item->notifyto); else $value = array($item->id,$this->get_option('form_name',''), $item->time, $item->notifyto); if ($item->posted_data) $data = unserialize($item->posted_data); else $data = array(); $end = count($fields); for ($i=0; $i<$end; $i++) if (isset($data[$fields[$i]]) ){ $value[$i] = $data[$fields[$i]]; unset($data[$fields[$i]]); } if (is_array($data)) foreach ($data as $k => $d) { $fields[] = $k; $value[] = $d; } $values[] = $value; } $filename = sanitize_file_name($this->get_option('form_name','export')).'_'.date("m_d_y"); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=".$filename.".csv"); $end = count($fields); for ($i=0; $i<$end; $i++) { $hlabel = $this->encodeFormula(iconv("utf-8", "ISO-8859-1//TRANSLIT//IGNORE", $this->get_form_field_label($fields[$i],$form))); echo '"'.str_replace('"','""', $this->clean_csv_value($hlabel)).'",'; } echo "\n"; foreach ($values as $item) { for ($i=0; $i<$end; $i++) { if (!isset($item[$i])) $item[$i] = ''; if (is_array($item[$i])) $item[$i] = implode($item[$i],','); $item[$i] = $this->encodeFormula(iconv("utf-8", "ISO-8859-1//TRANSLIT//IGNORE", $item[$i])); echo '"'.str_replace('"','""', $this->clean_csv_value($item[$i])).'",'; } echo "\n"; } exit; } public function encodeFormula($text) { $text = trim($text); if ( strlen($text) > 1 && (in_array(substr($text,0,1), array('=','@','+','-'))) ) { if (substr($text,0,1) != '-' || floatval($text)."" != $text) $text = chr(9).$text; } return $text; } public function setId($id) { $this->item = $id; } public function translate_json($str) { $form_data = json_decode($this->cleanJSON($str)); $form_data[1][0]->title = __($form_data[1][0]->title,'contact-form-to-email'); $form_data[1][0]->description = __($form_data[1][0]->description,'contact-form-to-email'); for ($i=0; $i < count($form_data[0]); $i++) { $form_data[0][$i]->title = $this->filter_allowed_tags(__($form_data[0][$i]->title,'contact-form-to-email')); @$form_data[0][$i]->userhelpTooltip = $this->filter_allowed_tags(__($form_data[0][$i]->userhelpTooltip,'contact-form-to-email')); $form_data[0][$i]->userhelp = $this->filter_allowed_tags(__($form_data[0][$i]->userhelp,'contact-form-to-email')); $form_data[0][$i]->csslayout = sanitize_text_field($form_data[0][$i]->csslayout); if ($form_data[0][$i]->ftype == 'fCommentArea') $form_data[0][$i]->userhelp = __($form_data[0][$i]->userhelp,'contact-form-to-email'); else if ($form_data[0][$i]->ftype == 'fradio' || $form_data[0][$i]->ftype == 'fcheck' || $form_data[0][$i]->ftype == 'fradio') { for ($j=0; $j < count($form_data[0][$i]->choices); $j++) $form_data[0][$i]->choices[$j] = __($form_data[0][$i]->choices[$j],'contact-form-to-email'); } } $str = json_encode($form_data); return $str; } public function filter_allowed_tags($content) { //$allowed_tags = wp_kses_allowed_html( 'post' ); //return wp_kses( $content, $allowed_tags ); return wp_kses( $content, $this->tags_allowed ); } private function get_records_csv($formid, $form_name = "") { global $wpdb; $saved_item = $this->item; $this->item = intval($formid); $last_sent_id = get_option('cp_cfte_last_sent_id_'.$formid, '0'); $events = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix.$this->table_messages." WHERE formid=%d AND id>%d ORDER BY id ASC", $formid, $last_sent_id) ); if ($wpdb->num_rows <= 0) // if no rows, return empty return ''; if ($this->item) { $form = json_decode($this->cleanJSON($this->get_option('form_structure', CP_CFEMAIL_DEFAULT_form_structure))); $form = $form[0]; } else $form = array(); $buffer = ''; if ($this->include_user_data_csv) $fields = array("Submission ID","Form ID", "Time", "IP Address", "email"); else $fields = array("Submission ID", "Form", "email"); $values = array(); foreach ($events as $item) { if ($this->include_user_data_csv) $value = array($item->id, $item->formid, $item->time, $item->ipaddr, $item->notifyto); else $value = array($item->id, $form_name, $item->notifyto); $last_sent_id = $item->id; if ($item->posted_data) $data = unserialize($item->posted_data); else $data = array(); $end = count($fields); for ($i=0; $i<$end; $i++) if (isset($data[$fields[$i]]) ){ $value[$i] = $data[$fields[$i]]; unset($data[$fields[$i]]); } if (is_array($data)) foreach ($data as $k => $d) { $fields[] = $k; $value[] = $d; } $values[] = $value; } update_option('cp_cfte_last_sent_id_'.$formid, $last_sent_id); $end = count($fields); for ($i=0; $i<$end; $i++) { $hlabel = $this->encodeFormula($this->iconv("utf-8", "ISO-8859-1//TRANSLIT//IGNORE", $this->get_form_field_label($fields[$i],$form))); $buffer .= '"'.str_replace('"','""', $hlabel).'",'; } $buffer .= "\n"; foreach ($values as $item) { for ($i=0; $i<$end; $i++) { if (!isset($item[$i])) $item[$i] = ''; if (is_array($item[$i])) $item[$i] = implode($item[$i],','); $item[$i] = $this->encodeFormula($this->iconv("utf-8", "ISO-8859-1//TRANSLIT//IGNORE", $item[$i])); $buffer .= '"'.str_replace('"','""', $item[$i]).'",'; } $buffer .= "\n"; } $this->item = $saved_item; return $buffer; } private function check_reports() { global $wpdb; $last_verified = get_option('cp_cfte_last_verified',''); if ( $last_verified == '' || $last_verified < date("Y-m-d H:i:s", strtotime("-1 minutes")) ) // verification to don't check too fast to avoid overloading the site { update_option('cp_cfte_last_verified',date("Y-m-d H:i:s")); // global reports for all forms if (get_option('cp_cfte_rep_enable', 'no') == 'yes' && get_option('cp_cfte_rep_days', '') != '' && get_option('cp_cfte_rep_emails', '') != '' ) { $formid = 0; $verify_after = date("Y-m-d H:i:s", strtotime("-".get_option('cp_cfte_rep_days', '')." days")); $last_sent = get_option('cp_cfte_last_sent'.$formid, ''); if ($last_sent == '' || $last_sent < $verify_after) // check if this form needs to check for a new report { update_option('cp_cfte_last_sent'.$formid, date("Y-m-d ".(get_option('cp_cfte_rep_hour', '')<'10'?'0':'').get_option('cp_cfte_rep_hour', '').":00:00")); $text = ''; $forms = $wpdb->get_results("SELECT id,fp_from_email,form_name,rep_days,rep_hour,rep_emails,rep_subject,rep_emailformat,rep_message,rep_enable FROM ".$wpdb->prefix.$this->table_items); // " WHERE rep_emails<>'' AND rep_enable='yes'" $attachments = array(); foreach ($forms as $form) // for each form with the reports enabled { $csv = $this->get_records_csv($form->id, $form->form_name); if ($csv != '') { $text = "- ".substr_count($csv,",\n\"").' submissions from '.$form->form_name."\n"; $filename = sanitize_file_name($form->form_name).'_'.date("m_d_y"); $filename = WP_CONTENT_DIR . '/uploads/'.$filename .'.csv'; $handle = fopen($filename, 'w'); fwrite($handle,$csv); fclose($handle); $attachments[] = $filename; } } if ('html' == get_option('cp_cfte_rep_emailformat','')) $content_type = "Content-Type: text/html; charset=utf-8\n"; else $content_type = "Content-Type: text/plain; charset=utf-8\n"; if (count($attachments)) { $from = get_option('cp_cfte_fp_from_email',''); if (!strpos($from,">")) $from = '"'.$from.'" <'.$from.'>'; wp_mail( str_replace(" ","",str_replace(";",",",get_option('cp_cfte_rep_emails',''))), get_option('cp_cfte_rep_subject',''), get_option('cp_cfte_rep_message','')."\n".$text, "From: ".$from."\r\n". $content_type. "X-Mailer: PHP/" . phpversion(), @$attachments); } } } // reports for specific forms $forms = $wpdb->get_results("SELECT id,form_name,fp_from_email,rep_days,rep_hour,rep_emails,rep_subject,rep_emailformat,rep_message,rep_enable FROM ".$wpdb->prefix.$this->table_items." WHERE rep_emails<>'' AND rep_enable='yes'"); foreach ($forms as $form) // for each form with the reports enabled { $formid = $form->id; $verify_after = date("Y-m-d H:i:s", strtotime("-".$form->rep_days." days")); $last_sent = get_option('cp_cfte_last_sent'.$formid, ''); if ($last_sent == '' || $last_sent < $verify_after) // check if this form needs to check for a new report { update_option('cp_cfte_last_sent'.$formid, date("Y-m-d ".($form->rep_hour<'10'?'0':'').$form->rep_hour.":00:00")); $csv = $this->get_records_csv($formid, $form->form_name); if ($csv != '') { $filename = sanitize_file_name($form->form_name).'_'.date("m_d_y"); $filename = WP_CONTENT_DIR . '/uploads/'.$filename .'.csv'; $handle = fopen($filename, 'w'); fwrite($handle,$csv); fclose($handle); $attachments = array( $filename ); if ('html' == $form->rep_emailformat) $content_type = "Content-Type: text/html; charset=utf-8\n"; else $content_type = "Content-Type: text/plain; charset=utf-8\n"; $from = $form->fp_from_email; if (!strpos($from,">")) $from = '"'.$from.'" <'.$from.'>'; wp_mail( str_replace(" ","",str_replace(";",",",$form->rep_emails)), $form->rep_subject, $form->rep_message, "From: ".$from."\r\n". $content_type. "X-Mailer: PHP/" . phpversion(), @$attachments); } } } // end foreach } // end if } // end check_reports function protected function iconv($from, $to, $text) { if (function_exists('iconv')) return iconv($from, $to, $text); else return $text; } } // end class ?>