Untitled
unknown
plain_text
a year ago
1.7 kB
16
Indexable
Never
add_filter( 'woocommerce_is_purchasable', 'disable_purchasable_non_agent'); add_filter( 'woocommerce_variation_is_purchasable', 'disable_purchasable_non_agent'); function disable_purchasable_non_agent($purchasable){ $user_id = get_current_user_id(); if (!is_agent($user_id) && !check_user_is_agent_with_access()){ $purchasable = false; } // if not agent or agent shopping as customers, not purchasable return $purchasable; } function is_agent($user_id){ $agent_group = get_user_meta($user_id,'salesking_group',true); if ($agent_group !== 'none' && !empty($agent_group)){ return true; } else { return false; } } function check_user_is_agent_with_access(){ // check if switch cookie is set if (isset($_COOKIE['salesking_switch_cookie'])){ $switch_to = sanitize_text_field($_COOKIE['salesking_switch_cookie']); $current_id = get_current_user_id(); if (!empty($switch_to) && is_user_logged_in()){ // show bar $udata = get_userdata( get_current_user_id() ); $name = $udata->first_name.' '.$udata->last_name; // get agent details $agent = explode('_',$switch_to); $customer_id = intval($agent[0]); $agent_id = intval($agent[1]); $agent_registration = $agent[2]; // check real registration in database $udataagent = get_userdata( $agent_id ); $registered_date = $udataagent->user_registered; // if current logged in user is the one in the cookie + agent cookie checks out if ($current_id === $customer_id && $agent_registration === $registered_date){ return apply_filters('b2bking_enable_salesking_visibility', true); } } } return false; }