Urielmania

“El Mundo de Uriel… Pero la voz de todos”

Hook para mostrar tienda woocomerce solo a usuarios registrado

WordPress es mi pasion y si bien los plugins son fantástico, tanto como que me dicen el tío plugin, es más pronto tendré mi playera que diga:

Todo se soluciona con un plugin.

Pero el problema de estos es que; muchas veces instalas un plugin por una simple funcionalidad que el mismo wordpress la tiene pero no sabias , por tal motivo últimamente me he movido al tema de los Hooks o conectores de WordPress , pero bueno esto lo hablara en otro tema, el chiste aqui es cual es el hook para mostrar la tienda de woocommerce solo para usuarios registrados de wp.

el código es sencillo y como muchos ya sabrán se tiene que pegar en el archivo functions.php  de su theme wordpress, y es el siguiente:

function visible_solo_usuarios_registrados(){

    if ( !is_user_logged_in() && (is_woocommerce() || is_cart() || is_checkout())) {

        wp_redirect( get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) );
        exit;
    }
}
add_action( 'template_redirect', 'visible_solo_usuarios_registrados' );

pero que pasa si lo que quieres es Permitir el acceso a la tienda online solo a un determinado rol de usuario, pues nada, solo tienes que agregar otro par de lineas y tu función debería quedar asi;

// Permitir acceso a tienda solo a un determinado rol de usuario
function visible_segun_rol_de_usuario(){

	$current_user = wp_get_current_user();
	$allowed_user_role = array( 'contributor' ); //Añade dentro de los paréntesis y separados por comas, los roles de usuario a los que desees permitir el acceso.
	if ( ( !in_array( $allowed_user_role, $current_user->roles ) ) &&
		( is_shop() || is_product_category() || is_product_tag() || is_wc_endpoint_url() || is_product() || is_cart() || is_checkout())) {

		wp_redirect( get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) );
		exit;
	}
}
add_action( 'template_redirect', 'visible_segun_rol_de_usuario' );

Y pues listo , ya tienes tu funcionalidad que es perfecta para determinados proyectos.

Igual si están interesados en como implementarla con el plugin Sidebar Login pueden darse una vuelta por https://woodemia.com/ donde vi el código que me salvo la vida por cierto.

Acerca del Autor