/*
 Theme Name:   Be Social Studio
 Theme URI:    https://bricksbuilder.io/
 Description:  Subtema de Bricks para la web de la agencia Be Social Studio
 Author:       Marcelo Meza
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.3
 Text Domain:  be-social
*/

/**
 * * Ocultacion de url wp-admin para seguridad basica
 * 1) Redirige la URL amigable (/clientes) al wp-login.php real, agregando el token y conservando parámetros como redirect_to.
 */
if ( ! function_exists( 'bss_login_slug' ) ) {
	function bss_login_slug() {
		$slug = get_option( 'bss_login_slug', 'clientes' );
		return apply_filters( 'bss_login_slug', $slug );
	}
}

add_action( 'init', 'bss_custom_login_redirect' );
function bss_custom_login_redirect() {
	$slug = bss_login_slug();
	$path = trim( parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ), '/' );
 
	if ( $path === $slug ) {
		$args          = $_GET; // conserva redirect_to u otros parámetros
		$args[ $slug ] = '1';
		wp_safe_redirect( add_query_arg( $args, site_url( 'wp-login.php', 'login' ) ) );
		exit;
	}
}
 
add_action( 'init', 'bss_block_direct_login', 1 );
function bss_block_direct_login() {
	$slug = bss_login_slug();
	$path = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
 
	if ( strpos( $path, 'wp-login.php' ) === false ) {
		return;
	}
 
	$has_token = isset( $_GET[ $slug ] );
	$is_post   = ( $_SERVER['REQUEST_METHOD'] === 'POST' );
 
	if ( ! $has_token && ! $is_post ) {
		bss_force_404();
	}
}
 
function bss_force_404() {
	global $wp_query;
	$wp_query->set_404();
	status_header( 404 );
	nocache_headers();
 
	$template = get_query_template( '404' );
	if ( $template ) {
		include $template;
	} else {
		wp_die( __( 'Página no encontrada.' ), '', array( 'response' => 404 ) );
	}
	exit;
}
 
add_filter( 'login_url', 'bss_inject_token_into_url' );
add_filter( 'lostpassword_url', 'bss_inject_token_into_url' );
add_filter( 'register_url', 'bss_inject_token_into_url' );
function bss_inject_token_into_url( $url ) {
	return add_query_arg( bss_login_slug(), '1', $url );
}
 
add_filter( 'logout_url', 'bss_fix_logout_url', 10, 2 );
function bss_fix_logout_url( $logout_url, $redirect ) {
	$logout_url = add_query_arg( bss_login_slug(), '1', $logout_url );
 
	// Evita el segundo golpe a wp-login.php?loggedout=true tras cerrar sesión
	if ( empty( $redirect ) ) {
		$logout_url = add_query_arg( 'redirect_to', urlencode( home_url( '/' ) ), $logout_url );
	}
 
	return $logout_url;
}