PHP Developer

Monday, 12 October 2015

How can I change email Notification for new user in WordPress

When admin add a new customer from back end manualy the email notification goes to new user.

The new user notification email is created and sent by the function wp_new_user_notification(), found in wp-includes/plugable.php

There is no filter hook within this funciton that will allow you to manipulate the output of the email, however you can of course overwrite any pluggable function via a plugin.

Note - You can only overwrite pluggable functions from within a plugin, not from within your theme.

This code will create the plugin which will be used instead of the one in wp-includes/plugable.php


<?php
/**
 * Plugin Name: User Email Notification
 * Plugin URI: http://astro-global.blogspot.in/
 * Description: This plugin helps you to Send email notification to user if user create by admin in back end. Easily customize, send Username, Password and link also.
 * Version: 1.0.0
 * Author: Sunil Sharma
 * Author URI: https://plus.google.com/u/0/+SunilSharma_007
 */

$pathsss = $_SERVER['DOCUMENT_ROOT'];
if(!defined('DS')){
    define('DS',DIRECTORY_SEPARATOR);
}
include_once $_SERVER['DOCUMENT_ROOT'].'/wp-load.php';
function email_notification_activation()
{
    if ( ! current_user_can( 'activate_plugins' ) )
        return;
}
function email_notification_deactivation()
{
    if ( ! current_user_can( 'activate_plugins' ) )
        return;
}
function email_notification_uninstall()
{
    if ( ! current_user_can( 'activate_plugins' ) )
        return;
}
register_activation_hook( __FILE__, 'email_notification_activation' );
register_deactivation_hook( __FILE__, 'email_notification_deactivation' );
register_uninstall_hook( __FILE__, 'email_notification_uninstall' );

if ( !function_exists('wp_new_user_notification') ) :
/**
 * Pluggable - Email login credentials to a newly-registered user
 *
 * A new user registration notification is also sent to admin email.
 *
 * @since 2.0.0
 *
 * @param int    $user_id        User ID.
 * @param string $plaintext_pass Optional. The user's plaintext password. Default empty.
 */

function wp_new_user_notification($user_id, $plaintext_pass = '') {
    $user = get_userdata( $user_id );

    // The blogname option is escaped with esc_html on the way into the database in sanitize_option
    // we want to reverse this for the plain text arena of emails.

    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

    $message  = sprintf(__('New user registration on your site %s:'), $blogname) . "\r\n\r\n";
    $message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
    $message .= sprintf(__('E-mail: %s'), $user->user_email) . "\r\n";

    @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);

    if ( empty($plaintext_pass) )
        return;

    $message  = sprintf(__('Username: %s'), $user->user_login) . "\r\n";
    $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n";
    //$message .= wp_login_url() . "\r\n";
    $message .= site_url() . "/sign-in/";

    wp_mail($user->user_email, sprintf(__('[%s] Your username and password'), $blogname), $message);

}
endif;
?>

Wednesday, 1 July 2015

Export post in CSV Format

Export post in CSV Format :

This plugin helps you to Export custom post with CSV file. CSV file include full data of custom post like featured image link, custom meta box value, title, content, etc.


<?php
/**
 * Plugin Name: Export Cause with CSV File
 * Plugin URI: https://plus.google.com/u/0/115833273431242118637
 * Description: This plugin helps you to Export Cause (custom post) with CSV file. CSV file include full data of Cause(custom post) like featured image link, custom meta box value, title, content, etc.
 * Version: 1.0.0
 * Author: Sunil Sharma
 * Author URI: http://astro-global.blogspot.in/
 */

$pathss = $_SERVER['DOCUMENT_ROOT'];
if(!defined('DS')){
    define('DS',DIRECTORY_SEPARATOR);
}
include_once $_SERVER['DOCUMENT_ROOT'].'/wp-load.php';

Thursday, 25 June 2015

Create a Custom “Lost Password” Email in WordPress

Create a Custom “Lost Password” Email in WordPress : 

We’ve all done it. Not being able to remember passwords is one of the most annoying things about having so many website accounts across the internet. Fortunately, browsers nowadays let you save usernames and passwords for most websites so you don’t have to worry about losing login information that much. However, it does still happen. If you allow user registration on your WordPress site, users will inevitably need to reset their password at some point.
WordPress provides a default password-reset process that involves the user entering their username or email into a form. Once the form is submitted, WordPress sends an email to the user with that username/password that contains a link to reset their password. Once reset, the user can log in using their new password. The thing is that the canned email for this purpose is rather plain. The bright side, though, is that, like most things, WordPress gives us a way to customize this email. The code below does the following:
  1. Changes the “From” email address. This would be the email any reply is sent to.
  2. Changes the “From” name. This shows the recipient who the email is from.
  3. Changes the email subject.
  4. Changes the content type of the email to HTML so we can use markup within the message. Before, it was a plain-text message.
  5. Creates a custom message to use in the email body. This process involves retrieving the user’s data based on their email/username, assembling a URL with appropriate query arguments so WordPress can do the password reset, and adding a custom message with the link to reset the password. The only part you’ll change is the message at the bottom; almost everything else needs to remain the same to work. Just make sure to include the link that lets the user actually reset the password.

