function limpiar_variable_completa($tags)
{
$tags = strip_tags($tags);
$tags = stripslashes($tags);
$tags = htmlspecialchars($tags);
return $tags;
}
//NECESITAS TENER INSTALADO AKIMEST PARA QUE ESTO FUNCIONE, esto es para evitar que los SPAMMERS automaticos nos llenen de basura de Viagra y Compañia
function es_spam($msg)
{
if(function_exists('akismet_http_post') && get_option('wordpress_api_key') )
{
global $akismet_api_host, $akismet_api_port;
$c['user_ip'] = preg_replace( '/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR'] );
$c['blog'] = get_option('home');
$c['comment_content'] = $msg;
$ignore = array( 'HTTP_COOKIE', 'HTTP_COOKIE2', 'PHP_AUTH_PW' );
foreach ( $_SERVER as $key => $value )
{
if ( !in_array( $key, $ignore ) && is_string($value) )
$c["$key"] = $value;
else
$c["$key"] = '';
}
$query_string = '';
foreach ( $c as $key => $data )
{
if( is_string($data) )
$query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&';
}
$response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port);
if ( 'true' == $response[1] )
return 1;
else
return 0;
}
}
function isEmptyString($data)
{
return (trim($data) === "" or $data === null);
}
function post_new_question($question_title, $question_content, $ID_Pregunton, $ID_Categoria)
{
global $wpdb;
$question_title_stripped = limpiar_variable_completa($question_title);
$question_content_stripped = limpiar_variable_completa($question_content);
if( es_spam($question_title_stripped)==1 || es_spam($question_content_stripped)==1)
return new WP_Error('title_spam', 'Eres un Spammer');
$question_title_stripped = ucfirst(strtolower($question_title_stripped));
$question_content_stripped = ucfirst(strtolower($question_content_stripped));
//Mensajes de ERROR Para que el HOYGAN sepa que lo que hace esta mal xD
if (isEmptyString($question_title_stripped)) return new WP_Error('no_title_entered', 'Escribe el Titulo de tu Pregunta');
if(strlen($question_title_stripped)<10) return new WP_Error('title_corto', 'El Titulo debe tener al menos 10 caracteres');
if (isEmptyString($question_content_stripped)) return new WP_Error('no_content', 'Detalla tu Pregunta para que así puedas conseguir mejores respuestas');
if (strlen($question_content_stripped)<50) return new WP_Error('content_corto', 'Mientras más detalles tenga tu pregunta conseguirás mejores respuestas');
if (strcasecmp($question_title_stripped, $question_content_stripped) == 0) return new WP_Error('iguales', 'El titulo y la descripción deben ser diferentes');
$question_author = $ID_Pregunton;
$post = array(
'ID' => '',
'post_author' => $question_author, //Como los usuarios no se registran colocamos un usuario X para que todas las preguntas sean de el, en mi caso se llama Pregunton xD
'post_content' => $question_content_stripped, //Contenido de la pregunta
'post_title' => $question_title_stripped, //Titulo de la pregunta
'post_category' => $ID_Categoria, //Categoria donde quieres guardar las preguntas
'post_status' => 'pending' //Si quieres revisar antes de publicarla para evitar preguntas estúpidas y groserias
);
// Insert the Question into the DB
$question_id = wp_insert_post($post);
add_post_meta($question_id, '_aioseop_description', substr($question_content_stripped,0,160));//Un poco de SEO si usas ALL IN ONE SEO PACK esto le coloca la parte de la Descripcion en los campos del Plugin
add_post_meta($question_id, '_aioseop_title', $question_title_stripped);//Un poco de SEO si usas ALL IN ONE SEO PACK esto le coloca la parte del Title en los campos del Plugin
return "Tu pregunta sera revisada por nuestro Administrador - Gracias por Preguntar";
}
function display_message( $message = false )
{
if( is_wp_error( $message ) )
{
echo '<div class="errorMessage"><p>' . $message->get_error_message() . '</p></div>';
}
elseif ($message != '')
{
echo '<div class="successMessage"><p>' . $message . '</p></div>';
}
}