//do for all cases, we have to set cookies and also load session add_action('wp_loaded', 'dvin_wcql_getlist_frm_session'); // After WP and plugins are loaded. add_action('wp', array('Dvin_Wcql', 'set_session_cookies'), 100); // Set session cookies Dvin_Wcql::load_ajax_includes(); //add ajax includes } if (!defined('DOING_AJAX') || !DOING_AJAX) { //this array would be used in in determine which hook and priority to use for which position $dvin_wcql_link_positions = array('After Add to Cart' => array('hook_name' => 'woocommerce_single_product_summary', 'priority' => 30), 'After Thumbnail' => array('hook_name' => 'woocommerce_product_thumbnails', 'priority' => 40), 'After Product Summary' => array('hook_name' => 'woocommerce_single_product_summary', 'priority' => 40), 'Replace Add To Cart' => array('hook_name' => 'woocommerce_after_add_to_cart_button', 'priority' => 40)); //include required files based on admin or site if (is_admin()) { //for admin //admin files Dvin_Wcql::load_backend_includes(); require_once 'metabox.php'; require_once 'product_cat_metabox.php'; } else { // for site add_action('wp_enqueue_scripts', 'dvin_qlist_scripts_styles'); Dvin_Wcql::load_site_includes(); $dvin_wcql_obj = new Dvin_Wcql($_REQUEST); //create object add_action('wp', array('Dvin_Wcql', 'set_session_cookies'), 100); // Set session cookies add_action('wp_loaded', 'dvin_wcql_initialize'); // After WP and plugins are loaded. } /* initializes the plugin in front end **/ function dvin_wcql_initialize()