Add this code in functions.php :
  1. <?php
    //* Change "From" email address
    add_filter( 'wp_mail_from', function( $email ) {
        return 'hello@mydomain.com';
    });
    //* Change "From" email name
    add_filter( 'wp_mail_from_name', function( $name ) {
        return 'My Website';
    });
    //* Change Subject
    add_filter( 'retrieve_password_title', function() {
        return 'Password Recovery';
    });
    //* Change email type to HTML
    add_filter( 'wp_mail_content_type', function( $content_type ) {
        return 'text/html';
    });

Wednesday, 24 June 2015

Select Subscriber and Admin Users as author of post in admin panel

 Select Subscriber and Admin Users as author of post in admin panel : 


In this select a subscriber or admin an author of a post in the admin so it displays their name as having written the post.

Add this code in functions.php file, then all users with role subscriber or administrator is show in dropdown in Author section of post

Add this code in functions.php file : 

<?php
add_filter('wp_dropdown_users', 'MySwitchUser');
function MySwitchUser($output)
{
//global $post is available here, hence you can check for the post type here
global $post;
$roles = array('administrator', 'editor', 'author', 'contributor', 'subscriber', 'byt_frontend_contributor', 'customer', 'shop_manager', 'pending');

$output = "<select id=\"post_author_override\" name=\"post_author_override\" class=\"\">";
foreach($roles as $role){
$users = get_users('role='.$role);
foreach($users as $user)
{
global $post;
$sel = ($post->post_author == $user->ID)?"selected='selected'":'';
$output .= '<option value="'.$user->ID.'"'.$sel.'>'.$user->user_login.'</option>';
}
}
//Leave the admin in the list    
    $output .= "</select>";

    return $output;
}
?>

Thursday, 9 April 2015

Create Custom Post with all options like Category, Featured image, Excerpt etc. in wordpress

Create Custom Post with all options like Category, Featured image, Excerpt etc. in WordPress


Copy and Paste this code in function.php file. This function create a post of type "servicerequest".

<?php
/*------------------------ Create Custom Post servicerequest START -------------------------------*/

function service_request() {
    $labels = array(
    'name' => 'Services',
    'singular_name' => 'Services',
    'add_new' => 'Add New Services',
    'add_new_item' => 'Add New Services',
    'edit_item' => 'Edit Services',
    'new_item' => 'New Services',
    'all_items' => 'All Services',
    'view_item' => 'View Services',
    'search_items' => 'Search Services',
    'not_found' => 'No Services Found',
    'not_found_in_trash' => 'No Services found in Trash',
    'parent_item_colon' => '',
    'menu_name' => 'Request Services',
    );
    //register_post_type is use to create new post type.
    //"servicerequest" is a post type

    register_post_type( 'servicerequest', array(
        'labels' => $labels,
        'has_archive' => true,
        'public' => true,
        'supports' => array( 'title', 'editor', 'excerpt', 'custom-fields', 'thumbnail', 'author', 'revisions', 'post-formats' ),
        'exclude_from_search' => false,
        'capability_type' => 'post',
    )
    );  
}
add_action( 'init', 'service_request' );

Wednesday, 8 April 2015

Send Email to multiple users when custom post or post is publish by admin

Send Email to multiple users when custom post or post is publish by admin

Step 1 .  Download PHPMailer from Download and save extract file on path "/wp-content/themes/funding_press" with directory name "PHPMailer".


Step 2 .  Paste this code in function.php file.

Add Meta Box Wordpress Editor for Post or Custom Post in Wordpress

Add Meta Box Wordpress Editor for Post or Custom Post in Wordpress

<?php
/*-------- Add Meta Box Wordpress Editor for Post Code START ----------*/

function myplugin_add_custom_box() {
    $screens = array( 'post' );  // Post Type
    foreach ( $screens as $screen ) {
        add_meta_box(
            'myplugin_sectionid',
            __( 'Product Detail', 'myplugin_textdomain' ),
            'myplugin_inner_custom_box',
            $screen
        );
    }
}