File: D:/HostingSpaces/ERijn/knijft.eu/wwwroot/wp-content/themes/diverso/core/sendemail.php
<?php
/**
* Define the content type of email
*/
define( 'CONTENT_TYPE', 'text/html' );
// NO NEED EDIT
function yiw_send_email()
{
$messages = $attachments = array();
$qstr = '';
if ( isset( $_POST['yiw_bot'] ) && ! empty( $_POST['yiw_bot'] ) )
return;
if ( isset( $_POST['yiw_action'] ) AND ( $_POST['yiw_action'] == 'sendemail' OR $_POST['yiw_action'] == 'sendemail-ajax' ) )
{
$form = str_replace( '_', '-', $_POST['id_form'] );
$fields = unserialize( yiw_get_option( 'contact_fields_' . $form ) );
// body
$body = nl2br( yiw_get_option( 'contact_form_body_' . $form, "%message%<br /><br /><small><i>This email is been sent by %name% (email. %email%).</i></small>" ) );
$yiw_referer = $_POST['yiw_referer'];
$union_qstr = ( $qstr == '' ) ? '?' : '';
$reply_to = '';
// to
$to = yiw_get_option( 'contact_form_to_' . $form, get_option( 'admin_email' ) );
// from
$from_email = yiw_get_option( 'contact_form_from_email_' . $form, get_option( 'admin_email' ) );
$from_name = yiw_get_option( 'contact_form_from_name_' . $form, 'Admin ' . get_bloginfo( 'name' ) );
// subject
$subject = stripslashes( yiw_get_option( 'contact_form_subject_' . $form, __( sprintf( 'Email without subject from site %s.', get_bloginfo('name') ), 'yiw' ) ) );
$post_data = array_map( 'stripslashes_deep', $_POST['yiw_contact'] );
foreach( $fields as $c => $field )
{
$id = $field['data_name'];
$var = $post_data[$id];
// validate, adding message error, set up on admin panel, if var is not valid.
if ( ( isset( $field['required'] ) AND $var == '' ) OR ( isset( $field['email_validate'] ) AND !is_email( $var ) ) )
$messages[$form][$id] = stripslashes( $field['msg_error'] );
// if reply to
if ( isset( $field['reply_to'] ) AND $field['reply_to'] == 'yes' )
$reply_to = $var;
// convert \n to <br>
if ( isset( $field['type'] ) AND $field['type'] == 'textarea' )
$var = nl2br( $var );
${$id} = $var;
// replace tags of body config
$body = str_replace( "%$id%", $var, $body );
$to = str_replace( "%$id%", $var, $to );
$from_email = str_replace( "%$id%", $var, $from_email );
$from_name = str_replace( "%$id%", $var, $from_name );
$subject = str_replace( "%$id%", $var, $subject );
// add link to email, if it is ad email, for body email.
if ( is_email( $var ) )
$var = '<a href="mailto:' . $var . '">' . $var . '</a>';
}
// if there are attachments
if( isset( $_FILES['yiw_contact']['tmp_name'] ) )
{
foreach( $_FILES['yiw_contact']['tmp_name'] as $id => $a_file )
{
$new_path = WP_CONTENT_DIR . '/uploads/' . basename( $_FILES['yiw_contact']['name'][$id] );
move_uploaded_file( $a_file, $new_path );
$attachments[] = $new_path;
}
}
// set content type
add_filter( 'wp_mail_content_type', 'yiw_set_contenttype' );
add_filter( 'wp_mail_from', create_function( '$from', "return '$from_email';" ) );
add_filter( 'wp_mail_from_name', create_function( '$from', "return '$from_name';" ) );
// if there ware some errors, return messages.
if( !empty( $messages ) )
return $messages;
// all header, that will be print with implode.
$headers = array();
if( $reply_to != FALSE )
$headers[] = 'Reply-To: ' . $reply_to;
if ( wp_mail( $to, $subject, $body, implode( $headers, "\r\n" ), $attachments ) ) {
$messages[$form]['general'] = '<p class="success">' . yiw_get_option( 'contact_form_success_sending_' . $form, __( 'Email sent correctly!', 'yiw' ) ) . '</p>';
do_action( 'yiw-sendmail-success' );
} else
$messages[$form]['general'] = '<p class="error">' . yiw_get_option( 'contact_form_error_sending_' . $form, __( 'An error has been encountered. Please try again.', 'yiw' ) ) . '</p>';
return $messages;
}
}
$message = yiw_send_email();
if ( isset( $_POST['type-send'] ) AND $_POST['type-send'] == 'ajax' )
{
yiw_module_general_message_of( $_POST['id_form'] );
die;
}
function yiw_module( $form, $echo = true )
{
$fields = unserialize( yiw_get_option( 'contact_fields_' . $form ) );
if( !is_array( $fields ) OR empty( $fields ) )
return null;
global $message;
//echo '<pre>', print_r($fields), '</pre>';
$html = '<form id="contact-form-' . $form . '" class="contact-form" method="post" action="' . yiw_curPageURL() . '" enctype="multipart/form-data">' . "\n\n";
// div message feedback
$html .= "\t<div class=\"usermessagea\">" . yiw_module_general_message_of( $form, false ) . "</div>\n";
$html .= "\t<fieldset>\n\n";
$html .= "\t\t<ul>\n\n";
// array with all messages for js validate
$js_messages = array();
foreach( $fields as $id => $field )
{
// classes
$input_class = array(); // array for print input's classes
$li_class = array( $field['type'] . '-field' ); // array for print li's classes
// errors
$error_msg = '';
$error = false;
$js_messages[ $field['data_name'] ] = $field['msg_error'];
if( isset( $message[$form][ $field['data_name'] ] ) )
{
$error = TRUE;
$error_msg = $message[$form][ $field['data_name'] ];
}
// li class
if( $field['class'] != '' )
$li_class[] = " $field[class]";
if( $error )
array_push( $input_class, 'icon', 'error' );
$html .= "\t\t\t<li class=\"" . implode( $li_class, ' ' ) . "\">\n";
$html .= "\t\t\t\t<label for=\"$field[data_name]-$form\">\n";
$html .= yiw_string_( "\t\t\t\t\t" . '<span class="label">', yiw_get_convertTags( stripslashes_deep( $field['title'] ), 'highlight-text' ), '</span>' . "\n", false );
$html .= yiw_string_( "<br />\t\t\t\t\t" . '<span class="sublabel">', stripslashes_deep( $field['description'] ), '</span><br />' . "\n", false );
$html .= "\t\t\t\t</label>\n";
// if required
if( isset( $field['required'] ) AND $field['required'] == 'yes' )
$input_class[] = 'required';
if( isset( $field['email_validate'] ) AND $field['email_validate'] == 'yes' )
$input_class[] = 'email-validate';
// retrive value
if( isset( $field['data_name'] ) && $error )
$value = yiw_get_value( $field['data_name'] );
else if ( isset( $_GET[ $field['data_name'] ] ) )
$value = $_GET[ $field['data_name'] ];
else
$value = '';
// only for clean code
$html .= "\t\t\t\t";
// print type of input
switch( $field['type'] )
{
// text
case 'text':
$html .= "<input type=\"text\" name=\"yiw_contact[" . $field['data_name'] . "]\" id=\"" . $field['data_name'] . "-$form\" class=\"" . implode( $input_class, ' ' ) . "\" value=\"$value\" />";
break;
// checkbox
case 'checkbox':
$checked = '';
if( $value != '' AND $value )
$checked = ' checked="checked"';
else if( $field['already_checked'] == 'yes' )
$checked = ' checked="checked"';
$html .= "<input type=\"checkbox\" name=\"yiw_contact[" . $field['data_name'] . "]\" id=\"" . $field['data_name'] . "-$form\" value=\"1\" class=\"" . implode( $input_class, ' ' ) . "\"{$checked} />";
$html .= ' ' . $field['label_checkbox'];
break;
// select
case 'select':
$html .= "<select name=\"yiw_contact[" . $field['data_name'] . "]\" id=\"" . $field['data_name'] . "-$form\">\n";
// options
foreach( $field['option'] as $id => $option )
{
$selected = '';
if( $field['option_selected'] == $id )
$selected = ' selected="selected"';
$html .= "\t\t\t\t\t\t<option value=\"$option\"$selected>$option</option>\n";
}
$html .= "\t\t\t\t\t</select>";
break;
// textarea
case 'textarea':
$html .= "<textarea name=\"yiw_contact[" . $field['data_name'] . "]\" id=\"" . $field['data_name'] . "-$form\" rows=\"8\" cols=\"30\" class=\"" . implode( $input_class, ' ' ) . "\">$value</textarea>";
break;
// radio
case 'radio':
// options
foreach( $field['option'] as $i => $option )
{
$selected = '';
if( $field['option_selected'] == $i )
$selected = ' checked=""';
$html .= "\t\t\t\t\t\t<input type=\"radio\" name=\"yiw_contact[{$field[data_name]}]\" id=\"{$field[data_name]}-$form-$i\" value=\"$option\"$selected /> $option<br />\n";
}
break;
// password
case 'password':
$html .= "<input type=\"password\" name=\"yiw_contact[{$field[data_name]}]\" id=\"{$field[data_name]}-$form\" class=\"" . implode( $input_class, ' ' ) . "\" value=\"$value\" />";
break;
// file
case 'file':
$html .= "<input type=\"file\" name=\"yiw_contact[{$field[data_name]}]\" id=\"{$field[data_name]}-$form\" class=\"" . implode( $input_class, ' ' ) . "\" />";
break;
}
// only for clean code
$html .= "\n";
$html .= "\t\t\t\t<div class=\"msg-error\">" . $error_msg . "</div>\n";
$html .= "\t\t\t</li>\n";
}
$html .= "\t\t\t<li class=\"submit-button\">\n";
$html .= "\t\t\t\t<input type=\"text\" name=\"yiw_bot\" id=\"yiw_bot\" />\n";
$html .= "\t\t\t\t<input type=\"hidden\" name=\"yiw_action\" value=\"sendemail\" id=\"yiw_action\" />\n";
$html .= "\t\t\t\t<input type=\"hidden\" name=\"yiw_referer\" value=\"" . yiw_curPageURL() . "\" />\n";
$html .= "\t\t\t\t<input type=\"hidden\" name=\"id_form\" value=\"" . str_replace( '-', '_', $form ) . "\" />\n";
$html .= "\t\t\t\t<input type=\"submit\" name=\"yiw_sendemail\" value=\"" . yiw_get_option( 'contact_form_submit_label_' . $form, __( 'send message', 'yiw' ) ) . "\" class=\"sendmail " . yiw_get_option( 'contact_form_submit_alignment_' . $form, __( 'alignright', 'yiw' ) ) . "\" />";
$html .= "\t\t\t</li>\n";
$html .= "\t\t</ul>\n\n";
$html .= "\t</fieldset>\n";
$html .= "</form>\n\n";
// messages for javascript validation
$html .= "<script type=\"text/javascript\">\n";
$html .= "\tvar messages_form_" . str_replace( '-', '_', $form ) . " = {\n";
foreach( $js_messages as $id => $msg )
$html .= "\t\t$id: \"$msg\",\n";
// remove last comma
$html = str_replace( "\t\t$id: \"$msg\",\n", "\t\t$id: \"$msg\"\n", $html );
$html .= "\t};\n";
$html .= "</script>";
if( $echo )
echo $html;
return $html;
}
function yiw_get_value( $id )
{
return ( isset( $_POST['yiw_contact'][$id] ) ) ? $_POST['yiw_contact'][$id] : '';
}
function yiw_set_contenttype( $content_type ){
return CONTENT_TYPE;
}
function yiw_add_contact_scripts(){
wp_enqueue_script( 'yiw-contact-form', get_template_directory_uri() . '/js/contact.js', array( 'jquery' ), '1.0', true );
wp_localize_script( 'yiw-contact-form', 'objectL10n', array(
'wait' => __( 'wait...', 'yiw' )
) );
}
add_action( 'wp_enqueue_scripts', 'yiw_add_contact_scripts' );
function yiw_module_general_message_of( $form, $echo = true )
{
global $message;
$return = '';
if ( isset( $message[$form]['general'] ) )
$return = $message[$form]['general'];
if ( $echo )
echo $return;
return $return;
}
/**
* CONTACT FORM
*
* @description
* Show a contact form, configured on Theme Options Panel
*
* @example
* [contact_form id="" ]
*
* @params
* id - the id of form, created on Theme Options Panel
**/
function yiw_contact_form_func($atts, $content = null) {
extract(shortcode_atts(array(
"id" => null
), $atts));
if( is_null( $id ) )
$id = 'default';
if( function_exists( 'yiw_module' ) )
return yiw_module( $id, false );
else
return '';
}
add_shortcode("contact_form", "yiw_contact_form_func");
?>