Salu2 gente tengo este formulario donde los usuarios pueden contactar conmigo y enviarme archivos a mi dirección de correo. pero necesito añadir un checkbox obligatorio para que el envio se pueda realizar.
el dormulario es un plugin del wordpress pongo el
enlace para quien quiera descargarselo y verlo, de todas formas os pongo el codigo.
Código PHP:
<?php
/*
Plugin Name: WP-ContactForm
Version: 1.4.3
*/
load_plugin_textdomain('wpcf',$path = 'wp-content/plugins/wp-contact-form');
// Attachments max size in KB!
$attachment_max_size = 1024;
/* Declare strings that change depending on input. This also resets them so errors clear on resubmission. */
$wpcf_strings = array(
'name' => '<div class="contactright"><input class="textfield" type="text" name="wpcf_your_name" id="wpcf_your_name" size="30" maxlength="50" value="' . $_POST['wpcf_your_name'] . '" /> (requerido)</div>',
'email' => '<div class="contactright"><input class="textfield" type="text" name="wpcf_email" id="wpcf_email" size="30" maxlength="50" value="' . $_POST['wpcf_email'] . '" /> (requerido)</div>',
'msg' => '<br/><textarea class="textfield" name="wpcf_msg" id="wpcf_msg" cols="35" rows="8" >' . $_POST['wpcf_msg'] . '</textarea>',
'error' => '');
/*
This shows the quicktag on the write pages
Based off Buttonsnap Template
http://redalt.com/downloads
*/
if(get_option('wpcf_show_quicktag') == true) {
include('buttonsnap.php');
add_action('init', 'wpcf_button_init');
add_action('marker_css', 'wpcf_marker_css');
function wpcf_button_init() {
$wpcf_button_url = buttonsnap_dirname(__FILE__) . '/wpcf_button.png';
buttonsnap_textbutton($wpcf_button_url, __('Insertar Formulario', 'wpcf'), '<!--contact form-->');
buttonsnap_register_marker('contact form', 'wpcf_marker');
}
function wpcf_marker_css() {
$wpcf_marker_url = buttonsnap_dirname(__FILE__) . '/wpcf_marker.gif';
echo "
.wpcf_marker {
display: block;
height: 15px;
width: 155px
margin-top: 5px;
background-image: url({$wpcf_marker_url});
background-repeat: no-repeat;
background-position: center;
}
";
}
}
function wpcf_is_malicious($input) {
$is_malicious = false;
$bad_inputs = array("\r", "\n", "mime-version", "content-type", "cc:", "to:");
foreach($bad_inputs as $bad_input) {
if(strpos(strtolower($input), strtolower($bad_input)) !== false) {
$is_malicious = true; break;
}
}
return $is_malicious;
}
/* This function checks for errors on input and changes $wpcf_strings if there are any errors. Shortcircuits if there has not been a submission */
function wpcf_check_input()
{
if(!(isset($_POST['wpcf_stage']))) {return false;} // Shortcircuit.
$_POST['wpcf_your_name'] = stripslashes(trim($_POST['wpcf_your_name']));
$_POST['wpcf_email'] = stripslashes(trim($_POST['wpcf_email']));
$_POST['wpcf_website'] = stripslashes(trim($_POST['wpcf_website']));
$_POST['wpcf_msg'] = stripslashes(trim($_POST['wpcf_msg']));
global $wpcf_strings;
$ok = true;
if(empty($_POST['wpcf_your_name']))
{
$ok = false; $reason = 'empty';
$wpcf_strings['name'] = '<div class="contactright"><input type="text" name="wpcf_your_name" id="wpcf_your_name" size="30" maxlength="50" value="' . $_POST['wpcf_your_name'] . '" class="contacterror" /> (' . __('requerido', 'wpcf') . ')</div>';
}
if(!is_email($_POST['wpcf_email']))
{
$ok = false; $reason = 'empty';
$wpcf_strings['email'] = '<div class="contactright"><input type="text" name="wpcf_email" id="wpcf_email" size="30" maxlength="50" value="' . $_POST['wpcf_email'] . '" class="contacterror" /> (' . __('requerido', 'wpcf') . ')</div>';
}
if(empty($_POST['wpcf_msg']))
{
$ok = false; $reason = 'empty';
$wpcf_strings['msg'] = '<div class="contactright"><textarea name="wpcf_msg" id="wpcf_message" cols="35" rows="8" class="contacterror">' . $_POST['wpcf_msg'] . '</textarea></div>';
}
if(wpcf_is_malicious($_POST['wpcf_your_name']) || wpcf_is_malicious($_POST['wpcf_email'])) {
$ok = false; $reason = 'malicious';
}
if($ok == true)
{
return true;
}
else {
if($reason == 'malicious') {
$wpcf_strings['error'] = "<div style='font-weight: bold;'>You can not use any of the following in the Name or Email fields: a linebreak, or the phrases 'mime-version', 'content-type', 'cc:' or 'to:'.</div>";
} elseif($reason == 'empty') {
$wpcf_strings['error'] = '<div style="font-weight: bold;">' . stripslashes(get_option('wpcf_error_msg')) . '</div>';
}
return false;
}
}
/*Wrapper function which calls the form.*/
function wpcf_callback( $content )
{
global $wpcf_strings, $attachment_max_size;
/* Run the input check. */
if(! preg_match('|<!--contact form-->|', $content)) {
return $content;
}
if(wpcf_check_input()) // If the input check returns true (ie. there has been a submission & input is ok)
{
$recipient = get_option('wpcf_email');
$subject = get_option('wpcf_subject');
$success_msg = get_option('wpcf_success_msg');
$success_msg = stripslashes($success_msg);
$name = $_POST['wpcf_your_name'];
$email = $_POST['wpcf_email'];
$website = $_POST['wpcf_website'];
$msg = $_POST['wpcf_msg'];
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
if(preg_match_all("/$regexp/siU", $msg, $matches, PREG_SET_ORDER)) {
if(count($matches) > 2) {
$results = '<h2 class="pagetitle red">No more than 2 links allowed!</h2>';
echo $results;
return;
}
/*
foreach($matches as $match) {
# $match[2] = link address
# $match[3] = link text
}
*/
}
$headers = "MIME-Version: 1.0\n";
$headers .= "From: $name <$email>\n";
//$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";
$headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n";
$headers .= "X-Sender: $from_name<" . $email . ">\n";
$headers .= "X-Mailer: PHP4\n";
$headers .= "X-Priority: 3\n"; //1 = Urgent, 3 = Normal
$headers .= "Return-Path: <" . $email . ">\n";
$headers .= "This is a multi-part message in MIME format.\n";
$headers .= "------=MIME_BOUNDRY_main_message \n";
$headers .= "Content-Type: multipart/alternative; boundary=\"----=MIME_BOUNDRY_main_message\"\n";
//$fullmsg = "$name wrote:\n";
//$fullmsg .= wordwrap($msg, 80, "\n") . "\n\n";
//$fullmsg .= "Website: " . $website . "\n";
//$fullmsg .= "IP: " . getip();
Sigue....