Categories
PHP Wordpress

WordPress : Redirect To Post Page When Search Query Returns Single Result

If your website have lots of links and people often use search box to search what they are looking for. When there is only one search result then user need to click on the title of that result to read more about that post. A solution here is why we need to show the search results page when there are only one search result.

You may use below simple php code in your WordPress theme’s functions.php file to redirect your search to the post automatically when WordPress only returns a single search result.


if (!function_exists('single_result_redirect_to_post')){
	add_action('template_redirect', 'single_result_redirect_to_post');
	function single_result_redirect_to_post(){
		if (is_search()) {
			global $wp_query;
			if ($wp_query->post_count == 1) {
				wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
			}
		}
	}
}
Categories
PHP Wordpress

WordPress : Send Mail to Admin when user comes to 404 page

Sending mails to admin is very easy in wordpress by using a inbuild wordpress function wp_mail.
But if you want to send a mail to wordpress admin when user comes to 404 page then you can use below simple code.

Sending mail when user comes to 404 page in wordpress
This code can be added in your wordpress theme’s functions.php file or in custom plugin. You need to write a custom plugin for the same. Please let me know if you need any help to write a custom plugin. As i am using a custom plugin for my wordpress websites and that custom plugin have lots of functions and wordpress hooks that makes my life easy and simple.

Below script checks the referring link of your website, and then sends an email to the webmaster/wordpress admin.

if (!function_exists('email_admin')){
	function email_admin(){
		$message = "";
		if(isset($_SERVER['HTTP_REFERER'])){
			$message .= "User came from: ".$_SERVER['HTTP_REFERER']."\r\n";
		}
		$ipAddress 		= 	$_SERVER["REMOTE_ADDR"];
		if($ipAddress!=''){
			$message .= "Track User Data: http://www.ip-adress.com/ip_tracer/".$ipAddress."\r\n";
		}
		$browser 		= 	$_SERVER['HTTP_USER_AGENT'];
		if($browser!=''){
			$message .= "Browser: ".$browser."\r\n";
		}
		$message.="Page URL they tried to access was: ".home_url().$_SERVER['REQUEST_URI']."\r\n";
		$admin_email 	= 	get_option('admin_email');
		$subject		=	'404 Error at '. home_url();
		//echo $subject;	echo $message; die;
		@wp_mail($admin_email,$subject,$message);
	}
	
	function mail_me_errors(){
		global $wp_query;
		if ($wp_query->is_404){
			email_admin();
		}
	}
	add_action('get_header', 'mail_me_errors');
}
Categories
Magento PHP

Magento : How to Update Product Price In Cart Programmatically

If you want to Add Product to Magento Cart with Price Change then you have to write an Observer that listens the “checkout_cart_product_add_after” or “checkout_cart_update_items_after” event.
You need to modify the code as shown below.

The code is same except checkout_cart_product_add_after is called for only one item and checkout_cart_update_items_after is called for all items in the cart.

Step 1. Open etc/config.xml of your module. CodeMasterz is company name and CustomDiscount is your module name

<?xml version="1.0"?>
<config>
    <modules>
       ...
    </modules>
    <global>
        <models>
           ...
        </models>
		
		<!--Creating a observer for custom discount on cart page by Vaseem-->
		<events>
            <checkout_cart_product_add_after>
                <observers>
                    <unique_event_name>
                        <class>CodeMasterz_CustomDiscount_Model_Observer</class>
                        <method>myCustomDiscount</method>
                    </unique_event_name>
                </observers>
            </checkout_cart_product_add_after>
        </events>
		
        ...
    </global>
</config>

Step 2. Then create a file in your module folder “Model/Observer.php”

<?php
class CodeMasterz_CustomDiscount_Model_Observer
{
    
    public function myCustomDiscount(Varien_Event_Observer $observer)
    {
        $item = $observer->getQuoteItem();
        if ($item->getParentItem()) {
            $item = $item->getParentItem();
        }
        //discount 20% off
        $discount = 0.20; 
        // Check if the discount isn't applied over and over while refreshing
        //$specialPrice = $item->getPrice() - ($item->getPrice() * $discount);
		$specialPrice	=	125;
		
        if ($specialPrice > 0) {
            $item->setCustomPrice($specialPrice);
            $item->setOriginalCustomPrice($specialPrice);
            $item->getProduct()->setIsSuperMode(true);
        }
    }
?>

Hope above works for you. If you have any difficulty understanding the code or anything else then you can contact me using contact page at this website.

Categories
Magento PHP

Magento : How to Redirect Non Logged in Users to Login Page

There are some many ways to redirect users/visitors in magento. But the most easy way i found is written below.
To redirect the users/visitors to login page you can add below line of code in head.phtml of your current theme.

<?php		// Added by Vaseem to redirect non logged in user to login page
$currentUrl = $this->helper('core/url')->getCurrentUrl();
echo 'currentUrl->'.$currentUrl.'<br>';
$loginStatus	=	'';
if ( strpos( $currentUrl, "customer" ) !== false ) {
	$loginStatus	=	1;
}
if(!$this->helper('customer')->isLoggedIn() && $loginStatus!=1){
	echo 'redirect to login page now';
  	Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('customer/account/login/'));
}
?>