Tuesday, April 8, 2014

Wordpress set mail type to html

//Create function which will return content type

function set_html_content_type() {
    return 'text/html';

//now add filter before wp-mail()

add_filter( 'wp_mail_content_type', 'set_html_content_type' ); // add content filter to html
wp_mail($to, $subject, $message,$headers);
remove_filter( 'wp_mail_content_type', 'set_html_content_type' ); // remove content filter

//remove filter after wp_mail()

Wordpress redirect user with role

Wordpress has many users roles, you can redirect particular users by role with following function

function redirect_user_on_role()
    //retrieve current user info
    global $current_user;
     //If login user role is Subscriber
         if ($current_user->user_level == 0)
            wp_redirect(esc_url( get_permalink( get_page_by_title( 'Perticluar Page By Name' ) ) )); exit;
     //If login user role is Contributor
     else if ($current_user->user_level > 1)
            wp_redirect( home_url() ); exit;
      //If login user role is Editor
     else if ($current_user->user_level >8)
        wp_redirect( home_url() ); exit;
      For other rolse
              $redirect_to = 'http://google.com/';
            return $redirect_to;

Wordpress Plugin Template redirect custom post, page, taxonomy

 Here is example of how we can redirect to custom templates in wordpress plugin with page name, custom post type, custom taxonomies etc

add_action("template_redirect", 'my_theme_redirect');
function my_theme_redirect() {
    global $wp;
    $plugindir = dirname( __FILE__ );
 // A Specific page by title / name
    if ($wp->query_vars["pagename"] == 'agenda') {
        $templatefilename = 'page-event-list.php';
        if (file_exists(TEMPLATEPATH . '/' . $templatefilename)) {
            $return_template = TEMPLATEPATH . '/' . $templatefilename;
        } else {
            $return_template = $plugindir . '/templates/' . $templatefilename;

    //A Specific Custom Post Type
    if ($wp->query_vars["post_type"] == 'events') {
        $templatefilename = 'single-event.php';
        if (file_exists(TEMPLATEPATH . '/' . $templatefilename)) {
            $return_template = TEMPLATEPATH . '/' . $templatefilename;
        } else {
            $return_template = $plugindir . '/templates/' . $templatefilename;

    //A Custom Taxonomy Page
    } elseif ($wp->query_vars["taxonomy"] || is_tax('location')== 'location') {
        $templatefilename = 'taxonomy-event_location.php';
        if (file_exists(TEMPLATEPATH . '/' . $templatefilename)) {
            $return_template = TEMPLATEPATH . '/' . $templatefilename;
        } else {
            $return_template = $plugindir . '/templates/' . $templatefilename;
    //Function includes file and does redirection
    function do_theme_redirect($url) {
        global $post, $wp_query;
        if (have_posts()) {
        } else {
            $wp_query->is_404 = true;

Wednesday, September 4, 2013

php text to speech with google api

// Convert Words (text) to Speech (MP3)
    // ------------------------------------
    // Google Translate API cannot handle strings > 100 characters
    $word = substr($word, 0, 100);
    // Replace the non-alphanumeric characters
    // The spaces in the sentence are replaced with the Plus symbol
    $word = urlencode($word);
    // If the MP3 file exists, do not create a new request
    // create curl resource
    $ch = curl_init();
    // set url
    curl_setopt($ch, CURLOPT_URL, 'http://translate.google.com/translate_tts?ie=UTF-8&tl=en&q='.$word);
    //return the transfer as a string
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // $output contains the mp3 file
    $mp3 = curl_exec($ch);
    // close curl resource to free up system resources
file_put_contents('temp/'.$word.'.mp3', $mp3);

Wordpress bypass sanitize filter for post insert

I found solution for wordpress 3.6 and just want to share here
filter had to be unset due to security problems with it. You could try doing kses_remove_filters() before inserting the post and kses_init_filters() after inserting the post if you are trying to avoid the kses filtering of the post fields. Just be wary since that defeats most of the security measures for inserting posts.

kses_remove_filters(); // remove filter
wp_insert_post($args); //insert post
kses_init_filters(); // put back filter

Friday, July 5, 2013

Youtube Video in Fancybox Wordpress plugin

YouTube Video in Fancy box (Light box) WordPress

It's WordPress plugin by which you can add YouTube video in fancybox (lightbox).

if you are looking for youtube video to be placed in you page, post  or widget with fancybox/lightbox effect you come to right place bitches !

1) You can download it here and install as other plugins

2) You will get  plugin menu "YTubeFancyBox"

i) Here you can set default height and width of image thumbnail also there
ii)You can generate shorcode for thubnail and image here
example code genrated

[youtube url="https://www.youtube.com/watch?v=-P__VRsRodo" height="150" width="300" ]
[youtube videoid="-P__VRsRodo" height="150" width="300" ]

3)Copy generated code and put it any where you want in page, post, widget

Thursday, June 13, 2013

Sending MIME Mail with PHP

You can send email with PHP Mailer with attachment and MIME type, with help of following libraries

1)PHP Mailer
you can download latest version from github

require 'class.phpmailer.php';

$mail = new PHPMailer;

$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'jswan';                            // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted

$mail->From = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->AddAddress('josh@example.net', 'Josh Adams');  // Add a recipient
$mail->AddAddress('ellen@example.com');               // Name is optional
$mail->AddReplyTo('info@example.com', 'Information');

$mail->WordWrap = 50;                                 // Set word wrap to 50 characters
$mail->AddAttachment('/var/tmp/file.tar.gz');         // Add attachments
$mail->AddAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->IsHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body in bold!';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->Send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;

echo 'Message has been sent';?>
You can also send Emails with SwiftMailer



require_once 'swift/lib/swift_required.php';

$smtp = Swift_SmtpTransport::newInstance('smtp.host.tld', 25)
  ->setUsername(' ... ')
  ->setPassword(' ... ');

$mailer = Swift_Mailer::newInstance($smtp);

$message = Swift_Message::newInstance('Your subject');
    'user2@example.org' => 'User Two',
    'user3@exmaple.org' => 'Another User Name'
  ->setFrom(array('your@address.com' => 'Your Name'))
    'Here is an image  . $message->embed(Swift_Image::fromPath('/path/to/image.jpg')) . '" />',
  ->addPart('This is the alternative part', 'text/plain')
if ($mailer->send($message))
  echo "Message sent!";
  echo "Message could not be sent.";